From d39e15a3fb45f40e8bf0a52a73ded86158d6e0bd Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 17 Aug 2021 17:40:44 +0800
Subject: [PATCH] 1.统计接口调整

---
 src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml |  347 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 328 insertions(+), 19 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 220ac1c..68aa145 100644
--- a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
+++ b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -66,7 +66,7 @@
                IFNULL(C.staff, 0)    AS staff,
                IFNULL(D.security, 0) AS security,
                IFNULL(E.armed, 0)    AS armed,
-               IFNULL(F.region, 0)    AS region
+               IFNULL(F.region, 0)   AS region
         FROM (SELECT jurisdiction FROM sys_information GROUP BY jurisdiction) A
                  LEFT JOIN (SELECT COUNT(stats) AS confess, jurisdiction
                             FROM sys_information
@@ -157,7 +157,11 @@
         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
+        IFNULL(B.amount, 0) AS thisamount,
+        IFNULL( C.userthismouth, 0 ) AS userthismouth,
+        IFNULL( D.userlastmouth, 0 ) AS userlastmouth,
+        IFNULL( E.userpcthismouth, 0 ) AS userpcthismouth,
+        IFNULL( F.userpclastmouth, 0 ) AS userpclastmouth
         FROM (
         SELECT COUNT(*) AS lastmonth,
         amount,
@@ -200,6 +204,108 @@
         amount,
         deptid
         ) B ON A.deptid = B.deptid
+        LEFT JOIN (
+        SELECT COUNT(*) AS userthismouth,
+        dept_id
+        FROM
+        blade_user
+        WHERE
+        dept_id 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
+        )
+        AND DATE_FORMAT( update_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' ) AND status=1
+        <if test="deptid!=null and deptid!=''">
+            and dept_id =#{deptid}
+        </if>
+        GROUP BY
+        dept_id
+        ) C ON C.dept_id = A.deptid
+        LEFT JOIN(
+        SELECT COUNT(*) AS userlastmouth,
+        dept_id
+        FROM
+        blade_user
+        WHERE
+        dept_id 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
+        )
+        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( update_time, '%Y%m' ) ) = 1 AND status=1
+        <if test="deptid!=null and deptid!=''">
+            and dept_id =#{deptid}
+        </if>
+        GROUP BY
+        dept_id
+        ) D ON D.dept_id = A.deptid
+        LEFT JOIN (
+        SELECT COUNT(*) AS userpcthismouth,
+        dept_id
+        FROM
+        blade_user
+        WHERE
+        dept_id 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
+        )
+        AND DATE_FORMAT( update_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' ) AND dispatch=0
+        <if test="deptid!=null and deptid!=''">
+            and dept_id =#{deptid}
+        </if>
+        GROUP BY
+        dept_id
+        ) E ON E.dept_id = A.deptid
+        LEFT JOIN(
+        SELECT COUNT(*) AS userpclastmouth,dept_id
+        FROM
+        blade_user
+        WHERE
+        dept_id 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
+        )
+        AND PERIOD_DIFF( date_format( now( ), '%Y%m' ), date_format( update_time, '%Y%m' ) ) = 1 AND dispatch=0
+        <if test="deptid!=null and deptid!=''">
+            and dept_id =#{deptid}
+        </if>
+        GROUP BY
+        dept_id
+        ) F ON F.dept_id = A.deptid
     </select>
 
 
@@ -231,6 +337,33 @@
         i.departmentid )
         <if test="deptid!=null and deptid!=''">
             and deptid =#{deptid}
