Explorar el Código

到货明细bug修复

24282 hace 2 años
padre
commit
fef1a2e627

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java

@@ -37,6 +37,11 @@ public class ArrivalDetailVo extends ArrivalDetail {
     private Integer productType;
 
     /**
+     * 所属分类id
+     */
+    private Long productCategoryId;
+
+    /**
      * 所属分类
      */
     private String productCategory;

+ 33 - 35
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java

@@ -1,10 +1,14 @@
 package com.fjhx.purchase.service.arrival.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
+import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
 import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
@@ -13,17 +17,12 @@ import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.arrival.ArrivalDetailMapper;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.purchase.service.quality.QualityDetailService;
-import com.fjhx.supply.entity.supplier.po.SupplierInfo;
 import com.fjhx.supply.service.supplier.SupplierInfoService;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import cn.hutool.core.bean.BeanUtil;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -51,48 +50,47 @@ public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, A
     private ProductInfoService productInfoService;
 
     @Autowired
+    private ProductClassifyService productClassifyService;
+
+    @Autowired
     private QualityDetailService qualityDetailService;
+
     /**
      * 分页
+     *
      * @param dto
      * @return
      */
     @Override
     public Page<ArrivalDetailVo> getPage(ArrivalDetailSelectDto dto) {
         IWrapper<ArrivalDetail> wrapper = getWrapper();
-        if(StringUtils.isNotEmpty(dto.getStatus())){
-            wrapper.eq("t1", PurchaseDetail::getStatus,dto.getStatus());
-        }
+        wrapper.eq("t1", PurchaseDetail::getStatus, dto.getStatus());
         wrapper.orderByDesc("t1", ArrivalDetail::getCreateTime);
         wrapper.groupBy("t1.id");
         Page<ArrivalDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ArrivalDetailVo> list = page.getRecords();
-        if(CollectionUtils.isNotEmpty(list)){
-            //查询供应商
-            List<Long> supplyIds = list.stream().map(ArrivalDetailVo::getSupplyId).collect(Collectors.toList());
-            List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
-            Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
-            if(MapUtils.isNotEmpty(supplyMap)){
-                for(ArrivalDetailVo p:list){
-                    List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
-                    p.setSupplyName(supplys==null?null:supplys.get(0).getName());
-                }
-            }
-            //查询产品
-            List<Long> productIds = list.stream().map(ArrivalDetailVo::getBussinessId).collect(Collectors.toList());
-            List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
-            Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
-            if(MapUtils.isNotEmpty(productMap)) {
-                for(ArrivalDetailVo s:list){
-                    ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
-                    s.setProductCategory(p.getClassifyName());
-                    s.setProductCode(p.getCode());
-                    s.setProductUnit(p.getUnit());
-                    s.setProductType(p.getType());
-                    s.setProductName(p.getName());
-                    s.setProductSpec(p.getSpec());
-                }
-            }
+        if (CollectionUtils.isNotEmpty(list)) {
+
+            // 赋值供应商名称
+            supplierInfoService.attributeAssign(list, ArrivalDetailVo::getSupplyId, (item, supplier) -> {
+                item.setSupplyName(supplier.getName());
+            });
+
+            // 赋值产品属性
+            productInfoService.attributeAssign(list, ArrivalDetail::getBussinessId, (item, product) -> {
+                item.setProductCode(product.getCode());
+                item.setProductUnit(product.getUnit());
+                item.setProductType(product.getType());
+                item.setProductName(product.getName());
+                item.setProductSpec(product.getSpec());
+                item.setProductCategoryId(product.getProductClassifyId());
+            });
+
+            // 赋值产品分类名称
+            productClassifyService.attributeAssign(list, ArrivalDetailVo::getProductCategoryId, (item, productClassify) -> {
+                item.setProductCategory(productClassify.getName());
+            });
+
         }
         return page;
     }