fuliqi
2024-01-09 ebb1a448339bafc4c4849fdbc2291bd3a28261df
ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
@@ -55,7 +55,8 @@
        t5.region_name as street,
        ubc.site,
        ubc.alarm_time,
        ubc.close_time
        ubc.close_time,
        ubc.state
        FROM
        `ums_base_case` AS ubc
        JOIN ums_violations AS uv ON ubc.id = uv.id
@@ -63,11 +64,11 @@
        LEFT JOIN ums_data_dictionary AS t4 ON uv.type_id = t4.id
        LEFT JOIN ums_sccg_region t5 ON ubc.street_id = t5.id
        <where>
            <if test="state!=null and state!=6">
                ubc.state=#{state}
            </if>
            <if test="state!=null and state==6">
                ubc.state &gt;=#{state}
            <if test=" state != null and state.size() > 0">
                AND ubc.state in
                <foreach collection="state" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
            <if test="resource!=null">
                and ubc.event_source=#{resource}
@@ -115,18 +116,19 @@
        uib.building_width,
        uib.building_length,
        uib.building_area,
        uib.materials
        uib.materials,
        ubc.state
        FROM
        `ums_base_case` AS ubc
        left JOIN ums_illegal_building AS uib ON ubc.id = uib.base_case_id
        left JOIN ums_data_dictionary AS t1 ON uib.category_id = t1.id
        left JOIN ums_sccg_region t2 ON ubc.community_id = t2.id
        <where>
            <if test="state!=null and state!=6">
                ubc.state=#{state}
            </if>
            <if test="state!=null and state==6">
                ubc.state &gt;=#{state}
            <if test=" state != null and state.size() > 0">
                AND ubc.state in
                <foreach collection="state" index="index" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
            <if test="resource!=null">
                and ubc.event_source=#{resource}
@@ -135,7 +137,7 @@
                and ubc.category=#{type}
            </if>
        </where>
        order by ubc.id desc
    </select>
@@ -162,16 +164,25 @@
            <if test="categories != null">
                t1.category = #{categories}
            </if>
            <if test="streetId != null">
                and t1.community_id = #{streetId}
            <if test="communityId != null">
                and t1.community_id = #{communityId}
            </if>
            <if test=" streetId != null">
                and t1.street_id = #{streetId}
            </if>
            <if test="code != null and code !=''">
                and t1.code like concat('%',#{code},'%')
            </if>
            <if test="site != null and site!=''">
            <if test="code != null and code !=''">
                and t1.code like concat('%',#{code},'%')
            </if>
            <if test="state != null and state!=''">
                and t1.state =#{state}
            </if>
        <if test="site != null and site!=''">
                and t1.site like concat('%',#{site},'%')
            </if>
            <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
            <if test="startTime!=null and endTime !=null">
                and t1.create_time between #{startTime} and #{endTime}
            </if>
        </where>
@@ -255,6 +266,7 @@
                and t1.handling_opinion like concat('%',#{queryForViolationParam.handlingOpinion},'%')
            </if>
        </where>
        order by t1.id desc
    </select>
@@ -272,7 +284,8 @@
        t3.code as videoCode,
        t1.alarm_time as alarmTime,
        t1.alarm_time as currentAlarmTime,
        t4.algo_name as algoName
        t4.algo_name as algoName,
        t4.alarm_name as alarmName
        FROM ums_base_case t1
        LEFT JOIN ums_violations t2 ON t1.id = t2.id
        LEFT JOIN ums_video_point t3 on t2.video_point_id = t3.id
@@ -287,6 +300,9 @@
        </if>
        <if test="beginTime!=null and beginTime!=''">
            and t1.alarm_time between #{beginTime} and #{endTime}
        </if>
        <if test="type!=null">
            and t3.type = #{type}
        </if>
        group by t1.id
        order by t1.id desc
@@ -457,4 +473,20 @@
        WHERE end_time &lt; limit_time
          AND PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(create_time, '%Y%m')) = 0
    </select>
    <select id="getWorkOrder" resultType="com.ycl.vo.casePool.WorkOrderVO">
        SELECT username as name,count(DISTINCT id) taskCount,SUM(CASE WHEN state>7 THEN 1 ELSE 0 END) finishCount
        from (
                 SELECT a.username , bc.id,max(bc.state) state
                 from ums_base_case bc
                          INNER JOIN ums_dispose_record dr on bc.id = dr.base_case_id
                          INNER JOIN ums_admin a on dr.handler_id = a.id
                 where ( bc.state = 6 or bc.state = 7
                     or bc.state = 8 or bc.state = 9)
                <if test="keyword !=''and keyword!=null">
                    and a.username  like concat('%', #{keyword},'%')
                </if>
                 GROUP BY a.username  ,bc.id
             ) tmp
        GROUP BY username
    </select>
</mapper>