Jelajahi Sumber

河南郸城调度计划 定时任务生成工单的开始和结束时间计算逻辑变更

1037015548@qq.com 11 bulan lalu
induk
melakukan
f25fbc1bd3

+ 7 - 6
src/main/java/com/shkpr/service/aimodelpower/bizmgr/WODispatchPlanTmDoBizFun.java

@@ -155,11 +155,11 @@ public class WODispatchPlanTmDoBizFun {
                     Long sugBeginTime = 0L;
                     if(model.getDispatchLeadTime()<0){
                         sugBeginTime = Instant.ofEpochMilli(model.getNextTakeTime()).atZone(ZoneId.systemDefault())
+                                .minusMinutes(model.getDispatchLeadTime())
                                 .withHour(Integer.valueOf(item.getHandleStartTime().split(":")[0]))
                                 .withMinute(Integer.valueOf(item.getHandleStartTime().split(":")[1]))
                                 .withSecond(Integer.valueOf(item.getHandleStartTime().split(":")[2]))
-                                .toInstant()
-                                .plus(Math.abs(model.getDispatchLeadTime()),ChronoUnit.MINUTES).toEpochMilli();
+                                .toInstant().toEpochMilli();
                     }else if(model.getDispatchLeadTime()==0){
                         sugBeginTime = Instant.ofEpochMilli(model.getNextTakeTime()).atZone(ZoneId.systemDefault())
                                 .withHour(Integer.valueOf(item.getHandleStartTime().split(":")[0]))
@@ -168,11 +168,11 @@ public class WODispatchPlanTmDoBizFun {
                                 .toInstant().toEpochMilli();
                     }else if(model.getDispatchLeadTime()>0){
                         sugBeginTime = Instant.ofEpochMilli(model.getNextTakeTime()).atZone(ZoneId.systemDefault())
+                                .minusMinutes(model.getDispatchLeadTime())
                                 .withHour(Integer.valueOf(item.getHandleStartTime().split(":")[0]))
                                 .withMinute(Integer.valueOf(item.getHandleStartTime().split(":")[1]))
                                 .withSecond(Integer.valueOf(item.getHandleStartTime().split(":")[2]))
-                                .toInstant()
-                                .minus(Math.abs(model.getDispatchLeadTime()),ChronoUnit.MINUTES).toEpochMilli();
+                                .toInstant().toEpochMilli();
                     }
                     if (sugBeginTime<=0L){
                         //TODO 说明时间错误,将错误拦截在此处不再进行派单动作
@@ -183,11 +183,12 @@ public class WODispatchPlanTmDoBizFun {
                             TimeTool.convertUTC2DateStr(sugBeginTime, TimeTool.TIMESTAMP_FORMAT_EX3)));
                     planCommandParam.put("sugBeginTime",sugBeginTime);
                     String endTimeStr = item.getHandleEndTime();
-                    planCommandParam.put("sugEndTime", TimeTool.convertDateStr2UTC(LocalDateTime.now()
+                    planCommandParam.put("sugEndTime", Instant.ofEpochMilli(sugBeginTime)
+                            .atZone(ZoneId.systemDefault())
                             .withHour(Integer.valueOf(endTimeStr.split(":")[0]))
                             .withMinute(Integer.valueOf(endTimeStr.split(":")[1]))
                             .withSecond(Integer.valueOf(endTimeStr.split(":")[2]))
-                            .format(DateTimeFormatter.ofPattern(TimeTool.TIMESTAMP_FORMAT))));
+                            .toInstant().toEpochMilli());
                     List<Map<String,Object>> suggestions = new ArrayList<>();
                     if(!CollectionUtils.isEmpty(item.getDispoalModels())){
                         for(DispatchCmdBatchDispoalModel dispoalModel:item.getDispoalModels()) {