소스 검색

Merge branch 'dev' into test

yzc 2 년 전
부모
커밋
96336a1679

+ 3 - 2
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRequestFundsServiceImpl.java

@@ -31,7 +31,6 @@ import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -74,7 +73,9 @@ public class AccountRequestFundsServiceImpl extends ServiceImpl<AccountRequestFu
     public Page<AccountRequestFundsVo> getPage(AccountRequestFundsSelectDto dto) {
         QueryWrapper<Object> wrapper = Wrappers.query();
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getType()), "arf.type", dto.getType());
-        wrapper.in(ObjectUtil.isNotEmpty(dto.getStatus()), "arf.status", Arrays.asList(dto.getStatus().split(",")));
+        if (ObjectUtil.isNotEmpty(dto.getStatus())) {
+            wrapper.in("arf.status", dto.getStatus().split(","));
+        }
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getPaymentStatus()), "ap.status", dto.getPaymentStatus());
         wrapper.like(ObjectUtil.isNotEmpty(dto.getKeyword()), "arf.payment_remarks", dto.getKeyword());
         wrapper.eq(ObjectUtil.isNotEmpty(dto.getWriteOffStatus()), "arf.write_off_status", dto.getWriteOffStatus());

+ 7 - 2
hx-customer/src/main/java/com/fjhx/customer/entity/customer/vo/CustomerFollowRecordsVo.java

@@ -10,7 +10,7 @@ import java.util.List;
 /**
  * 客户跟进记录列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 @Getter
@@ -19,5 +19,10 @@ public class CustomerFollowRecordsVo extends CustomerFollowRecords {
     /**
      * 文件列表
      */
-    List<ObsFile> fileList;
+    private List<ObsFile> fileList;
+
+    /**
+     * 客户名称
+     */
+    private String customerName;
 }

+ 9 - 2
hx-customer/src/main/java/com/fjhx/customer/service/customer/impl/CustomerFollowRecordsServiceImpl.java

@@ -13,6 +13,7 @@ import com.fjhx.customer.entity.customer.po.CustomerFollowRecords;
 import com.fjhx.customer.entity.customer.vo.CustomerFollowRecordsVo;
 import com.fjhx.customer.mapper.customer.CustomerFollowRecordsMapper;
 import com.fjhx.customer.service.customer.CustomerFollowRecordsService;
+import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.file.entity.FileInfo;
 import com.fjhx.file.entity.ObsFile;
 import com.fjhx.file.service.FileInfoService;
@@ -39,12 +40,14 @@ import java.util.stream.Collectors;
 public class CustomerFollowRecordsServiceImpl extends ServiceImpl<CustomerFollowRecordsMapper, CustomerFollowRecords> implements CustomerFollowRecordsService {
 
     @Autowired
-    FileInfoService fileInfoService;
+    private FileInfoService fileInfoService;
+    @Autowired
+    private CustomerService customerService;
 
     @Override
     public Page<CustomerFollowRecordsVo> getPage(CustomerFollowRecordsSelectDto dto) {
         IWrapper<CustomerFollowRecords> wrapper = getWrapper();
-        wrapper.eq("cfr",CustomerFollowRecords::getCustomerId,dto.getCustomerId());//根据客户id过滤
+        wrapper.eq("cfr", CustomerFollowRecords::getCustomerId, dto.getCustomerId());//根据客户id过滤
         wrapper.orderByDesc("cfr", CustomerFollowRecords::getDate);
         Page<CustomerFollowRecordsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<CustomerFollowRecordsVo> records = page.getRecords();
@@ -58,6 +61,10 @@ public class CustomerFollowRecordsServiceImpl extends ServiceImpl<CustomerFollow
                 record.setFileList(obsFiles);
             }
         }
+        //赋值客户名称
+        customerService.attributeAssign(records, CustomerFollowRecordsVo::getCustomerId, (item, customer) -> {
+            item.setCustomerName(customer.getName());
+        });
 
         return page;
     }

+ 10 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractProductSelectDto.java

@@ -30,4 +30,14 @@ public class ContractProductSelectDto extends BaseSelectDto {
      * 结论
      */
     private String summary;
+
+    /**
+     * 所属公司id过滤
+     */
+    private Long corporationId;
+
+    /**
+     * 是否到账 1是 0否过滤
+     */
+    private Integer isReceived;
 }

