Selaa lähdekoodia

添加近30天采购最高价和最低价

yzc 1 vuosi sitten
vanhempi
commit
5b9e0ed4b2

+ 16 - 0
hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/EhsdPurchaseServiceImpl.java

@@ -560,6 +560,17 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
         Map<Long, List<EhsdPurchaseProductVo>> purchaseProductMap =
                 purchaseProductList.stream().collect(Collectors.groupingBy(EhsdPurchaseProductVo::getProductId));
 
+        //产品近30天采购价格
+        List<EhsdPurchaseProductVo> purchaseProductList1 = baseMapper.getProductPriceInfo(IWrapper.getWrapper()
+                .in("epp.product_id", productIds)
+                .apply("epp.create_time >= CURDATE() - INTERVAL 30 DAY")
+                .groupBy("DATE_FORMAT( epp.create_time, '%Y-%m-%d' ) ")
+                .orderByDesc(EhsdPurchase::getCreateTime)
+                .orderByDesc(EhsdPurchase::getId)
+        );
+        Map<Long, List<EhsdPurchaseProductVo>> purchaseProductMap1 =
+                purchaseProductList1.stream().collect(Collectors.groupingBy(EhsdPurchaseProductVo::getProductId));
+
         //按价格升序 获取前10供应商
         List<SupplierPriceVo> topPriceList = supplierPriceService.getTopPriceList(productIds, 10);
         Map<Long, List<SupplierPriceVo>> topPriceMap = topPriceList.stream().collect(Collectors.groupingBy(SupplierPrice::getProductInfoId));
@@ -575,6 +586,11 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
             //前10供应商价格
             data.put("topPriceList", topPriceMap.getOrDefault(productId, new ArrayList<>()));
 
+            //进n天最高/最低采购价
+            List<EhsdPurchaseProductVo> orDefault = purchaseProductMap1.getOrDefault(productId, new ArrayList<>());
+            data.put("maxPurchasePrice", orDefault.stream().map(EhsdPurchaseProductVo::getPrice).max(BigDecimal::compareTo).orElse(null));
+            data.put("minPurchasePrice", orDefault.stream().map(EhsdPurchaseProductVo::getPrice).min(BigDecimal::compareTo).orElse(null));
+
             reData.put(productId, data);
         }