From 8234e14fcae7596f733abf8a20578b608a951dd8 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 27 Jul 2021 11:01:40 +0800
Subject: [PATCH] 1.统计接口调整

---
 src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml |  230 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 124 insertions(+), 106 deletions(-)

diff --git a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
index 524af7c..d54eb00 100644
--- a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
+++ b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -59,10 +59,10 @@
     </delete>
 
     <select id="selectCount" resultType="java.util.HashMap">
-        SELECT isnull(B.confess, 0)  AS confess,
-               isnull(C.staff, 0)    AS staff,
-               isnull(D.security, 0) AS security,
-               isnull(E.armed, 0)    AS armed
+        SELECT IFNULL(B.confess, 0)  AS confess,
+               IFNULL(C.staff, 0)    AS staff,
+               IFNULL(D.security, 0) AS security,
+               IFNULL(E.armed, 0)    AS armed
         FROM (SELECT jurisdiction FROM sys_information GROUP BY jurisdiction) A
                  FULL JOIN (SELECT COUNT(stats) AS confess, jurisdiction
                             FROM sys_information
@@ -124,20 +124,20 @@
         GROUP BY i.departmentid)
         GROUP BY deptid
         ) A
-        FULL JOIN (
+        left JOIN (
         SELECT COUNT
         (*) AS numz,
-        dept_id
-        FROM blade_user
-        WHERE dept_id IN (SELECT i.departmentid
+        deptid
+        FROM sys_socil
+        WHERE deptid IN (SELECT i.departmentid
         FROM sys_information i
         LEFT JOIN sys_jurisdiction j ON j.id = i.jurisdiction where 1=1
         <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1123598813738675201'">
             and i.jurisdiction =#{jurisdiction}
         </if>
         GROUP BY i.departmentid)
-        GROUP BY dept_id
-        ) B ON A.deptid = B.dept_id
+        GROUP BY deptid
+        ) B ON A.deptid = B.deptid
         LEFT JOIN (SELECT id, dept_name FROM blade_dept) d ON d.id = A.deptid where 1=1
         <if test="deptid!=null and deptid!=''">
             and A.deptid =#{deptid}
@@ -146,10 +146,10 @@
 
     <!--统计上个月和这个月交社保的人数以及缴纳金额-->
     <select id="selectTo" resultType="java.util.HashMap">
-        SELECT ISNULL(A.lastmonth, 0) AS lastmonth,
-        ISNULL(B.thismouth, 0) AS thismouth,
-        ISNULL(A.amount, 0) AS lastamount,
-        ISNULL(b.amount, 0) AS thisamount
+        SELECT IFNULL(A.lastmonth, 0) AS lastmonth,
+        IFNULL(B.thismouth, 0) AS thismouth,
+        IFNULL(A.amount, 0) AS lastamount,
+        IFNULL(b.amount, 0) AS thisamount
         FROM (
         SELECT COUNT
         (*) AS lastmonth,
@@ -263,15 +263,15 @@
 
     <!--查询本年所有月份的交社保的金额-->
     <select id="queryYearAn" resultType="java.util.HashMap">
-        SELECT ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 1 THEN s.amount END ), 0) AS '1', ISNULL(SUM(CASE WHEN MONTH
-        (s.insuredtime) = 2 THEN s.amount END ), 0) AS '2', ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 3 THEN s.amount
-        END ), 0) AS '3', ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 4 THEN s.amount END ), 0) AS '4', ISNULL(SUM(CASE
-        WHEN MONTH (s.insuredtime) = 5 THEN s.amount END ), 0) AS '5', ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 6
-        THEN s.amount END ), 0) AS '6', ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 7 THEN s.amount END ), 0) AS '7',
-        ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 8 THEN s.amount END ), 0) AS '8', ISNULL(SUM(CASE WHEN MONTH
-        (s.insuredtime) = 9 THEN s.amount END ), 0) AS '9', ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 10 THEN
-        s.amount END ), 0) AS '10', ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 11 THEN s.amount END ), 0) AS '11',
-        ISNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 12 THEN s.amount END ), 0) AS '12'
+        SELECT IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 1 THEN s.amount END ), 0) AS '1', IFNULL(SUM(CASE WHEN MONTH
+        (s.insuredtime) = 2 THEN s.amount END ), 0) AS '2', IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 3 THEN s.amount
+        END ), 0) AS '3', IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 4 THEN s.amount END ), 0) AS '4', IFNULL(SUM(CASE
+        WHEN MONTH (s.insuredtime) = 5 THEN s.amount END ), 0) AS '5', IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 6
+        THEN s.amount END ), 0) AS '6', IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 7 THEN s.amount END ), 0) AS '7',
+        IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 8 THEN s.amount END ), 0) AS '8', IFNULL(SUM(CASE WHEN MONTH
+        (s.insuredtime) = 9 THEN s.amount END ), 0) AS '9', IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 10 THEN
+        s.amount END ), 0) AS '10', IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 11 THEN s.amount END ), 0) AS '11',
+        IFNULL(SUM(CASE WHEN MONTH (s.insuredtime) = 12 THEN s.amount END ), 0) AS '12'
         FROM sys_socil AS s
         WHERE YEAR (s.insuredtime) =#{year}
         AND deptid IN (SELECT i.departmentid FROM sys_information i LEFT JOIN sys_jurisdiction j ON j.id= i.jurisdiction
@@ -288,43 +288,51 @@
 
     <!--总保安数量-->
     <select id="queryCountB" resultType="java.util.HashMap">
-        SELECT C.thisnum,
+        SELECT
+        C.thisnum,
         C.lastnum,
-        d.dept_name as deptname,
-        j.dept_name as jurname
-        FROM (
-        SELECT ISNULL(A.thisnum, 0) AS thisnum,
-        ISNULL(B.lastnum, 0) AS lastnum,
+        d.dept_name AS deptname,
+        j.dept_name AS jurname
+        FROM
+        (
+        SELECT
+        IFNULL( A.thisnum, 0 ) AS thisnum,
+        IFNULL( B.lastnum, 0 ) AS lastnum,
         A.dept_id,
         A.jurisdiction
-        FROM (
-        SELECT COUNT
-        (*) AS thisnum,
+        FROM
+        (
+        SELECT
+        COUNT( * ) AS thisnum,
         dept_id,
         jurisdiction
-        FROM blade_user
-        WHERE role_id = '1413323482159321089'
-        AND datediff(
-        MONTH, create_time,
-        getdate()) = 0
-        GROUP BY dept_id,
+        FROM
+        blade_user
+        WHERE
+        role_id = '1413323482159321089'
+        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
+        GROUP BY
+        dept_id,
         jurisdiction
         ) A
-        FULL JOIN (
-        SELECT COUNT
-        (*) AS lastnum,
+        LEFT JOIN (
+        SELECT
+        COUNT( * ) AS lastnum,
         dept_id,
         jurisdiction
-        FROM blade_user
-        WHERE role_id = '1413323482159321089'
-        AND datediff(
-        MONTH, create_time,
-        getdate()) = 1
-        GROUP BY dept_id,
+        FROM
+        blade_user
+        WHERE
+        role_id = '1413323482159321089'
+        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( create_time, '%Y%m' ) ) = 1
+        GROUP BY
+        dept_id,
         jurisdiction
-        ) B ON A.dept_id = B.dept_id) C
+        ) B ON A.dept_id = B.dept_id
+        ) C
         LEFT JOIN blade_dept d ON C.dept_id = d.id
-        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1
+        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction
+        WHERE 1 =1
         <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1123598813738675201'">
             and C.jurisdiction =#{jurisdiction}
         </if>
@@ -340,8 +348,8 @@
         d.dept_name as deptname,
         j.dept_name as jurname
         FROM (
-        SELECT ISNULL(A.thisnum, 0) AS thisnum,
-        ISNULL(B.lastnum, 0) AS lastnum,
+        SELECT IFNULL(A.thisnum, 0) AS thisnum,
+        IFNULL(B.lastnum, 0) AS lastnum,
         A.dept_id,
         A.jurisdiction
         FROM (
@@ -352,13 +360,11 @@
         FROM blade_user
         WHERE role_id = '1413323482159321089'
         AND examination_type = 0
-        AND datediff(
-        MONTH, create_time,
-        getdate()) = 0
+        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
         GROUP BY dept_id,
         jurisdiction
         ) A
-        FULL JOIN (
+        left JOIN (
         SELECT COUNT
         (*) AS lastnum,
         dept_id,
@@ -366,9 +372,7 @@
         FROM blade_user
         WHERE role_id = '1413323482159321089'
         AND examination_type = 0
-        AND datediff(
-        MONTH, create_time,
-        getdate()) = 1
+        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( create_time, '%Y%m' ) ) = 1
         GROUP BY dept_id,
         jurisdiction
         ) B ON A.dept_id = B.dept_id) C
@@ -389,8 +393,8 @@
         d.dept_name as deptname,
         j.dept_name as jurname
         FROM (
-        SELECT ISNULL(A.thisnum, 0) AS thisnum,
-        ISNULL(B.lastnum, 0) AS lastnum,
+        SELECT IFNULL(A.thisnum, 0) AS thisnum,
+        IFNULL(B.lastnum, 0) AS lastnum,
         A.dept_id,
         A.jurisdiction
         FROM (
@@ -401,13 +405,11 @@
         FROM blade_user
         WHERE role_id = '1413323482159321089'
         AND hold = 0
-        AND datediff(
-        MONTH, create_time,
-        getdate()) = 0
+        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
         GROUP BY dept_id,
         jurisdiction
         ) A
-        FULL JOIN (
+        left JOIN (
         SELECT COUNT
         (*) AS lastnum,
         dept_id,
@@ -415,9 +417,7 @@
         FROM blade_user
         WHERE role_id = '1413323482159321089'
         AND hold = 0
-        AND datediff(
-        MONTH, create_time,
-        getdate()) = 1
+        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( create_time, '%Y%m' ) ) = 1
         GROUP BY dept_id,
         jurisdiction
         ) B ON A.dept_id = B.dept_id) C
@@ -438,8 +438,8 @@
         d.dept_name AS deptname,
         j.dept_name AS jurname
         FROM (
-        SELECT ISNULL(A.thisnum, 0) AS thisnum,
-        ISNULL(B.lastnum, 0) AS lastnum,
+        SELECT IFNULL(A.thisnum, 0) AS thisnum,
+        IFNULL(B.lastnum, 0) AS lastnum,
         A.deptid,
         A.jurisdiction
         FROM (
@@ -448,21 +448,17 @@
         deptid,
         jurisdiction
         FROM sys_socil
-        WHERE datediff(
-        MONTH, insuredtime,
-        getdate()) = 0
+        WHERE DATE_FORMAT(insuredtime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
         GROUP BY deptid,
         jurisdiction
         ) A
-        FULL JOIN (
+        left JOIN (
         SELECT COUNT
         (*) AS lastnum,
         deptid,
         jurisdiction
         FROM sys_socil
-        WHERE datediff(
-        MONTH, insuredtime,
-        getdate()) = 1
+        WHERE PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( insuredtime, '%Y%m' ) ) = 1
         GROUP BY deptid,
         jurisdiction
         ) B ON A.deptid = B.deptid
@@ -485,8 +481,8 @@
         d.dept_name AS deptname,
         j.dept_name AS jurname
         FROM (
-        SELECT ISNULL(A.thisnum, 0) AS thisnum,
-        ISNULL(B.lastnum, 0) AS lastnum,
+        SELECT IFNULL(A.thisnum, 0) AS thisnum,
+        IFNULL(B.lastnum, 0) AS lastnum,
         A.dept_id,
         A.jurisdiction
         FROM (
@@ -495,21 +491,17 @@
         dept_id,
         jurisdiction
         FROM sys_dispatcher
-        WHERE datediff(
-        MONTH, dispatcherTime,
-        getdate()) = 0
+        WHERE DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
         GROUP BY dept_id,
         jurisdiction
         ) A
-        FULL JOIN (
+        left JOIN (
         SELECT COUNT
         (*) AS lastnum,
         dept_id,
         jurisdiction
         FROM sys_dispatcher
-        WHERE datediff(
-        MONTH, dispatcherTime,
-        getdate()) = 1
+        WHERE PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( dispatcherTime, '%Y%m' ) ) = 1
         GROUP BY dept_id,
         jurisdiction
         ) B ON A.dept_id = B.dept_id
@@ -531,8 +523,8 @@
         d.dept_name as deptname,
         j.dept_name as jurname
         FROM (
-        SELECT ISNULL(A.thisnum, 0) AS thisnum,
-        ISNULL(B.lastnum, 0) AS lastnum,
+        SELECT IFNULL(A.thisnum, 0) AS thisnum,
+        IFNULL(B.lastnum, 0) AS lastnum,
         A.dept_id,
         A.jurisdiction
         FROM (
@@ -540,19 +532,15 @@
         dept_id,
         jurisdiction
         FROM sys_dispatcher
-        WHERE datediff(
-        MONTH, dispatcherTime,
-        getdate()) = 0
+        WHERE DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
         GROUP BY dept_id, jurisdiction
         ) A
-        FULL JOIN (
+        left JOIN (
         SELECT SUM(num) AS lastnum,
         dept_id,
         jurisdiction
         FROM sys_dispatcher
-        WHERE datediff(
-        MONTH, dispatcherTime,
-        getdate()) = 1
+        WHERE PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( dispatcherTime, '%Y%m' ) ) = 1
         GROUP BY dept_id, jurisdiction
         ) B ON A.dept_id = B.dept_id) C
         LEFT JOIN blade_dept d ON C.dept_id = d.id
@@ -699,18 +687,18 @@
 
     <!--查询本年所有月份的保安派遣数量-->
     <select id="queryYearBanan" resultType="java.util.HashMap">
-        SELECT ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 1 THEN s.num END ), 0) AS '1', ISNULL(SUM(CASE WHEN
-        MONTH ( s.dispatcherTime ) = 2 THEN s.num END ), 0) AS '2', ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 3
-        THEN s.num END ), 0) AS '3', ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 4 THEN s.num END ), 0) AS '4',
-        ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 5 THEN s.num END ), 0) AS '5', ISNULL(SUM(CASE WHEN MONTH (
-        s.dispatcherTime ) = 6 THEN s.num END ), 0) AS '6', ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 7 THEN
-        s.num END ), 0) AS '7', ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 8 THEN s.num END ), 0) AS '8',
-        ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 9 THEN s.num END ), 0) AS '9', ISNULL(SUM(CASE WHEN MONTH (
-        s.dispatcherTime ) = 10 THEN s.num END ), 0) AS '10', ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 11 THEN
-        s.num END ), 0) AS '11', ISNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 12 THEN s.num END ), 0) AS '12'
+        SELECT IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 1 THEN s.num END ), 0) AS '1', IFNULL(SUM(CASE WHEN
+        MONTH ( s.dispatcherTime ) = 2 THEN s.num END ), 0) AS '2', IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 3
+        THEN s.num END ), 0) AS '3', IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 4 THEN s.num END ), 0) AS '4',
+        IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 5 THEN s.num END ), 0) AS '5', IFNULL(SUM(CASE WHEN MONTH (
+        s.dispatcherTime ) = 6 THEN s.num END ), 0) AS '6', IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 7 THEN
+        s.num END ), 0) AS '7', IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 8 THEN s.num END ), 0) AS '8',
+        IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 9 THEN s.num END ), 0) AS '9', IFNULL(SUM(CASE WHEN MONTH (
+        s.dispatcherTime ) = 10 THEN s.num END ), 0) AS '10', IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 11 THEN
+        s.num END ), 0) AS '11', IFNULL(SUM(CASE WHEN MONTH ( s.dispatcherTime ) = 12 THEN s.num END ), 0) AS '12'
         FROM sys_dispatcher AS s
         WHERE
