From 50fdcb14bcd0ba57181d434a96d7d416edf1c29d Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 17 Sep 2021 10:44:29 +0800
Subject: [PATCH] 考试,通知公告,派遣记录,单位,保安公司统计接口同步
---
src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml | 454 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 445 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
index 57e3da1..fe2149a 100644
--- a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
+++ b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -1079,6 +1079,8 @@
IFNULL( D.wpaiqnum, 0 ) AS wpaiqnum,
IFNULL( E.sbnum, 0 ) AS sbnum,
IFNULL( F.wcaijnum, 0 ) AS wcaijnum,
+ IFNULL( H.ycaijzpnum, 0 ) AS ycaijzpnum,
+ IFNULL( I.ycaijzwnum, 0 ) AS ycaijzwnum,
IFNULL( G.yicnum, 0 ) AS yicnum,
A.dept_id,
d.enterpriseName AS deptname,
@@ -1132,8 +1134,10 @@
) D ON D.dept_id = A.dept_id
LEFT JOIN (
SELECT COUNT( * ) AS sbnum, deptid, jurisdiction FROM sys_socil GROUP BY deptid, jurisdiction
- ) E ON E.deptid = A.dept_id
- LEFT JOIN (
+ ) E
+ ON E.deptid = A.dept_id
+ LEFT JOIN
+ (
SELECT
COUNT( * ) AS wcaijnum,
dept_id,
@@ -1146,7 +1150,40 @@
GROUP BY
dept_id,
jurisdiction
- ) F ON F.dept_id = A.dept_id
+ ) 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
+ ) 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
+ ) I
+ ON I.dept_id = A.dept_id
LEFT JOIN (
SELECT
COUNT( * ) AS yicnum,
@@ -1387,7 +1424,10 @@
A.jurisdiction,
A.dept_name as jurname,
IFNULL( B.num, 0 ) AS fwnum,
- IFNULL( C.znum, 0 ) AS znum
+ IFNULL( C.znum, 0 ) AS znum,
+ IFNULL( D.dqnum, 0 ) AS dqnum,
+ IFNULL( E.cznum, 0 ) AS cznum,
+ IFNULL( F.pqnum, 0 ) AS pqnum
FROM
(
SELECT
@@ -1402,11 +1442,36 @@
WHERE
i.enterpriseName IS NOT NULL
) A
- LEFT JOIN ( SELECT COUNT( * ) AS num, dept_id FROM sys_dispatcher_unit GROUP BY dept_id ) B ON A.departmentid =
- B.dept_id
- LEFT JOIN ( SELECT COUNT( * ) AS znum, dept_id FROM blade_user WHERE role_id = '1412226235153731586' and
- status=1 GROUP BY
- dept_id ) C ON A.departmentid = C.dept_id
+ LEFT JOIN
+ (
+ SELECT COUNT( * ) AS num, dept_id FROM sys_dispatcher_unit
+ where
+ start_time <= now() and end_time > 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
+ ) C
+ ON A.departmentid = C.dept_id
+ LEFT JOIN
+ (
+ SELECT COUNT( * ) AS dqnum, dept_id FROM sys_dispatcher_unit where end_time < 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 GROUP BY dept_id
+ ) E
+ ON A.departmentid = E.dept_id
+ LEFT JOIN
+ (
+ SELECT COUNT( * ) AS pqnum, dept_id FROM blade_user where dispatch = 0 GROUP BY dept_id
+ ) F
+ ON A.departmentid = F.dept_id
where 1=1
<if test="jurisdiction!=null and jurisdiction!=''and jurisdiction!='1372091709474910209'">
AND A.jurisdiction in(${jurisdiction})
@@ -1765,4 +1830,375 @@
) = 1
AND parent_id!=0
</select>
+
+ <!--获取保安公司信息(本市保安公司,分公司)包含经纬度-->
+ <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>
+
+ <!--根据辖区查询保安公司分页信息(本市保安公司,分公司)-->
+ <select id="getSecurityUnitInfoPage" 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 = 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})
+ </if>
+ </select>
+
+ <sql id="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
+ </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
+ 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"/>
+ 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
+ ) c
+ on
+ c.dept_id = si.departmentid
+ left join
+ sys_jurisdiction sj
+ on
+ si.jurisdiction = sj.id
+ 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})
+ </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
+ )c
+ left join
+ sys_jurisdiction sj
+ on
+ c.jurisdiction = sj.id
+ where 1=1
+ and (c.stats = 2 or c.stats = 4)
+ and pnum < #{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})
+ </if>
+ <if test="information.departmentid!=null and information.departmentid!=''">
+ and c.departmentid = #{information.departmentid}
+ </if>
+ </select>
+
+
+ <!--根据辖区查询统计保安公司考试通过率低于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
+
+ 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
+ )d
+ left join
+ sys_jurisdiction sj
+ on
+ d.jurisdiction = sj.id
+ where 1=1
+ and (d.stats = 2 or d.stats = 4)
+ and pnum < #{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})
+ </if>
+ </select>
+
+ <sql id="getSubstationWarn">
+ left join
+ sys_information si
+ on
+ si.departmentid = bu.dept_id
+ 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
+ </sql>
+
+ <!--根据辖区查询统计当前辖区下的保安公司(本市保安公司,分公司)预警信息,包含(未持证,现实表现差,未缴纳社保,资格审查异常)-->
+ <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
+ )
+ ) a
+ where 1=1
+ <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
+ and (a.id = #{information.jurisdiction} or a.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 <= now()
+ and end_time > 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 < 2
+ <if test="information.departmentid!=null and information.departmentid!=''">
+ and b.departmentid = #{information.departmentid}
+ </if>
+ </select>
+
+
+
</mapper>
--
Gitblit v1.9.3