|
@@ -4,7 +4,6 @@ import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.constants.StatusConstant;
|
|
@@ -140,7 +139,7 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
|
|
|
// 工号,物料名称,排班时间封装成key,对象为value
|
|
|
Map<String, StockBackPlanDetails> stockBackPlanMap = list.stream().collect(Collectors.toMap(
|
|
|
- item -> item.getJobNo() + item.getPlanMaterial() + item.getPlanTime(),
|
|
|
+ item -> item.getJobNo() + item.getPlanMaterial() + item.getPlanTime().getTime(),
|
|
|
item -> {
|
|
|
StockBackPlanDetails stockBackPlanDetails =
|
|
|
createStockBackPlanDetails(item.getJobNo(), item.getPlanMaterial(), item.getPlanTime());
|
|
@@ -171,12 +170,16 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
// 转出
|
|
|
transferOut(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ // 布头布尾修正
|
|
|
+ headTailCorrect(beginDate, stockBackPlanMap);
|
|
|
+
|
|
|
stockBackPlanDetailsService.saveBatch(new ArrayList<>(stockBackPlanMap.values()));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private StockBackPlanDetails createStockBackPlanDetails(String jobNo, String materialName, Date planDate) {
|
|
|
StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
|
|
|
stockBackPlanDetails.setPlanMaterial(materialName);
|
|
@@ -205,6 +208,8 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
stockBackPlanDetails.setTransferInArea(BigDecimal.ZERO);
|
|
|
stockBackPlanDetails.setTransferInNum(0);
|
|
|
|
|
|
+ stockBackPlanDetails.setHeadTailCorrectArea(BigDecimal.ZERO);
|
|
|
+
|
|
|
stockBackPlanDetails.setCreateTime(new Date());
|
|
|
|
|
|
return stockBackPlanDetails;
|
|
@@ -291,10 +296,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
|
|
|
// 金额
|
|
@@ -353,10 +358,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
|
|
|
// 金额
|
|
@@ -417,10 +422,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
|
|
|
// 金额
|
|
@@ -476,10 +481,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
|
|
|
// 金额
|
|
@@ -523,10 +528,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal correctArea = BigDecimalUtil.keepDecimals(map.get("correctArea"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
// 金额
|
|
|
stockBackPlanDetails.setCorrectArea(stockBackPlanDetails.getCorrectArea().add(correctArea));
|
|
@@ -572,10 +577,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
|
|
|
// 金额
|
|
@@ -633,10 +638,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
|
|
|
|
|
|
// 排班对象
|
|
|
- StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
if (stockBackPlanDetails == null) {
|
|
|
stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
- stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
}
|
|
|
|
|
|
// 金额
|
|
@@ -655,4 +660,34 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void headTailCorrect(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
+ List<Map<String, Object>> list = baseMapper.getHeadTailCorrectList(Wrappers.query()
|
|
|
+ .ge("sc.correct_date", beginDate)
|
|
|
+ .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
+ );
|
|
|
+
|
|
|
+ for (Map<String, Object> map : list) {
|
|
|
+
|
|
|
+ // 工号
|
|
|
+ String jobNo = map.get("jobNo").toString();
|
|
|
+ // 物料名称
|
|
|
+ String materialName = map.get("materialName").toString().split("-")[0];
|
|
|
+ // 排班时间
|
|
|
+ Date planDate = DateUtil.beginOfDay((Date) map.get("createTime"));
|
|
|
+
|
|
|
+
|
|
|
+ // 排班对象
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
|
+ if (stockBackPlanDetails == null) {
|
|
|
+ stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate.getTime(), stockBackPlanDetails);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 面积
|
|
|
+ stockBackPlanDetails.setHeadTailCorrectArea(stockBackPlanDetails.getHeadTailCorrectArea().add(
|
|
|
+ Convert.toBigDecimal(map.get("area"), BigDecimal.ZERO)));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|