From e23edcf2619ad46fd77a710fca6c21de78234bc0 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 07 一月 2025 17:33:06 +0800
Subject: [PATCH] 核算重构完成

---
 ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
index 2206157..589615f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
@@ -4,7 +4,8 @@
 
 
     <select id="selectCheckResultList" resultType="com.ycl.platform.domain.vo.ContractResultVO">
-        SELECT c.*,
+        SELECT c.id,c.publish,c.contract_id,c.check_time,c.unit_id,c.which_year,c.which_month,
+        (IFNULL(-SUM(b.score), 0) + 100) AS score,
         u.unit_name AS unitName,
         ct.name AS contractName
         FROM t_contract_result c
@@ -12,7 +13,8 @@
         t_yw_unit u ON c.unit_id = u.id and u.deleted = 0
         LEFT JOIN
         t_contract ct ON c.contract_id = ct.id and ct.deleted = 0
-        where
+        LEFT JOIN t_contract_score b ON b.contract_id = c.contract_id AND auditing_status = 'PASS' AND b.deleted = 0  AND MONTH(b.create_time) = c.which_month AND YEAR(b.create_time) = c.which_year
+        <where>
         c.deleted = 0
         <if test="unitId != null">
             AND c.unit_id = #{unitId}
@@ -23,16 +25,20 @@
         <if test="publish != null">
             AND c.publish = #{publish}
         </if>
+        </where>
+        GROUP BY c.id
     </select>
 
     <select id="selectCheckResultRecordList" resultType="com.ycl.platform.domain.entity.ContractResultRecord">
         SELECT
             a.rule_name,
             COUNT(b.id) AS num,
-            IFNULL(-SUM(score), 0) AS score
+            IFNULL(-SUM(b.score), 0) AS score
         FROM t_calculate_rule a
-                LEFT JOIN t_contract_result_record b ON SUBSTRING_INDEX(b.rule_ids, ',', -1) = a.id AND b.deleted = 0  AND b.result_id = #{resultId}
-        WHERE a.contract_id = #{contractId} AND a.deleted = 0
+            LEFT JOIN t_contract_result tcr on a.contract_id = tcr.contract_id AND tcr.id = #{resultId}
+            LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0  AND MONTH(b.create_time) = tcr.which_month AND YEAR(b.create_time) = tcr.which_year
+        WHERE
+        a.contract_id = #{contractId} AND a.deleted = 0
         GROUP BY a.rule_name
     </select>
 </mapper>

--
Gitblit v1.8.0