智慧保安后台管理-外网
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -507,4 +507,738 @@
            )
    </select>
    <!--业务统计情况-->
    <select id="selectBusinessStatistics" resultType="org.springblade.modules.information.vo.InformationStatisticsVO">
        SELECT
        A.enterpriseName,
        A.departmentid,
        A.stats,
        A.jurisdiction,
        j.dept_name as jurname,
        IFNULL( C.znum, 0 ) AS znum,
        IFNULL( E.cznum, 0 ) AS cznum,
        IFNULL( F.pqnum, 0 ) AS pqnum,
        IFNULL( B.num, 0 ) AS fwnum,
        IFNULL( D.dqnum, 0 ) AS dqnum
        FROM
        (
        SELECT enterpriseName,jurisdiction, departmentid,stats,create_time FROM sys_information WHERE stats!=1 GROUP BY
        enterpriseName,jurisdiction,departmentid,stats,create_time) 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
        ) B
        ON A.departmentid = B.dept_id
        LEFT JOIN
        (
        SELECT
        COUNT( * ) AS znum,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bu.dept_id
        ) C
        ON A.departmentid = C.dept_id
        LEFT JOIN
        (
        SELECT COUNT( * ) AS dqnum, dept_id FROM sys_dispatcher_unit where end_time &lt; now() GROUP BY dept_id
        ) D
        ON A.departmentid = D.dept_id
        LEFT JOIN
        (
        SELECT COUNT( * ) AS cznum, dept_id FROM blade_user where
        hold = 1
        and role_id = '1412226235153731586'
        and status= 1
        and is_deleted = 0
        GROUP BY dept_id
        ) E
        ON A.departmentid = E.dept_id
        LEFT JOIN
        (
        SELECT
        count(*) AS pqnum,
        dept_id
        FROM
        blade_user
        where 1=1
        and status = 1
        and is_deleted = 0
        and role_id = "1412226235153731586"
        and dispatch = 0
        GROUP BY
        dept_id
        ) F
        ON A.departmentid = F.dept_id
        LEFT JOIN blade_dept d ON A.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = A.jurisdiction
        WHERE 1 =1
        and d.dept_category = 1
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (j.id = #{information.jurisdiction} or j.parent_id = #{information.jurisdiction})
        </if>
        <if test="information.deptid!=null and information.deptid!=''">
            and A.enterpriseName like concat('%', #{information.deptid},'%')
        </if>
        <if test="information.stats!=null and information.stats!=''">
            and A.stats=#{information.stats}
        </if>
        <if test="information.startTime!=null and information.startTime!=''">
            and A.create_time &gt;= #{information.startTime}
        </if>
        <if test="information.endTime!=null and information.endTime!=''">
            and A.create_time &lt;= #{information.endTime}
        </if>
    </select>
    <!--查询当前单位是否有子级单位-->
    <select id="getDeptHashChildrens" resultType="org.springblade.modules.system.entity.Dept">
        select * from blade_dept where is_deleted = 0 and parent_id = #{information.departmentid}
    </select>
    <!--查询服务单位数-->
    <select id="selectInformationUnitNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM sys_dispatcher_unit
        where
        start_time &lt;= now() and end_time &gt; now()
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询服务单位到期数-->
    <select id="selectInformationUnitExpireNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM sys_dispatcher_unit
        where end_time &lt; now()
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询单位的未派遣人数-->
    <select id="selectInformationNotDispatcherNumCount" resultType="java.lang.Integer">
        SELECT COUNT( * ) FROM blade_user
        WHERE 1=1
        and role_id = '1412226235153731586'
        and is_deleted = 0
        AND status=1
        AND dispatch=1
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询单位的已采集照片人数-->
    <select id="selectInformationUnitAvatarNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM blade_user
        WHERE
      role_id = '1412226235153731586'
      AND STATUS = 1
      AND is_deleted = 0
      AND avatar is not null and avatar!=""
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询单位的未采集照片人数-->
    <select id="selectInformationUnitNotAvatarNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM blade_user
        WHERE
      role_id = '1412226235153731586'
      AND STATUS = 1
      AND is_deleted = 0
      AND (avatar is null or avatar = "")
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询单位的已采集指纹人数-->
    <select id="selectInformationUnitZwNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM blade_user
        WHERE
      role_id = '1412226235153731586'
      AND STATUS = 1
      AND is_deleted = 0
      AND fingerprint is not null and fingerprint!=""
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询单位的审查异常人数-->
    <select id="selectInformationUnitYcNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM blade_user
        WHERE
      role_id = '1412226235153731586'
      AND STATUS = 1
      AND is_deleted = 0
      AND examination_type = 1
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--查询单位的社保缴纳人数-->
    <select id="selectInformationUnitJnsbNumCount" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM blade_user
        WHERE
      role_id = '1412226235153731586'
      AND STATUS = 1
      AND is_deleted = 0
      AND soil = 0
        and dept_id in
            (
                SELECT
                id
                FROM
                (
                SELECT
                t1.id,t1.parent_id,t1.dept_name,
                IF
                ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild
                FROM
                ( SELECT id, parent_id,dept_name FROM blade_dept t ORDER BY parent_id, id ) t1,
                ( SELECT @pids := #{dept.id} ) t2
                ) t3
                WHERE
                ischild != 0
            )
    </select>
    <!--保安员统计查询-->
    <select id="selectSecurityStatistics" resultType="org.springblade.modules.information.vo.InformationStatisticsVO">
        SELECT
        IFNULL( V.num, 0 ) AS num,
        IFNULL( B.cznum, 0 ) AS cznum,
        IFNULL( D.num, 0 ) AS wpqnum,
        IFNULL( C.num, 0 ) AS pqnum,
        IFNULL( H.ycaijzpnum, 0 ) AS ycjzpnum,
        IFNULL( F.wcaijnum, 0 ) AS wcjzpnum,
        IFNULL( I.ycaijzwnum, 0 ) AS ycjzwnum,
        IFNULL( G.yicnum, 0 ) AS scycnum,
        IFNULL( E.sbnum, 0 ) AS jnsbnum,
        A.departmentid,
        A.enterpriseName AS deptname,
        A.stats,
        j.dept_name AS jurname
        FROM
        ( SELECT jurisdiction, departmentid, enterpriseName, stats, create_time FROM sys_information WHERE stats != 1 ) A
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bu.dept_id
        ) V ON V.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS cznum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND hold = 1
        GROUP BY
        dept_id
        ) B ON A.departmentid = B.dept_id
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        AND bu.dispatch = 0
        GROUP BY
        bu.dept_id
        ) C ON C.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        AND bu.dispatch = 1
        GROUP BY
        bu.dept_id
        ) D ON D.dept_id = A.departmentid
        LEFT JOIN (
        SELECT COUNT( * ) AS sbnum,dept_id FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND soil = 0
        GROUP BY
        dept_id
        ) E ON E.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS wcaijnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND (avatar is null or avatar = "")
        GROUP BY
        dept_id
        ) F ON F.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS ycaijzpnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND avatar is not null and avatar!=""
        GROUP BY
        dept_id
        ) H ON H.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS ycaijzwnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND fingerprint is not null and fingerprint!=""
        GROUP BY
        dept_id
        ) I ON I.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS yicnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND examination_type = 1
        GROUP BY
        dept_id
        ) G ON G.dept_id = A.departmentid
        LEFT JOIN blade_dept d ON A.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = A.jurisdiction
        WHERE
        1 = 1
        AND d.dept_category = 1
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (j.id = #{information.jurisdiction} or j.parent_id = #{information.jurisdiction})
        </if>
        <if test="information.deptid!=null and information.deptid!=''">
            and A.enterpriseName like concat('%', #{information.deptid},'%')
        </if>
        <if test="information.stats!=null and information.stats!=''">
            and A.stats=#{information.stats}
        </if>
        <if test="information.startTime!=null and information.startTime!=''">
            and A.create_time &gt;= #{information.startTime}
        </if>
        <if test="information.endTime!=null and information.endTime!=''">
            and A.create_time &lt;= #{information.endTime}
        </if>
    </select>
    <!--查询当前单位是否有子级单位-->
    <select id="getDeptChildrens" resultType="org.springblade.modules.system.entity.Dept">
        select * from blade_dept where is_deleted = 0 and parent_id = #{param1}
    </select>
    <!--导出保安员统计查询-->
    <select id="exportSecurityStatisInfo" resultType="org.springblade.modules.information.excel.ExportInformationSecurityStatistics">
        SELECT
        IFNULL( V.num, 0 ) AS num,
        IFNULL( B.cznum, 0 ) AS cznum,
        IFNULL( D.num, 0 ) AS wpqnum,
        IFNULL( C.num, 0 ) AS pqnum,
        IFNULL( H.ycaijzpnum, 0 ) AS ycjzpnum,
        IFNULL( F.wcaijnum, 0 ) AS wcjzpnum,
        IFNULL( I.ycaijzwnum, 0 ) AS ycjzwnum,
        IFNULL( G.yicnum, 0 ) AS scycnum,
        IFNULL( E.sbnum, 0 ) AS jnsbnum,
        A.departmentid,
        A.enterpriseName AS deptname,
        case when A.stats=0 then '自招保安单位'
        when A.stats=2 then '本市保安公司'
        when A.stats=4 then '分公司'
        else "其他" end as stats,
        j.dept_name AS jurname
        FROM
        ( SELECT jurisdiction, departmentid, enterpriseName, stats, create_time FROM sys_information WHERE stats != 1 ) A
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bu.dept_id
        ) V ON V.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS cznum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND hold = 1
        GROUP BY
        dept_id
        ) B ON A.departmentid = B.dept_id
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        AND bu.dispatch = 0
        GROUP BY
        bu.dept_id
        ) C ON C.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS num,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        AND bu.dispatch = 1
        GROUP BY
        bu.dept_id
        ) D ON D.dept_id = A.departmentid
        LEFT JOIN (
        SELECT COUNT( * ) AS sbnum,dept_id FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND soil = 0
        GROUP BY
        dept_id
        ) E ON E.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS wcaijnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND (avatar is null or avatar = "")
        GROUP BY
        dept_id
        ) F ON F.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS ycaijzpnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND avatar is not null and avatar!=""
        GROUP BY
        dept_id
        ) H ON H.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS ycaijzwnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND fingerprint is not null and fingerprint!=""
        GROUP BY
        dept_id
        ) I ON I.dept_id = A.departmentid
        LEFT JOIN (
        SELECT
        COUNT( * ) AS yicnum,
        dept_id
        FROM
        blade_user
        WHERE
        role_id = '1412226235153731586'
        AND STATUS = 1
        AND is_deleted = 0
        AND examination_type = 1
        GROUP BY
        dept_id
        ) G ON G.dept_id = A.departmentid
        LEFT JOIN blade_dept d ON A.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = A.jurisdiction
        WHERE
        1 = 1
        AND d.dept_category = 1
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (j.id = #{information.jurisdiction} or j.parent_id = #{information.jurisdiction})
        </if>
        <if test="information.deptid!=null and information.deptid!=''">
            and A.enterpriseName like concat('%', #{information.deptid},'%')
        </if>
        <if test="information.stats!=null and information.stats!=''">
            and A.stats=#{information.stats}
        </if>
        <if test="information.startTime!=null and information.startTime!=''">
            and A.create_time &gt;= #{information.startTime}
        </if>
        <if test="information.endTime!=null and information.endTime!=''">
            and A.create_time &lt;= #{information.endTime}
        </if>
    </select>
    <!--导出业务统计情况-->
    <select id="exportBusinessStatis" resultType="org.springblade.modules.information.excel.ExportInformationExcel">
        SELECT
        A.enterpriseName,
        A.departmentid,
        case when A.stats=0 then '自招保安单位'
        when A.stats=2 then '本市保安公司'
        when A.stats=4 then '分公司'
        else "其他" end as stats,
        A.jurisdiction,
        j.dept_name as jurname,
        IFNULL( C.znum, 0 ) AS znum,
        IFNULL( E.cznum, 0 ) AS cznum,
        IFNULL( F.pqnum, 0 ) AS pqnum,
        IFNULL( B.num, 0 ) AS fwnum,
        IFNULL( D.dqnum, 0 ) AS dqnum
        FROM
        (
        SELECT enterpriseName,jurisdiction, departmentid,stats,create_time FROM sys_information WHERE stats!=1 GROUP BY
        enterpriseName,jurisdiction,departmentid,stats,create_time) 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
        ) B
        ON A.departmentid = B.dept_id
        LEFT JOIN
        (
        SELECT
        COUNT( * ) AS znum,
        bu.dept_id
        FROM
        blade_user bu
        WHERE
        bu.`status` = 1
        AND bu.is_deleted = 0
        AND bu.role_id = '1412226235153731586'
        GROUP BY
        bu.dept_id
        ) C
        ON A.departmentid = C.dept_id
        LEFT JOIN
        (
        SELECT COUNT( * ) AS dqnum, dept_id FROM sys_dispatcher_unit where end_time &lt; now() GROUP BY dept_id
        ) D
        ON A.departmentid = D.dept_id
        LEFT JOIN
        (
        SELECT COUNT( * ) AS cznum, dept_id FROM blade_user where
        hold = 1
        and role_id = '1412226235153731586'
        and status= 1
        and is_deleted = 0
        GROUP BY dept_id
        ) E
        ON A.departmentid = E.dept_id
        LEFT JOIN
        (
        SELECT
        count(*) AS pqnum,
        dept_id
        FROM
        blade_user
        where 1=1
        and status = 1
        and is_deleted = 0
        and role_id = "1412226235153731586"
        and dispatch = 0
        GROUP BY
        dept_id
        ) F
        ON A.departmentid = F.dept_id
        LEFT JOIN blade_dept d ON A.departmentid = d.id
        LEFT JOIN sys_jurisdiction j ON j.id = A.jurisdiction
        WHERE 1 =1
        and d.dept_category = 1
        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
            and (j.id = #{information.jurisdiction} or j.parent_id = #{information.jurisdiction})
        </if>
        <if test="information.deptid!=null and information.deptid!=''">
            and A.enterpriseName like concat('%', #{information.deptid},'%')
        </if>
        <if test="information.stats!=null and information.stats!=''">
            and A.stats=#{information.stats}
        </if>
        <if test="information.startTime!=null and information.startTime!=''">
            and A.create_time &gt;= #{information.startTime}
        </if>
        <if test="information.endTime!=null and information.endTime!=''">
            and A.create_time &lt;= #{information.endTime}
        </if>
    </select>
</mapper>