From 742b6bbac1b4609386817a6e6fb489ec098a5490 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 21 一月 2025 18:29:44 +0800
Subject: [PATCH] 重构获取分水房详情接口
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml | 56 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 45 insertions(+), 11 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
index 9e2a155..2c29293 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
@@ -224,28 +224,35 @@
ord.complete_time AS completeTime,
ord.dispatch_time AS dispatchTime,
ord.reject_times AS rejectTimes,
+ res.id AS proResultId,
+ IFNULL(res.state,0) AS proResultStateId,
CASE
WHEN ord.state = 1 THEN '鏈畬鎴�'
WHEN ord.state = 2 THEN '宸插畬鎴�'
END AS state,
CASE
- WHEN res.state = 1 THEN '宸蹭笂鎶�'
+ WHEN IFNULL(res.state,0) = 0 THEN '鏈笂鎶�'
+ WHEN res.state = 1 THEN '寰呭鏍�'
WHEN res.state = 2 THEN '宸查�氳繃'
- WHEN res.state = 3 THEN '宸查┏鍥�'
+ WHEN res.state = 3 THEN '琚┏鍥�'
ELSE '鏈笂鎶�'
END AS processingState
FROM ope_work_order ord
INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id
INNER JOIN ba_user us2 ON us2.id = ord.inspector_id
INNER JOIN ope_task_type typ ON typ.id = ord.task_type_id
- LEFT JOIN ope_processing_result res ON res.work_order_id = ord.id
+ LEFT JOIN (SELECT * FROM `ope_processing_result` WHERE deleted = 0) res ON res.work_order_id = ord.id
WHERE ord.deleted = 0 AND ord.id = #{workOrderId}
</select>
- <!--鑾峰彇鎸囧畾娲惧崟浜虹殑鎸囧畾鏈垹闄ゅ伐鍗曪紝鍒犻櫎宸ュ崟鍓嶅垽鏂娇鐢ㄤ娇鐢�-->
+ <!--鑾峰彇鎸囧畾娲惧崟浜虹殑銆佹湭涓婃姤鐨勬寚瀹氭湭鍒犻櫎宸ュ崟锛屽垹闄ゅ伐鍗曞墠鍒ゆ柇浣跨敤浣跨敤-->
<select id="getWorkOrder" resultType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder">
- SELECT * FROM ope_work_order
- WHERE deleted = 0 AND id = #{workOrderId} AND dispatcher_id = #{dispatcherId} LIMIT 1
+ SELECT
+ *
+ FROM ope_work_order ord
+ WHERE deleted = 0
+ AND NOT EXISTS(SELECT * FROM ope_processing_result res WHERE res.work_order_id = ord.id)
+ AND id = #{workOrderId} AND dispatcher_id = #{dispatcherId} LIMIT 1
</select>
<!--閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫伐鍗�-->
@@ -261,9 +268,17 @@
INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id
INNER JOIN ba_user us2 ON us2.id = ord.inspector_id
INNER JOIN ope_task_type typ ON typ.id = ord.task_type_id
- LEFT JOIN ope_processing_result res ON res.work_order_id = ord.id
+ LEFT JOIN (SELECT * FROM `ope_processing_result` WHERE deleted = 0) res ON res.work_order_id = ord.id
<where>
AND ord.deleted = 0
+
+ <if test = "dispatcherId != null">
+ AND ord.dispatcher_id = #{dispatcherId}
+ </if>
+
+ <if test = "inspectorId != null">
+ AND ord.inspector_id = #{inspectorId}
+ </if>
<if test = "dispatcher != null and dispatcher !=''">
AND us1.name like CONCAT('%',#{dispatcher},'%')
@@ -271,6 +286,10 @@
<if test = "inspector != null and inspector !=''">
AND us2.name like CONCAT('%',#{inspector},'%')
+ </if>
+
+ <if test = "state != null">
+ AND ord.state = #{state}
</if>
<if test = "timeStart != null and timeStop != null">
@@ -295,23 +314,34 @@
ord.complete_time AS completeTime,
ord.dispatch_time AS dispatchTime,
ord.reject_times AS rejectTimes,
+ IFNULL(res.state,0) AS proResultStateId,
CASE
WHEN ord.state = 1 THEN '鏈畬鎴�'
WHEN ord.state = 2 THEN '宸插畬鎴�'
END AS state,
CASE
- WHEN res.state = 1 THEN '宸蹭笂鎶�'
+ WHEN IFNULL(res.state,0) = 0 THEN '鏈笂鎶�'
+ WHEN res.state = 1 THEN '寰呭鏍�'
WHEN res.state = 2 THEN '宸查�氳繃'
- WHEN res.state = 3 THEN '宸查┏鍥�'
+ WHEN res.state = 3 THEN '琚┏鍥�'
ELSE '鏈笂鎶�'
- END AS processingState
+ END AS processingState,
+ res.id AS proResultId
FROM ope_work_order ord
INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id
INNER JOIN ba_user us2 ON us2.id = ord.inspector_id
INNER JOIN ope_task_type typ ON typ.id = ord.task_type_id
- LEFT JOIN ope_processing_result res ON res.work_order_id = ord.id
+ LEFT JOIN (SELECT * FROM `ope_processing_result` WHERE deleted = 0) res ON res.work_order_id = ord.id
<where>
AND ord.deleted = 0
+
+ <if test = "dispatcherId != null">
+ AND ord.dispatcher_id = #{dispatcherId}
+ </if>
+
+ <if test = "inspectorId != null">
+ AND ord.inspector_id = #{inspectorId}
+ </if>
<if test = "dispatcher != null and dispatcher !=''">
AND us1.name like CONCAT('%',#{dispatcher},'%')
@@ -321,6 +351,10 @@
AND us2.name like CONCAT('%',#{inspector},'%')
</if>
+ <if test = "state != null">
+ AND ord.state = #{state}
+ </if>
+
<if test = "timeStart != null and timeStop != null">
AND ord.dispatch_time BETWEEN #{timeStart} AND #{timeStop}
</if>
--
Gitblit v1.8.0