From 80e22bcc7af8aebed7443965655542fbe4966708 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期三, 09 四月 2025 15:11:55 +0800 Subject: [PATCH] 灌溉计划删除,所有命令发布都失败依然允许终止 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java | 7 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml | 9 +++ pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java | 80 ++++++++++++++++---------- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/enums/OperateTypeENUM.java | 3 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java | 54 ++++++++++++++++++ 5 files changed, 121 insertions(+), 32 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java index 2168dfe..c6f6114 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java +++ b/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); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml index 001c930..b87e5ce 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml +++ b/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> \ No newline at end of file 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 1727a53..0fc14c5 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 @@ -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); + } } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java index 0fdabce..8c0e998 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java +++ b/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 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/enums/OperateTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/enums/OperateTypeENUM.java index c3b8965..1dbd6e6 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/enums/OperateTypeENUM.java +++ b/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; -- Gitblit v1.8.0