From 87a395a6024278594a0a80d25a24ba4ca5993513 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期六, 18 三月 2023 17:42:10 +0800
Subject: [PATCH] 统计修改

---
 ycl-platform/src/main/resources/mapper/unlawful/UnlawfulMapper.xml |  362 +++++++++++----------------------------------------
 1 files changed, 79 insertions(+), 283 deletions(-)

diff --git a/ycl-platform/src/main/resources/mapper/unlawful/UnlawfulMapper.xml b/ycl-platform/src/main/resources/mapper/unlawful/UnlawfulMapper.xml
index a5e5ea6..c7a5b02 100644
--- a/ycl-platform/src/main/resources/mapper/unlawful/UnlawfulMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/unlawful/UnlawfulMapper.xml
@@ -1,275 +1,42 @@
 <?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.mapper.unlawful.UnlawfulMapper">
-<!--    鑾峰彇鎬绘暟-->
+    <!--    鑾峰彇鎬绘暟-->
     <select id="getTotal" resultType="java.lang.Integer">
-        SELECT
-            count(*)
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND t4.`name` IS NOT NULL
-    </select>
+        SELECT count(*)
+        FROM `ums_base_case` AS ubc
+        JOIN ums_violations AS uv ON ubc.id = uv.id
+        <if test="type==true">
+            INNER JOIN ums_data_dictionary AS t4 ON uv.grade_id = t4.id
+        </if>
+        <if test="street==true">
+            INNER JOIN ums_sccg_region r on ubc.street_id = r.id
+        </if>
+        <if test="video==true">
+            INNER JOIN ums_video_point v on uv.video_point_id = v.id
+        </if>
+        WHERE ubc.category = 1
 
-<!--    鎸夌収杩濊绫诲瀷缁熻-->
-    <select id="getDataByType" resultType="com.ycl.dto.statistics.CategoryDto">
-        SELECT
-            t4.id id,
-            t4.NAME name
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category =1
-            and t4.`name` is NOT NULL
-            <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
-                and ubc.create_time between #{startTime} and #{endTime}
-            </if>
-        group by
-            t4.id
-        limit #{currentPage}, #{pageSize}
-    </select>
-    <select id="getStatusDataByType" resultType="com.ycl.dto.statistics.StatusDto">
-        SELECT
-            count(1) total,
-            sum(case when ubc.state=5 then 1 else 0 end) register,
-            sum(case when ubc.state=4 then 1 else 0 end ) notRegister,
-            sum(case when ubc.state=9 then 1 else 0 end ) closing,
-            sum(case when ubc.state=3 then 1 else 0 end ) relearn,
-            sum(case when ubc.state=8 then 1 else 0 end ) checked
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category =1
-          and t4.`id` = #{dictionaryId}
-          and t4.`name` IS NOT NULL
         <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
             and ubc.create_time between #{startTime} and #{endTime}
         </if>
     </select>
 
-    <select id="getDataByTypeExp" resultType="com.ycl.dto.statistics.CategoryDto">
+    <!--    鎸夌収杩濊绫诲瀷缁熻-->
+    <select id="getDataByType" resultType="com.ycl.dto.statistics.UnlawfulDto">
         SELECT
