|
@@ -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;
|
|
|
}
|