智慧保安后台管理-验收版本
Administrator
2021-09-18 6ad9c778d138d0806966ce044dd4ee2ee46d2ea2
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -136,44 +136,54 @@
        j.dept_name
    </select>
    <!--通过辖区查询机构id,然后通过机构id查询当前机构交社保的人数(numj单位已交社保数量;numz单位人员总数)-->
    <select id="selectCs" resultType="java.util.HashMap">
        SELECT A.numj,
        B.numz,
        d.dept_name as deptname
        FROM (
        SELECT COUNT
        (*) AS numj,
        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!='1372091709474910209'">
            and i.jurisdiction in(${jurisdiction})
        </if>
        GROUP BY i.departmentid)
        GROUP BY deptid
        ) A
        left JOIN (
        SELECT COUNT
        (*) AS numz,
        dept_id
        SELECT COUNT(*) as numj,jurisdiction
        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
        WHERE soil = 1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and i.jurisdiction in(${jurisdiction})
            and jurisdiction in(${jurisdiction})
        </if>
        GROUP BY i.departmentid)
        GROUP BY dept_id
        ) B ON A.deptid = B.dept_id
        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}
        </if>
        group by jurisdiction
    </select>
    <!--通过辖区查询机构id,然后通过机构id查询当前机构交社保的人数(numj单位已交社保数量;numz单位人员总数)-->
    <!--    <select id="selectCs" resultType="java.util.HashMap">-->
    <!--        SELECT A.numj,-->
    <!--        B.numz,-->
    <!--        d.dept_name as deptname-->
    <!--        FROM (-->
    <!--        SELECT COUNT-->
    <!--        (*) AS numj,-->
    <!--        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!='1372091709474910209'">-->
    <!--            and i.jurisdiction in(${jurisdiction})-->
    <!--        </if>-->
    <!--        GROUP BY i.departmentid)-->
    <!--        GROUP BY deptid-->
    <!--        ) A-->
    <!--        left JOIN (-->
    <!--        SELECT COUNT-->
    <!--        (*) AS numz,-->
    <!--        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!='1372091709474910209'">-->
    <!--            and i.jurisdiction in(${jurisdiction})-->
    <!--        </if>-->
    <!--        GROUP BY i.departmentid)-->
    <!--        GROUP BY dept_id-->
    <!--        ) B ON A.deptid = B.dept_id-->
    <!--        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}-->
    <!--        </if>-->
    <!--    </select>-->
    <!--    &lt;!&ndash;统计上个月和这个月交社保的人数以及缴纳金额&ndash;&gt;-->
    <!--    <select id="selectTo" resultType="java.util.HashMap">-->
@@ -531,57 +541,90 @@
    <!--总保安数量-->
    <!--    <select id="queryCountB" resultType="java.util.HashMap">-->
    <!--        SELECT-->
    <!--        C.thisnum,-->
    <!--        C.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,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM-->
    <!--        blade_user-->
    <!--        WHERE-->
    <!--        role_id = '1412226235153731586' and status=1 and is_deleted=0-->
    <!--        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )-->
    <!--        GROUP BY-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        ) A-->
    <!--        LEFT JOIN (-->
    <!--        SELECT-->
    <!--        COUNT( * ) AS lastnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM-->
    <!--        blade_user-->
    <!--        WHERE-->
    <!--        role_id = '1412226235153731586' and status=1 and is_deleted=0-->
    <!--        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-->
    <!--        LEFT JOIN blade_dept d ON C.dept_id = d.id-->
    <!--        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction-->
    <!--        WHERE 1 =1-->
    <!--        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">-->
    <!--            and C.jurisdiction =#{jurisdiction}-->
    <!--        </if>-->
    <!--        <if test="deptid!=null and deptid!=''">-->
    <!--            and C.dept_id =#{deptid}-->
    <!--        </if>-->
    <!--    </select>-->
    <select id="queryCountB" resultType="java.util.HashMap">
        SELECT
        C.thisnum,
        C.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,
        dept_id,
        jurisdiction
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586' and status=1 and is_deleted=0
        AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY
        dept_id,
        jurisdiction
        ) A
        SELECT IFNULL(A.thisnum, 0) AS thisnum,
        IFNULL(B.lastnum, 0) AS lastnum,
        H.departmentid,
        H.jurisdiction
        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H
        LEFT JOIN (
        SELECT
        COUNT( * ) AS lastnum,
        dept_id,
        jurisdiction
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586' and status=1 and is_deleted=0
        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
        LEFT JOIN blade_dept d ON C.dept_id = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction
        WHERE 1 =1
        SELECT COUNT(*) AS thisnum,
        dept_id
        FROM blade_user
        WHERE role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND DATE_FORMAT(create_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
        GROUP BY dept_id
        ) A ON A.dept_id = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS lastnum,
        dept_id
        FROM blade_user
        WHERE role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(create_time, '%Y%m')) = 1
        GROUP BY dept_id
        ) B ON B.dept_id = H.departmentid where 1=1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and C.jurisdiction =#{jurisdiction}
            and H.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and C.dept_id =#{deptid}
            and H.departmentid =#{deptid}
        </if>
    </select>
