From f17559796e0f87b90a8e7603809873073a0f08fd Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 20 三月 2025 17:25:53 +0800
Subject: [PATCH] 接入第三方平台系统(北京农林、新疆农垦)中间件模块框架、TCP接口、Http接口开发完成,接收到的数据处理业务逻辑、与本地业务系统接口等部分未设计开发。
---
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java | 169 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 141 insertions(+), 28 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..e2ef8ec 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
@@ -2,21 +2,27 @@
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
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.VoIrrigatePlan;
+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 com.dy.pipIrrWechat.irrigatePlan.qo.QoIrrigatePlan;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+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,49 +56,147 @@
return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
+ Long operatorId = planAndSchedule.getOperatorId();
+
+ // 娣诲姞鐏屾簤璁″垝
IrIrrigatePlan plan = new IrIrrigatePlan();
plan.setProjectId(planAndSchedule.getProjectId());
plan.setPlanName(planAndSchedule.getPlanName());
- plan.setStartupMode(planAndSchedule.getStartupMode());
- plan.setPlanStartTime(planAndSchedule.getPlanStartTime());
- plan.setPlanStopTime(planAndSchedule.getPlanStopTime());
+ Byte startupMode = planAndSchedule.getStartupMode();
+ plan.setStartupMode(startupMode);
+ if(startupMode == 1){
+ plan.setDuration(planAndSchedule.getDuration());
+ }else if(startupMode == 2){
+ plan.setPlanStartTime(planAndSchedule.getPlanStartTime());
+ plan.setPlanStopTime(planAndSchedule.getPlanStopTime());
+ }
plan.setPlanState((byte)1);
plan.setExecutingState((byte)1);
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();
po.setPlanId(planId);
-
- if(planAndSchedule.getIrrigateType() == 1) {
- po.setGroupId(schedule.getIrrigateId());
- List<Long> intakesData = irrigatePlanSv.getIntakesByGroupId(schedule.getIrrigateId());
- if(intakesData != null && intakesData.size() > 0){
- String intakeIds = "";
- for(Long intakeId : intakesData){
- intakeIds += intakeId + ",";
- }
- po.setIntakeIds(intakeIds.substring(0, intakeIds.length() - 1));
- }
- }else {
- po.setUnitId(schedule.getIrrigateId());
- Long intakeId = irrigatePlanSv.getIntakeIdByUnitId(schedule.getIrrigateId());
- if(intakeId != null){
- po.setIntakeIds(intakeId.toString());
- }
+ po.setGroupId(schedule.getGroupId());
+ if(startupMode == 1){
+ po.setDuration(schedule.getDuration());
+ }else if(startupMode == 2){
+ po.setStartTime(schedule.getStartTime());
+ po.setStopTime(schedule.getStopTime());
}
-
- po.setStartTime(schedule.getStartTime());
- po.setStopTime(schedule.getStopTime());
- //po.setIntakeIds(schedule.getIntakeIds());
po.setCurrentState((byte)1);
+ List<Long> intakesData = irrigatePlanSv.getIntakesByGroupId(schedule.getGroupId());
+ if(intakesData != null && intakesData.size() > 0){
+ String intakeIds = "";
+ for(Long intakeId : intakesData){
+ intakeIds += intakeId + ",";
+ }
+ po.setIntakeIds(intakeIds.substring(0, intakeIds.length() - 1));
+ }
Long scheduleId = irrigatePlanSv.addIrrigateSchedule(po);
+ if(scheduleId == null) {
+ return BaseResponseUtils.buildErrorMsg("鍒涘缓鐏屾簤璁″垝澶辫触");
+ }
}
}
+ // 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍
+ 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.getPublishedCount(planId) > 0){
+ return BaseResponseUtils.buildErrorMsg("璇ョ亴婧夎鍒掑凡鍙戝竷");
+ }
+
+ // 淇敼鐏屾簤璁″垝鐘舵�佷负鍙戝竷鐘舵��
+ 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("娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍澶辫触");
+ }
+
+ /**
+ * 鐢熸垚寮�闃�璁″垝
+ * 璐ф湡璁″垝鍚姩妯″紡
+ */
+ // 鑾峰彇鐏屾簤璁″垝鍚姩妯″紡
+ Byte startupMode = irrigatePlanSv.getStartupMode(planId);
+ List<VoIrrigateSchedule> schedules = irrigatePlanSv.getIrrigateSchedules(startupMode, 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();
+ }
+
+ /**
+ * 鑾峰彇鐏屾簤璁″垝鍒楄〃
+ * @param vo
+ * @return
+ */
+ @GetMapping(path = "/getIrrigatePlans")
+ public BaseResponse<QueryResultVo<List<VoIrrigatePlan>>> getIrrigatePlans(QoIrrigatePlan vo) {
+ try {
+ QueryResultVo<List<VoIrrigatePlan>> res = irrigatePlanSv.getIrrigatePlans(vo);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鑾峰彇杞亴缁勮褰曞紓甯�", e);
+ return BaseResponseUtils.buildException(e.getMessage());
+ }
+ }
}
--
Gitblit v1.8.0