From 70b2c7a1f5b54cf9157d8fce4d6a9b0f2fadaebe Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期二, 15 四月 2025 17:13:28 +0800 Subject: [PATCH] 获取终止操作结果 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java | 8 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java | 10 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java | 8 ++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml | 18 ++++++ pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java | 1 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrPlanOperateMapper.java | 9 +++ pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java | 20 ++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml | 2 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml | 19 ++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrPlanOperateMapper.xml | 5 + pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java | 36 +++++++++++ 11 files changed, 133 insertions(+), 3 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java index 829e58a..d4b1a79 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java @@ -4,7 +4,9 @@ import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup; import com.dy.pipIrrGlobal.voIr.*; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; import java.util.Map; @@ -77,4 +79,12 @@ * @return */ List<VoGroupResult> getGroupResult(Long planId); + + /** + * 鏍规嵁鐏屾簤璁″垝ID鑾峰彇杞亴缁勭粓姝㈢粨鏋� + * @param planId + * @param terminateTime + * @return + */ + List<VoGroupResult> getGroupResult_terminate(@Param("planId") Long planId, @Param("terminateTime") Date terminateTime); } \ No newline at end of file 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 896603a..4725152 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 @@ -102,6 +102,14 @@ VoPlanDetails getPlanDetails(@Param("planId") Long planId); /** + * 鏍规嵁璁″垝ID鑾峰彇宸茬粓姝㈣鍒掔殑璇︽儏锛岀粨鏉熸椂闂翠负瀹為檯缁堟鏃堕棿 + * @param planId + * @param terminateTime + * @return + */ + VoPlanDetails getPlanDetails_terminate(@Param("planId") Long planId, @Param("terminateTime") Date terminateTime); + + /** * 鏍规嵁璁″垝ID鑾峰彇璁″垝鐘舵�侊紝鐢ㄤ簬鍒ゆ柇鏄惁鍙互鍒犻櫎璁″垝 * @param planId * @return diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrPlanOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrPlanOperateMapper.java index e945a18..5817fec 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrPlanOperateMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrPlanOperateMapper.java @@ -4,6 +4,8 @@ import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate; import org.apache.ibatis.annotations.Mapper; +import java.util.Date; + /** * @author ZhuBaoMin * @date 2025-02-21 11:11 @@ -24,4 +26,11 @@ int updateByPrimaryKeySelective(IrPlanOperate record); int updateByPrimaryKey(IrPlanOperate record); + + /** + * 鏍规嵁璁″垝ID鑾峰彇缁堟鏃堕棿 + * @param planId + * @return + */ + Date getTerminateTime(Long planId); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java index fafbffa..ed2fd95 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java @@ -15,7 +15,7 @@ */ @Data -@JsonPropertyOrder({"planName", "projectName", "state", "planStartTime", "planStopTime", "failureCount", "groups"}) +@JsonPropertyOrder({"planName", "projectName", "state", "planStartTime", "planStopTime", "realStopTime", "failureCount", "groups"}) public class VoPlanDetails { private static final long serialVersionUID = 202504091125001L; @@ -47,6 +47,12 @@ private Date planStopTime; /** + * 瀹為檯缁撴潫鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date realStopTime; + + /** * 鍛戒护鍙戝竷澶辫触鏁伴噺 */ private Integer failureCount; diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml index e953e95..cf9d2c9 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml @@ -187,7 +187,7 @@ io.failure_factors AS result FROM ir_intake_operate io inner JOIN ir_group_intake gi ON gi.intake_id = io.intake_id - WHERE io.plan_id = #{planId} AND gi.group_id = #{groupId}; + WHERE io.plan_id = #{planId} AND gi.group_id = #{groupId} AND operate_type = 1; </select> <!--鏍规嵁璁″垝ID鑾峰彇鍙栨按鍙e懡浠ゅ彂甯冨け璐ユ暟閲忥紝鐏屾簤璁″垝璇︽儏椤典娇鐢�--> diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml index 059fcf8..d127b5d 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml @@ -307,5 +307,24 @@ INNER JOIN ir_irrigate_schedule sche ON sche.group_id = grp.id INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sche.id WHERE ps.plan_id = #{planId}; + + </select> + + <!--鏍规嵁鐏屾簤璁″垝ID鑾峰彇杞亴缁勭粓姝㈢粨鏋�--> + <select id="getGroupResult_terminate" resultType="com.dy.pipIrrGlobal.voIr.VoGroupResult"> + SELECT + grp.id AS groupId, + grp.group_code AS groupCode, + IF(#{terminateTime} < sche.start_time, 6, + IF(#{terminateTime} < DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), 5, 4)) AS state, + IF(#{terminateTime} > sche.start_time, sche.start_time, NULL) AS startTime, + IF(#{terminateTime} > DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), + IF(#{terminateTime} > sche.start_time, #{terminateTime}, NULL)) AS stopTime, + sche.duration, + NULL AS publishResult + FROM ir_irrigate_group grp + INNER JOIN ir_irrigate_schedule sche ON sche.group_id = grp.id + INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sche.id + WHERE ps.plan_id = #{planId} </select> </mapper> \ 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 449f82d..94e29d9 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml @@ -369,6 +369,24 @@ AND plan.deleted = 0 </select> + <!--鏍规嵁璁″垝ID鑾峰彇宸茬粓姝㈣鍒掔殑璇︽儏锛岀粨鏉熸椂闂翠负瀹為檯缁堟鏃堕棿--> + <select id="getPlanDetails_terminate" resultType="com.dy.pipIrrGlobal.voIr.VoPlanDetails"> + SELECT + plan.plan_name AS planName, + pro.project_name AS projectName, + IF(#{terminateTime} < plan.plan_start_time, 6, + IF(#{terminateTime} < plan.plan_stop_time, 5, 4)) AS state, + plan.plan_start_time AS planStartTime, + plan.plan_stop_time AS planStopTime, + #{terminateTime} AS realStopTime, + NULL AS groupDetails, + NULL AS failureCount + FROM ir_irrigate_plan plan + INNER JOIN ir_project pro ON pro.id = plan.project_id + WHERE plan.id =2025041515194900009 + AND plan.deleted = 0 + </select> + <!--鏍规嵁璁″垝ID鑾峰彇璁″垝鐘舵�侊紝鐢ㄤ簬鍒ゆ柇鏄惁鍙互鍒犻櫎璁″垝--> <select id="getPlanState" resultType="java.lang.Integer"> SELECT diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrPlanOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrPlanOperateMapper.xml index f7d1670..ffa361c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrPlanOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrPlanOperateMapper.xml @@ -99,4 +99,9 @@ operate_time = #{operateTime,jdbcType=TIMESTAMP} where id = #{id,jdbcType=BIGINT} </update> + + <!--鏍规嵁璁″垝ID鑾峰彇缁堟鏃堕棿--> + <select id="getTerminateTime" resultType="java.util.Date"> + SELECT operate_time AS operateTime FROM ir_plan_operate WHERE operate_type = 5 AND plan_id = #{planId} LIMIT 0,1 + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java index 26e45fb..9b390ec 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java @@ -718,6 +718,7 @@ irIntakeOperate.setOperateType(operatetype); irIntakeOperate.setCommandId(comId); irIntakeOperate.setIntakeId(intakeId); + irIntakeOperate.setCommandResult((byte)1); Long id = addIntakeOperate(irIntakeOperate); if(id == null) { 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 ffd55e9..2b7b88c 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 @@ -418,4 +418,24 @@ return BaseResponseUtils.buildException(e.getMessage()); } } + + /** + * 鏍规嵁璁″垝ID鑾峰彇璁″垝缁堟鎿嶄綔缁撴灉 + * @param planId + * @return + */ + @GetMapping(path = "/getTerminateResults") + public BaseResponse<VoPlanDetails> getTerminateResults(@RequestParam Long planId) { + if(planId == null) { + return BaseResponseUtils.buildErrorMsg("璁″垝ID涓嶈兘涓虹┖"); + } + + try { + VoPlanDetails res = irrigatePlanSv.getTerminateResults(planId); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇璁″垝鍙戝竷缁撴灉寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + } } 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 abb4064..faebbfc 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 @@ -348,10 +348,11 @@ if(planDetails == null){ return null; } - Integer failureCount = Optional.ofNullable(irIntakeOperateMapper.getFailureCount(planId)).orElse(0); planDetails.setFailureCount(failureCount); + Date terminateTime = Optional.ofNullable(irPlanOperateMapper.getTerminateTime(planId)).orElse(null); + List<VoGroupResult> groupResults = irIrrigateGroupMapper.getGroupResult(planId); if(groupResults == null || groupResults.size() == 0){ return null; @@ -368,4 +369,37 @@ return planDetails; } + + /** + * 鏍规嵁璁″垝ID鑾峰彇璁″垝缁堟鎿嶄綔缁撴灉 + * @param planId + * @return + */ + public VoPlanDetails getTerminateResults(Long planId) { + // 鑾峰彇璁″垝缁堟鏃堕棿 + Date terminateTime = Optional.ofNullable(irPlanOperateMapper.getTerminateTime(planId)).orElse(null); + + VoPlanDetails planDetails = irrigatePlanMapper.getPlanDetails_terminate(planId, terminateTime); + if(planDetails == null){ + return null; + } + Integer failureCount = Optional.ofNullable(irIntakeOperateMapper.getFailureCount(planId)).orElse(0); + planDetails.setFailureCount(failureCount); + + List<VoGroupResult> groupResults = irIrrigateGroupMapper.getGroupResult_terminate(planId, terminateTime); + if(groupResults == null || groupResults.size() == 0){ + return null; + } + + for (VoGroupResult groupResult : groupResults) { + List<VoIntakeResult> intakeResults = irIntakeOperateMapper.getIntakeResult(planId, groupResult.getGroupId()); + if(intakeResults != null) { + groupResult.setPublishResult(intakeResults); + } + } + + planDetails.setGroups(groupResults); + return planDetails; + + } } -- Gitblit v1.8.0