Browse Source

问题处理

yzc 1 year ago
parent
commit
6e14b858bd

+ 9 - 0
hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java

@@ -66,6 +66,15 @@ public enum CodingRuleEnum {
             getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
             getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
     )),
+
+    /**
+     * 售后管理
+     */
+    AFTER_SALES("after_sales", "售后管理", Arrays.asList(
+            getDefaultRule(RuleTypeEnum.CUSTOMIZE, "AS-"),
+            getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
+            getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
+    )),
     ;
 
     /**

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/after/po/AfterSales.java

@@ -19,6 +19,11 @@ import lombok.Setter;
 public class AfterSales extends BasePo {
 
     /**
+     * 售后编号
+     */
+    private String code;
+
+    /**
      * 合同id
      */
     private Long contractId;

+ 0 - 1
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/ContractProduct.java

@@ -143,5 +143,4 @@ public class ContractProduct extends BasePo {
      */
     private Long quotationProductId;
 
-
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java

@@ -222,4 +222,9 @@ public class ContractProductVo extends ContractProduct {
 
     List<ContractProductBomVo> contractProductBomList;
 
+    /**
+     * 归属公司id
+     */
+    private Long companyId;
+
 }

+ 7 - 1
hx-sale/src/main/java/com/fjhx/sale/service/after/impl/AfterSalesServiceImpl.java

@@ -4,6 +4,8 @@ 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.common.enums.CodingRuleEnum;
+import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.common.utils.Assert;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.sale.entity.after.dto.AfterSalesDto;
@@ -35,11 +37,13 @@ public class AfterSalesServiceImpl extends ServiceImpl<AfterSalesMapper, AfterSa
 
     private final ContractProductService contractProductService;
     private final ProductInfoService productInfoService;
+    private final CodingRuleService codingRuleService;
 
     @Autowired
-    public AfterSalesServiceImpl(ContractProductService contractProductService, ProductInfoService productInfoService) {
+    public AfterSalesServiceImpl(ContractProductService contractProductService, ProductInfoService productInfoService, CodingRuleService codingRuleService) {
         this.contractProductService = contractProductService;
         this.productInfoService = productInfoService;
+        this.codingRuleService = codingRuleService;
     }
 
     @Override
@@ -80,6 +84,8 @@ public class AfterSalesServiceImpl extends ServiceImpl<AfterSalesMapper, AfterSa
         ContractProduct contractProduct = contractProductService.getById(contractProductId);
         Assert.notEmpty(contractProduct, "查询不到订单产品信息!");
 
+        afterSalesDto.setCode(codingRuleService.createCode(CodingRuleEnum.AFTER_SALES.getKey(), null));
+
         //赋值信息
         afterSalesDto.setContractId(contractProduct.getContractId());
         afterSalesDto.setProductId(contractProduct.getProductId());

+ 48 - 15
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -12,6 +12,7 @@ import com.fjhx.common.service.contract.ContractTemplateService;
 import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.flow.service.flow.FlowExampleService;
+import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
@@ -25,6 +26,7 @@ import com.fjhx.sale.mapper.contract.ContractProductMapper;
 import com.fjhx.sale.service.claim.ClaimContractService;
 import com.fjhx.sale.service.contract.ContractProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
+import com.fjhx.tenant.utils.DeptUstil;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
@@ -106,7 +108,19 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 //        }
 //        wrapper.eq("t2", Contract::getIssue, 1);
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.keyword(dto.getKeyword(), new SqlField("t2.`code`"), new SqlField("t2.`user_name`"));
+
+            //关键字检索
+            if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
+                List<Long> pIds = productInfoService.listObject(ProductInfo::getId, q -> q
+                        .like(ProductInfo::getCustomCode, dto.getKeyword())
+                        .or().like(ProductInfo::getName, dto.getKeyword())
+                );
+                wrapper.and(q -> q
+                        .in("sjd.product_id", pIds)
+                        .or().like("t2.`code`", dto.getKeyword())
+                        .or().like("t2.`user_name`", dto.getKeyword())
+                );
+            }
         }
         //是否到账过滤
         if (ObjectUtil.isNotEmpty(dto.getIsReceived())) {
@@ -118,39 +132,58 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         }
         wrapper.groupBy("t1.id");
         Page<ContractProductVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        List<ContractProductVo> list = page.getRecords();
