zxl
2025-06-24 3b0516a2959e25576e4f3fda697a3b025d06c8c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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.ContractResultMapper">
 
 
    <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>
        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="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>
</mapper>