소스 검색

河南郸城调度计划列表 修改计算bug

1037015548@qq.com 11 달 전
부모
커밋
4e198600f2

+ 24 - 12
src/main/java/com/shkpr/service/aimodelpower/bizmgr/WODispatchPlanTmDoBizFun.java

@@ -277,7 +277,7 @@ public class WODispatchPlanTmDoBizFun {
                 }else if(model.getDispatchLeadTime()>0){
                     nextTakeTime = nowTime.minus(-model.getDispatchLeadTime(), ChronoUnit.MINUTES).toEpochMilli();
                 }else if(model.getDispatchLeadTime()<0){
-                    nextTakeTime = nowTime.minus(model.getDispatchLeadTime(), ChronoUnit.MINUTES).toEpochMilli();
+                    nextTakeTime = nowTime.minus(Math.abs(model.getDispatchLeadTime()), ChronoUnit.MINUTES).toEpochMilli();
                 }
                 //TODO 如果当前时间与下次生效时间是同一天,但是时刻已经是过去时,那么则返回失败信息
                 Long nowTimeLong = TimeTool.getCurMsUTC();
@@ -299,16 +299,28 @@ public class WODispatchPlanTmDoBizFun {
                         }else if(model.getDispatchLeadTime()>0){
                             nextTakeTime = nowTime.minus(-model.getDispatchLeadTime(), ChronoUnit.MINUTES).toEpochMilli();
                         }else if(model.getDispatchLeadTime()<0){
-                            nextTakeTime = nowTime.minus(model.getDispatchLeadTime(), ChronoUnit.MINUTES).toEpochMilli();
+                            nextTakeTime = nowTime.minus(Math.abs(model.getDispatchLeadTime()), ChronoUnit.MINUTES).toEpochMilli();
                         }
                     }
                 }
                 if(!isToDay){
                     //说明当天并没有满足条件的时刻,那么在日期上加一天,并且用最小时刻
-                    nextTakeTime = Instant.ofEpochMilli(
-                            TimeTool.convertDateStr2UTC
-                                    (JSONArray.parseArray(model.getCycles()).getString(0)
-                                            +" "+newList.get(0).getHandleStartTime())).toEpochMilli();
+                    if(model.getDispatchLeadTime()==0) {
+                        nextTakeTime = Instant.ofEpochMilli(
+                                TimeTool.convertDateStr2UTC
+                                        (JSONArray.parseArray(model.getCycles()).getString(0)
+                                                +" "+newList.get(0).getHandleStartTime())).toEpochMilli();
+                    }else if(model.getDispatchLeadTime()>0){
+                        nextTakeTime = Instant.ofEpochMilli(
+                                TimeTool.convertDateStr2UTC
+                                        (JSONArray.parseArray(model.getCycles()).getString(0)
+                                                +" "+newList.get(0).getHandleStartTime())).minus(-model.getDispatchLeadTime(), ChronoUnit.MINUTES).toEpochMilli();
+                    }else if(model.getDispatchLeadTime()<0){
+                        nextTakeTime = Instant.ofEpochMilli(
+                                TimeTool.convertDateStr2UTC
+                                        (JSONArray.parseArray(model.getCycles()).getString(0)
+                                                +" "+newList.get(0).getHandleStartTime())).minus(Math.abs(model.getDispatchLeadTime()), ChronoUnit.MINUTES).toEpochMilli();
+                    }
                 }
 
                 //TODO 如果当前时间大于生效时间,说明生效时间过期,则加一天
