Ver Fonte

jxst销售合同

yzc há 2 anos atrás
pai
commit
1df49c86a7

+ 7 - 0
hx-jxst/src/main/java/com/fjhx/jxst/entity/sales/po/SalesContract.java

@@ -2,6 +2,8 @@ package com.fjhx.jxst.entity.sales.po;
 
 import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.math.BigDecimal;
 import java.util.Date;
 import lombok.Getter;
 import lombok.Setter;
@@ -54,4 +56,9 @@ public class SalesContract extends BasePo {
      */
     private String flowKey;
 
+    /**
+     * 合同金额
+     */
+    private BigDecimal contractAmount;
+
 }

+ 0 - 5
hx-jxst/src/main/java/com/fjhx/jxst/entity/sales/vo/SalesContractVo.java

@@ -21,9 +21,4 @@ public class SalesContractVo extends SalesContract {
      */
     private String customerName;
 
-    /**
-     * 合同金额
-     */
-    private BigDecimal contractAmount;
-
 }

+ 27 - 9
hx-jxst/src/main/java/com/fjhx/jxst/service/sales/impl/SalesContractServiceImpl.java

@@ -1,23 +1,27 @@
 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.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.SalesContractDetails;
+import com.fjhx.jxst.entity.sales.vo.SalesContractVo;
 import com.fjhx.jxst.mapper.sales.SalesContractMapper;
 import com.fjhx.jxst.service.sales.SalesContractDetailsService;
 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.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 java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -25,7 +29,7 @@ import java.util.List;
  * 销售合同 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-05-16
  */
 @Service
@@ -39,6 +43,15 @@ public class SalesContractServiceImpl extends ServiceImpl<SalesContractMapper, S
     @Override
     public Page<SalesContractVo> getPage(SalesContractSelectDto dto) {
         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);
         Page<SalesContractVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<SalesContractVo> records = page.getRecords();
@@ -59,8 +72,13 @@ public class SalesContractServiceImpl extends ServiceImpl<SalesContractMapper, S
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(SalesContractDto salesContractDto) {
-        this.save(salesContractDto);
         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) {
             salesContractDetails.setSalesContractId(salesContractDto.getId());
         }