From 5e31f7c1f3eaf5cfd3be0e5fc942aa78f3a4133c Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 25 二月 2025 10:19:07 +0800
Subject: [PATCH] 修改下发缓存命令的等待逻辑,RTU上行数据后,使尽快发送下行命令。
---
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java | 87 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 86 insertions(+), 1 deletions(-)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
index ed15346..246fb29 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
@@ -4,8 +4,13 @@
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule;
+import com.dy.pipIrrGlobal.pojoIr.IrOpeningSchedule;
+import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate;
+import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule;
import com.dy.pipIrrWechat.irrigatePlan.dto.IrrigatePlan;
import com.dy.pipIrrWechat.irrigatePlan.dto.IrrigateSchedule;
+import com.dy.pipIrrWechat.irrigatePlan.dto.PlanSimple;
+import com.dy.pipIrrWechat.irrigatePlan.enums.OperateTypeENUM;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -17,6 +22,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -34,6 +40,15 @@
public class IrrigatePlanCtrl {
private final IrrigatePlanSv irrigatePlanSv;
+ /**
+ * 鍒涘缓鐏屾簤璁″垝
+ * 1. 娣诲姞鐏屾簤璁″垝
+ * 2. 娣诲姞鐏屾簤娆″簭
+ * 3. 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍
+ * @param planAndSchedule
+ * @param bindingResult
+ * @return
+ */
@PostMapping(path = "createPlan", consumes = MediaType.APPLICATION_JSON_VALUE)
@Transactional(rollbackFor = Exception.class)
public BaseResponse<Boolean> createPlan(@RequestBody @Valid IrrigatePlan planAndSchedule, BindingResult bindingResult){
@@ -41,6 +56,9 @@
return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
+ Long operatorId = planAndSchedule.getOperatorId();
+
+ // 娣诲姞鐏屾簤璁″垝
IrIrrigatePlan plan = new IrIrrigatePlan();
plan.setProjectId(planAndSchedule.getProjectId());
plan.setPlanName(planAndSchedule.getPlanName());
@@ -52,6 +70,11 @@
plan.setDeleted(0L);
Long planId = irrigatePlanSv.addIrrigatePlan(plan);
+ if(planId == null) {
+ return BaseResponseUtils.buildErrorMsg("鍒涘缓鐏屾簤璁″垝澶辫触");
+ }
+
+ // 娣诲姞鐏屾簤娆″簭
if(planId != null){
for(IrrigateSchedule schedule : planAndSchedule.getSchedules()){
IrIrrigateSchedule po = new IrIrrigateSchedule();
@@ -77,13 +100,75 @@
po.setStartTime(schedule.getStartTime());
po.setStopTime(schedule.getStopTime());
- //po.setIntakeIds(schedule.getIntakeIds());
po.setCurrentState((byte)1);
Long scheduleId = irrigatePlanSv.addIrrigateSchedule(po);
}
}
+ // 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍
+ IrPlanOperate planOperate = new IrPlanOperate();
+ planOperate.setPlanId(planId);
+ planOperate.setOperator(operatorId);
+ planOperate.setOperateType(OperateTypeENUM.CREATE.getCode());
+ planOperate.setOperateTime(new Date());
+ if(irrigatePlanSv.addPlanOperate(planOperate) == 0){
+ return BaseResponseUtils.buildErrorMsg("娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍澶辫触");
+ }
return BaseResponseUtils.buildSuccess();
}
+
+ /**
+ * 鍙戝竷鐏屾簤璁″垝
+ * 1. 淇敼鐏屾簤璁″垝鐘舵�佷负鍙戝竷鐘舵��
+ * 2. 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍
+ * 3. 鐢熸垚寮�闃�璁″垝
+ * @param planSimple
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "publishPlan", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @Transactional(rollbackFor = Exception.class)
+ public BaseResponse<Boolean> publishPlan(@RequestBody @Valid PlanSimple planSimple, BindingResult bindingResult){
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+ Long planId = planSimple.getPlanId();
+ Long operatorId = planSimple.getOperatorId();
+
+ // 淇敼鐏屾簤璁″垝鐘舵�佷负鍙戝竷鐘舵��
+ if(irrigatePlanSv.publishIrrigatePlan(planId) == 0){
+ return BaseResponseUtils.buildErrorMsg("淇敼鐏屾簤璁″垝鐘舵�佸け璐�");
+ }
+
+ // 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍
+ IrPlanOperate planOperate = new IrPlanOperate();
+ planOperate.setPlanId(planId);
+ planOperate.setOperator(operatorId);
+ planOperate.setOperateType(OperateTypeENUM.PUBLISH.getCode());
+ planOperate.setOperateTime(new Date());
+ if(irrigatePlanSv.addPlanOperate(planOperate) == 0){
+ return BaseResponseUtils.buildErrorMsg("娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍澶辫触");
+ }
+
+ // 鐢熸垚寮�闃�璁″垝
+ List<VoIrrigateSchedule> schedules = irrigatePlanSv.getIrrigateSchedules(planId);
+ if(schedules == null || schedules.size() == 0) {
+ return BaseResponseUtils.buildErrorMsg("鏃犲彇姘村彛锛岀敓鎴愬紑闃�璁″垝澶辫触");
+ }
+ for (VoIrrigateSchedule schedule : schedules) {
+ for(String intakeId : schedule.getIntakeIds().split(",")){
+ // 娣诲姞鐏屾簤璁″垝寮�鍚褰�
+ IrOpeningSchedule openingSchedule = new IrOpeningSchedule();
+ openingSchedule.setScheduleId(schedule.getScheduleId());
+ openingSchedule.setIntakeId(Long.parseLong(intakeId));
+ openingSchedule.setStartTime(schedule.getStartTime());
+ openingSchedule.setDuration(schedule.getDuration());
+ if(irrigatePlanSv.addOpeningSchedule(openingSchedule) == 0){
+ return BaseResponseUtils.buildErrorMsg("娣诲姞寮�闃�璁″垝澶辫触");
+ }
+ }
+ }
+ return BaseResponseUtils.buildSuccess();
+ }
}
--
Gitblit v1.8.0