zxl
2025-04-30 2f3bbf0372e5c1f8b6b1426db2c14b3595cb0968
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>