瀏覽代碼

在途物料新增字段

fgd 1 年之前
父節點
當前提交
cee1bcf86b

+ 20 - 5
sd-business/src/main/java/com/sd/business/entity/purchase/vo/PurchaseInTransitBomVo.java

@@ -84,21 +84,36 @@ public class PurchaseInTransitBomVo {
     private Date deliveryDate;
 
     /**
-     * 周转率
+     * 30天销售量
      */
     @ColumnWidth(20)
-    @ExcelProperty(value = "周转率", index = 8)
-    private BigDecimal turnoverRate;
+    @ExcelProperty(value = "30天销售量", index = 8)
+    private BigDecimal salesQuantityThirtyDays;
+
+    /**
+     * 60天销售量
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "60天销售量", index = 9)
+    private BigDecimal salesQuantitySixtyDays;
 
     /**
      * 90天销售量
      */
-    @ExcelProperty(value = "90天销售量", index = 9)
+    @ColumnWidth(20)
+    @ExcelProperty(value = "90天销售量", index = 10)
     private BigDecimal salesQuantity;
 
     /**
+     * 周转率
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "周转率", index = 11)
+    private BigDecimal turnoverRate;
+
+    /**
      * 库存数量
      */
-    @ExcelProperty(value = "库存数量", index = 10)
+    @ExcelProperty(value = "库存数量", index = 12)
     private BigDecimal inventoryQuantity;
 }

+ 23 - 0
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseBomServiceImpl.java

@@ -18,6 +18,7 @@ import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.bom.vo.BomSpecVo;
 import com.sd.business.entity.department.constant.DepartmentConstant;
 import com.sd.business.entity.inventory.po.Inventory;
+import com.sd.business.entity.order.po.OrderSalesShipmentStatistics;
 import com.sd.business.entity.purchase.dto.PurchaseBoardSelectDto;
 import com.sd.business.entity.purchase.dto.PurchaseBomDetailsSelectDto;
 import com.sd.business.entity.purchase.dto.PurchaseBomSelectDto;
@@ -151,7 +152,29 @@ public class PurchaseBomServiceImpl extends ServiceImpl<PurchaseBomMapper, Purch
         List<Long> bomSpecIds = records.stream().map(PurchaseInTransitBomVo::getBomSpecId).collect(Collectors.toList());
         Map<Long, Inventory> inventoryMap = inventoryService.mapKEntity(Inventory::getBomSpecId, q -> q.in(Inventory::getBomSpecId, bomSpecIds).eq(Inventory::getWarehouseId, WarehouseConstant.SEMI_FINISHED_PRODUCT)
                 .eq(Inventory::getDepartmentId, DepartmentConstant.SD_SPORTS));
+
+        // 获取30天,60天销售数据
+        Date date = new Date();
+        String sixtyDaysDate = DateUtil.format(DateUtil.offsetDay(date, -61), "yyyy-MM-dd");
+        String thirtyDaysDate = DateUtil.format(DateUtil.offsetDay(date, -31), "yyyy-MM-dd");
+        String endDate = DateUtil.format(DateUtil.offsetDay(date, -1), "yyyy-MM-dd");
+
+        Map<Long, List<OrderSalesShipmentStatistics>> sixtyDaysMap = orderSalesShipmentStatisticsService.mapKGroup(OrderSalesShipmentStatistics::getBomSpecId,
+                q -> q.between(OrderSalesShipmentStatistics::getTotalDate, sixtyDaysDate, endDate)
+                        .in(OrderSalesShipmentStatistics::getBomSpecId, bomSpecIds));
+        Map<Long, List<OrderSalesShipmentStatistics>> thirtyDaysMap = orderSalesShipmentStatisticsService.mapKGroup(OrderSalesShipmentStatistics::getBomSpecId,
+                q -> q.between(OrderSalesShipmentStatistics::getTotalDate, thirtyDaysDate, endDate)
+                        .in(OrderSalesShipmentStatistics::getBomSpecId, bomSpecIds));
+
         for (PurchaseInTransitBomVo record : records) {
+            Long bomSpecId = record.getBomSpecId();
+            List<OrderSalesShipmentStatistics> sixtyDaysList = sixtyDaysMap.getOrDefault(bomSpecId, Collections.emptyList());
+            List<OrderSalesShipmentStatistics> thirtyDaysList = thirtyDaysMap.getOrDefault(bomSpecId, Collections.emptyList());
+            BigDecimal salesQuantitySixtyDays = sixtyDaysList.stream().map(OrderSalesShipmentStatistics::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal salesQuantityThirtyDays = thirtyDaysList.stream().map(OrderSalesShipmentStatistics::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
+            record.setSalesQuantitySixtyDays(salesQuantitySixtyDays);
+            record.setSalesQuantityThirtyDays(salesQuantityThirtyDays);
+
             Inventory inventory = inventoryMap.get(record.getBomSpecId());
             if (inventory == null) {
                 record.setInventoryQuantity(BigDecimal.ZERO);