-        YEAR ( s.dispatcherTime ) = '2021'
+        YEAR ( s.dispatcherTime ) =#{year}
         AND dept_id IN (
         SELECT
         i.departmentid
@@ -749,8 +737,7 @@
     </select>
     <!--表现差的数量-->
     <select id="selectBx" resultType="java.util.HashMap">
-        SELECT COUNT
-        (*) as num,
+        SELECT IFNULL(COUNT( * ),0) AS num,
         d.dept_name,
         j.dept_name AS jurname
         FROM sys_performance u
@@ -773,4 +760,35 @@
         FROM sys_jurisdiction
         WHERE id!=1123598813738675201
     </select>
+
+    <!--派遣保安人數量-->
+    <select id="selectPcount" resultType="java.util.HashMap">
+        SELECT COUNT
+        (*) AS pnum
+        FROM blade_user u
+        LEFT JOIN blade_dept d ON d.id = u.dept_id
+        LEFT JOIN sys_jurisdiction j ON j.id = u.jurisdiction
+        WHERE dispatch = 0
+        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1123598813738675201'">
+            and u.jurisdiction =#{jurisdiction}
+        </if>
+        <if test="deptid!=null and deptid!=''">
+            and u.dept_id =#{deptid}
+        </if>
+    </select>
+    <!--未派遣保安人數量-->
+    <select id="selectWPcount" resultType="java.util.HashMap">
+        SELECT COUNT
+        (*) AS wpnum
+        FROM blade_user u
+        LEFT JOIN blade_dept d ON d.id = u.dept_id
+        LEFT JOIN sys_jurisdiction j ON j.id = u.jurisdiction
+        WHERE dispatch = 1
+        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1123598813738675201'">
+            and u.jurisdiction =#{jurisdiction}
+        </if>
+        <if test="deptid!=null and deptid!=''">
+            and u.dept_id =#{deptid}
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.9.3