@@ -346,7 +358,7 @@ public class WODispatchPlanTmDoBizFun {
                     } else if (model.getDispatchLeadTime() > 0) {
                         nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(-model.getDispatchLeadTime()));
                     } else if (model.getDispatchLeadTime() < 0) {
-                        nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(model.getDispatchLeadTime()));
+                        nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(Math.abs(model.getDispatchLeadTime())));
                     }
                 }else{
                     LocalTime localTime = LocalTime.parse(newList.get(0).getHandleStartTime(), DateTimeFormatter.ofPattern("HH:mm:ss"));
@@ -363,7 +375,7 @@ public class WODispatchPlanTmDoBizFun {
                     } else if (model.getDispatchLeadTime() < 0) {
                         nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusWeeks(-1).withHour(localTime.getHour())
                                 .withMinute(localTime.getMinute())
-                                .withSecond(localTime.getSecond()).minusMinutes(model.getDispatchLeadTime()));
+                                .withSecond(localTime.getSecond()).minusMinutes(Math.abs(model.getDispatchLeadTime())));
                     }
                 }
             }else if(model.getPlanType()==3){
@@ -396,7 +408,7 @@ public class WODispatchPlanTmDoBizFun {
                     } else if (model.getDispatchLeadTime() > 0) {
                         nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(-model.getDispatchLeadTime()));
                     } else if (model.getDispatchLeadTime() < 0) {
-                        nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(model.getDispatchLeadTime()));
+                        nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(Math.abs(model.getDispatchLeadTime())));
                     }
                 }else{
                     LocalTime localTime = LocalTime.parse(newList.get(0).getHandleStartTime(), DateTimeFormatter.ofPattern("HH:mm:ss"));
@@ -413,7 +425,7 @@ public class WODispatchPlanTmDoBizFun {
                     } else if (model.getDispatchLeadTime() < 0) {
                         nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMonths(-1).withHour(localTime.getHour())
                                 .withMinute(localTime.getMinute())
-                                .withSecond(localTime.getSecond()).minusMinutes(model.getDispatchLeadTime()));
+                                .withSecond(localTime.getSecond()).minusMinutes(Math.abs(model.getDispatchLeadTime())));
                     }
                 }
             }else if(model.getPlanType()==4){
@@ -447,7 +459,7 @@ public class WODispatchPlanTmDoBizFun {
                     } else if (model.getDispatchLeadTime() > 0) {
                         nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(-model.getDispatchLeadTime()));
                     } else if (model.getDispatchLeadTime() < 0) {
-                        nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(model.getDispatchLeadTime()));
+                        nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusMinutes(Math.abs(model.getDispatchLeadTime())));
                     }
                 }else{
                     LocalTime localTime = LocalTime.parse(newList.get(0).getHandleStartTime(), DateTimeFormatter.ofPattern("HH:mm:ss"));
@@ -465,7 +477,7 @@ public class WODispatchPlanTmDoBizFun {
                     } else if (model.getDispatchLeadTime() < 0) {
                         nextTakeTime = reloadLocalDateTimeToLong(nextDateTime.minusYears(-1).withHour(localTime.getHour())
                                 .withMinute(localTime.getMinute())
-                                .withSecond(localTime.getSecond()).minusMinutes(model.getDispatchLeadTime()));
+                                .withSecond(localTime.getSecond()).minusMinutes(Math.abs(model.getDispatchLeadTime())));
                     }
                 }
             }

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchPlanInfoSave.java

@@ -123,7 +123,7 @@ public class JPDispatchPlanInfoSave {
                     return false;
                 }
             }
-            if (!StringUtils.isEmpty(casualValue)) {
+            if (!StringUtils.isEmpty(casualValue)||(StringUtils.isEmpty(casualValue)&&planType==1)) {
                 //TODO 检查参数是否符合规格
                 if (planType == 0) {
                     //TODO 说明是临时计划

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchPlanInfoUpdate.java

@@ -136,7 +136,7 @@ public class JPDispatchPlanInfoUpdate {
                     return false;
                 }
             }
-            if (!StringUtils.isEmpty(casualValue)) {
+            if (!StringUtils.isEmpty(casualValue)||(StringUtils.isEmpty(casualValue)&&planType==1)) {
                 //TODO 检查参数是否符合规格
                 if (planType == 0) {
                     //TODO 说明是临时计划