24282 2 年 前
コミット
80e6c62865

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockBackController.java

@@ -141,7 +141,7 @@ public class StockBackController {
      */
     @PostMapping("/techStatistics")
     public R techStatistics(@RequestBody Map<String, String> condition) {
-        Map<String, List<Map<String, Object>>> result = stockBackService.techStatistics(condition);
+        Map<String, Object> result = stockBackService.techStatistics(condition);
         return R.success(result);
     }
 

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackMapper.xml

@@ -199,7 +199,7 @@
                 uu.JobNo = #{jobNo}
             </when>
             <otherwise>
-                uu.departmentID in ('A007', 'A008', 'A012')
+                uu.departmentID in ('A007', 'A008', 'A012','A017')
             </otherwise>
         </choose>
         <if test="tech neq null and tech neq ''">

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/stock/service/StockBackService.java

@@ -44,7 +44,7 @@ public interface StockBackService extends BaseService<StockBack> {
 
     Map<String, List<Map<String, Object>>> userStatistics(Map<String, String> condition);
 
-    Map<String, List<Map<String, Object>>> techStatistics(Map<String, String> condition);
+    Map<String, Object> techStatistics(Map<String, String> condition);
 
     StatisticsResult statisticsDetails(Map<String, String> condition);
 

+ 32 - 5
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackServiceImpl.java

@@ -302,7 +302,7 @@ public class StockBackServiceImpl extends ServiceImpl<StockBackMapper, StockBack
     }
 
     @Override
-    public Map<String, List<Map<String, Object>>> techStatistics(Map<String, String> condition) {
+    public Map<String, Object> techStatistics(Map<String, String> condition) {
         String beginTimeStr = condition.get("beginTime");
         Assert.notEmpty(beginTimeStr, "开始时间不能为空");
         Date beginTime = DateUtil.beginOfDay(DateUtil.parse(beginTimeStr));
@@ -332,32 +332,49 @@ public class StockBackServiceImpl extends ServiceImpl<StockBackMapper, StockBack
                 Collectors.groupingBy(StockBackPlanDetails::getJobNo)
         ));
 
-        Map<String, List<Map<String, Object>>> result = new HashMap<>();
+        Map<String, Object> result = new LinkedHashMap<>();
 
         collect.forEach((k, v) -> {
             List<Map<String, Object>> list = new ArrayList<>();
 
+            HashMap<String, BigDecimal> totalMap = new HashMap<>();
+            totalMap.put("totalScheduleArea", BigDecimal.ZERO);
+            totalMap.put("totalPickingArea", BigDecimal.ZERO);
+            totalMap.put("totalBackArea", BigDecimal.ZERO);
+            totalMap.put("totalCorrectArea", BigDecimal.ZERO);
+            totalMap.put("totalHeadTailCorrectArea", BigDecimal.ZERO);
+
             v.forEach((k2, v2) -> {
                 Map<String, Object> map = jobNoMap.get(k2);
                 if (map != null) {
-                    Map<String,Object> itemMap = new HashMap<>(map);
+                    Map<String, Object> itemMap = new HashMap<>(map);
 
                     if (v2 != null && v2.size() > 0) {
                         BigDecimal scheduleArea = BigDecimal.ZERO;
                         BigDecimal pickingArea = BigDecimal.ZERO;
                         BigDecimal backArea = BigDecimal.ZERO;
                         BigDecimal correctArea = BigDecimal.ZERO;
+                        BigDecimal headTailCorrectArea = BigDecimal.ZERO;
 
                         for (StockBackPlanDetails item : v2) {
                             scheduleArea = scheduleArea.add(item.getQuantity());
                             pickingArea = pickingArea.add(item.getPickingArea()).add(ObjectUtil.defaultIfNull(item.getTransferInArea(), BigDecimal.ZERO));
                             backArea = backArea.add(item.getBackArea()).add(ObjectUtil.defaultIfNull(item.getTransferOutArea(), BigDecimal.ZERO));
                             correctArea = correctArea.add(item.getCorrectArea());
+                            headTailCorrectArea = headTailCorrectArea.add(item.getHeadTailCorrectArea());
                         }
 
+                        totalMap.put("totalScheduleArea", totalMap.get("totalScheduleArea").add(scheduleArea));
+                        totalMap.put("totalPickingArea", totalMap.get("totalPickingArea").add(pickingArea));
+                        totalMap.put("totalBackArea", totalMap.get("totalBackArea").add(backArea));
+                        totalMap.put("totalCorrectArea", totalMap.get("totalCorrectArea").add(correctArea));
+                        totalMap.put("totalHeadTailCorrectArea", totalMap.get("totalHeadTailCorrectArea").add(headTailCorrectArea));
+
                         // 赋值使用率
-                        BigDecimal value = BigDecimalUtil.init(scheduleArea).multiply(100).
-                                divideTry(pickingArea.subtract(backArea).subtract(correctArea), 2).getValue();
+                        BigDecimal value = BigDecimalUtil.init(scheduleArea)
+                                .multiply(100)
+                                .divideTry(pickingArea.subtract(backArea).subtract(correctArea).subtract(headTailCorrectArea), 2)
+                                .getValue();
 
                         itemMap.put("useRate", value);
                     } else {
@@ -368,7 +385,17 @@ public class StockBackServiceImpl extends ServiceImpl<StockBackMapper, StockBack
 
             });
 
+            // 赋值使用率
+            BigDecimal value = BigDecimalUtil.init(totalMap.get("totalScheduleArea"))
+                    .multiply(100)
+                    .divideTry(totalMap.get("totalPickingArea")
+                            .subtract(totalMap.get("totalBackArea"))
+                            .subtract(totalMap.get("totalCorrectArea"))
+                            .subtract(totalMap.get("totalHeadTailCorrectArea")), 2)
+                    .getValue();
+
             result.put(k, list);
+            result.put(k + "use", value);
         });
 
         return result;