+        </if>
+    </select>
+
+
+    <!--查询本年所有月份的派遣人数量-->
+    <select id="queryYearPz" resultType="java.util.HashMap">
+        SELECT COUNT(CASE WHEN MONTH ( s.update_time ) = 1 THEN s.dispatch END ) AS '1', COUNT(CASE WHEN MONTH (
+        s.update_time ) = 2 THEN s.dispatch END ) AS '2', COUNT(CASE WHEN MONTH ( s.update_time ) = 3 THEN s.dispatch
+        END ) AS '3', COUNT(CASE WHEN MONTH ( s.update_time ) = 4 THEN s.dispatch END ) AS '4', COUNT(CASE WHEN MONTH (
+        s.update_time ) = 5 THEN s.dispatch END ) AS '5', COUNT(CASE WHEN MONTH ( s.update_time ) = 6 THEN s.dispatch
+        END ) AS '6', COUNT(CASE WHEN MONTH ( s.update_time ) = 7 THEN s.dispatch END ) AS '7', COUNT(CASE WHEN MONTH (
+        s.update_time ) = 8 THEN s.dispatch END ) AS '8', COUNT(CASE WHEN MONTH ( s.update_time ) = 9 THEN s.dispatch
+        END ) AS '9', COUNT(CASE WHEN MONTH ( s.update_time ) = 10 THEN s.dispatch END ) AS '10', COUNT(CASE WHEN MONTH
+        ( s.update_time ) = 11 THEN s.dispatch END ) AS '11', COUNT(CASE WHEN MONTH ( s.update_time ) = 12 THEN
+        s.dispatch END ) AS '12'
+        FROM blade_user AS s
+        WHERE
+        YEAR ( s.update_time ) =#{year}
+        AND dispatch = 0
+        AND dept_id 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 )
+        <if test="deptid!=null and deptid!=''">
+            and dept_id =#{deptid}
         </if>
     </select>
     <!--查询本年所有月份的保安派遣的数量-->
@@ -776,8 +909,7 @@
     </select>
 
     <select id="selectExtypeUser" resultType="java.lang.Integer">
-        SELECT
-            COUNT( CASE WHEN ( examination_mx IS NOT NULL OR examination_mx != "" ) THEN 1 END ) AS sum
+        SELECT COUNT(CASE WHEN (examination_mx IS NOT NULL OR examination_mx != "") THEN 1 END) AS sum
         FROM
             blade_user
         WHERE
@@ -823,7 +955,9 @@
         </if>
     </select>
     <delete id="deleteDept">
-        delete from  blade_dept where id=#{ids}
+        delete
+        from blade_dept
+        where id = #{ids}
     </delete>
 
 
@@ -833,7 +967,7 @@
         IFNULL( B.cznum, 0 ) AS cznum,
         IFNULL( C.paiqnum, 0 ) AS paiqnum,
         IFNULL( D.wpaiqnum, 0 ) AS wpaiqnum,
-        IFNULL( E.caijnum, 0 ) AS caijnum,
+        IFNULL( E.sbnum, 0 ) AS sbnum,
         IFNULL( F.wcaijnum, 0 ) AS wcaijnum,
         IFNULL( G.yicnum, 0 ) AS yicnum,
         A.dept_id,