+ 55 - 28
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -1,9 +1,11 @@
 package com.fjhx.sale.service.contract.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.entity.contract.po.ContractTemplate;
 import com.fjhx.common.enums.FlowStatusEnum;
 import com.fjhx.common.service.contract.ContractTemplateService;
 import com.fjhx.common.service.corporation.CorporationService;
@@ -19,6 +21,7 @@ import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.mapper.contract.ContractProductMapper;
+import com.fjhx.sale.service.claim.ClaimContractService;
 import com.fjhx.sale.service.contract.ContractProductService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
@@ -67,6 +70,8 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     @Autowired
     private FlowExampleService flowExampleService;
+    @Autowired
+    private ClaimContractService claimContractService;
 
     /**
      * 分页
@@ -83,6 +88,24 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             wrapper.keyword(dto.getKeyword(), new SqlField("t2.`code`"), new SqlField("t2.`user_name`"));
         }
+        //所属公司id过滤
+        if (ObjectUtil.isNotEmpty(dto.getCorporationId())) {
+            List<Long> ctIds = contractTemplateService.listObject(ContractTemplate::getId,
+                    q -> q.eq(ContractTemplate::getCorporationId, dto.getCorporationId()));
+            if (ObjectUtil.isEmpty(ctIds)) {
+                return new Page<>();
+            }
+            wrapper.in("t2.contract_template_id", ctIds);
+        }
+        //是否到账过滤
+        if (ObjectUtil.isNotEmpty(dto.getIsReceived())) {
+            if (1 == dto.getIsReceived()) {
+                wrapper.isNotNull("co.id");
+            } else {
+                wrapper.isNull("co.id");
+            }
+        }
+        wrapper.groupBy("t1.id");
         Page<ContractProductVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ContractProductVo> list = page.getRecords();
 
@@ -126,11 +149,12 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     /**
      * 根据合同ID和客户ID查询未包装的产品
+     *
      * @param customerId
      * @return
      */
     @Override