-            t4.id id,
-            t4.NAME name
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-                ubc.category =1
-            and t4.`name` is NOT NULL
-        group by
-        t4.id
-    </select>
-
-
-
-
-<!--    鎸夌収鍖哄煙缁熻-->
-    <select id="getDataByStreet" resultType="com.ycl.dto.statistics.CategoryDto">
-        SELECT
-            ubc.community_id id,
-            t5.region_name name
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND t4.`name` IS NOT NULL
-        <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
-            and ubc.create_time between #{startTime} and #{endTime}
-        </if>
-        GROUP BY
-            ubc.community_id
-        limit #{currentPage}, #{pageSize}
-    </select>
-    <select id="getStatusDataByStreet" resultType="com.ycl.dto.statistics.StatusDto">
-        SELECT
-            count( 1 ) total,
-            sum( CASE WHEN ubc.state = 5 THEN 1 ELSE 0 END ) register,
-            sum( CASE WHEN ubc.state = 4 THEN 1 ELSE 0 END ) notRegister,
-            sum( CASE WHEN ubc.state = 9 THEN 1 ELSE 0 END ) closing,
-            sum( CASE WHEN ubc.state = 3 THEN 1 ELSE 0 END ) relearn,
-            sum( CASE WHEN ubc.state = 8 THEN 1 ELSE 0 END ) checked
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND ubc.`community_id` = #{streetId}
-          AND t4.`name` IS NOT NULL
-        <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
-            and ubc.create_time between #{startTime} and #{endTime}
-        </if>
-    </select>
-    <select id="getDataByStreetExp" resultType="com.ycl.dto.statistics.CategoryDto">
-        SELECT
-            ubc.community_id id,
-            t5.region_name NAME
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category =1
-          and t4.`name` is NOT NULL
-        group by
-            ubc.community_id
-    </select>
-
-
-
-
-<!--    鎸夌偣浣嶇粺璁�-->
-    <select id="getDataBySite" resultType="java.lang.String">
-        SELECT
-            ubc.site
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND t4.`name` IS NOT NULL
-        <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
-            and ubc.create_time between #{startTime} and #{endTime}
-        </if>
-        GROUP BY
-            ubc.site
-        limit #{currentPage}, #{pageSize}
-    </select>
-    <select id="getStatusDataBySite" resultType="com.ycl.dto.statistics.StatusDto">
-        SELECT
-            count( 1 ) total,
-            sum( CASE WHEN ubc.state = 5 THEN 1 ELSE 0 END ) register,
-            sum( CASE WHEN ubc.state = 4 THEN 1 ELSE 0 END ) notRegister,
-            sum( CASE WHEN ubc.state = 9 THEN 1 ELSE 0 END ) closing,
-            sum( CASE WHEN ubc.state = 3 THEN 1 ELSE 0 END ) relearn,
-            sum( CASE WHEN ubc.state = 8 THEN 1 ELSE 0 END ) checked
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND t4.`name` IS NOT NULL
-          AND ubc.site = #{site}
-    </select>
-    <select id="getDataBySiteExp" resultType="java.lang.String">
-        SELECT
-            ubc.site
-        FROM
-            `ums_base_case` AS ubc
-            JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-        AND t4.`name` IS NOT NULL
-        GROUP BY
-            ubc.site
-    </select>
-
-
-
-
-<!--    鎸夌収鎶ヨ鏃堕棿-->
-    <select id="getDataByTime" resultType="com.ycl.dto.statistics.TimeDto">
-        SELECT
-            ubc.id id,
-            ubc.alarm_time time
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND t4.`name` IS NOT NULL
-        <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
-            and ubc.alarm_time between #{startTime} and #{endTime}
-        </if>
-        GROUP BY
-            ubc.alarm_time
-        limit #{currentPage}, #{pageSize}
-    </select>
-    <select id="getStatusDataByTime" resultType="com.ycl.dto.statistics.StatusDto">
-        SELECT
-            count( 1 ) total,
-            sum( CASE WHEN ubc.state = 5 THEN 1 ELSE 0 END ) register,
-            sum( CASE WHEN ubc.state = 4 THEN 1 ELSE 0 END ) notRegister,
-            sum( CASE WHEN ubc.state = 9 THEN 1 ELSE 0 END ) closing,
-            sum( CASE WHEN ubc.state = 3 THEN 1 ELSE 0 END ) relearn,
-            sum( CASE WHEN ubc.state = 8 THEN 1 ELSE 0 END ) checked
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category = 1
-          AND t4.`name` IS NOT NULL
-          AND ubc.id = #{id}
-    </select>
-    <select id="getDataByTimeExp" resultType="com.ycl.dto.statistics.TimeDto">
-        SELECT
-            ubc.id id,
-            ubc.alarm_time time,
-        FROM
-            `ums_base_case` AS ubc
-                JOIN ums_violations AS uv ON ubc.id = uv.id
-                LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-                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
-            ubc.category =1
-          and t4.`name` is NOT NULL
-        group by
-            ubc.alarm_time
-    </select>
-
-
-
-
-<!--    鍒嗛〉鏁伴噺-->
-    <select id="getTotalByType" resultType="java.lang.Integer">
-        SELECT
-        count(*) num
+        t4.id id,
+        t4.NAME name,
+        COUNT(DISTINCT ubc.id) count,
+        sum(case when ubc.state >4 then 1 ELSE 0 END ) register,
+        sum(case when ubc.state =4 then 1 ELSE 0 END ) notRegister,
+        sum(case when ubc.state =9 then 1 ELSE 0 END ) closing,
+        sum(case when ubc.state =3 then 1 ELSE 0 END ) relearn,
+        sum(case when ubc.state =8 then 1 ELSE 0 END ) checked
         FROM
         `ums_base_case` AS ubc
         JOIN ums_violations AS uv ON ubc.id = uv.id
-        LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-        LEFT JOIN ums_data_dictionary AS t4 ON uv.type_id = t4.id
+        LEFT JOIN ums_data_dictionary AS t4 ON uv.grade_id = t4.id
         LEFT JOIN ums_sccg_region t5 ON ubc.street_id = t5.id
         WHERE
         ubc.category =1
@@ -277,26 +44,21 @@
         <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
             and ubc.create_time between #{startTime} and #{endTime}
         </if>
