pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java
@@ -93,4 +93,11 @@ * @return */ VoPlanDetails getPlanDetails(@Param("planId") Long planId); /** * 根据计划ID获取计划状态,用于判断是否可以删除计划 * @param planId * @return */ Integer getPlanState(@Param("planId") Long planId); } pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -354,4 +354,13 @@ AND plan.deleted = 0 </select> <!--根据计划ID获取计划状态,用于判断是否可以删除计划--> <select id="getPlanState" resultType="java.lang.Integer"> SELECT plan_state FROM ir_irrigate_plan WHERE id = #{planId} AND deleted = 0 </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
@@ -31,6 +31,7 @@ import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; /** @@ -162,6 +163,25 @@ } /** * 删除灌溉计划 * @param planSimple * @param bindingResult * @return */ @PostMapping(path = "deletePlan") public BaseResponse<Boolean> deletePlan(@RequestBody @Valid PlanSimple planSimple, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } Map map_result = irrigatePlanSv.deletePlan(planSimple); if(map_result.get("success").equals(false)) { return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); } return BaseResponseUtils.buildSuccess() ; } /** * 发布灌溉计划 * 1. 修改灌溉计划状态为发布状态 * 2. 添加灌溉计划操作记录 @@ -289,39 +309,37 @@ } List<VoToTerminateIntakes> toTerminateIntakes = irrigatePlanSv.getToTerminateIntakes(planId); if(toTerminateIntakes == null || toTerminateIntakes.size() == 0){ return BaseResponseUtils.buildErrorMsg("该计划不存在或已终止"); } if(toTerminateIntakes != null && toTerminateIntakes.size() > 0){ for(VoToTerminateIntakes toTerminateIntake : toTerminateIntakes){ Long intakeId = toTerminateIntake.getIntakeId(); Long commandId = toTerminateIntake.getCommandId(); Date startTime = toTerminateIntake.getStartTime(); Date currentTime = new Date(); if(currentTime.before(startTime)){ // 取消(覆盖开阀计划) AutomaticClose automaticClose = new AutomaticClose(); automaticClose.setIntakeId(intakeId); automaticClose.setPlannedOpenTime(terminateStartTime); automaticClose.setMinutes(terminateDuration); automaticClose.setOperator(operatorId); automaticClose.setOpenType(Byte.valueOf("1")); for(VoToTerminateIntakes toTerminateIntake : toTerminateIntakes){ Long intakeId = toTerminateIntake.getIntakeId(); Long commandId = toTerminateIntake.getCommandId(); Date startTime = toTerminateIntake.getStartTime(); Date currentTime = new Date(); if(currentTime.before(startTime)){ // 取消(覆盖开阀计划) AutomaticClose automaticClose = new AutomaticClose(); automaticClose.setIntakeId(intakeId); automaticClose.setPlannedOpenTime(terminateStartTime); automaticClose.setMinutes(terminateDuration); automaticClose.setOperator(operatorId); automaticClose.setOpenType(Byte.valueOf("1")); commandSv.planedOpenTimedClose(automaticClose, planId, (byte)2, terminateStartTime, terminateDuration); }else { // 终止(远程关阀) VoIntakeVc intakeVc = irrigatePlanSv.getValveOpen(commandId); String rtuAddr = intakeVc.getRtuAddr(); String vcNum = intakeVc.getVcNum(); String orderNo = intakeVc.getOrderNo(); commandSv.planedOpenTimedClose(automaticClose, planId, (byte)2, terminateStartTime, terminateDuration); }else { // 终止(远程关阀) VoIntakeVc intakeVc = irrigatePlanSv.getValveOpen(commandId); String rtuAddr = intakeVc.getRtuAddr(); String vcNum = intakeVc.getVcNum(); String orderNo = intakeVc.getOrderNo(); ValveClose valveClose = new ValveClose(); valveClose.setRtuAddr(rtuAddr); valveClose.setVcNum(vcNum); valveClose.setOrderNo(orderNo); valveClose.setOperator(operatorId); valveClose.setOpenType(Byte.valueOf("1")); commandSv.closeWx(valveClose, planId, (byte)3); ValveClose valveClose = new ValveClose(); valveClose.setRtuAddr(rtuAddr); valveClose.setVcNum(vcNum); valveClose.setOrderNo(orderNo); valveClose.setOperator(operatorId); valveClose.setOpenType(Byte.valueOf("1")); commandSv.closeWx(valveClose, planId, (byte)3); } } } pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
@@ -3,6 +3,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pipIrrGlobal.daoIr.*; import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper; import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; @@ -11,13 +12,17 @@ import com.dy.pipIrrGlobal.pojoIr.IrPlanSchedule; import com.dy.pipIrrGlobal.voIr.*; import com.dy.pipIrrGlobal.voRm.VoIntakeVc; import com.dy.pipIrrWechat.irrigatePlan.dto.PlanSimple; import com.dy.pipIrrWechat.irrigatePlan.enums.OperateTypeENUM; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin @@ -70,6 +75,55 @@ } /** * 删除灌溉计划 * @param planSimple * @return */ public Map deletePlan(PlanSimple planSimple) { Long planId = planSimple.getPlanId(); Long operatorId = planSimple.getOperatorId(); Integer planState = irrigatePlanMapper.getPlanState(planId); if(planState == null) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "灌溉计划不存在"); map.put("content", null); return map; } if(planState != 1) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "灌溉计划非草稿状态,不允许删除"); map.put("content", null); return map; } try { irrigatePlanMapper.deleteByPrimaryKey(planId); // 添加灌溉计划操作记录 IrPlanOperate planOperate = new IrPlanOperate(); planOperate.setPlanId(planId); planOperate.setOperator(operatorId); planOperate.setOperateType(OperateTypeENUM.DELETE.getCode()); planOperate.setOperateTime(new Date()); addPlanOperate(planOperate); Map map = new HashMap<>(); map.put("success", true); map.put("msg", "灌溉项目删除成功"); map.put("content", null); return map; } catch (Exception e) { Map map = new HashMap<>(); map.put("success", false); map.put("msg", "灌溉项目删除失败"); map.put("content", null); return map; } } /** * 根据计划ID获取待终止计划的结束时间:未删除、未终止、已发布、当前时间小于计划结束时间 * @param planId * @return pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/enums/OperateTypeENUM.java
@@ -18,7 +18,8 @@ PUBLISH((byte)2, "发布"), EXECUTE((byte)3, "执行"), SUSPEND((byte)4, "暂停"), TERMINATE((byte)5, "终止"); TERMINATE((byte)5, "终止"), DELETE((byte)6, "删除"); private final Byte code; private final String message;