From b375247a32664d3d1a37d735180f25ca8f5aedf7 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 03 三月 2025 10:05:46 +0800 Subject: [PATCH] 灌溉模块功能升级 --- 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