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