|
@@ -508,4 +508,46 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
|
|
|
return baseMapper.updatePurchaseId(id, newId, userId, oldPurchaseId);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取产品采购指导价
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<Long, Map<String, Object>> getProductPriceInfo(EhsdPurchaseDto dto) {
|
|
|
+ List<Long> productIds = dto.getProductIds();
|
|
|
+
|
|
|
+ //产品在该供应商近20条采购价格
|
|
|
+ List<EhsdPurchaseProductVo> supplyPurchaseProductList = baseMapper.getProductPriceInfo(IWrapper.getWrapper()
|
|
|
+ .in("epp.product_id", productIds)
|
|
|
+ .eq(EhsdPurchase::getSellCorporationId, dto.getSellCorporationId())
|
|
|
+ .orderByDesc(EhsdPurchase::getCreateTime)
|
|
|
+ .orderByDesc(EhsdPurchase::getId)
|
|
|
+ .last("LIMIT 20")
|
|
|
+ );
|
|
|
+ Map<Long, List<EhsdPurchaseProductVo>> supplyPurchaseProductMap =
|
|
|
+ supplyPurchaseProductList.stream().collect(Collectors.groupingBy(EhsdPurchaseProductVo::getProductId));
|
|
|
+ //产品近20条采购价格
|
|
|
+ List<EhsdPurchaseProductVo> purchaseProductList = baseMapper.getProductPriceInfo(IWrapper.getWrapper()
|
|
|
+ .in("epp.product_id", productIds)
|
|
|
+ .orderByDesc(EhsdPurchase::getCreateTime)
|
|
|
+ .orderByDesc(EhsdPurchase::getId)
|
|
|
+ .last("LIMIT 20")
|
|
|
+ );
|
|
|
+ Map<Long, List<EhsdPurchaseProductVo>> purchaseProductMap =
|
|
|
+ purchaseProductList.stream().collect(Collectors.groupingBy(EhsdPurchaseProductVo::getProductId));
|
|
|
+
|
|
|
+ //处理输出数据
|
|
|
+ Map<Long, Map<String, Object>> reData = new HashMap<>();
|
|
|
+ for (Long productId : productIds) {
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
+ //销售给指定客户近3条产品价格
|
|
|
+ data.put("supplyPurchaseProductList", supplyPurchaseProductMap.getOrDefault(productId, new ArrayList<>()));
|
|
|
+ //该产品近20条销售价格
|
|
|
+ data.put("purchaseProductList", purchaseProductMap.getOrDefault(productId, new ArrayList<>()));
|
|
|
+
|
|
|
+ reData.put(productId, data);
|
|
|
+ }
|
|
|
+
|
|
|
+ return reData;
|
|
|
+ }
|
|
|
+
|
|
|
}
|