Selaa lähdekoodia

[update] 响应参数优化

miajio 1 päivä sitten
vanhempi
commit
e4a38fcc83

+ 24 - 1
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/warehouse/vo/WarehouseProductDemandAnalysisVo.java

@@ -165,7 +165,12 @@ public class WarehouseProductDemandAnalysisVo implements Serializable {
     /**
      * 构建数据, 需先写入分仓需求数, 否则计算将存在问题
      */
-    public void build() {
+    private void build() {
+        procurementCycle = null != procurementCycle ? procurementCycle : 0L;
+        moq = null != moq ? moq : 0L;
+        inventoryWarningQuantity = null != inventoryWarningQuantity ? inventoryWarningQuantity : 1L;
+        warningCoefficient = null != warningCoefficient ? warningCoefficient : BigDecimal.ONE;
+
         // 单位
         BigDecimal uniting = BigDecimal.ONE;
         // 如果拆箱优先级小于等于0, 默认为1
@@ -230,4 +235,22 @@ public class WarehouseProductDemandAnalysisVo implements Serializable {
         procurementDemand = warehouseRequirements.subtract(surplusInventory);
     }
 
+    /**
+     * 刷新数据
+     */
+    public void flash() {
+        build();
+        weeklySalesVolumeUnits = scale(weeklySalesVolumeUnits, 2);
+        warningCoefficient = scale(warningCoefficient, 2);
+        subWarehouseRequirements = scale(subWarehouseRequirements, 2);
+        warehouseRequirements = scale(warehouseRequirements, 2);
+        surplusInventory = scale(surplusInventory, 2);
+        expectedConsumptionDays = scale(expectedConsumptionDays, 0);
+        procurementDemand = scale(procurementDemand, 2);
+    }
+
+    private BigDecimal scale(BigDecimal val, int newScale) {
+        return null != val && val.compareTo(BigDecimal.ZERO) != 0 ? val.setScale(newScale, RoundingMode.HALF_UP) : BigDecimal.ZERO;
+    }
+
 }

+ 2 - 2
warehouse-admin-data/src/main/resources/mapper/warehouse/WarehouseProductDemandAnalysisMapper.xml

@@ -12,7 +12,7 @@
                                          wp.moq                      as moq,
                                          wp.inventoryWarningQuantity as inventoryWarningQuantity,
                                          wp.warningCoefficient       as warningCoefficient,
-                                         wp.inventory                as surplusInventory,
+                                         ifnull(wp.inventory, 0)                as surplusInventory,
                                          wp.warehouseInfoId          as warehouseId
                                   from yr_warehouse_info as wi
                                            left join yr_warehouse_product as wp on wi.id = wp.warehouseInfoId
@@ -56,7 +56,7 @@
         wp.warningCoefficient                                         as warningCoefficient,
         round(wp.inventoryWarningQuantity * wp.warningCoefficient, 0) as warningQuantity,
         ifnull(dg.machineInventory, 0)                                as machineInventory,
-        round(wp.surplusInventory / wp.unboxingPriority, 2)           as surplusInventory,
+        ifnull(round(wp.surplusInventory / ifnull(wp.unboxingPriority, 1), 2), 0)           as surplusInventory,
         ifnull(dg.upShelfNum, 0)                                      as upShelfNum,
         CASE
         WHEN round(wp.surplusInventory / nullif(wp.unboxingPriority, 0), 2) >=

+ 1 - 1
warehouse-admin-server/src/main/java/com/yr/warehouse/admin/service/warehouse/service/impl/WarehouseProductDemandAnalysisServiceImpl.java

@@ -69,7 +69,7 @@ public class WarehouseProductDemandAnalysisServiceImpl implements WarehouseProdu
             } else {
                 warehouseProductDemandAnalysisVo.setSubWarehouseRequirements(BigDecimal.ZERO);
             }
-            warehouseProductDemandAnalysisVo.build();
+            warehouseProductDemandAnalysisVo.flash();
         });
         page.setRecords(warehouseProductDemandAnalysisVos);
         return page;