智慧保安后台管理-验收版本
Administrator
2021-09-18 6ad9c778d138d0806966ce044dd4ee2ee46d2ea2
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -2017,23 +2017,36 @@
    <!--根据辖区查询统计保安公司(1:持证率低于50% 2:派遣率低于50%  3:缴纳社保率低于50% 的保安公司个数及保安公司分页信息(本市保安公司,分公司)-->
    <select id="getSecurityUnitLess50Page" resultType="org.springblade.modules.information.vo.InformationVO">
        select c.*,sj.dept_name jurisdictionName from (
        select c.*,sj.dept_name jurisdictionName,si.enterpriseName enterprisename from (
        select
        si.*,
        a.dept_id,
        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
        from
        (
        <include refid="getSecurity"/>
        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
        on
        a.dept_id = si.departmentid
        left join
        (
        <include refid="getSecurity"/>
        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>
@@ -2049,14 +2062,18 @@
        group by dept_id
        ) b
        on
        b.dept_id = si.departmentid
        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})
@@ -2179,82 +2196,344 @@
    <!--根据辖区查询统计当前辖区下的保安公司(本市保安公司,分公司)预警信息,包含(未持证,现实表现差,未缴纳社保,资格审查异常)-->
    <select id="getSubstationWarnInfoPage" resultType="org.springblade.modules.information.vo.InformationVO">
        select jurisdictionName,enterprisename,detail from (
        (
        (select
            sj1.dept_name jurisdictionName,
            si1.enterpriseName enterprisename,
            "表现差" detail,
            a.count znum
        from (
        select
        si.jurisdiction id,
        sj.parent_id,
        sj.dept_name jurisdictionName,
        si.enterprisename,
        "表现差" detail
            bu.dept_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
        )
        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
        )
            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家的公司数量的分页信息-->
@@ -2511,8 +2790,7 @@
        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 sys_information si
        left join
                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
@@ -2525,9 +2803,6 @@
        and bu.`status` = 1
        group by dept_id
        ) a
        on
        si.departmentid = a.dept_id
        left join
        (
        select
@@ -2551,7 +2826,11 @@
        group by dept_id
        ) b
        on
        si.departmentid = b.dept_id
                a.dept_id = b.dept_id
                left join
                sys_information si
                on
                a.dept_id = si.departmentid
        left join
        sys_jurisdiction sj
        on