@@ -761,39 +804,65 @@
    </select>
    <!--保安派遣数量-->
    <!--    <select id="queryCountPq" resultType="java.util.HashMap">-->
    <!--        SELECT C.thisnum,-->
    <!--        C.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 SUM(num) AS thisnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM sys_dispatcher-->
    <!--        WHERE DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )-->
    <!--        GROUP BY dept_id, jurisdiction-->
    <!--        ) A-->
    <!--        left JOIN (-->
    <!--        SELECT SUM(num) AS lastnum,-->
    <!--        dept_id,-->
    <!--        jurisdiction-->
    <!--        FROM sys_dispatcher-->
    <!--        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-->
    <!--        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1-->
    <!--        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">-->
    <!--            and C.jurisdiction =#{jurisdiction}-->
    <!--        </if>-->
    <!--        <if test="deptid!=null and deptid!=''">-->
    <!--            and C.dept_id =#{deptid}-->
    <!--        </if>-->
    <!--    </select> -->
    <select id="queryCountPq" resultType="java.util.HashMap">
        SELECT C.thisnum,
        C.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 SUM(num) AS thisnum,
        dept_id,
        jurisdiction
        FROM sys_dispatcher
        WHERE DATE_FORMAT( dispatcherTime, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
        GROUP BY dept_id, jurisdiction
        ) A
        left JOIN (
        SELECT SUM(num) AS lastnum,
        dept_id,
        jurisdiction
        FROM sys_dispatcher
        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
        LEFT JOIN sys_jurisdiction j ON j.id = C.jurisdiction where 1=1
        SELECT IFNULL(G.thisnum, 0) AS thisnum,
               IFNULL(J.lastnum, 0) AS lastnum
        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H
                 LEFT JOIN (
            SELECT SUM(num) AS thisnum,
                   dept_id
            FROM sys_dispatcher
            WHERE DATE_FORMAT(dispatcherTime, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
            GROUP BY dept_id
        ) G ON G.dept_id = H.departmentid
                 LEFT JOIN (
            SELECT SUM(num) AS lastnum,
                   dept_id
            FROM sys_dispatcher
            WHERE PERIOD_DIFF(date_format(now(), '%Y%m'), date_format(dispatcherTime, '%Y%m')) = 1
            GROUP BY dept_id
        ) J ON J.dept_id = H.departmentid
        WHERE 1 = 1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and C.jurisdiction =#{jurisdiction}
            and H.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and C.dept_id =#{deptid}
            and H.departmentid =#{deptid}
        </if>
    </select>
@@ -1011,12 +1080,12 @@
        j.dept_name
    </select>
<!--    &lt;!&ndash;查询出所有辖区信息&ndash;&gt;-->
<!--    <select id="selectJur" resultType="java.util.HashMap">-->
<!--        SELECT id, dept_name-->
<!--        FROM sys_jurisdiction-->
<!--        WHERE id!=1372091709474910209-->
<!--    </select> -->
    <!--    &lt;!&ndash;查询出所有辖区信息&ndash;&gt;-->
    <!--    <select id="selectJur" resultType="java.util.HashMap">-->
    <!--        SELECT id, dept_name-->
    <!--        FROM sys_jurisdiction-->
    <!--        WHERE id!=1372091709474910209-->
    <!--    </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
@@ -1138,50 +1207,50 @@
        ON E.deptid = A.dept_id
        LEFT JOIN
        (
            SELECT
            COUNT( * ) AS wcaijnum,
            dept_id,
            jurisdiction
            FROM
            blade_user
            WHERE
            role_id = '1412226235153731586' and status=1 AND is_deleted=0
            AND photo=1
            GROUP BY
            dept_id,
            jurisdiction
        SELECT
        COUNT( * ) AS wcaijnum,
        dept_id,
        jurisdiction
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586' and status=1 AND is_deleted=0
        AND photo=1
        GROUP BY
        dept_id,
        jurisdiction
        ) F
        ON F.dept_id = A.dept_id
        LEFT JOIN
        (
            SELECT
            COUNT( * ) AS ycaijzpnum,
            dept_id,
            jurisdiction
            FROM
            blade_user
            WHERE
            role_id = '1412226235153731586' and status=1 AND is_deleted=0
            AND photo=0
            GROUP BY
            dept_id,
            jurisdiction
        SELECT
        COUNT( * ) AS ycaijzpnum,
        dept_id,
        jurisdiction
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586' and status=1 AND is_deleted=0
        AND photo=0
        GROUP BY
        dept_id,
        jurisdiction
        ) H
        ON H.dept_id = A.dept_id
        LEFT JOIN
        (
            SELECT
            COUNT( * ) AS ycaijzwnum,
            dept_id,
            jurisdiction
            FROM
            blade_user
            WHERE
            role_id = '1412226235153731586' and status=1 AND is_deleted=0
            AND fingerprint=0
            GROUP BY
            dept_id,
            jurisdiction
        SELECT
        COUNT( * ) AS ycaijzwnum,
        dept_id,
        jurisdiction
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586' and status=1 AND is_deleted=0
        AND fingerprint=0
        GROUP BY
        dept_id,
        jurisdiction
        ) I
        ON I.dept_id = A.dept_id
        LEFT JOIN (
@@ -1361,6 +1430,37 @@
        J.departmentid, J.cznum, J.ghnum, J.ghnum, J.pcnum, J.sbnum, J.zcnum, J.znum, J.jurname,J.jurisdiction
    </select>
    <select id="seleP" resultType="java.util.HashMap">
        SELECT
        IFNULL(G.pnum, 0) AS pnum,
        IFNULL(J.wpnum, 0) AS wpnum
        FROM (SELECT departmentid, jurisdiction FROM sys_information GROUP BY departmentid, jurisdiction) H
        LEFT JOIN (
        SELECT COUNT(*) AS pnum,
        dept_id
        FROM blade_user
        WHERE dispatch = 0
        AND STATUS = 1
        AND is_deleted = 0
        GROUP BY dept_id
        ) G ON G.dept_id = H.departmentid
        LEFT JOIN (
        SELECT COUNT(*) AS wpnum,
        dept_id
        FROM blade_user
        WHERE dispatch = 1
        AND STATUS = 1
        AND is_deleted = 0
        GROUP BY dept_id
        ) J ON J.dept_id = H.departmentid where 1=1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and H.jurisdiction =#{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            and H.departmentid =#{deptid}
        </if>
    </select>
    <!--公司经济情况进入图表-->
    <select id="selectJj" resultType="java.util.HashMap">
        SELECT J.*
@@ -1444,17 +1544,17 @@
        ) A
        LEFT JOIN
        (
            SELECT COUNT( * ) AS num, dept_id FROM sys_dispatcher_unit
            where
            start_time &lt;= now() and end_time &gt; now()
            GROUP BY dept_id
        SELECT COUNT( * ) AS num, dept_id FROM sys_dispatcher_unit
        where
        start_time &lt;= now() and end_time &gt; now()
        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'
            and status=1
            GROUP BY dept_id
        SELECT COUNT( * ) AS znum, dept_id FROM blade_user WHERE role_id = '1412226235153731586'
        and status=1
        GROUP BY dept_id
        ) C
        ON A.departmentid = C.dept_id
        LEFT JOIN
@@ -1833,16 +1933,15 @@
    <!--获取保安公司信息(本市保安公司,分公司)包含经纬度-->
    <select id="getSecurityUnitPositionInfo" resultType="org.springblade.modules.information.vo.InformationVO">
        select
        si.*,sj.dept_name jurisdictionName
        from
        sys_information si
        left join
        sys_jurisdiction sj
        on
        si.jurisdiction = sj.id
        where 1=1
        and (stats = 2 or stats = 4)
        select si.*,
               sj.dept_name jurisdictionName
        from sys_information si
                 left join
             sys_jurisdiction sj
             on
                 si.jurisdiction = sj.id
        where 1 = 1
          and (stats = 2 or stats = 4)
    </select>
    <!--根据辖区查询保安公司分页信息(本市保安公司,分公司)-->
@@ -1858,50 +1957,50 @@
        where 1=1
        and (stats = 0 or stats = 1 or stats = 2 or stats = 4)
        <if test="information.jurisdiction!=null and information.jurisdiction!=''">
            and (sj.id = #{information.jurisdiction} or sj.parent_id =  #{information.jurisdiction})
            and (sj.id = #{information.jurisdiction} or sj.parent_id = #{information.jurisdiction})
        </if>
    </select>
    <sql id="getSecurity">
        select
            dept_id,ifnull(count(*),0) count
            from blade_user bu
        select dept_id,
               ifnull(count(*), 0) count
        from blade_user bu
            left join blade_role br
            on bu.role_id = br.id
            where
        on bu.role_id = br.id
        where
            role_alias = "安保人员"
            and bu.is_deleted = 0
            and bu.`status` = 1
          and bu.is_deleted = 0
          and bu.`status` = 1
    </sql>
    <!--根据辖区查询统计保安公司持证情况分页信息(本市保安公司,分公司)-->
    <select id="getSecurityUnitHoldInfoPage" resultType="org.springblade.modules.information.vo.InformationVO">
        select
            si.*,sj.dept_name jurisdictionName,
            ifnull(a.count,0) znum,
            ifnull(b.count,0) cnum,
            ifnull(c.count,0) pnum
        si.*,sj.dept_name jurisdictionName,
        ifnull(a.count,0) znum,
        ifnull(b.count,0) cnum,
        ifnull(c.count,0) pnum
        from sys_information si
        left join
        (
            <include refid="getSecurity"/>
            group by dept_id
        <include refid="getSecurity"/>
        group by dept_id
        ) a
        on
        a.dept_id = si.departmentid
        left join
        (
            <include refid="getSecurity"/>
            and bu.hold = 1
            group by dept_id
        <include refid="getSecurity"/>
        and bu.hold = 1
        group by dept_id
        ) b
        on
        b.dept_id = si.departmentid
        left join
        (
            <include refid="getSecurity"/>
            and bu.hold = 2
            group by dept_id
        <include refid="getSecurity"/>
        and bu.hold = 2
        group by dept_id
        ) c
        on
        c.dept_id = si.departmentid
@@ -1912,55 +2011,72 @@
        where 1=1
        and (si.stats = 2 or si.stats = 4)
        <if test="information.jurisdiction!=null and information.jurisdiction!=''">
            and (sj.id = #{information.jurisdiction} or sj.parent_id =  #{information.jurisdiction})
            and (sj.id = #{information.jurisdiction} or sj.parent_id = #{information.jurisdiction})
        </if>
    </select>
    <!--根据辖区查询统计保安公司(1:持证率低于50% 2:派遣率低于50%  3:缴纳社保率低于50% 的保安公司个数及保安公司分页信息(本市保安公司,分公司)-->
    <select id="getSecurityUnitLess50Page" resultType="org.springblade.modules.information.vo.InformationVO">
        select c.*,sj.dept_name jurisdictionName from (
            select
            si.*,
            ifnull(a.count,0) znum,
            ifnull(b.count,0) cnum,
            ifnull(FORMAT((b.count/a.count)*100,2),0) pnum
            from sys_information si
            left join
            (
                <include refid="getSecurity"/>
                group by dept_id
            ) a
            on
            a.dept_id = si.departmentid
            left join
            (
                <include refid="getSecurity"/>
                <if test="type==1">
                    and bu.hold = 1
                </if>
                <if test="type==2">
                    and bu.dispatch = 0
                </if>
                <if test="type==3">
                    and bu.soil = 0
                </if>
                <if test="type==4">
                    and bu.insurance = 0
                </if>
                group by dept_id
            ) b
            on
            b.dept_id = si.departmentid
        select c.*,sj.dept_name jurisdictionName,si.enterpriseName enterprisename from (
        select
        a.dept_id,
        ifnull(a.count,0) znum,
        ifnull(b.count,0) cnum,
        ifnull(FORMAT((b.count/a.count)*100,2),0) pnum
        from
        (
        select dept_id,
        ifnull(count(*), 0) count
        from blade_user bu
        left join blade_role br
        on bu.role_id = br.id
        where
        role_alias = "安保人员"
        and bu.is_deleted = 0
        and bu.`status` = 1
        group by dept_id
        ) a
        left join
        (
        select dept_id,
        ifnull(count(*), 0) count
        from blade_user bu
        left join blade_role br
        on bu.role_id = br.id
        where
        role_alias = "安保人员"
        and bu.is_deleted = 0
        and bu.`status` = 1
        <if test="type==1">
            and bu.hold = 1
        </if>
        <if test="type==2">
            and bu.dispatch = 0
        </if>
        <if test="type==3">
            and bu.soil = 0
        </if>
        <if test="type==4">
            and bu.insurance = 0
        </if>
        group by dept_id
        ) b
        on
        a.dept_id = b.dept_id
        )c
        left join
        sys_information si
        on
        si.departmentid = c.dept_id
        left join
        sys_jurisdiction sj
        on
        c.jurisdiction = sj.id
        si.jurisdiction = sj.id
        where 1=1
        and (c.stats = 2 or c.stats = 4)
        and (si.stats = 2 or si.stats = 4)
        and pnum &lt; #{information.proportion}
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (sj.id = #{information.jurisdiction} or sj.parent_id =  #{information.jurisdiction})
            and (sj.id = #{information.jurisdiction} or sj.parent_id = #{information.jurisdiction})
        </if>
        <if test="information.departmentid!=null and information.departmentid!=''">
            and c.departmentid = #{information.departmentid}
@@ -1972,81 +2088,82 @@
    <!--根据辖区查询统计保安公司考试通过率低于50%的保安公司个数及保安公司分页信息(本市保安公司,分公司)-->
    <select id="getSecurityUnitExamLess50Page" resultType="org.springblade.modules.information.vo.InformationVO">
        select d.*,sj.dept_name jurisdictionName from (
            select
            si.*,
            ifnull(a.count,0) znum,
            ifnull(b.count,0) cnum,
            ifnull(FORMAT((b.count/c.count)*100,2),0) pnum
            from sys_information si
            left join
            (
            <include refid="getSecurity"/>
            group by dept_id
            ) a
            on
            a.dept_id = si.departmentid
            left join
            (
                select b1.dept_id,ifnull(b2.count,0) count from
                    (
                        select
                        bu.dept_id,ifnull(count(*),0) count
                        from blade_user bu
                        left join blade_role br
                        on bu.role_id = br.id
                        where
                        role_alias = "安保人员"
                        and bu.is_deleted = 0
                        and bu.`status` = 1
                        group by dept_id
                    ) b1
        select
        si.*,
        ifnull(a.count,0) znum,
        ifnull(b.count,0) cnum,
        ifnull(FORMAT((b.count/c.count)*100,2),0) pnum,
        ifnull(c.count,0) knum
        from sys_information si
        left join
        (
        <include refid="getSecurity"/>
        group by dept_id
        ) a
        on
        a.dept_id = si.departmentid
        left join
        (
        select b1.dept_id,ifnull(b2.count,0) count from
        (
        select
        bu.dept_id,ifnull(count(*),0) count
        from blade_user bu
        left join blade_role br
        on bu.role_id = br.id
        where
        role_alias = "安保人员"
        and bu.is_deleted = 0
        and bu.`status` = 1
        group by dept_id
        ) b1
                    left join
                    (
                        select count(*) count,bu.dept_id from
                        exam_score es
                        left join
                        blade_user bu
                        on
                        bu.id = es.user_id
                        where qualified = 0 group by bu.dept_id
                    ) b2
                on
                b1.dept_id = b2.dept_id
            ) b
            on
            b.dept_id = si.departmentid
            left join
            (
                select c1.dept_id,ifnull(c2.count,0) count from
                (
                    select
                    bu.dept_id,ifnull(count(*),0) count
                    from blade_user bu
                    left join blade_role br
                    on bu.role_id = br.id
                    where
                    role_alias = "安保人员"
                    and bu.is_deleted = 0
                    and bu.`status` = 1
                    group by dept_id
                ) c1
        left join
        (
        select count(*) count,bu.dept_id from
        exam_score es
        left join
        blade_user bu
        on
        bu.id = es.user_id
        where qualified = 0 group by bu.dept_id
        ) b2
        on
        b1.dept_id = b2.dept_id
        ) b
        on
        b.dept_id = si.departmentid
        left join
        (
        select c1.dept_id,ifnull(c2.count,0) count from
        (
        select
        bu.dept_id,ifnull(count(*),0) count
        from blade_user bu
        left join blade_role br
        on bu.role_id = br.id
        where
        role_alias = "安保人员"
        and bu.is_deleted = 0
        and bu.`status` = 1
        group by dept_id
        ) c1
                left join
                (
                    select count(*) count,bu.dept_id from
                    exam_score es
                    left join
                    blade_user bu
                    on
                    bu.id = es.user_id
                    where 1=1 group by bu.dept_id
                ) c2
                on
                c1.dept_id = c2.dept_id
            ) c
            on
            c.dept_id = si.departmentid
        left join
        (
        select count(*) count,bu.dept_id from
        exam_score es
        left join
        blade_user bu
        on
        bu.id = es.user_id
        where 1=1 group by bu.dept_id
        ) c2
        on
        c1.dept_id = c2.dept_id
        ) c
        on
        c.dept_id = si.departmentid
        )d
        left join
        sys_jurisdiction sj
@@ -2054,9 +2171,10 @@
        d.jurisdiction = sj.id
        where 1=1
        and (d.stats = 2 or d.stats = 4)
        and knum != 0
        and pnum &lt; #{information.proportion}
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (sj.id = #{information.jurisdiction} or sj.parent_id =  #{information.jurisdiction})
            and (sj.id = #{information.jurisdiction} or sj.parent_id = #{information.jurisdiction})
        </if>
    </select>
@@ -2078,125 +2196,653 @@
    <!--根据辖区查询统计当前辖区下的保安公司(本市保安公司,分公司)预警信息,包含(未持证,现实表现差,未缴纳社保,资格审查异常)-->
    <select id="getSubstationWarnInfoPage" resultType="org.springblade.modules.information.vo.InformationVO">
        select jurisdictionName,enterprisename,detail from (
        (
        select
        si.jurisdiction id,
        sj.parent_id,
        sj.dept_name jurisdictionName,
        si.enterprisename,
        "表现差" detail
        from sys_performance sp
        left join
        blade_user bu
        on
        bu.id = sp.securityId
        left join
        sys_information si
        on
        bu.dept_id = si.departmentid
        left join
        sys_jurisdiction sj
        on
        sj.id = si.jurisdiction
        where
        1=1
        and (si.stats = 2 or si.stats =4)
        and bu.is_deleted = 0
        and bu.`status` = 1
        and sp.score = 3
        )
        union
        (
        select
        sj.id,
        sj.parent_id,
        sj.dept_name jurisdictionName,
        si.enterprisename,
        if(bu.hold=2,"未持证","证件吊销") as detail
        from
        blade_user bu
        <include refid="getSubstationWarn"/>
        and (bu.hold = 2 or bu.hold = 3)
        )
        union
        (
        select
        sj.id,
        sj.parent_id,
        sj.dept_name jurisdictionName,
        si.enterprisename,
        "未缴纳社保" as detail
        from
        blade_user bu
        <include refid="getSubstationWarn"/>
        and bu.soil = 1
        )
        union
        (
        select
        sj.id,
        sj.parent_id,
        sj.dept_name jurisdictionName,
        si.enterprisename,
        "审查异常" as detail
        from
        blade_user bu
        <include refid="getSubstationWarn"/>
        and bu.examination_type = 1
        )
        (select
            sj1.dept_name jurisdictionName,
            si1.enterpriseName enterprisename,
            "表现差" detail,
            a.count znum
        from (
            select
            bu.dept_id,count(*) count
            from sys_performance sp
            left join
            blade_user bu
            on
            bu.id = sp.securityId
            where
            1=1
            and bu.is_deleted = 0
            and bu.`status` = 1
            and sp.score = 3
            GROUP BY bu.dept_id
        ) a
        left join
        sys_information si1
        on
        a.dept_id = si1.departmentid
        left join
        sys_jurisdiction sj1
        on
        sj1.id = si1.jurisdiction
        where 1=1
        and (si1.stats = 2 or si1.stats =4)
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (a.id = #{information.jurisdiction} or a.parent_id = #{information.jurisdiction})
            and (sj1.id = #{information.jurisdiction} or sj1.parent_id = #{information.jurisdiction})
        </if>
        )
        union
        (
            select
            sj1.dept_name jurisdictionName,
            si1.enterpriseName enterprisename,
            "资格审查异常" detail,
            a.count znum
            from (
                select
                bu.dept_id,count(*) count
                from
                blade_user bu
                where
                1=1
                and bu.is_deleted = 0
                and bu.`status` = 1
                and bu.examination_type = 1
                GROUP BY bu.dept_id
            ) a
            left join
            sys_information si1
            on
            a.dept_id = si1.departmentid
            left join
            sys_jurisdiction sj1
            on
            sj1.id = si1.jurisdiction
            where 1=1
            and (si1.stats = 2 or si1.stats =4)
            <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
                and (sj1.id = #{information.jurisdiction} or sj1.parent_id = #{information.jurisdiction})
            </if>
        )
        union
        (
        select
        sj1.dept_name jurisdictionName,
        si1.enterpriseName enterprisename,
        "考试通过率低于50%" detail,
        e.count znum
        from
        (
            select d.dept_id,count(*) count from (
                select a.dept_id, ifnull(b.count, 0) num1, ifnull(c.count, 0) num2,ifnull(FORMAT((c.count/b.count)*100, 2), 0) num3 from
                    (
                    select
                    bu.dept_id, ifnull(count(*), 0) count
                    from blade_user bu
                    left join blade_role br
                    on bu.role_id = br.id
                    where
                    role_alias = "安保人员"
                    and bu.is_deleted = 0
                    and bu.`status` = 1
                    group by dept_id
                    ) a
                    left join
                    (
                    select count(*) count, bu.dept_id from
                    exam_score es
                    left join
                    blade_user bu
                    on
                    bu.id = es.user_id
                    where 1=1 group by bu.dept_id
                    ) b
                    on
                    a.dept_id = b.dept_id
                    left join
                    (
                    select count(*) count, bu.dept_id from
                    exam_score es
                    left join
                    blade_user bu
                    on
                    bu.id = es.user_id
                    where qualified = 0 group by bu.dept_id
                    ) c
                on
                c.dept_id = a.dept_id
                where 1=1
            ) d
            where 1=1
            and num1!=0
            and num3 &lt; 50
            GROUP BY dept_id
        ) e
        left join
        sys_information si1
        on
        e.dept_id = si1.departmentid
        left join
        sys_jurisdiction sj1
        on
        sj1.id = si1.jurisdiction
        where 1=1
        and (stats = 2 or stats=4)
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (sj1.id = #{information.jurisdiction} or sj1.parent_id = #{information.jurisdiction})
        </if>
        )
        union
        (
            select
            sj1.dept_name jurisdictionName,
            si1.enterpriseName enterprisename,
            "持证率低于50%" detail,
            e.count znum
            from
            (
                select c.dept_id,count(*) count from (
                SELECT
                a.dept_id,
                ifnull(a.count,0) num1,
                ifnull(b.count,0) num2,
                ifnull(FORMAT((b.count/a.count)*100,2),0) num3
                FROM (
                SELECT
                bu.dept_id,
                ifnull(count(*),0) count
                FROM
                blade_user bu
                LEFT JOIN blade_role br ON bu.role_id = br.id
                WHERE
                role_alias = "安保人员"
                AND bu.is_deleted = 0
                AND bu.`status` = 1
                GROUP BY
                dept_id
                ) a
                LEFT JOIN (
                SELECT
                bu.dept_id,
                ifnull(count(*),0) count
                FROM
                blade_user bu
                LEFT JOIN blade_role br ON bu.role_id = br.id
                WHERE
                role_alias = "安保人员"
                AND bu.is_deleted = 0
                AND bu.`status` = 1
                AND bu.hold = 1
                GROUP BY
                dept_id
                ) b ON a.dept_id = b.dept_id
                ) c
                where 1=1
                and num3 &lt; 50
                GROUP BY c.dept_id
            ) e
            left join
            sys_information si1
            on
            e.dept_id = si1.departmentid
            left join
            sys_jurisdiction sj1
            on
            sj1.id = si1.jurisdiction
            where 1=1
            AND ( stats = 2 OR stats = 4 )
            <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
                and (sj1.id = #{information.jurisdiction} or sj1.parent_id = #{information.jurisdiction})
            </if>
        )
        union
        (
            select
            sj1.dept_name jurisdictionName,
            si1.enterpriseName enterprisename,
            "社保缴纳率低于50%" detail,
            e.count znum
            from
            (
                select c.dept_id,count(*) count from (
                SELECT
                a.dept_id,
                ifnull(a.count,0) num1,
                ifnull(b.count,0) num2,
                ifnull(FORMAT((b.count/a.count)*100,2),0) num3
                FROM (
                SELECT
                bu.dept_id,
                ifnull(count(*),0) count
                FROM
                blade_user bu
                LEFT JOIN blade_role br ON bu.role_id = br.id
                WHERE
                role_alias = "安保人员"
                AND bu.is_deleted = 0
                AND bu.`status` = 1
                GROUP BY
                dept_id
                ) a
                LEFT JOIN (
                SELECT
                bu.dept_id,
                ifnull(count(*),0) count
                FROM
                blade_user bu
                LEFT JOIN blade_role br ON bu.role_id = br.id
                WHERE
                role_alias = "安保人员"
                AND bu.is_deleted = 0
                AND bu.`status` = 1
                AND bu.soil = 0
                GROUP BY
                dept_id
                ) b ON a.dept_id = b.dept_id
                ) c
                where 1=1
                and num3 &lt; 50
                GROUP BY c.dept_id
            ) e
            left join
            sys_information si1
            on
            e.dept_id = si1.departmentid
            left join
            sys_jurisdiction sj1
            on
            sj1.id = si1.jurisdiction
            where 1=1
            AND ( stats = 2 OR stats = 4 )
            <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
                and (sj1.id = #{information.jurisdiction} or sj1.parent_id = #{information.jurisdiction})
            </if>
        )
        union
        (
            select
            sj1.dept_name jurisdictionName,
            si1.enterpriseName enterprisename,
            "派遣率低于50%" detail,
            e.count znum
            from
            (
                select c.dept_id,count(*) count from (
                SELECT
                a.dept_id,
                ifnull(a.count,0) num1,
                ifnull(b.count,0) num2,
                ifnull(FORMAT((b.count/a.count)*100,2),0) num3
                FROM (
                SELECT
                bu.dept_id,
                ifnull(count(*),0) count
                FROM
                blade_user bu
                LEFT JOIN blade_role br ON bu.role_id = br.id
                WHERE
                role_alias = "安保人员"
                AND bu.is_deleted = 0
                AND bu.`status` = 1
                GROUP BY
                dept_id
                ) a
                LEFT JOIN (
                SELECT
                bu.dept_id,
                ifnull(count(*),0) count
                FROM
                blade_user bu
                LEFT JOIN blade_role br ON bu.role_id = br.id
                WHERE
                role_alias = "安保人员"
                AND bu.is_deleted = 0
                AND bu.`status` = 1
                AND bu.dispatch = 0
                GROUP BY
                dept_id
                ) b ON a.dept_id = b.dept_id
            ) c
            where 1=1
            and num3 &lt; 50
            GROUP BY c.dept_id
            ) e
            left join
            sys_information si1
            on
            e.dept_id = si1.departmentid
            left join
            sys_jurisdiction sj1
            on
            sj1.id = si1.jurisdiction
            where 1=1
            AND ( stats = 2 OR stats = 4 )
            <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
                and (sj1.id = #{information.jurisdiction} or sj1.parent_id = #{information.jurisdiction})
            </if>
        )
    </select>
    <!--根据辖区查询统计当前辖区下的保安公司(本市保安公司,分公司))服务对象小于2家的公司数量的分页信息-->
    <select id="getSecurityUnitServerLess2Page" resultType="org.springblade.modules.information.vo.InformationVO">
        select * from
        (
            select
            DISTINCT
            si.id,
            si.departmentid,
            si.jurisdiction,
            si.enterprisename,
            sj.dept_name jurisdictionName,
            ifnull(a.count,0) znum,
            sdu.name dispatchUnitName,
            sdu.end_time
            from sys_information si
            left join
            sys_dispatcher_unit sdu
            on
            si.departmentid = sdu.dept_id
            left join
            sys_jurisdiction sj
            on
            sj.id = si.jurisdiction
            left join
            (
            select  ifnull(count(*),0) count,dept_id from sys_dispatcher_unit
            where 1=1
            and start_time &lt;= now()
            and end_time &gt; now()
            GROUP BY dept_id
            ) a
            on
            a.dept_id = si.departmentid
            where 1=1
            <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
                and (sj.id = #{information.jurisdiction} or sj.parent_id =  #{information.jurisdiction})
            </if>
        select
        DISTINCT
        si.id,
        si.departmentid,
        si.jurisdiction,
        si.enterprisename,
        sj.dept_name jurisdictionName,
        ifnull(a.count,0) znum,
        sdu.name dispatchUnitName,
        sdu.end_time
        from sys_information si
        left join
        sys_dispatcher_unit sdu
        on
        si.departmentid = sdu.dept_id
        left join
        sys_jurisdiction sj
        on
        sj.id = si.jurisdiction
        left join
        (
        select ifnull(count(*),0) count,dept_id from sys_dispatcher_unit
        where 1=1
        and start_time &lt;= now()
        and end_time &gt; now()
        GROUP BY dept_id
        ) a
        on
        a.dept_id = si.departmentid
        where 1=1
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (sj.id = #{information.jurisdiction} or sj.parent_id = #{information.jurisdiction})
        </if>
        ) b
        where b.znum &lt; 2
        <if test="information.departmentid!=null and information.departmentid!=''">
            and b.departmentid = #{information.departmentid}
        </if>
    </select>
    <!--统计表现差的信息-->
    <select id="getSecurityPerformanceGroupCountList" resultType="org.springblade.modules.information.vo.ResponseVo">
        select a.id,
               a.dept_name name,
               ifnull(b.count, 0) num
        from (select id, dept_name from sys_jurisdiction where parent_id = 1372091709474910209) a
                 left join
             (
                 select sj.id,
                        sj.parent_id,
                        count(*) count
                 from sys_performance sp
                     left join
                     blade_user bu
                 on
                     bu.id = sp.securityId
                     left join
                     sys_information si
                     on
                     bu.dept_id = si.departmentid
                     left join
                     sys_jurisdiction sj
                     on
                     sj.id = si.jurisdiction
                 where
                     1=1
                   and (si.stats = 2
                    or si.stats =4)
                   and bu.is_deleted = 0
                   and bu.`status` = 1
                   and sp.score = 3
                 group by si.jurisdiction
             ) b
             on
            a.id = b.parent_id
    </select>
    <!--统计资格审查异常信息-->
    <select id="getSecurityExaminationGroupCountList" resultType="org.springblade.modules.information.vo.ResponseVo">
        select a.id, a.dept_name name, ifnull(b.count, 0) num
        from (select id, dept_name from sys_jurisdiction where parent_id = 1372091709474910209) a
                 left join
             (
                 select sj.id,
                        sj.parent_id,
                        count(*) count
                 from
                     blade_user bu
                     left join
                     sys_information si
                 on
                     bu.dept_id = si.departmentid
                     left join
                     sys_jurisdiction sj
                     on
                     sj.id = si.jurisdiction
                 where
                     1=1
                   and (si.stats = 2
                    or si.stats =4)
                   and bu.is_deleted = 0
                   and bu.`status` = 1
                   and bu.examination_type = 1
                 group by si.jurisdiction
             ) b
             on
                 a.id = b.parent_id
    </select>
    <!--考试通过率低于50%-->
    <select id="getSecurityExamPassingGroupCountList" resultType="org.springblade.modules.information.vo.ResponseVo">
        select g.id, g.dept_name name, ifnull(f.count, 0) num
        from (select id, dept_name from sys_jurisdiction where parent_id = 1372091709474910209) g
                 left join
             (
                 select e.id, e.parent_id, count(*) count
                 from (
                     select d.*, ifnull(FORMAT((num2/num1)*100, 2), 0) num3, sj.* from (
                     select a.dept_id, ifnull(b.count, 0) num1, ifnull(c.count, 0) num2 from
                     (
                     select
                     bu.dept_id, ifnull(count (*), 0) count
                     from blade_user bu
                     left join blade_role br
                     on bu.role_id = br.id
                     where
                     role_alias = "安保人员"
                     and bu.is_deleted = 0
                     and bu.`status` = 1
                     group by dept_id
                     ) a
                     left join
                     (
                     select count (*) count, bu.dept_id from
                     exam_score es
                     left join
                     blade_user bu
                     on
                     bu.id = es.user_id
                     where 1=1 group by bu.dept_id
                     ) b
                     on
                     a.dept_id = b.dept_id
                     left join
                     (
                     select count (*) count, bu.dept_id from
                     exam_score es
                     left join
                     blade_user bu
                     on
                     bu.id = es.user_id
                     where qualified = 0 group by bu.dept_id
                     ) c
                     on a.dept_id = c.dept_id
                     ) d
                     left join
                     sys_information si
                     on
                     si.departmentid = d.dept_id
                     left join
                     sys_jurisdiction sj
                     on
                     sj.id = si.jurisdiction
                     where d.num1!=0
                     and (stats = 2 or stats=4)
                     ) e
                 where e.num3 &lt; 50
                 group by e.id
             ) f
             on
                 g.id = f.parent_id
    </select>
    <!--持证率低于50%,社保缴纳率低于50%,派遣率低于50%-->
    <!--    <select id="getSecurityHoldAndSoidAndDispatchGroupCountList" resultType="org.springblade.modules.information.vo.ResponseVo">-->
    <!--        select g.id,g.dept_name name,ifnull(f.count,0) num-->
    <!--            from-->
    <!--        (select id,dept_name from sys_jurisdiction where parent_id = 1372091709474910209) g-->
    <!--            left join-->
    <!--        (-->
    <!--            select e.id,e.parent_id,count(*) count from (-->
    <!--                select d.*,ifnull(FORMAT((num2/num1)*100,2),0) num3,sj.* from (-->
    <!--                    select a.dept_id,ifnull(a.count,0) num1,ifnull(b.count,0) num2 from-->
    <!--                    (-->
    <!--                    select-->
    <!--                    bu.dept_id,ifnull(count(*),0) count-->
    <!--                    from blade_user bu-->
    <!--                    left join blade_role br-->
    <!--                    on bu.role_id = br.id-->
    <!--                    where-->
    <!--                    role_alias = "安保人员"-->
    <!--                    and bu.is_deleted = 0-->
    <!--                    and bu.`status` = 1-->
    <!--                    group by dept_id-->
    <!--                    ) a-->
    <!--                    left join-->
    <!--                    (-->
    <!--                    select-->
    <!--                    bu.dept_id,ifnull(count(*),0) count-->
    <!--                    from blade_user bu-->
    <!--                    left join blade_role br-->
    <!--                    on bu.role_id = br.id-->
    <!--                    where-->
    <!--                    role_alias = "安保人员"-->
    <!--                    and bu.is_deleted = 0-->
    <!--                    and bu.`status` = 1-->
    <!--                    <if test="type==1">-->
    <!--                        and bu.hold = 1-->
    <!--                    </if>-->
    <!--                    <if test="type==2">-->
    <!--                        and bu.dispatch = 0-->
    <!--                    </if>-->
    <!--                    <if test="type==3">-->
    <!--                        and bu.soil = 0-->
    <!--                    </if>-->
    <!--                    group by dept_id-->
    <!--                    ) b-->
    <!--                    on-->
    <!--                    a.dept_id = b.dept_id-->
    <!--                )d-->
    <!--                left join-->
    <!--                sys_information si-->
    <!--                on-->
    <!--                si.departmentid = d.dept_id-->
    <!--                left join-->
    <!--                sys_jurisdiction sj-->
    <!--                on-->
    <!--                sj.id = si.jurisdiction-->
    <!--                and (stats = 2 or stats=4)-->
    <!--            )e-->
    <!--            where e.num3 &lt; 50-->
    <!--            group by e.id-->
    <!--        ) f-->
    <!--            on-->
    <!--        g.id = f.parent_id-->
    <!--    </select>-->
    <!--持证率低于50%,社保缴纳率低于50%,派遣率低于50%-->
    <select id="getSecurityHoldAndSoidAndDispatchGroupCountList" resultType="org.springblade.modules.information.vo.ResponseVo">
        select g.id,g.dept_name name,ifnull(f.count,0) num
        from
        (select id,dept_name from sys_jurisdiction where parent_id = 1372091709474910209) g
        left join
        (
            select c.id,c.parent_id,count(*) count from (
                select si.enterpriseName,sj.id,sj.parent_id,a.dept_id,ifnull(a.count,0) num1,ifnull(b.count,0) num2,ifnull(FORMAT((b.count/a.count)*100,2),0) num3 from
                (
                select
                bu.dept_id,ifnull(count(*),0) count
                from blade_user bu
                left join blade_role br
                on bu.role_id = br.id
                where
                role_alias = "安保人员"
                and bu.is_deleted = 0
                and bu.`status` = 1
                group by dept_id
                ) a
                left join
                (
                select
                bu.dept_id,ifnull(count(*),0) count
                from blade_user bu
                left join blade_role br
                on bu.role_id = br.id
                where
                role_alias = "安保人员"
                and bu.is_deleted = 0
                and bu.`status` = 1
                <if test="type==1">
                    and bu.hold = 1
                </if>
                <if test="type==2">
                    and bu.dispatch = 0
                </if>
                <if test="type==3">
                    and bu.soil = 0
                </if>
                group by dept_id
                ) b
                on
                a.dept_id = b.dept_id
                left join
                sys_information si
                on
                a.dept_id = si.departmentid
                left join
                sys_jurisdiction sj
                on
                sj.id = si.jurisdiction
                where 1=1
                and (stats = 2 or stats=4)
            )c
            where c.num3 &lt; 50
            group by c.id
        ) f
        on
        g.id = f.parent_id
    </select>
</mapper>