From b4bc05b29aa6d71072efdf39caf1808b4e69eca4 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 26 三月 2025 11:04:11 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java | 207 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 127 insertions(+), 80 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 e2ef8ec..4ef7508 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,26 +2,28 @@ 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.pojoIr.*; import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule; +import com.dy.pipIrrGlobal.voIr.VoPlanSimple; +import com.dy.pipIrrWechat.command.CommandSv; +import com.dy.pipIrrWechat.command.dto.AutomaticClose; 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.*; +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 java.time.LocalDateTime; +import java.time.ZoneId; import java.util.Date; import java.util.List; import java.util.Objects; @@ -39,6 +41,7 @@ @RequiredArgsConstructor public class IrrigatePlanCtrl { private final IrrigatePlanSv irrigatePlanSv; + private final CommandSv commandSv; /** * 鍒涘缓鐏屾簤璁″垝 @@ -57,19 +60,30 @@ } Long operatorId = planAndSchedule.getOperatorId(); - - // 娣诲姞鐏屾簤璁″垝 - IrIrrigatePlan plan = new IrIrrigatePlan(); - plan.setProjectId(planAndSchedule.getProjectId()); - plan.setPlanName(planAndSchedule.getPlanName()); 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()); + Date planStartTime = planAndSchedule.getPlanStartTime();; + Date planStopTime = null; + + Integer duration = 0; + for(IrrigateSchedule schedule : planAndSchedule.getSchedules()){ + duration = duration + schedule.getDuration(); } + + //if(startupMode == 1){ + // planStartTime = new Date(); + //} + //LocalDateTime startTime = planStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); + //startTime = startTime.plusMinutes(5); + //planStartTime = Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()); + //LocalDateTime stopTime = startTime.plusMinutes(duration); + //planStopTime = Date.from(stopTime.atZone(ZoneId.systemDefault()).toInstant()); + + IrIrrigatePlan plan = new IrIrrigatePlan(); + plan.setPlanName(planAndSchedule.getPlanName()); + plan.setStartupMode(startupMode); + plan.setPlanStartTime(planStartTime); + //plan.setPlanStopTime(planStopTime); + plan.setDuration(duration); plan.setPlanState((byte)1); plan.setExecutingState((byte)1); plan.setDeleted(0L); @@ -79,32 +93,38 @@ return BaseResponseUtils.buildErrorMsg("鍒涘缓鐏屾簤璁″垝澶辫触"); } - // 娣诲姞鐏屾簤娆″簭 - if(planId != null){ - for(IrrigateSchedule schedule : planAndSchedule.getSchedules()){ - IrIrrigateSchedule po = new IrIrrigateSchedule(); - po.setPlanId(planId); - po.setGroupId(schedule.getGroupId()); - if(startupMode == 1){ - po.setDuration(schedule.getDuration()); - }else if(startupMode == 2){ - po.setStartTime(schedule.getStartTime()); - po.setStopTime(schedule.getStopTime()); - } - 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("鍒涘缓鐏屾簤璁″垝澶辫触"); - } + // 娣诲姞鐏屾簤娆″簭鍙婅鍒掓搴忓叧鑱旇〃 + //Date scheduleStartTime = null; + Integer sort = 0; + for(IrrigateSchedule schedule : planAndSchedule.getSchedules()){ + IrIrrigateSchedule po = new IrIrrigateSchedule(); + po.setGroupId(schedule.getGroupId()); + + //if(scheduleStartTime == null) { + // scheduleStartTime = planStartTime; + //} + //po.setStartTime(scheduleStartTime); + //// 璁$畻涓嬩竴缁勭殑寮�濮嬫椂闂� + //LocalDateTime LocalscheduleStartTime = scheduleStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); + //LocalscheduleStartTime = LocalscheduleStartTime.plusMinutes(schedule.getDuration()); + //scheduleStartTime = Date.from(LocalscheduleStartTime.atZone(ZoneId.systemDefault()).toInstant()); + + po.setDuration(schedule.getDuration()); + po.setCurrentState((byte)1); + Long scheduleId = irrigatePlanSv.addIrrigateSchedule(po); + if(scheduleId == null) { + return BaseResponseUtils.buildErrorMsg("鍒涘缓鐏屾簤璁″垝澶辫触"); } + + IrPlanSchedule planSchedule = new IrPlanSchedule(); + planSchedule.setPlanId(planId); + planSchedule.setScheduleId(scheduleId); + planSchedule.setSort(sort++); + Long planScheduleId = irrigatePlanSv.addPlanSchedule(planSchedule); + if(planScheduleId == null) { + return BaseResponseUtils.buildErrorMsg("鍒涘缓鐏屾簤璁″垝澶辫触"); + } + } // 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍 @@ -135,16 +155,51 @@ 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("璇ョ亴婧夎鍒掑凡鍙戝竷"); + /** + * 鑾峰彇鐏屾簤璁″垝淇℃伅 + * 鏇存柊鐏屾簤璁″垝璧锋鏃堕棿鍙婅鍒掔姸鎬� + */ + VoPlanSimple plan = irrigatePlanSv.getPlanSimple(planId); + if(plan == null){ + return BaseResponseUtils.buildErrorMsg("鎮ㄨ鍙戝竷鐨勮鍒掍笉瀛樺湪锛屾垨璇ヨ鍒掑凡鍙戝竷"); } - // 淇敼鐏屾簤璁″垝鐘舵�佷负鍙戝竷鐘舵�� - if(irrigatePlanSv.publishIrrigatePlan(planId) == 0){ - return BaseResponseUtils.buildErrorMsg("淇敼鐏屾簤璁″垝鐘舵�佸け璐�"); + Byte startupMode = plan.getStartupMode(); + Integer duration = plan.getDuration(); + Date planStartTime = plan.getPlanStartTime(); + Date planStopTime = null; + + if(startupMode == 1){ + planStartTime = new Date(); + } + LocalDateTime startTime = planStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); + startTime = startTime.plusMinutes(5); + planStartTime = Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()); + LocalDateTime stopTime = startTime.plusMinutes(duration); + planStopTime = Date.from(stopTime.atZone(ZoneId.systemDefault()).toInstant()); + + if(irrigatePlanSv.updatePlanTimes(planStartTime, planStopTime, planId) == 0) { + return BaseResponseUtils.buildErrorMsg("璁″垝淇℃伅鏇存柊澶辫触"); + } + + // 鏇存柊姣忎釜鐏屾簤娆″簭鐨勫紑濮嬫椂闂� + List<VoIrrigateSchedule> schedules = irrigatePlanSv.getSchedulesByPlanId(planId); + Date scheduleStartTime = null; + Integer sort = 0; + for(VoIrrigateSchedule schedule : schedules){ + if(scheduleStartTime == null) { + scheduleStartTime = planStartTime; + } + irrigatePlanSv.updateScheduleStartTime(schedule.getScheduleId(), scheduleStartTime); + + // 璁$畻涓嬩竴缁勭殑寮�濮嬫椂闂� + LocalDateTime LocalscheduleStartTime = scheduleStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); + LocalscheduleStartTime = LocalscheduleStartTime.plusMinutes(schedule.getDuration()); + scheduleStartTime = Date.from(LocalscheduleStartTime.atZone(ZoneId.systemDefault()).toInstant()); } // 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍 @@ -157,30 +212,22 @@ return BaseResponseUtils.buildErrorMsg("娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍澶辫触"); } - /** - * 鐢熸垚寮�闃�璁″垝 - * 璐ф湡璁″垝鍚姩妯″紡 - */ - // 鑾峰彇鐏屾簤璁″垝鍚姩妯″紡 - Byte startupMode = irrigatePlanSv.getStartupMode(planId); - List<VoIrrigateSchedule> schedules = irrigatePlanSv.getIrrigateSchedules(startupMode, planId); - if(schedules == null || schedules.size() == 0) { - return BaseResponseUtils.buildErrorMsg("鏃犲彇姘村彛锛岀敓鎴愬紑闃�璁″垝澶辫触"); - } + schedules = irrigatePlanSv.getSchedulesByPlanId(planId); + for(VoIrrigateSchedule schedule : schedules) { + Long groupId = schedule.getGroupId(); + List<Long> intakeIds = irrigatePlanSv.getIntakeIdsByGroupId(groupId); + for(Long intakeId : intakeIds) { + AutomaticClose automaticClose = new AutomaticClose(); + automaticClose.setIntakeId(intakeId); + automaticClose.setPlannedOpenTime(schedule.getStartTime()); + automaticClose.setMinutes(schedule.getDuration()); + automaticClose.setOperator(operatorId); + automaticClose.setOpenType(Byte.valueOf("1")); - 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("娣诲姞寮�闃�璁″垝澶辫触"); - } + commandSv.planedOpenTimedClose(automaticClose, schedule.getStartTime(), schedule.getDuration()); } } + return BaseResponseUtils.buildSuccess(); } @@ -189,14 +236,14 @@ * @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()); - } - } + //@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