智慧保安后台管理-验收版本
tangzy
2021-12-06 30df94c05573a426d030510d4dd58ae1d93bfb7a
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -777,7 +777,7 @@
        IFNULL( C.fznum, 0 ) AS fznum,
        H.departmentid,
        H.jurisdiction
        FROM (SELECT departmentid, jurisdiction FROM sys_information WHERE stats!=1  GROUP BY departmentid, jurisdiction)
        FROM (SELECT departmentid, jurisdiction FROM sys_information WHERE stats!=1 GROUP BY departmentid, jurisdiction)
        H
        LEFT JOIN (
        SELECT COUNT(*) AS thisnum,
@@ -1405,7 +1405,7 @@
        u.dept_id
        FROM
        sys_performance p
        INNER JOIN blade_user u ON p.securityId = u.id WHERE 1=1
        INNER JOIN blade_user u ON p.securityId = u.id WHERE 1=1 AND score=3
        <if test="type!=null and type=='1'.toString()">
            and to_days(p.time) = to_days(now())
        </if>
@@ -2513,7 +2513,7 @@
            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}
            and c.dept_id = #{information.departmentid}
        </if>
    </select>
@@ -3009,7 +3009,7 @@
            and (sj.id = #{information.jurisdiction} or sj.parent_id = #{information.jurisdiction})
        </if>
        ) b
        where b.znum &lt; 2
        where b.znum &lt; #{information.proportion}
        <if test="information.departmentid!=null and information.departmentid!=''">
            and b.departmentid = #{information.departmentid}
        </if>
@@ -3051,6 +3051,42 @@
             ) b
             on
                 a.id = b.parent_id
        union all
        (
            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.id
        )
    </select>
@@ -3084,6 +3120,37 @@
             ) b
             on
                 a.id = b.parent_id
        union all
        (
            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.id
        )
    </select>
@@ -3149,6 +3216,69 @@
             ) f
             on
                 g.id = f.parent_id
        union all
        (
            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.id
        )
    </select>
    <!--持证率低于50%,社保缴纳率低于50%,派遣率低于50%-->
@@ -3280,6 +3410,96 @@
        ) f
        on
        g.id = f.parent_id
        union all
        (
        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.id
        )
    </select>
    <select id="selectBxc" resultType="java.util.HashMap">
        SELECT u.real_name as realName,
        d.dept_name as deptName,
        u.sex,
        u.cardid,
        ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING(u.cardid, 7, 4), 0) AS age,
        u.securitynumber,
        u.phone,
        p.score
        FROM sys_performance p
        LEFT JOIN blade_user u ON p.securityId = u.id
        LEFT JOIN blade_dept d ON d.id = p.departmentid
        LEFT JOIN sys_jurisdiction j ON j.id = p.jurisdiction
        WHERE 1 =1
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
        </if>
        <if test="type!=null and type=='1'.toString()">
            and to_days(p.time) = to_days(now())
        </if>
        <if test="type!=null and type=='2'.toString()">
            and DATE_FORMAT(p.time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
        </if>
        and p.score = 3
    </select>
</mapper>