陈昶聿
5 天以前 55d724ddd52b2acb6e7ee2d291e04e4b6d96ad19
smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -201,8 +201,8 @@
            ssd.targetid,
            ssd.template_type,
            ssd.lib_templateid,
            sd.deptcode,
            sd.deptname,
            sd.leaveldeptcode AS deptcode,
            sd.leaveldeptname AS deptname,
            sd.leavehospitaldistrictcode,
            sd.leavehospitaldistrictname
        from service_subtask_detail ssd
@@ -229,7 +229,7 @@
            </foreach>
        </if>
        <if test="leaveldeptcodes != null and leaveldeptcodes.size() > 0">
            and sd.deptcode in
            and sd.leaveldeptcode in
            <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")">
                #{leaveldeptcode}
            </foreach>
@@ -239,6 +239,13 @@
            <foreach collection="scriptIds" item="scriptId" open="(" separator="," close=")">
                #{scriptId}
            </foreach>
        </if>
        <if test="isFilled != null and isFilled != '0'">
            AND IFNULL(ssd.matchedtext,ssd.asrtext) is not null
            AND IFNULL(ssd.matchedtext,ssd.asrtext) != ''
        </if>
        <if test="configValue != null and configValue != ''">
            AND ssd.categoryid IN (${configValue})
        </if>
        order by ssd.sub_id desc, ssd.id desc
    </select>
@@ -539,4 +546,34 @@
            ivr_liba_target.targetname,
            service_subtask_detail.matchedtext
    </select>
    <select id="selectRepeatDetailIds" resultType="Long">
        SELECT d1.id
        FROM service_subtask_detail d1
        INNER JOIN (
            SELECT sub_id, questiontext,
                   MAX(create_time) AS max_create_time,
                   MAX(id) AS keep_id
            FROM service_subtask_detail
            WHERE del_flag = 0
            GROUP BY sub_id, questiontext
            HAVING COUNT(*) &gt; 1
        ) d2 ON d1.sub_id = d2.sub_id
            AND d1.questiontext = d2.questiontext
            AND (
                d1.create_time &lt; d2.max_create_time
                OR (d1.create_time = d2.max_create_time AND d1.id &lt; d2.keep_id)
            )
        WHERE d1.del_flag = 0
    </select>
    <update id="deleteRepeatDetailByIds">
        UPDATE service_subtask_detail
        SET del_flag = 1
        WHERE del_flag = 0
        AND id IN
        <foreach collection="ids" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
    </update>
</mapper>