|
@@ -124,7 +124,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
nextTimeModel.setPlanType(model.getPlanType());
|
|
|
nextTimeModel.setDispatchLeadTime(model.getDispatchLeadTime());
|
|
|
nextTimeModel.setCycles(model.getCycles());
|
|
|
- Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel);
|
|
|
+ Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,newNextTakeTime);
|
|
|
newNextTakeTime = (model.getPlanType()==0)?0L:nextMap.get("nextTakeTime");
|
|
|
newLimitNextTakeTime = (model.getPlanType()==0)?0L:nextMap.get("limitNextTakeTime");//returnNextTakeTime(nextTimeModel);
|
|
|
|
|
@@ -462,13 +462,15 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
|
|
|
//TODO 公用计算下次生效时间的方法
|
|
|
//TODO 分是否排班
|
|
|
- public static Map<String,Long> returnNextTakeTime(DispatchPlanInfoNextTimeModel model){
|
|
|
+ //TODO oldTm主要为了再派单时比对
|
|
|
+ public static Map<String,Long> returnNextTakeTime(DispatchPlanInfoNextTimeModel model,long oldTm){
|
|
|
Map<String,Long> map = new HashMap<>();
|
|
|
|
|
|
Long nextTakeTime = 0L;
|
|
|
Long limitNextTakeTime = 0L;
|
|
|
map.put("nextTakeTime",nextTakeTime);
|
|
|
map.put("limitNextTakeTime",limitNextTakeTime);
|
|
|
+ map.put("ifRestNextTakeTime",0L);//是否将newTextTakeTime更新到 plan中 0否, 1是
|
|
|
if(!CollectionUtils.isEmpty(model.getItemsList())){
|
|
|
List<DispatchCmdBatchItemNextTimeModel> newList = model.getItemsList().stream()
|
|
|
.sorted(Comparator.comparing(DispatchCmdBatchItemNextTimeModel::getHandleStartTime))
|
|
@@ -576,6 +578,13 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
nextTakeTime = Instant.ofEpochMilli(nextTakeTime)
|
|
|
.plus(1, ChronoUnit.DAYS).toEpochMilli();
|
|
|
limitNextTakeTime = Instant.ofEpochMilli(limitNextTakeTime).toEpochMilli();
|
|
|
+ }else if(nextTakeTime<=oldTm){
|
|
|
+ //TODO 连续时需考虑
|
|
|
+ //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()==2){
|
|
|
//TODO 周计划
|
|
@@ -648,6 +657,14 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
.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){
|
|
|
//TODO 月计划
|
|
|
JSONArray newJSONArray = JSONArray.parseArray(model.getCycles()).stream().sorted(
|
|
@@ -719,6 +736,14 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
.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){
|
|
|
//TODO 年计划
|
|
|
JSONArray newJSONArray = JSONArray.parseArray(model.getCycles()).stream().sorted(
|
|
@@ -792,6 +817,14 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
.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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -835,7 +868,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
nextTimeModel.setItemsList(itemModels);
|
|
|
nextTimeModel.setDispatchLeadTime(oJsonParam.getDispatchLeadTime());
|
|
|
nextTimeModel.setCycles(oJsonParam.getCycles());
|
|
|
- Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel);
|
|
|
+ Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,0L);
|
|
|
nextTakeTime = nextMap.get("nextTakeTime");
|
|
|
limitNextTakeTime = nextMap.get("limitNextTakeTime");
|
|
|
|
|
@@ -921,7 +954,7 @@ public class WODispatchPlanTmDoBizFun {
|
|
|
nextTimeModel.setItemsList(itemModels);
|
|
|
nextTimeModel.setDispatchLeadTime(oJsonParam.getDispatchLeadTime());
|
|
|
nextTimeModel.setCycles(oJsonParam.getCycles());
|
|
|
- Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel);
|
|
|
+ Map<String,Long> nextMap = returnNextTakeTime(nextTimeModel,0L);
|
|
|
nextTakeTime = nextMap.get("nextTakeTime");
|
|
|
limitNextTakeTime = nextMap.get("limitNextTakeTime");
|
|
|
|