-        if (list.size() == 0) {
+        List<ContractProductVo> records = page.getRecords();
+        if (records.size() == 0) {
             return page;
         }
 
         // 赋值产品属性
-        productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
-            item.setProductCode(product.getCode());
-            item.setProductUnit(product.getUnit());
-            item.setProductType(product.getType());
+        productInfoService.attributeAssign(records, ContractProductVo::getProductId, (item, product) -> {
+            item.setProductCategoryId(product.getProductClassifyId());
+
+            item.setProductCode(product.getCustomCode());
             item.setProductName(product.getName());
+            item.setProductUnit(product.getUnit());
             item.setProductSpec(product.getSpec());
-            item.setProductCategoryId(product.getProductClassifyId());
+            item.setProductLength(product.getLength());
+            item.setProductWidth(product.getWidth());
+            item.setProductHeight(product.getHeight());
+            item.setProductColor(product.getColor());
         });
         //赋值已发起采购数量
 //        List<PurchaseDetailVo> purchaseDetailVoList = purchaseDetailService.getSumCountByDataResourceId(idList);
 //        Map<Long,BigDecimal> pMap = purchaseDetailVoList.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId,PurchaseDetailVo::getSumCount));
 //        list.forEach(i -> i.setStartPurchaseCount(MapUtils.isNotEmpty(pMap)?BigDecimal.ZERO:pMap.getOrDefault(i.getId(),BigDecimal.ZERO)));
         // 赋值产品分类名称
-        productClassifyService.attributeAssign(list, ContractProductVo::getProductCategoryId, (item, productClassify) -> {
+        productClassifyService.attributeAssign(records, ContractProductVo::getProductCategoryId, (item, productClassify) -> {
             item.setProductCategory(productClassify.getName());
         });
+//
+//        // 赋值公司名称
+//        corporationService.attributeAssign(records, ContractProductVo::getCorporationId, (item, corporation) -> {
+//            item.setCorporationName(corporation.getName());
+//        });
 
-        // 赋值公司名称
-        corporationService.attributeAssign(list, ContractProductVo::getCorporationId, (item, corporation) -> {
-            item.setCorporationName(corporation.getName());
-        });
+//        // 赋值公司名称
+//        corporationService.attributeAssign(list, ContractProductVo::getCorporationId, (item, corporation) -> {
+//            item.setCorporationName(corporation.getName());
+//        });
 
         // 赋值业务员名称
-        UserUtil.assignmentNickName(list, ContractProductVo::getSalesmanId, ContractProductVo::setUserName);
+        UserUtil.assignmentNickName(records, ContractProductVo::getSalesmanId, ContractProductVo::setUserName);
 
         // 赋值流程id
-        flowExampleService.setFlowId(list, ContractProductVo::getContractId, ContractProductVo::setFlowId);
+        flowExampleService.setFlowId(records, ContractProductVo::getContractId, ContractProductVo::setFlowId);
+
+
+        //获取生产公司信息
+        List<Long> companyIds = records.stream().map(ContractProductVo::getCompanyId).collect(Collectors.toList());
+        Map<Long, String> companyNameMap = DeptUstil.getDeptNameMap(companyIds);
+        for (ContractProductVo record : records) {
+            //赋值生产公司名称
+            record.setCorporationName(companyNameMap.get(record.getCompanyId()));
+        }
+
 
         return page;
     }

+ 1 - 0
hx-sale/src/main/resources/mapper/after/AfterSalesMapper.xml

@@ -3,6 +3,7 @@
 <mapper namespace="com.fjhx.sale.mapper.after.AfterSalesMapper">
     <select id="getPage" resultType="com.fjhx.sale.entity.after.vo.AfterSalesVo">
         SELECT as1.id,
+               as1.code,
                as1.contract_id,
                as1.type,
                as1.user_id,

+ 3 - 2
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -4,7 +4,7 @@
 
     <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
         SELECT t1.id,
-               t2.create_time AS contractTime,
+               t2.create_time     AS contractTime,
                t1.contract_id,
                t1.product_id,
                t2.`code`          AS contractCode,
@@ -18,7 +18,8 @@
                 ORDER BY create_time DESC
                                      LIMIT 1)               AS claimTime,
                t2.contract_template_id AS contractTemplateId,
-               t1.quantity
+               t1.quantity,
+               t2.company_id
         FROM contract_product t1
             LEFT JOIN contract t2
             LEFT JOIN claim_contract co