fuliqi
2025-01-08 90276a76b56cc1e744f7fa68ce921a28a8a9c92f
ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
@@ -3,34 +3,39 @@
<mapper namespace="com.ycl.platform.mapper.CalculateRecordMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CalculateRecordVO">
    <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CalculateReportDetailVO">
        <result column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="rule_id" property="ruleId" />
        <result column="rule_name" property="ruleName" />
        <result column="deduct_category" property="deductCategory" />
        <result column="rule_condition" property="ruleCondition" />
        <result column="rule_desc" property="ruleDesc" />
        <result column="deduct_category" property="unitName" />
        <result column="score_condition" property="contractName" />
        <result column="description" property="calculateTime" />
        <result column="deduct_money" property="deductMoney" />
        <result column="score" property="score" />
        <result column="score" property="deductMoney" />
        <collection property="recordList" column="contract_id" select="selectByContractId" ofType="com.ycl.platform.domain.vo.CalculateMoneyRuleVO"/>
    </resultMap>
    <select id="getByContractId" resultMap="BaseResultMap">
        SELECT
               tcr.id,
               tcr.create_time,
               tcr.deduct_money,
               tcr.score,
               tcr.rule_id,
               tcru.rule_name,
               tcru.deduct_category,
               tcru.rule_desc,
               tcru.rule_condition
        FROM
             t_calculate_record tcr
                 INNER JOIN t_calculate_rule tcru ON tcr.rule_id = tcru.id AND tcr.contract_id = #{contractId}
        WHERE
            tcru.deleted = 0 AND tcr.deleted = 0
    </select>
    <update id="updateBatch" parameterType="java.util.List">
        update t_calculate_record
        <trim prefix="set" suffixOverrides=","><!-- 表示在生成的 SQL 语句前面添加 set 关键字,并移除末尾逗号 -->
            <trim prefix="deduct_money =case" suffix="end,"><!-- 构造case语法 末尾加上end,如果需要更新多个字段复制这个trim -->
                <foreach collection="list" item="item">
                    when id=#{item.id} then #{item.deductMoney}
                </foreach>
            </trim>
        </trim>
        where id in
        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
            #{item.id,jdbcType=BIGINT}
        </foreach>
    </update>
    <update id="batchPublish">
        update t_calculate_record set status = 'PUBLISHED'
        where contract_id = #{contractId} and which_year =#{whichYear}
    </update>
    <update id="updatePublishById">
        update t_calculate_record set status = #{status}
        where id = #{id}
    </update>
</mapper>