From 1f19230e00b543b58f03853df1a38ebd8b508e55 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期五, 21 二月 2025 16:55:01 +0800 Subject: [PATCH] 发布灌溉计划并生成开阀计划 --- 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