|
@@ -1,23 +1,27 @@
|
|
package com.fjhx.jxst.service.sales.impl;
|
|
package com.fjhx.jxst.service.sales.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.fjhx.customer.entity.customer.po.Customer;
|
|
import com.fjhx.customer.service.customer.CustomerService;
|
|
import com.fjhx.customer.service.customer.CustomerService;
|
|
|
|
+import com.fjhx.jxst.entity.sales.dto.SalesContractDto;
|
|
|
|
+import com.fjhx.jxst.entity.sales.dto.SalesContractSelectDto;
|
|
import com.fjhx.jxst.entity.sales.po.SalesContract;
|
|
import com.fjhx.jxst.entity.sales.po.SalesContract;
|
|
import com.fjhx.jxst.entity.sales.po.SalesContractDetails;
|
|
import com.fjhx.jxst.entity.sales.po.SalesContractDetails;
|
|
|
|
+import com.fjhx.jxst.entity.sales.vo.SalesContractVo;
|
|
import com.fjhx.jxst.mapper.sales.SalesContractMapper;
|
|
import com.fjhx.jxst.mapper.sales.SalesContractMapper;
|
|
import com.fjhx.jxst.service.sales.SalesContractDetailsService;
|
|
import com.fjhx.jxst.service.sales.SalesContractDetailsService;
|
|
import com.fjhx.jxst.service.sales.SalesContractService;
|
|
import com.fjhx.jxst.service.sales.SalesContractService;
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
+import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
-import com.fjhx.jxst.entity.sales.vo.SalesContractVo;
|
|
|
|
-import com.fjhx.jxst.entity.sales.dto.SalesContractSelectDto;
|
|
|
|
-import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
|
-import com.fjhx.jxst.entity.sales.dto.SalesContractDto;
|
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -25,7 +29,7 @@ import java.util.List;
|
|
* 销售合同 服务实现类
|
|
* 销售合同 服务实现类
|
|
* </p>
|
|
* </p>
|
|
*
|
|
*
|
|
- * @author
|
|
|
|
|
|
+ * @author
|
|
* @since 2023-05-16
|
|
* @since 2023-05-16
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
@@ -39,6 +43,15 @@ public class SalesContractServiceImpl extends ServiceImpl<SalesContractMapper, S
|
|
@Override
|
|
@Override
|
|
public Page<SalesContractVo> getPage(SalesContractSelectDto dto) {
|
|
public Page<SalesContractVo> getPage(SalesContractSelectDto dto) {
|
|
IWrapper<SalesContract> wrapper = getWrapper();
|
|
IWrapper<SalesContract> wrapper = getWrapper();
|
|
|
|
+ if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
|
|
|
|
+ List<Customer> list = customerService.list(q -> q.like(Customer::getName, dto.getKeyword()));
|
|
|
|
+ if (ObjectUtil.isNotEmpty(list)) {
|
|
|
|
+ List<Long> ids = list.stream().map(Customer::getId).collect(Collectors.toList());
|
|
|
|
+ wrapper.and(q -> q.in(SalesContract::getCustomerId, ids).or().like(SalesContractVo::getContractAmount, dto.getKeyword()));
|
|
|
|
+ }else{
|
|
|
|
+ wrapper.and(q -> q.like(SalesContractVo::getContractAmount, dto.getKeyword()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
wrapper.orderByDesc("sc", SalesContract::getId);
|
|
wrapper.orderByDesc("sc", SalesContract::getId);
|
|
Page<SalesContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
Page<SalesContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
List<SalesContractVo> records = page.getRecords();
|
|
List<SalesContractVo> records = page.getRecords();
|
|
@@ -59,8 +72,13 @@ public class SalesContractServiceImpl extends ServiceImpl<SalesContractMapper, S
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public void add(SalesContractDto salesContractDto) {
|
|
public void add(SalesContractDto salesContractDto) {
|
|
- this.save(salesContractDto);
|
|
|
|
List<SalesContractDetails> salesContractDetailsList = salesContractDto.getSalesContractDetailsList();
|
|
List<SalesContractDetails> salesContractDetailsList = salesContractDto.getSalesContractDetailsList();
|
|
|
|
+ BigDecimal count = BigDecimal.ZERO;
|
|
|
|
+ for (SalesContractDetails salesContractDetails : salesContractDetailsList) {
|
|
|
|
+ count.add(salesContractDetails.getUnitPrice().multiply(salesContractDetails.getQuantity()));
|
|
|
|
+ }
|
|
|
|
+ salesContractDto.setContractAmount(count);
|
|
|
|
+ this.save(salesContractDto);
|
|
for (SalesContractDetails salesContractDetails : salesContractDetailsList) {
|
|
for (SalesContractDetails salesContractDetails : salesContractDetailsList) {
|
|
salesContractDetails.setSalesContractId(salesContractDto.getId());
|
|
salesContractDetails.setSalesContractId(salesContractDto.getId());
|
|
}
|
|
}
|