|
@@ -77,6 +77,9 @@ public class WODispatchPlanTmDoBizFun {
|
|
}
|
|
}
|
|
|
|
|
|
private static ResponseCode handleProduceCmd(String planId, long checkTm){
|
|
private static ResponseCode handleProduceCmd(String planId, long checkTm){
|
|
|
|
+ if(planId.equals("PLP29FC2A943900184748")){
|
|
|
|
+ System.out.println(111);
|
|
|
|
+ }
|
|
ResponseCode code = ResponseCode.RESULT_BAD;
|
|
ResponseCode code = ResponseCode.RESULT_BAD;
|
|
Long nowLoc = TimeTool.getCurMsUTC();
|
|
Long nowLoc = TimeTool.getCurMsUTC();
|
|
Map<String,Object> mapSel = getThisDBService().getOne(planId);
|
|
Map<String,Object> mapSel = getThisDBService().getOne(planId);
|
|
@@ -124,7 +127,11 @@ public class WODispatchPlanTmDoBizFun {
|
|
nextTimeModel.setPlanType(model.getPlanType());
|
|
nextTimeModel.setPlanType(model.getPlanType());
|
|
nextTimeModel.setDispatchLeadTime(model.getDispatchLeadTime());
|
|
nextTimeModel.setDispatchLeadTime(model.getDispatchLeadTime());
|
|
nextTimeModel.setCycles(model.getCycles());
|
|
nextTimeModel.setCycles(model.getCycles());
|
|
- Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,newNextTakeTime);
|
|
|
|
|
|
+
|
|
|
|
+ LocalDateTime newTureNextTakeTimeDateTime = LocalDateTime
|
|
|
|
+ .ofInstant(Instant.ofEpochMilli(newNextTakeTime), ZoneId.systemDefault())
|
|
|
|
+ .minusMinutes(model.getDispatchLeadTime());
|
|
|
|
+ Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,newTureNextTakeTimeDateTime);
|
|
newNextTakeTime = (model.getPlanType()==0)?0L:nextMap.get("nextTakeTime");
|
|
newNextTakeTime = (model.getPlanType()==0)?0L:nextMap.get("nextTakeTime");
|
|
newLimitNextTakeTime = (model.getPlanType()==0)?0L:nextMap.get("limitNextTakeTime");//returnNextTakeTime(nextTimeModel);
|
|
newLimitNextTakeTime = (model.getPlanType()==0)?0L:nextMap.get("limitNextTakeTime");//returnNextTakeTime(nextTimeModel);
|
|
|
|
|
|
@@ -429,8 +436,8 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
|
|
|
//判断是否在时间区间内并且取出最接近当前时间的大于它的时间
|
|
//判断是否在时间区间内并且取出最接近当前时间的大于它的时间
|
|
//nextType 0 周 1 月 2 年
|
|
//nextType 0 周 1 月 2 年
|
|
- public static LocalDateTime findNextTime(List<String> dateTimeStrings){
|
|
|
|
- LocalDateTime now = LocalDateTime.now(); // 获取当前日期时间
|
|
|
|
|
|
+ public static LocalDateTime findNextTime(List<String> dateTimeStrings,LocalDateTime oldTm){
|
|
|
|
+ LocalDateTime now = oldTm==null?LocalDateTime.now():oldTm; // 获取当前日期时间
|
|
System.out.println("Current DateTime: " + now);
|
|
System.out.println("Current DateTime: " + now);
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
// 转换为LocalDateTime集合
|
|
// 转换为LocalDateTime集合
|
|
@@ -463,7 +470,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
//TODO 公用计算下次生效时间的方法
|
|
//TODO 公用计算下次生效时间的方法
|
|
//TODO 分是否排班
|
|
//TODO 分是否排班
|
|
//TODO oldTm主要为了再派单时比对
|
|
//TODO oldTm主要为了再派单时比对
|
|
- public static Map<String,Long> returnNextTakeTime(DispatchPlanInfoNextTimeModel model,long oldTm){
|
|
|
|
|
|
+ public static Map<String,Long> returnNextTakeTime(DispatchPlanInfoNextTimeModel model,LocalDateTime oldTm){
|
|
Map<String,Long> map = new HashMap<>();
|
|
Map<String,Long> map = new HashMap<>();
|
|
|
|
|
|
Long nextTakeTime = 0L;
|
|
Long nextTakeTime = 0L;
|
|
@@ -578,7 +585,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
.plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
.plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
limitNextTakeTime = Instant.ofEpochMilli(limitNextTakeTime).toEpochMilli();
|
|
limitNextTakeTime = Instant.ofEpochMilli(limitNextTakeTime).toEpochMilli();
|
|
- }else if(nextTakeTime<=oldTm){
|
|
|
|
|
|
+ }else if(nextTakeTime<=oldTm.atZone(ZoneId.systemDefault()).toEpochSecond()){
|
|
//TODO 连续时需考虑
|
|
//TODO 连续时需考虑
|
|
//TODO 如果传递了对比值, 则说明当前计算的时间与old不符合条件,则再加一算一次
|
|
//TODO 如果传递了对比值, 则说明当前计算的时间与old不符合条件,则再加一算一次
|
|
nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
@@ -612,9 +619,11 @@ public class WODispatchPlanTmDoBizFun {
|
|
.withMinute(Integer.valueOf(timeLimits[1])).withSecond(Integer.valueOf(timeLimits[2])).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
.withMinute(Integer.valueOf(timeLimits[1])).withSecond(Integer.valueOf(timeLimits[2])).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- LocalDateTime nextDateTime = findNextTime(dateTimeStrings);
|
|
|
|
|
|
+ LocalDateTime nextDateTime = findNextTime(dateTimeStrings,oldTm);
|
|
LocalDateTime limitNextDateTime = nextDateTime!=null?LocalDateTime.parse(dateLimitTimeStrings.get(dateLimitTimeStrings.indexOf(nextDateTime
|
|
LocalDateTime limitNextDateTime = nextDateTime!=null?LocalDateTime.parse(dateLimitTimeStrings.get(dateLimitTimeStrings.indexOf(nextDateTime
|
|
- .format(DateTimeFormatter.ofPattern(TimeTool.YEAR_MONTH_DAY_FORMAT))+" "+model.getItemsList().stream().sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTimeLimit))
|
|
|
|
|
|
+ .format(DateTimeFormatter.ofPattern(TimeTool.YEAR_MONTH_DAY_FORMAT))
|
|
|
|
+ +" "+
|
|
|
|
+ model.getItemsList().stream().sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTimeLimit))
|
|
.collect(Collectors.toList()).get(0).getHandleStartTimeLimit())),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):null;
|
|
.collect(Collectors.toList()).get(0).getHandleStartTimeLimit())),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):null;
|
|
|
|
|
|
if(nextDateTime!=null){
|
|
if(nextDateTime!=null){
|
|
@@ -657,14 +666,6 @@ public class WODispatchPlanTmDoBizFun {
|
|
.withSecond(localTimeLimit.getSecond()));
|
|
.withSecond(localTimeLimit.getSecond()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //TODO 连续时需考虑
|
|
|
|
- if(nextTakeTime<=oldTm){
|
|
|
|
- //TODO 如果传递了对比值, 则说明当前计算的时间与old不符合条件,则再加一算一次
|
|
|
|
- nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
|
|
- .plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
|
- limitNextTakeTime = Instant.ofEpochMilli(limitNextTakeTime).plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
|
- map.put("ifRestNextTakeTime",1L);
|
|
|
|
- }
|
|
|
|
}else if(model.getPlanType()==3){
|
|
}else if(model.getPlanType()==3){
|
|
//TODO 月计划
|
|
//TODO 月计划
|
|
JSONArray newJSONArray = JSONArray.parseArray(model.getCycles()).stream().sorted(
|
|
JSONArray newJSONArray = JSONArray.parseArray(model.getCycles()).stream().sorted(
|
|
@@ -691,7 +692,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- LocalDateTime nextDateTime = findNextTime(dateTimeStrings);
|
|
|
|
|
|
+ LocalDateTime nextDateTime = findNextTime(dateTimeStrings,oldTm);
|
|
LocalDateTime limitNextDateTime = nextDateTime!=null?LocalDateTime.parse(dateLimitTimeStrings.get(dateLimitTimeStrings.indexOf(nextDateTime
|
|
LocalDateTime limitNextDateTime = nextDateTime!=null?LocalDateTime.parse(dateLimitTimeStrings.get(dateLimitTimeStrings.indexOf(nextDateTime
|
|
.format(DateTimeFormatter.ofPattern(TimeTool.YEAR_MONTH_DAY_FORMAT))+" "+model.getItemsList().stream().sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTimeLimit))
|
|
.format(DateTimeFormatter.ofPattern(TimeTool.YEAR_MONTH_DAY_FORMAT))+" "+model.getItemsList().stream().sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTimeLimit))
|
|
.collect(Collectors.toList()).get(0).getHandleStartTimeLimit())),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):null;
|
|
.collect(Collectors.toList()).get(0).getHandleStartTimeLimit())),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):null;
|
|
@@ -736,14 +737,6 @@ public class WODispatchPlanTmDoBizFun {
|
|
.withSecond(localTimeLimit.getSecond()));
|
|
.withSecond(localTimeLimit.getSecond()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //TODO 连续时需考虑
|
|
|
|
- if(nextTakeTime<=oldTm){
|
|
|
|
- //TODO 如果传递了对比值, 则说明当前计算的时间与old不符合条件,则再加一算一次
|
|
|
|
- nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
|
|
- .plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
|
- limitNextTakeTime = Instant.ofEpochMilli(limitNextTakeTime).plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
|
- map.put("ifRestNextTakeTime",1L);
|
|
|
|
- }
|
|
|
|
}else if(model.getPlanType()==4){
|
|
}else if(model.getPlanType()==4){
|
|
//TODO 年计划
|
|
//TODO 年计划
|
|
JSONArray newJSONArray = JSONArray.parseArray(model.getCycles()).stream().sorted(
|
|
JSONArray newJSONArray = JSONArray.parseArray(model.getCycles()).stream().sorted(
|
|
@@ -772,7 +765,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- LocalDateTime nextDateTime = findNextTime(dateTimeStrings);
|
|
|
|
|
|
+ LocalDateTime nextDateTime = findNextTime(dateTimeStrings,oldTm);
|
|
LocalDateTime limitNextDateTime = nextDateTime!=null?LocalDateTime.parse(dateLimitTimeStrings.get(dateLimitTimeStrings.indexOf(nextDateTime
|
|
LocalDateTime limitNextDateTime = nextDateTime!=null?LocalDateTime.parse(dateLimitTimeStrings.get(dateLimitTimeStrings.indexOf(nextDateTime
|
|
.format(DateTimeFormatter.ofPattern(TimeTool.YEAR_MONTH_DAY_FORMAT))+" "+model.getItemsList().stream().sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTimeLimit))
|
|
.format(DateTimeFormatter.ofPattern(TimeTool.YEAR_MONTH_DAY_FORMAT))+" "+model.getItemsList().stream().sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTimeLimit))
|
|
.collect(Collectors.toList()).get(0).getHandleStartTimeLimit())),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):null;
|
|
.collect(Collectors.toList()).get(0).getHandleStartTimeLimit())),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):null;
|
|
@@ -817,14 +810,6 @@ public class WODispatchPlanTmDoBizFun {
|
|
.withSecond(localTimeLimit.getSecond()));
|
|
.withSecond(localTimeLimit.getSecond()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //TODO 连续时需考虑
|
|
|
|
- if(nextTakeTime<=oldTm){
|
|
|
|
- //TODO 如果传递了对比值, 则说明当前计算的时间与old不符合条件,则再加一算一次
|
|
|
|
- nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
|
|
- .plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
|
- limitNextTakeTime = Instant.ofEpochMilli(limitNextTakeTime).plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
|
- map.put("ifRestNextTakeTime",1L);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -868,7 +853,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
nextTimeModel.setItemsList(itemModels);
|
|
nextTimeModel.setItemsList(itemModels);
|
|
nextTimeModel.setDispatchLeadTime(oJsonParam.getDispatchLeadTime());
|
|
nextTimeModel.setDispatchLeadTime(oJsonParam.getDispatchLeadTime());
|
|
nextTimeModel.setCycles(oJsonParam.getCycles());
|
|
nextTimeModel.setCycles(oJsonParam.getCycles());
|
|
- Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,0L);
|
|
|
|
|
|
+ Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,null);
|
|
nextTakeTime = nextMap.get("nextTakeTime");
|
|
nextTakeTime = nextMap.get("nextTakeTime");
|
|
limitNextTakeTime = nextMap.get("limitNextTakeTime");
|
|
limitNextTakeTime = nextMap.get("limitNextTakeTime");
|
|
|
|
|
|
@@ -954,7 +939,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
nextTimeModel.setItemsList(itemModels);
|
|
nextTimeModel.setItemsList(itemModels);
|
|
nextTimeModel.setDispatchLeadTime(oJsonParam.getDispatchLeadTime());
|
|
nextTimeModel.setDispatchLeadTime(oJsonParam.getDispatchLeadTime());
|
|
nextTimeModel.setCycles(oJsonParam.getCycles());
|
|
nextTimeModel.setCycles(oJsonParam.getCycles());
|
|
- Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,0L);
|
|
|
|
|
|
+ Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,null);
|
|
nextTakeTime = nextMap.get("nextTakeTime");
|
|
nextTakeTime = nextMap.get("nextTakeTime");
|
|
limitNextTakeTime = nextMap.get("limitNextTakeTime");
|
|
limitNextTakeTime = nextMap.get("limitNextTakeTime");
|
|
|
|
|