@@ -885,19 +1019,8 @@
         jurisdiction
         ) D ON D.dept_id = A.dept_id
         LEFT JOIN (
-        SELECT
-        COUNT( * ) AS caijnum,
-        dept_id,
-        jurisdiction
-        FROM
-        blade_user
-        WHERE
-        role_id = '1412226235153731586'
-        AND photo=0
-        GROUP BY
-        dept_id,
-        jurisdiction
-        ) E ON E.dept_id = A.dept_id
+        SELECT COUNT( * ) AS sbnum, deptid, jurisdiction FROM sys_socil GROUP BY deptid, jurisdiction
+        ) E ON E.deptid = A.dept_id
         LEFT JOIN (
         SELECT
         COUNT( * ) AS wcaijnum,
@@ -966,4 +1089,190 @@
             AND jurisdiction=#{jurisdiction}
         </if>
     </select>
+
+    <!--公司运营情况进入图表-->
+    <select id="selectTb" resultType="java.util.HashMap">
+        SELECT
+        J.*
+        FROM
+        (
+        SELECT A.enterpriseName,
+        A.departmentid,
+        A.jurisdiction,
+        A.dept_name AS jurname,
+        IFNULL(B.znum, 0) AS znum,
+        IFNULL(C.zcnum, 0) AS zcnum,
+        IFNULL(D.cznum, 0) AS cznum,
+        IFNULL(E.sbnum, 0) AS sbnum,
+        IFNULL(F.ghnum, 0) AS ghnum,
+        IFNULL(G.pcnum, 0) AS pcnum
+        FROM (
+        SELECT i.enterpriseName,
+        i.departmentid,
+        i.jurisdiction,
+        j.dept_name
+        FROM sys_information i
+        LEFT JOIN sys_jurisdiction j ON i.jurisdiction = j.id
+        ) A
+        LEFT JOIN (SELECT COUNT(*) AS znum, dept_id, jurisdiction
+        FROM blade_user
+        WHERE role_id = '1412226235153731586'
+        GROUP BY dept_id, jurisdiction) B ON A.departmentid = B.dept_id
+        LEFT JOIN (
+        SELECT COUNT(*) AS zcnum,
+        dept_id,
+        jurisdiction
+        FROM blade_user
+        WHERE role_id = '1412226235153731586'
+        AND examination_type = 0
+        GROUP BY dept_id,
+        jurisdiction
+        ) C ON A.departmentid = C.dept_id
+        LEFT JOIN (
+        SELECT COUNT(*) AS cznum,
+        dept_id,
+        jurisdiction
+        FROM blade_user
+        WHERE role_id = '1412226235153731586'
+        AND hold = 0
+        GROUP BY dept_id,
+        jurisdiction
+        ) D ON A.departmentid = D.dept_id
+        LEFT JOIN (SELECT COUNT(*) AS sbnum, deptid, jurisdiction
+        FROM sys_socil
+        GROUP BY deptid, jurisdiction) E ON A.departmentid = E.deptid
+        LEFT JOIN (
+        SELECT COUNT(*) AS ghnum,
+        dept_id,
+        jurisdiction
+        FROM sys_dispatcher
+        GROUP BY dept_id, jurisdiction) F ON A.departmentid = F.dept_id
+        LEFT JOIN (SELECT SUM(num) AS pcnum,
+        dept_id,
+        jurisdiction
+        FROM sys_dispatcher
+        GROUP BY dept_id, jurisdiction) G ON A.departmentid = G.dept_id ) J
+        WHERE 1=1
+        <if test="jurisdiction!=null and jurisdiction!=''and jurisdiction!='1123598813738675201'">
+            and J.jurisdiction =#{jurisdiction}
+        </if>
+        <if test="enterpriseName!=null and enterpriseName!=''">
+            and J.enterpriseName like concat('%', #{enterpriseName},'%')
+        </if>
+        GROUP BY J.enterpriseName,
+        J.departmentid, J.cznum, J.ghnum, J.ghnum, J.pcnum, J.sbnum, J.zcnum, J.znum, J.jurname,J.jurisdiction
+    </select>
+
+    <!--公司经济情况进入图表-->
+    <select id="selectJj" resultType="java.util.HashMap">
+        SELECT J.*
+        FROM (
+        SELECT A.enterpriseName,
+        A.departmentid,
+        A.jurisdiction,
+        A.dept_name AS jurname,
+        IFNULL(B.sbcount, 0) AS sbcount,
+        IFNULL(C.sbnum, 0) AS sbnum,
+        IFNULL(D.pcnum, 0) AS pcnum,
+        IFNULL(E.znum, 0) AS znum,
+        TRUNCATE(znum / sbnum, 2) as zb
+        FROM (
+        SELECT i.enterpriseName,
+        i.departmentid,
+        i.jurisdiction,
+        j.dept_name
+        FROM sys_information i
+        LEFT JOIN sys_jurisdiction j ON i.jurisdiction = j.id
+        ) A
+        LEFT JOIN (SELECT SUM(amount) AS sbcount, deptid FROM sys_socil GROUP BY deptid) B
+        ON A.departmentid = B.deptid
+        LEFT JOIN (
+        SELECT COUNT(*) AS sbnum,
+        deptid
+        FROM sys_socil
+        GROUP BY deptid
+        ) C ON A.departmentid = C.deptid
+        LEFT JOIN (
+        SELECT COUNT(*) AS pcnum,
+        dept_id,
+        jurisdiction
+        FROM blade_user
+        WHERE role_id = '1412226235153731586'
+        AND dispatch = 0
+        GROUP BY dept_id,
+        jurisdiction
+        ) D ON A.departmentid = D.dept_id
+        LEFT JOIN (SELECT COUNT(*) AS znum, dept_id, jurisdiction
+        FROM blade_user
+        WHERE role_id = '1412226235153731586'
+        GROUP BY dept_id, jurisdiction) E ON A.departmentid = E.dept_id) J
+        WHERE 1=1
+        <if test="jurisdiction!=null and jurisdiction!=''and jurisdiction!='1123598813738675201'">
+            and J.jurisdiction =#{jurisdiction}
+        </if>
+        <if test="enterpriseName!=null and enterpriseName!=''">
+            and J.enterpriseName like concat('%', #{enterpriseName},'%')
+        </if>
+        GROUP BY J.departmentid, J.enterpriseName, J.jurisdiction, J.jurname, J.pcnum, J.sbcount, J.sbnum, J.zb, J.znum
+    </select>
+
+
+    <!--业务统计情况-->
+    <select id="selectYw" resultType="java.util.HashMap">
+        SELECT
+        A.enterpriseName,
+        A.dept_name as jurname,
+        IFNULL( B.num, 0 ) AS fwnum,
+        IFNULL( C.znum, 0 ) AS znum
+        FROM
+        (
+        SELECT
+        i.enterpriseName,
+        i.departmentid,
+        j.dept_name
+        FROM
+        sys_information i
+        LEFT JOIN sys_jurisdiction j ON i.jurisdiction = j.id
+        WHERE
+        i.enterpriseName IS NOT NULL
+        ) A
+        LEFT JOIN ( SELECT COUNT( * ) AS num, dept_id FROM sys_dispatcher_unit GROUP BY dept_id ) B ON A.departmentid =
+        B.dept_id
+        LEFT JOIN ( SELECT COUNT( * ) AS znum, dept_id FROM blade_user WHERE role_id = '1412226235153731586' GROUP BY
+        dept_id ) C ON A.departmentid = C.dept_id
+        where 1=1
+        <if test="jurisdiction!=null and jurisdiction!=''and jurisdiction!='1123598813738675201'">
+            AND A.jurisdiction=#{jurisdiction}
+        </if>
+        <if test="deptid!=null and deptid!=''">
+            and A.departmentid=#{deptid}
+        </if>
+    </select>
+
+    <!--保安人员详情-->
+    <select id="selectUIn" resultType="java.util.HashMap">
+        SELECT real_name,securitynumber,cardid,phone,hold,soil,photo,examination_type,dispatch FROM blade_user WHERE
+        role_id='1412226235153731586'
+        <if test="deptid!=null and deptid!=''">
+            and dept_id=#{deptid}
+        </if>
+        <if test="name!=null and name!=''">
+            and real_name like concat('%', #{name},'%')
+        </if>
+        <if test="hold!=null and hold!=''">
+            and hold=#{hold}
+        </if>
+        <if test="photo!=null and photo!=''">
+            and photo=#{photo}
+        </if>
+        <if test="examinationtype!=null and examinationtype!=''">
+            and examination_type=#{examinationtype}
+        </if>
+        <if test="dispatch!=null and dispatch!=''">
+            and dispatch=#{dispatch}
+        </if>
+        <if test="soil !=null and soil !=''">
+            and soil =#{soil}
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.9.3