-    public List<ContractProductVo> getNoPackContractProductById(String customerId,String contractIds) {
+    public List<ContractProductVo> getNoPackContractProductById(String customerId, String contractIds) {
         List<ContractProductVo> list = baseMapper.getNoPackContractProductById(customerId, Arrays.asList(contractIds.split(",")));
         // 赋值产品属性
         productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
@@ -150,6 +174,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     /**
      * 交接单
+     *
      * @param dto
      * @return
      */
@@ -157,15 +182,15 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     public Page<ContractProductVo> getEHSDPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1.ct");
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.keyword(dto.getKeyword(), new SqlField("t1.`contractCode`"), new SqlField("t1.`userName`"));
         }
-        if(StringUtils.isNotEmpty(dto.getIds())){
-            wrapper.in("t1.id",Arrays.asList(dto.getIds().split(",")));
+        if (StringUtils.isNotEmpty(dto.getIds())) {
+            wrapper.in("t1.id", Arrays.asList(dto.getIds().split(",")));
         }
         Page<ContractProductVo> page = this.baseMapper.getEHSDPage(dto.getPage(), wrapper);
         List<ContractProductVo> list = page.getRecords();
-        if(CollectionUtils.isNotEmpty(list)){
+        if (CollectionUtils.isNotEmpty(list)) {
             // 赋值产品属性
             productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
                 item.setProductCode(product.getCode());
@@ -185,6 +210,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     /**
      * 待质检分页
+     *
      * @param dto
      * @return
      */
@@ -192,17 +218,17 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     public Page<ContractProductVo> getEHSDQualityPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1.ct");
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.keyword(dto.getKeyword(), new SqlField("t1.`contractCode`"), new SqlField("t1.`userName`"));
         }
-        if(StringUtils.isNotEmpty(dto.getOrderType())){
-            wrapper.eq("t1.orderType",dto.getOrderType());
+        if (StringUtils.isNotEmpty(dto.getOrderType())) {
+            wrapper.eq("t1.orderType", dto.getOrderType());
         }
-        if(StringUtils.isNotEmpty(dto.getQualityStatus())){
-            wrapper.eq("t1.qualityStatus",dto.getQualityStatus());
+        if (StringUtils.isNotEmpty(dto.getQualityStatus())) {
+            wrapper.eq("t1.qualityStatus", dto.getQualityStatus());
         }
-        if(StringUtils.isNotEmpty(dto.getSummary())){
-            wrapper.eq("t1.summary",dto.getSummary());
+        if (StringUtils.isNotEmpty(dto.getSummary())) {
+            wrapper.eq("t1.summary", dto.getSummary());
         }
         Page<ContractProductVo> page = this.baseMapper.getEHSDPage(dto.getPage(), wrapper);
         List<ContractProductVo> list = page.getRecords();
@@ -210,7 +236,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 //        List<Long> contractProductIds = list.stream().map(ContractProductVo::getId).collect(Collectors.toList());
 //        List<EhsdQuality> qualityList = ehsdQualityService.list(Wrappers.<EhsdQuality>query().lambda().in(EhsdQuality::getBusinessId,contractProductIds));
 //        Map<Long,Integer> qualityMap = qualityList.stream().distinct().collect(Collectors.toMap(EhsdQuality::getBusinessId,EhsdQuality::getStatus));
-        if(CollectionUtils.isNotEmpty(list)){
+        if (CollectionUtils.isNotEmpty(list)) {
             // 赋值产品属性
             productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
                 item.setProductCode(product.getCode());
@@ -247,17 +273,17 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     public Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1.create_time");
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            wrapper.keyword(dto.getKeyword(), new SqlField("t1.`contractCode`"), new SqlField("t1.`userName`"));
         }
-        wrapper.ge("t2.`status`",30);
-        wrapper.lt("t2.`status`",88);
-        wrapper.gt("t1.expend_quantity",0);
+        wrapper.ge("t2.`status`", 30);
+        wrapper.lt("t2.`status`", 88);
+        wrapper.gt("t1.expend_quantity", 0);
         //查询合同交接单的数据(只查询有添加交接单的数据)
         Page<ContractProductVo> page = this.baseMapper.contractHandoverPage(dto.getPage(), wrapper);
 
         List<ContractProductVo> list = page.getRecords();
-        if(CollectionUtils.isNotEmpty(list)){
+        if (CollectionUtils.isNotEmpty(list)) {
             // 赋值产品属性
             productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
                 item.setProductCode(product.getCode());
@@ -277,23 +303,24 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     /**
      * 根据合同产品IDS查询合同产品
+     *
      * @param ids
      * @return
      */
     @Override
     public List<ContractProductVo> getListDetail(List<Long> ids) {
-        if(CollectionUtils.isEmpty(ids)){
+        if (CollectionUtils.isEmpty(ids)) {
             throw new ServiceException("参数异常");
         }
         IWrapper<ContractProduct> wrapper = getWrapper();
-        wrapper.in("t1",ContractProduct::getId,ids);
+        wrapper.in("t1", ContractProduct::getId, ids);
         List<ContractProductVo> list = baseMapper.getListByIds(wrapper);
-        if(CollectionUtils.isNotEmpty(list)){
+        if (CollectionUtils.isNotEmpty(list)) {
             List<PurchaseDetailVo> vo = purchaseDetailService.getSumCountInDataResourceIds(ids);
-            Map<Long,BigDecimal> voMap = vo.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId,PurchaseDetailVo::getSumCount));
-            for(ContractProductVo c:list){
-                if(MapUtils.isNotEmpty(voMap)){
-                    c.setSumPurchaseCount(voMap.getOrDefault(c.getId(),BigDecimal.ZERO));
+            Map<Long, BigDecimal> voMap = vo.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId, PurchaseDetailVo::getSumCount));
+            for (ContractProductVo c : list) {
+                if (MapUtils.isNotEmpty(voMap)) {
+                    c.setSumPurchaseCount(voMap.getOrDefault(c.getId(), BigDecimal.ZERO));
                 }
             }
 

+ 5 - 5
hx-sale/src/main/java/com/fjhx/sale/service/pack/impl/PackDetailServiceImpl.java

@@ -19,7 +19,6 @@ import com.fjhx.sale.service.pack.PackShipmentService;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.common.utils.wrapper.SqlField;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,13 +52,14 @@ public class PackDetailServiceImpl extends ServiceImpl<PackDetailMapper, PackDet
     public Page<PackDetailVo> getPage(PackDetailSelectDto dto) {
         IWrapper<PackDetail> wrapper = getWrapper();
         if (ObjectUtil.isNotEmpty(dto.getShipmentStatus())) {
-            wrapper.eq("t1", PackDetailVo::getShipmentStatus, dto.getShipmentStatus());
+            wrapper.eq("pd", PackDetailVo::getShipmentStatus, dto.getShipmentStatus());
         }
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.keyword(dto.getKeyword(), new SqlField("t3.`code`"), new SqlField("t2.`product_name`"));
+//            wrapper.keyword(dto.getKeyword(), new SqlField("t3.`code`"), new SqlField("t2.`product_name`"));
+            wrapper.like("pd.codeAPName", dto.getKeyword());
         }
-        wrapper.groupBy("t1.pack_id");
-        wrapper.orderByDesc("t1.create_time");
+//        wrapper.groupBy("t1.pack_id");
+//        wrapper.orderByDesc("t1.create_time");
         Page<PackDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
     }

+ 12 - 9
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -20,7 +20,9 @@
                t1.quantity
         FROM contract_product t1
             LEFT JOIN contract t2
-        ON t1.contract_id = t2.id
+            LEFT JOIN claim_contract co
+        on co.contract_id = t2.id
+            ON t1.contract_id = t2.id
             ${ew.customSqlSegment}
     </select>
 
@@ -154,18 +156,19 @@
 
     <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
         SELECT
-            *
+        *
         FROM
         (
         SELECT
-            t2.*,
-            t1.id AS contractId,
-            t1.`code` AS contractCode,
-            t2.quantity AS cpQuantity,
-            t2.id AS contractProductId,
-            ( SELECT IFNULL( SUM( quantity ), 0 ) FROM pack_detail_product WHERE contract_product_id = t2.id ) AS sumPackQuantity
+        t2.*,
+        t1.id AS contractId,
+        t1.`code` AS contractCode,
+        t2.quantity AS cpQuantity,
+        t2.id AS contractProductId,
+        ( SELECT IFNULL( SUM( pd.pack_quantity * pdd.quantity ), 0 ) FROM pack_detail_product pdd LEFT JOIN pack_detail
+        pd ON pdd.pack_detail_id = pd.id WHERE pdd.contract_product_id = t2.id ) AS sumPackQuantity
         FROM
-            contract t1
+        contract t1
         LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
         <where>
             <if test="customerId neq null and customerId neq '' ">

+ 27 - 17
hx-sale/src/main/resources/mapper/pack/PackDetailMapper.xml

@@ -2,23 +2,33 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.sale.mapper.pack.PackDetailMapper">
     <select id="getPage" resultType="com.fjhx.sale.entity.pack.vo.PackDetailVo">
-        SELECT (SELECT GROUP_CONCAT(CONCAT(t3.`code`, "_", t2.product_name)) AS codeAPName
-                FROM pack_detail_product t2
-                         LEFT JOIN contract t3 ON t2.contract_id = t3.id
-                WHERE t2.pack_detail_id IN (GROUP_CONCAT(t1.id))) AS codeAPName,
-               sum(t1.pack_quantity)                                 packQuantity,
-               sum(t1.net_weight)                                    netWeight,
-               sum(t1.rough_weight)                                  roughWeight,
-               t1.box_long,
-               t1.box_wide,
-               t1.box_high,
-               sum(t1.bom_volume)                                    bomVolume,
-               t1.shipment_status,
-               t1.shipment_time,
-               t1.contract_ids
-        FROM pack_detail t1
-                 LEFT JOIN pack_detail_product t2 ON t2.pack_detail_id = t1.id
-                 LEFT JOIN contract t3 ON t2.contract_id = t3.id
+        select *
+        from (SELECT t1.id,
+                     t1.pack_id,
+                     t1.waybill_code,
+                     t1.express_id,
+                     t1.remark,
+                     t1.update_time,
+                     t1.update_user,
+                     t1.create_user,
+                     t1.create_time,
+                     (SELECT GROUP_CONCAT(CONCAT(t3.`code`, "_", t2.product_name)) AS codeAPName
+                      FROM pack_detail_product t2
+                               LEFT JOIN contract t3 ON t2.contract_id = t3.id
+                      WHERE t2.pack_detail_id IN (GROUP_CONCAT(t1.id))) AS codeAPName,
+                     sum(t1.pack_quantity)                                 packQuantity,
+                     sum(t1.net_weight)                                    netWeight,
+                     sum(t1.rough_weight)                                  roughWeight,
+                     t1.box_long,
+                     t1.box_wide,
+                     t1.box_high,
+                     sum(t1.bom_volume)                                    bomVolume,
+                     t1.shipment_status,
+                     t1.shipment_time,
+                     t1.contract_ids
+              FROM pack_detail t1
+              GROUP BY t1.pack_id
+              ORDER BY t1.create_time desc) pd
             ${ew.customSqlSegment}
     </select>