Kaynağa Gözat

采购详情添加字段

yzc 2 yıl önce
ebeveyn
işleme
f07f89a0a9

+ 7 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/apply/ApplyPurchaseVo.java

@@ -27,4 +27,11 @@ public class ApplyPurchaseVo extends ApplyPurchase {
     /**到货总数量*/
     BigDecimal arrivalTotalQuantity;
 
+    /**质检数量*/
+    BigDecimal qualityQuantity;
+    /**质检不合格数量*/
+    BigDecimal disqualificationQuantity;
+    /**退货数量*/
+    BigDecimal backQuantity;
+
 }

+ 41 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseServiceImpl.java

@@ -7,14 +7,17 @@ import com.fjhx.base.BaseEntity;
 import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.entity.purchase.Purchase;
+import com.fjhx.entity.quality.QualityDetails;
+import com.fjhx.entity.quality.QualityInfo;
 import com.fjhx.entity.supplier.Supplier;
 import com.fjhx.enums.apply.ApplyPurchaseStatusEnum;
-import com.fjhx.enums.purchase.PurchaseStatusEnum;
 import com.fjhx.mapper.purchase.PurchaseMapper;
 import com.fjhx.params.apply.ApplyPurchaseVo;
 import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.logistics.LogisticsInfoService;
 import com.fjhx.service.purchase.PurchaseService;
+import com.fjhx.service.quality.QualityDetailsService;
+import com.fjhx.service.quality.QualityInfoService;
 import com.fjhx.service.supplier.SupplierService;
 import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
@@ -24,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -48,6 +52,10 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
 
     @Autowired
     private SupplierService supplierService;
+    @Autowired
+    QualityInfoService qualityInfoService;
+    @Autowired
+    QualityDetailsService qualityDetailsService;
 
     /**
      * 待采购列表
@@ -132,6 +140,38 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
 
         //获取物品详情
         List<ApplyPurchaseVo> applyPurchases = applyPurchaseService.getByPurchaseId(id);
+
+        //获取质检信息
+        List<LogisticsInfo> logisticsInfoList = logisticsInfoService.list(q -> q.eq(LogisticsInfo::getBusinessId, id));
+        if (ObjectUtil.isNotEmpty(logisticsInfoList)) {
+            List<Long> logids = logisticsInfoList.stream().map(LogisticsInfo::getId).collect(Collectors.toList());
+            List<QualityInfo> qualityInfoList = qualityInfoService.list(q -> q.in(QualityInfo::getLogisticsInfoId, logids));
+            if (ObjectUtil.isNotEmpty(qualityInfoList)) {
+                List<Long> qinfoids = qualityInfoList.stream().map(QualityInfo::getId).collect(Collectors.toList());
+                List<QualityDetails> qualityDetailsList = qualityDetailsService.list(q -> q.in(QualityDetails::getQualityInfoId, qinfoids));
+                if (ObjectUtil.isNotEmpty(qualityDetailsList)) {
+                    Map<Long, List<QualityDetails>> qualityDetailsMap = qualityDetailsList.stream().collect(Collectors.groupingBy(QualityDetails::getProductInfoId));
+                    //赋值质检信息
+                    for (ApplyPurchaseVo applyPurchaseVo : applyPurchases) {
+                        applyPurchaseVo.setQualityQuantity(BigDecimal.ZERO);
+                        applyPurchaseVo.setDisqualificationQuantity(BigDecimal.ZERO);
+                        applyPurchaseVo.setBackQuantity(BigDecimal.ZERO);
+                        Long goodsId = applyPurchaseVo.getGoodsId();
+                        List<QualityDetails> qualityDetailsList1 = qualityDetailsMap.get(goodsId);
+                        if (ObjectUtil.isNotEmpty(qualityDetailsList1)) {
+                            BigDecimal qualifiedQuantity = qualityDetailsList1.stream()
+                                    .map(QualityDetails::getQualifiedQuantity)
+                                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+                            BigDecimal disqualificationQuantity = qualityDetailsList1.stream()
+                                    .map(QualityDetails::getDisqualificationQuantity)
+                                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+                            applyPurchaseVo.setQualityQuantity(qualifiedQuantity.add(disqualificationQuantity));
+                            applyPurchaseVo.setDisqualificationQuantity(disqualificationQuantity);
+                        }
+                    }
+                }
+            }
+        }
         purchase.setGoodsList(applyPurchases);
         return purchase;
     }