|
@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.fjhx.entity.scheduling.Scheduling;
|
|
|
import com.fjhx.entity.stock.StockBackPlan;
|
|
|
import com.fjhx.entity.stock.StockBackPlanDetails;
|
|
|
import com.fjhx.stock.mapper.StockBackPlanMapper;
|
|
@@ -66,9 +65,9 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
// 循环领料信息
|
|
|
items.forEach(item -> {
|
|
|
// 喷印人员工号
|
|
|
- long distributor = Long.parseLong(item.get("distributor").toString());
|
|
|
+ String distributor = item.get("distributor").toString();
|
|
|
// 打纸人员工号
|
|
|
- long paperMan = Long.parseLong(item.get("paperMan").toString());
|
|
|
+ String paperMan = item.get("paperMan").toString();
|
|
|
// 排班面积
|
|
|
BigDecimal plantotalsquare = new BigDecimal(item.get("plantotalsquare").toString());
|
|
|
// 物料名称
|
|
@@ -80,22 +79,22 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
addOrEditFlagMap(flagMap, distributor, plantotalsquare, planDate, material, newDate);
|
|
|
|
|
|
// 打纸人员工号添加领料记录标记
|
|
|
- if (paperMan > 0) {
|
|
|
+ if (ObjectUtil.isNotEmpty(paperMan) && !Objects.equals(paperMan, "0")) {
|
|
|
addOrEditFlagMap(flagMap, paperMan, plantotalsquare, planDate, "热转印纸", newDate);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- List<Map<String, Object>> list = baseMapper.getList(Wrappers.<Scheduling>lambdaQuery()
|
|
|
- .between(Scheduling::getPlanDate, beginDate, endDate));
|
|
|
-
|
|
|
- for (Map<String, Object> map : list) {
|
|
|
- Long jobNo = Long.valueOf(map.get("jobNo").toString());
|
|
|
- BigDecimal quantity = BigDecimalUtil.keepDecimals(map.get("quantity"));
|
|
|
- String planDate = DateUtil.format((Date) map.get("planDate"), "yyyy-MM-dd");
|
|
|
- String materialName = map.get("materialName").toString().split("-")[0];
|
|
|
-
|
|
|
- addOrEditFlagMap(flagMap, jobNo, quantity, planDate, materialName, newDate);
|
|
|
- }
|
|
|
+// List<Map<String, Object>> list = baseMapper.getList(Wrappers.<Scheduling>lambdaQuery()
|
|
|
+// .between(Scheduling::getPlanDate, beginDate, endDate));
|
|
|
+//
|
|
|
+// for (Map<String, Object> map : list) {
|
|
|
+// Long jobNo = Long.valueOf(map.get("jobNo").toString());
|
|
|
+// BigDecimal quantity = BigDecimalUtil.keepDecimals(map.get("quantity"));
|
|
|
+// String planDate = DateUtil.format((Date) map.get("planDate"), "yyyy-MM-dd");
|
|
|
+// String materialName = map.get("materialName").toString().split("-")[0];
|
|
|
+//
|
|
|
+// addOrEditFlagMap(flagMap, jobNo, quantity, planDate, materialName, newDate);
|
|
|
+// }
|
|
|
|
|
|
// 更新当天的出库单
|
|
|
saveBatch(new ArrayList<>(flagMap.values()));
|
|
@@ -115,20 +114,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
Map<String, StockBackPlanDetails> stockBackPlanMap = list.stream().collect(Collectors.toMap(
|
|
|
item -> item.getJobNo() + item.getPlanMaterial() + item.getPlanTime(),
|
|
|
item -> {
|
|
|
- StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
|
|
|
- stockBackPlanDetails.setPlanMaterial(item.getPlanMaterial());
|
|
|
- stockBackPlanDetails.setPlanTime(item.getPlanTime());
|
|
|
+ StockBackPlanDetails stockBackPlanDetails =
|
|
|
+ createStockBackPlanDetails(item.getJobNo(), item.getPlanMaterial(), item.getPlanTime());
|
|
|
stockBackPlanDetails.setQuantity(item.getQuantity());
|
|
|
- stockBackPlanDetails.setJobNo(item.getJobNo());
|
|
|
- stockBackPlanDetails.setCorrectArea(BigDecimal.ZERO);
|
|
|
- stockBackPlanDetails.setPickingMoney(BigDecimal.ZERO);
|
|
|
- stockBackPlanDetails.setPickingNum(0);
|
|
|
- stockBackPlanDetails.setPickingMeters(BigDecimal.ZERO);
|
|
|
- stockBackPlanDetails.setPickingArea(BigDecimal.ZERO);
|
|
|
- stockBackPlanDetails.setBackMoney(BigDecimal.ZERO);
|
|
|
- stockBackPlanDetails.setBackNum(0);
|
|
|
- stockBackPlanDetails.setBackMeters(BigDecimal.ZERO);
|
|
|
- stockBackPlanDetails.setBackArea(BigDecimal.ZERO);
|
|
|
+
|
|
|
return stockBackPlanDetails;
|
|
|
}
|
|
|
));
|
|
@@ -138,13 +127,14 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
|
|
|
// 领料统计
|
|
|
QueryWrapper<Object> pickingWrapper = Wrappers.query()
|
|
|
- .gt("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 7:30:00"))
|
|
|
+ .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 7:30:00"))
|
|
|
.in("swd.StockChangeType", 20, 23)
|
|
|
+ .eq("uu.IsDelete", 0)
|
|
|
+ .in("uu.DepartmentID", "A007", "A008", "A012")
|
|
|
.isNotNull("uu.JobNo");
|
|
|
|
|
|
// 查询出库
|
|
|
List<Map<String, Object>> pickingList = baseMapper.getWater(pickingWrapper);
|
|
|
-
|
|
|
for (Map<String, Object> map : pickingList) {
|
|
|
|
|
|
// 出库时间
|
|
@@ -154,14 +144,14 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
// 分
|
|
|
int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
// 小于7点30算前一日
|
|
|
- if (h < 7 || (h == 7 && m < 30)) {
|
|
|
+ if (h < 7 || (h == 7 && m <= 30)) {
|
|
|
DateUtil.offsetDay(createTime, -1);
|
|
|
}
|
|
|
|
|
|
// 排班时间
|
|
|
Date planDate = DateUtil.beginOfDay(createTime);
|
|
|
// 工号
|
|
|
- Long jobNo = Long.valueOf(map.get("jobNo").toString());
|
|
|
+ String jobNo = map.get("jobNo").toString();
|
|
|
// 物料名称
|
|
|
String materialName = map.get("materialName").toString().split("-")[0];
|
|
|
// 数量
|
|
@@ -173,31 +163,31 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
|
|
|
// 排班对象
|
|
|
StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
- if (stockBackPlanDetails != null) {
|
|
|
-
|
|
|
- // 金额
|
|
|
- stockBackPlanDetails.setPickingMoney(
|
|
|
- BigDecimalUtil.init(stockBackPlanDetails.getPickingMoney()).add(price.multiply(changeNum)).getValue(2));
|
|
|
+ if (stockBackPlanDetails == null) {
|
|
|
+ stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ }
|
|
|
|
|
|
- // 数量
|
|
|
- stockBackPlanDetails.setPickingNum(stockBackPlanDetails.getPickingNum() + 1);
|
|
|
+ // 金额
|
|
|
+ stockBackPlanDetails.setPickingMoney(
|
|
|
+ BigDecimalUtil.init(stockBackPlanDetails.getPickingMoney()).add(price.multiply(changeNum)).getValue(2));
|
|
|
|
|
|
- // 米
|
|
|
- stockBackPlanDetails.setPickingMeters(stockBackPlanDetails.getPickingMeters().add(changeNum));
|
|
|
+ // 数量
|
|
|
+ stockBackPlanDetails.setPickingNum(stockBackPlanDetails.getPickingNum() + 1);
|
|
|
|
|
|
- // 面积
|
|
|
- stockBackPlanDetails.setPickingArea(stockBackPlanDetails.getPickingArea().add(
|
|
|
- BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
|
|
|
+ // 米
|
|
|
+ stockBackPlanDetails.setPickingMeters(stockBackPlanDetails.getPickingMeters().add(changeNum));
|
|
|
|
|
|
- }
|
|
|
+ // 面积
|
|
|
+ stockBackPlanDetails.setPickingArea(stockBackPlanDetails.getPickingArea().add(
|
|
|
+ BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
|
|
|
}
|
|
|
|
|
|
// 回仓统计
|
|
|
QueryWrapper<Object> backWrapper = Wrappers.query()
|
|
|
- .gt("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 8:00:00"))
|
|
|
+ .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 9:30:00"))
|
|
|
.eq("swd.StockChangeType", 16)
|
|
|
.isNotNull("uu.JobNo");
|
|
|
-
|
|
|
// 查询回仓
|
|
|
List<Map<String, Object>> backList = baseMapper.getWater(backWrapper);
|
|
|
|
|
@@ -206,15 +196,17 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
// 出库时间
|
|
|
Date createTime = (Date) map.get("createTime");
|
|
|
|
|
|
- // 小于8点算前一日
|
|
|
- if (Integer.parseInt(DateUtil.format(createTime, "H")) < 8) {
|
|
|
+ int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
|
+ int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
+ // 小于9点30算前一日
|
|
|
+ if (h < 9 || (h == 9 && m < 30)) {
|
|
|
DateUtil.offsetDay(createTime, -1);
|
|
|
}
|
|
|
|
|
|
// 排班时间
|
|
|
Date planDate = DateUtil.beginOfDay(createTime);
|
|
|
// 工号
|
|
|
- Long jobNo = Long.valueOf(map.get("jobNo").toString());
|
|
|
+ String jobNo = map.get("jobNo").toString();
|
|
|
// 物料名称
|
|
|
String materialName = map.get("materialName").toString().split("-")[0];
|
|
|
// 数量
|
|
@@ -226,47 +218,38 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
|
|
|
// 排班对象
|
|
|
StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
- if (stockBackPlanDetails != null) {
|
|
|
-
|
|
|
- // 金额
|
|
|
- stockBackPlanDetails.setBackMoney(
|
|
|
- BigDecimalUtil.init(stockBackPlanDetails.getBackMoney()).add(price.multiply(changeNum)).getValue(2));
|
|
|
+ if (stockBackPlanDetails == null) {
|
|
|
+ stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
+ }
|
|
|
|
|
|
- // 数量
|
|
|
- stockBackPlanDetails.setBackNum(stockBackPlanDetails.getBackNum() + 1);
|
|
|
+ // 金额
|
|
|
+ stockBackPlanDetails.setBackMoney(
|
|
|
+ BigDecimalUtil.init(stockBackPlanDetails.getBackMoney()).add(price.multiply(changeNum)).getValue(2));
|
|
|
|
|
|
- // 米
|
|
|
- stockBackPlanDetails.setBackMeters(stockBackPlanDetails.getBackMeters().add(changeNum));
|
|
|
+ // 数量
|
|
|
+ stockBackPlanDetails.setBackNum(stockBackPlanDetails.getBackNum() + 1);
|
|
|
|
|
|
- // 面积
|
|
|
- stockBackPlanDetails.setBackArea(stockBackPlanDetails.getBackArea().add(
|
|
|
- BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
|
|
|
+ // 米
|
|
|
+ stockBackPlanDetails.setBackMeters(stockBackPlanDetails.getBackMeters().add(changeNum));
|
|
|
|
|
|
- }
|
|
|
+ // 面积
|
|
|
+ stockBackPlanDetails.setBackArea(stockBackPlanDetails.getBackArea().add(
|
|
|
+ BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
|
|
|
}
|
|
|
|
|
|
// 物料修正
|
|
|
-
|
|
|
QueryWrapper<Object> correctWrapper = Wrappers.query()
|
|
|
- .gt("swd", DateUtil.format(beginDate, "yyyy-MM-dd 8:00:00"))
|
|
|
+ .gt("sbc.correct_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
|
|
|
.isNotNull("uu.JobNo");
|
|
|
-
|
|
|
-
|
|
|
List<Map<String, Object>> correctList = baseMapper.getCorrect(correctWrapper);
|
|
|
for (Map<String, Object> map : correctList) {
|
|
|
-
|
|
|
// 出库时间
|
|
|
Date createTime = (Date) map.get("createTime");
|
|
|
-
|
|
|
- // 小于8点算前一日
|
|
|
- if (Integer.parseInt(DateUtil.format(createTime, "H")) < 8) {
|
|
|
- DateUtil.offsetDay(createTime, -1);
|
|
|
- }
|
|
|
-
|
|
|
// 排班时间
|
|
|
Date planDate = DateUtil.beginOfDay(createTime);
|
|
|
// 工号
|
|
|
- Long jobNo = Long.valueOf(map.get("jobNo").toString());
|
|
|
+ String jobNo = map.get("jobNo").toString();
|
|
|
// 物料名称
|
|
|
String materialName = map.get("materialName").toString().split("-")[0];
|
|
|
// 数量
|
|
@@ -274,16 +257,35 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
|
|
|
// 排班对象
|
|
|
StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
|
|
|
- if (stockBackPlanDetails != null) {
|
|
|
- // 金额
|
|
|
- stockBackPlanDetails.setCorrectArea(stockBackPlanDetails.getCorrectArea().add(correctArea));
|
|
|
+ if (stockBackPlanDetails == null) {
|
|
|
+ stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
|
|
|
+ stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
|
|
|
}
|
|
|
+
|
|
|
+ // 金额
|
|
|
+ stockBackPlanDetails.setCorrectArea(stockBackPlanDetails.getCorrectArea().add(correctArea));
|
|
|
}
|
|
|
|
|
|
- ArrayList<StockBackPlanDetails> stockBackPlanDetails = new ArrayList<>(stockBackPlanMap.values());
|
|
|
+ stockBackPlanDetailsService.saveBatch(new ArrayList<>(stockBackPlanMap.values()));
|
|
|
|
|
|
- stockBackPlanDetailsService.saveBatch(stockBackPlanDetails);
|
|
|
+ }
|
|
|
|
|
|
+ private StockBackPlanDetails createStockBackPlanDetails(String jobNo, String materialName, Date planDate) {
|
|
|
+ StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
|
|
|
+ stockBackPlanDetails.setPlanMaterial(materialName);
|
|
|
+ stockBackPlanDetails.setPlanTime(planDate);
|
|
|
+ stockBackPlanDetails.setQuantity(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setJobNo(jobNo);
|
|
|
+ stockBackPlanDetails.setCorrectArea(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setPickingMoney(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setPickingNum(0);
|
|
|
+ stockBackPlanDetails.setPickingMeters(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setPickingArea(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setBackMoney(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setBackNum(0);
|
|
|
+ stockBackPlanDetails.setBackMeters(BigDecimal.ZERO);
|
|
|
+ stockBackPlanDetails.setBackArea(BigDecimal.ZERO);
|
|
|
+ return stockBackPlanDetails;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -302,7 +304,7 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
/**
|
|
|
* 赋值排班数据
|
|
|
*/
|
|
|
- private void addOrEditFlagMap(Map<String, StockBackPlan> flagMap, Long jobNo, BigDecimal plantotalsquare, String planDate, String material, Date date) {
|
|
|
+ private void addOrEditFlagMap(Map<String, StockBackPlan> flagMap, String jobNo, BigDecimal plantotalsquare, String planDate, String material, Date date) {
|
|
|
String key = jobNo + material + planDate;
|
|
|
StockBackPlan stockBackPlan = flagMap.get(key);
|
|
|
|