From 90276a76b56cc1e744f7fa68ce921a28a8a9c92f Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 08 一月 2025 11:52:10 +0800
Subject: [PATCH] 运行监控报表导出时间少一天问题

---
 ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml |  116 ++++++++++++++++++----------------------------------------
 1 files changed, 36 insertions(+), 80 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
index 6778a6d..589615f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
@@ -1,88 +1,44 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ycl.platform.mapper.DefaultResultMapper">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.platform.mapper.ContractResultMapper">
 
-    <resultMap type="com.ycl.platform.domain.entity.ContractResult" id="DefaultResultResult">
-        <result property="id"    column="id"    />
-        <result property="unitId"    column="unit_id"    />
-        <result property="publishId"    column="publish_id"    />
-        <result property="contractScore"    column="default_score"    />
-        <result property="auditState"    column="audit_state"    />
-        <result property="publish"    column="publish"    />
-        <result property="checkTime"    column="check_time"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="deleted"    column="deleted"    />
-    </resultMap>
 
-    <sql id="selectDefaultResultVo">
-        select id, unit_id, publish_id, default_score, audit_state, publish, check_time, update_time, deleted from t_contract_result
-    </sql>
-
-    <select id="selectDefaultResultList" resultMap="DefaultResultResult">
-        <include refid="selectDefaultResultVo"/>
+    <select id="selectCheckResultList" resultType="com.ycl.platform.domain.vo.ContractResultVO">
+        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
+        LEFT JOIN
+        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
+        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>
-            <if test="unitId != null "> and unit_id = #{unitId}</if>
-            <if test="publishId != null "> and publish_id = #{publishId}</if>
-            <if test="auditState != null "> and audit_state = #{auditState}</if>
-            <if test="publish != null "> and publish = #{publish}</if>
-            <if test="checkTime != null "> and check_time = #{checkTime}</if>
+        c.deleted = 0
+        <if test="unitId != null">
+            AND c.unit_id = #{unitId}
+        </if>
+        <if test="createStartTime != null">
+            AND c.check_time BETWEEN #{createStartTime} AND #{createEndTime}
+        </if>
+        <if test="publish != null">
+            AND c.publish = #{publish}
+        </if>
         </where>
+        GROUP BY c.id
     </select>
 
-    <select id="selectDefaultResultById" resultMap="DefaultResultResult">
-        <include refid="selectDefaultResultVo"/>
-        where id = #{id}
+    <select id="selectCheckResultRecordList" resultType="com.ycl.platform.domain.entity.ContractResultRecord">
+        SELECT
+            a.rule_name,
+            COUNT(b.id) AS num,
+            IFNULL(-SUM(b.score), 0) AS score
+        FROM t_calculate_rule a
+            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>
-
-    <insert id="insertDefaultResult"  useGeneratedKeys="true" keyProperty="id">
-        insert into t_contract_result
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="unitId != null">unit_id,</if>
-            <if test="publishId != null">publish_id,</if>
-            <if test="contractScore != null">default_score,</if>
-            <if test="auditState != null">audit_state,</if>
-            <if test="publish != null">publish,</if>
-            <if test="checkTime != null">check_time,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="deleted != null">deleted,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="unitId != null">#{unitId},</if>
-            <if test="publishId != null">#{publishId},</if>
-            <if test="contractScore != null">#{contractScore},</if>
-            <if test="auditState != null">#{auditState},</if>
-            <if test="publish != null">#{publish},</if>
-            <if test="checkTime != null">#{checkTime},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="deleted != null">#{deleted},</if>
-         </trim>
-    </insert>
-
-    <update id="updateDefaultResult" >
-        update t_contract_result
-        <trim prefix="SET" suffixOverrides=",">
-            <if test="unitId != null">unit_id = #{unitId},</if>
-            <if test="publishId != null">publish_id = #{publishId},</if>
-            <if test="contractScore != null">default_score = #{contractScore},</if>
-            <if test="auditState != null">audit_state = #{auditState},</if>
-            <if test="publish != null">publish = #{publish},</if>
-            <if test="checkTime != null">check_time = #{checkTime},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
-            <if test="deleted != null">deleted = #{deleted},</if>
-        </trim>
-        where id = #{id}
-    </update>
-
-    <delete id="deleteDefaultResultById">
-        delete from t_contract_result where id = #{id}
-    </delete>
-
-    <delete id="deleteDefaultResultByIds" >
-        delete from t_contract_result where id in
-        <foreach item="id" collection="array" open="(" separator="," close=")">
-            #{id}
-        </foreach>
-    </delete>
 </mapper>

--
Gitblit v1.8.0