+        group by t4.id
+        ORDER BY t4.id
     </select>
-    <select id="getTotalByStreet" resultType="java.lang.Integer">
+
+    <!--    鎸夌収鍖哄煙缁熻-->
+    <select id="getDataByStreet" resultType="com.ycl.dto.statistics.UnlawfulDto">
         SELECT
-        count(*) num
-        FROM
-        `ums_base_case` AS ubc
-        JOIN ums_violations AS uv ON ubc.id = uv.id
-        LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-        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
-        ubc.category =1
-        and t4.`name` is NOT NULL
-        <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
-            and ubc.create_time between #{startTime} and #{endTime}
-        </if>
-    </select>
-    <select id="getTotalBySite" resultType="java.lang.Integer">
-        SELECT
-        count(*) num
+        ubc.street_id id,
+        t5.region_name name,
+        COUNT( DISTINCT ubc.id ) count,
+        sum( CASE WHEN ubc.state > 4 THEN 1 ELSE 0 END ) register,
+        sum( CASE WHEN ubc.state = 4 THEN 1 ELSE 0 END ) notRegister,
+        sum( CASE WHEN ubc.state = 9 THEN 1 ELSE 0 END ) closing,
+        sum( CASE WHEN ubc.state = 3 THEN 1 ELSE 0 END ) relearn,
+        sum( CASE WHEN ubc.state = 8 THEN 1 ELSE 0 END ) checked
         FROM
         `ums_base_case` AS ubc
         JOIN ums_violations AS uv ON ubc.id = uv.id
@@ -305,25 +67,59 @@
         LEFT JOIN ums_sccg_region t5 ON ubc.street_id = t5.id
         WHERE
         ubc.category = 1
-        AND t4.`name` IS NOT NULL
+        AND t5.region_name IS NOT NULL
         <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
             and ubc.create_time between #{startTime} and #{endTime}
         </if>
+        GROUP BY ubc.street_id
+        ORDER BY ubc.street_id
     </select>
-    <select id="getTotalByTime" resultType="java.lang.Integer">
+
+    <!--    鎸夌収鎶ヨ鏃堕棿-->
+    <select id="getDataByTime" resultType="com.ycl.dto.statistics.UnlawfulDto">
         SELECT
-        count(*) num
+        DATE_FORMAT(ubc.alarm_time,'%Y-%m-%d') NAME,
+        COUNT( DISTINCT ubc.id ) count,
+        sum( CASE WHEN ubc.state > 4 THEN 1 ELSE 0 END ) register,
+        sum( CASE WHEN ubc.state = 4 THEN 1 ELSE 0 END ) notRegister,
+        sum( CASE WHEN ubc.state = 9 THEN 1 ELSE 0 END ) closing,
+        sum( CASE WHEN ubc.state = 3 THEN 1 ELSE 0 END ) relearn,
+        sum( CASE WHEN ubc.state = 8 THEN 1 ELSE 0 END ) checked
         FROM
         `ums_base_case` AS ubc
         JOIN ums_violations AS uv ON ubc.id = uv.id
-        LEFT JOIN ums_data_dictionary AS t3 ON uv.category_id = t3.id
-        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
         ubc.category = 1
-        AND t4.`name` IS NOT NULL
         <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
             and ubc.alarm_time between #{startTime} and #{endTime}
         </if>
+        GROUP BY
+        DATE_FORMAT(ubc.alarm_time,'%Y-%m-%d')
+        ORDER BY
+        DATE_FORMAT(ubc.alarm_time,'%Y-%m-%d')
+    </select>
+
+    <select id="getDataByPoint" resultType="com.ycl.dto.statistics.UnlawfulDto">
+        SELECT
+        vp.id id,
+        vp.NAME name,
+        COUNT(DISTINCT ubc.id) count,
+        sum(case when ubc.state >4 then 1 ELSE 0 END ) register,
+        sum(case when ubc.state =4 then 1 ELSE 0 END ) notRegister,
+        sum(case when ubc.state =9 then 1 ELSE 0 END ) closing,
+        sum(case when ubc.state =3 then 1 ELSE 0 END ) relearn,
+        sum(case when ubc.state =8 then 1 ELSE 0 END ) checked
+        FROM
+        `ums_base_case` AS ubc
+        JOIN ums_violations AS uv ON ubc.id = uv.id
+        LEFT JOIN ums_video_point vp ON uv.video_point_id = vp.id
+        WHERE
+        ubc.category =1
+        and vp.`name` is NOT NULL
+        <if test="startTime !='' and endTime !='' and startTime!=null and endTime !=null">
+            and ubc.alarm_time between #{startTime} and #{endTime}
+        </if>
+        group by vp.id
+        ORDER BY vp.id
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0