|
@@ -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;
|