From e62fac2c0b345eb40097cf55188f57a17f65af89 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 06 Dec 2021 11:08:07 +0800
Subject: [PATCH] 保安员统计修改

---
 src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml             |  233 ++++++++++++----------------------------------
 src/main/java/org/springblade/modules/information/controller/InformationsController.java   |   12 +-
 src/main/java/org/springblade/modules/information/mapper/InformationMapper.java            |    9 +
 src/main/java/org/springblade/modules/information/service/impl/InformationServiceImpl.java |   26 ++++
 src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml               |    2 
 5 files changed, 103 insertions(+), 179 deletions(-)

diff --git a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml
index 9e2ecd0..8e890e5 100644
--- a/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml
+++ b/src/main/java/org/springblade/modules/dispatcher/mapper/DispatcherMapper.xml
@@ -35,6 +35,8 @@
         on
         bd.id = bu.dept_id
         where 1=1
+        and bu.status =1
+        and bu.is_deleted = 0
         <if test="dispatcher.dispatcherUnitId!=null">
             and sd.dispatcher_unit_id = #{dispatcher.dispatcherUnitId}
         </if>
diff --git a/src/main/java/org/springblade/modules/information/controller/InformationsController.java b/src/main/java/org/springblade/modules/information/controller/InformationsController.java
index 6a4ec1b..987eaca 100644
--- a/src/main/java/org/springblade/modules/information/controller/InformationsController.java
+++ b/src/main/java/org/springblade/modules/information/controller/InformationsController.java
@@ -182,7 +182,7 @@
 			for (ResponseVo responseVo : performanceGroupCountList) {
 				//辖区id相同则数量相加
 				if (responseVo.getId().equals(id)){
-					count += performanceGroupCountList.get(i).getNum();
+					count += responseVo.getNum();
 				}
 			}
 
@@ -192,7 +192,7 @@
 			for (ResponseVo responseVo : examinationGroupCountList) {
 				//辖区id相同则数量相加
 				if (responseVo.getId().equals(id)){
-					count += examinationGroupCountList.get(i).getNum();
+					count += responseVo.getNum();
 				}
 			}
 
@@ -201,7 +201,7 @@
 			for (ResponseVo responseVo : examPassingGroupCountList) {
 				//辖区id相同则数量相加
 				if (responseVo.getId().equals(id)){
-					count += examPassingGroupCountList.get(i).getNum();
+					count += responseVo.getNum();
 				}
 			}
 
@@ -210,7 +210,7 @@
 			for (ResponseVo responseVo : holdGroupCountList) {
 				//辖区id相同则数量相加
 				if (responseVo.getId().equals(id)){
-					count += holdGroupCountList.get(i).getNum();
+					count += responseVo.getNum();
 				}
 			}
 
@@ -219,7 +219,7 @@
 			for (ResponseVo responseVo : soidGroupCountList) {
 				//辖区id相同则数量相加
 				if (responseVo.getId().equals(id)){
-					count += soidGroupCountList.get(i).getNum();
+					count += responseVo.getNum();
 				}
 			}
 
@@ -228,7 +228,7 @@
 			for (ResponseVo responseVo : dispatchGroupCountList) {
 				//辖区id相同则数量相加
 				if (responseVo.getId().equals(id)){
-					count += dispatchGroupCountList.get(i).getNum();
+					count += responseVo.getNum();
 				}
 			}
 
diff --git a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.java b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.java
index d66e6c4..7aba3d4 100644
--- a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.java
+++ b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.java
@@ -188,7 +188,7 @@
 	 * @param informationStatisticsVO
 	 * @return
 	 */
-	List<Dept> getDeptHashChildren(@Param("information") InformationStatisticsVO informationStatisticsVO);
+	List<Dept> getDeptHashChildrens(@Param("information") InformationStatisticsVO informationStatisticsVO);
 
 
 	/**
@@ -225,4 +225,11 @@
 	 * @return
 	 */
 	Integer selectInformationUnitExpireNumCount(@Param("dept")Dept dept);
+
+	/**
+	 * 查询当前单位是否有子级单位
+	 * @param informationVO
+	 * @return
+	 */
+	List<Dept> getDeptHashChildren(@Param("information") InformationVO informationVO);
 }
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 7f53bb9..d5bf2de 100644
--- a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
+++ b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -40,83 +40,55 @@
     <select id="selectInformationPage" resultMap="informationResultMap">
         SELECT
         i.*,
-        IFNULL( A.znum, 0 ) AS znum,
-        IFNULL( B.cnum, 0 ) AS cnum,
-        IFNULL( C.pnum, 0 ) AS pnum,
-        sj.dept_name jurisdictionName
+        IFNULL(A.znum ,0) as znum,
+        IFNULL(B.cnum ,0) as cnum,
+        IFNULL(C.pnum ,0) as pnum
         FROM
         sys_information i
-        LEFT JOIN sys_jurisdiction sj ON sj.id = i.jurisdiction
-        LEFT JOIN (
-        SELECT
-        J.znum + J.fznum AS znum,
-        J.dept_id
-        FROM
+        LEFT JOIN
         (
-        SELECT
-        A.znum,
-        IFNULL( B.znum, 0 ) AS fznum,
-        A.dept_id
-        FROM
-        (
-        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
+        SELECT COUNT( * ) AS znum, dept_id FROM blade_user
+        WHERE 1=1
+        and role_id = '1412226235153731586'
+        and is_deleted = 0
+        AND status=1
+        GROUP BY dept_id
         ) A
-        LEFT JOIN (
-        SELECT
-        IFNULL( COUNT( * ), 0 ) AS znum,
-        bd.parent_id
-        FROM
-        blade_user bu
-        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
-        WHERE
-        bu.`status` = 1
-        AND bu.is_deleted = 0
-        AND bu.role_id = '1412226235153731586'
-        GROUP BY
-        bd.parent_id
-        ) B ON B.parent_id = A.dept_id
-        ) J
-        ) A ON A.dept_id = i.departmentid
-        LEFT JOIN (
-        SELECT
-        COUNT( * ) AS cnum,
-        dept_id
-        FROM
-        blade_user
-        WHERE
-        role_id = '1412226235153731586'
-        AND STATUS = 1
-        AND hold = 1
-        AND is_deleted = 0
-        GROUP BY
-        dept_id
-        ) B ON B.dept_id = i.departmentid
-        LEFT JOIN (
-        SELECT
-        COUNT( * ) AS pnum,
-        dept_id
-        FROM
-        blade_user
-        WHERE
-        role_id = '1412226235153731586'
-        AND STATUS = 1
-        AND dispatch = 0
-        AND is_deleted = 0
-        GROUP BY
-        dept_id
-        ) C ON C.dept_id = i.departmentid
-        WHERE
-        1 =1
+        ON A.dept_id = i.departmentid
+        LEFT JOIN
+        (
+        SELECT COUNT( * ) AS cnum, dept_id FROM blade_user
+        WHERE 1=1
+        and role_id = '1412226235153731586'
+        and is_deleted = 0
+        AND status=1
+        AND hold=1
+        GROUP BY dept_id
+        ) B
+        ON B.dept_id = i.departmentid
+        LEFT JOIN
+        (
+        SELECT COUNT( * ) AS pnum, dept_id FROM blade_user
+        WHERE 1=1
+        and is_deleted = 0
+        and role_id = '1412226235153731586'
+        AND status=1
+        AND dispatch=0
+        GROUP BY dept_id
+        ) C
+        ON C.dept_id = i.departmentid
+        left join
+        sys_jurisdiction sj
+        on
+        sj.id = i.jurisdiction
+        left join
+        blade_dept bd
+        on
+        bd.id = i.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>
         <if test="information.enterprisename!=null and information.enterprisename!=''">
             and i.enterpriseName like concat(concat('%', #{information.enterprisename}),'%')
         </if>
@@ -124,10 +96,7 @@
             and i.representative like concat(concat('%', #{information.representative}),'%')
         </if>
         <if test="information.stats!=null and information.stats!=''">
-            and i.stats=#{information.stats}
-        </if>
-        <if test="information.jurisdiction!=null and information.jurisdiction!='' and information.jurisdiction!='1372091709474910209'">
-            and i.jurisdiction=#{information.jurisdiction}
+            and i.stats=#{information.stats} and bd.dept_category = 1
         </if>
         <if test="information.departmentid!=null and information.departmentid!=''">
             and i.departmentid=#{information.departmentid}
@@ -1260,21 +1229,10 @@
         A.stats,
         j.dept_name AS jurname
         FROM
-        ( SELECT jurisdiction, departmentid,enterpriseName,stats,create_time FROM sys_information where stats !=1) A
+        ( SELECT jurisdiction, departmentid, enterpriseName, stats, create_time FROM sys_information WHERE stats != 1 ) A
         LEFT JOIN (
         SELECT
-        J.znum+J.fznum as num,
-        J.dept_id
-        FROM
-        (
-        SELECT
-        A.znum,
-        IFNULL( B.znum, 0 ) AS fznum,
-        A.dept_id
-        FROM
-        (
-        SELECT
-        COUNT( * ) AS znum,
+        COUNT( * ) AS num,
         bu.dept_id
         FROM
         blade_user bu
@@ -1284,22 +1242,6 @@
         AND bu.role_id = '1412226235153731586'
         GROUP BY
         bu.dept_id
-        ) A
-        LEFT JOIN (
-        SELECT
-        IFNULL( COUNT( * ), 0 ) AS znum,
-        bd.parent_id
-        FROM
-        blade_user bu
-        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
-        WHERE
-        bu.`status` = 1
-        AND bu.is_deleted = 0
-        AND bu.role_id = '1412226235153731586'
-        GROUP BY
-        bd.parent_id
-        ) B ON B.parent_id = A.dept_id
-        ) J
         ) V ON V.dept_id = A.departmentid
         LEFT JOIN (
         SELECT
@@ -1317,18 +1259,7 @@
         ) B ON A.departmentid = B.dept_id
         LEFT JOIN (
         SELECT
-        L.znum+L.fznum as num,
-        L.dept_id
-        FROM
-        (
-        SELECT
-        A.znum,
-        IFNULL( B.znum, 0 ) AS fznum,
-        A.dept_id
-        FROM
-        (
-        SELECT
-        COUNT( * ) AS znum,
+        COUNT( * ) AS num,
         bu.dept_id
         FROM
         blade_user bu
@@ -1339,38 +1270,10 @@
         AND bu.dispatch = 0
         GROUP BY
         bu.dept_id
-        ) A
-        LEFT JOIN (
-        SELECT
-        IFNULL( COUNT( * ), 0 ) AS znum,
-        bd.parent_id
-        FROM
-        blade_user bu
-        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
-        WHERE
-        bu.`status` = 1
-        AND bu.is_deleted = 0
-        AND bu.role_id = '1412226235153731586'
-        AND bu.dispatch = 0
-        GROUP BY
-        bd.parent_id
-        ) B ON B.parent_id = A.dept_id
-        ) L
         ) C ON C.dept_id = A.departmentid
         LEFT JOIN (
         SELECT
-        K.znum+K.fznum as num,
-        K.dept_id
-        FROM
-        (
-        SELECT
-        A.znum,
-        IFNULL( B.znum, 0 ) AS fznum,
-        A.dept_id
-        FROM
-        (
-        SELECT
-        COUNT( * ) AS znum,
+        COUNT( * ) AS num,
         bu.dept_id
         FROM
         blade_user bu
@@ -1381,23 +1284,6 @@
         AND bu.dispatch = 1
         GROUP BY
         bu.dept_id
-        ) A
-        LEFT JOIN (
-        SELECT
-        IFNULL( COUNT( * ), 0 ) AS znum,
-        bd.parent_id
-        FROM
-        blade_user bu
-        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
-        WHERE
-        bu.`status` = 1
-        AND bu.is_deleted = 0
-        AND bu.role_id = '1412226235153731586'
-        AND bu.dispatch = 1
-        GROUP BY
-        bd.parent_id
-        ) B ON B.parent_id = A.dept_id
-        ) K
         ) D ON D.dept_id = A.departmentid
         LEFT JOIN ( SELECT COUNT( * ) AS sbnum, deptid FROM sys_socil GROUP BY deptid ) E ON E.deptid = A.departmentid
         LEFT JOIN (
@@ -1410,7 +1296,7 @@
         role_id = '1412226235153731586'
         AND STATUS = 1
         AND is_deleted = 0
-        AND photo = 1
+        AND (avatar is null or avatar = "")
         GROUP BY
         dept_id
         ) F ON F.dept_id = A.departmentid
@@ -1424,7 +1310,7 @@
         role_id = '1412226235153731586'
         AND STATUS = 1
         AND is_deleted = 0
-        AND photo = 0
+        AND avatar is not null and avatar!=""
         GROUP BY
         dept_id
         ) H ON H.dept_id = A.departmentid
@@ -1438,7 +1324,7 @@
         role_id = '1412226235153731586'
         AND STATUS = 1
         AND is_deleted = 0
-        AND fingerprint = 0
+        AND fingerprint is not null and fingerprint!=""
         GROUP BY
         dept_id
         ) I ON I.dept_id = A.departmentid
@@ -1452,13 +1338,15 @@
         role_id = '1412226235153731586'
         AND STATUS = 1
         AND is_deleted = 0
-        AND examination_mx = 1
+        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
+        WHERE
+        1 = 1
+        AND d.dept_category = 1
         <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
             and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
         </if>
@@ -1756,6 +1644,7 @@
         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="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
             and (j.id = #{jurisdiction} or j.parent_id = #{jurisdiction})
         </if>
@@ -3183,9 +3072,13 @@
     </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="getDeptHashChildren" resultType="org.springblade.modules.system.entity.Dept">
         select * from blade_dept where is_deleted = 0 and parent_id = #{information.departmentid}
-        and dept_category !=2
     </select>
 
     <!--查询单位的人数-->
diff --git a/src/main/java/org/springblade/modules/information/service/impl/InformationServiceImpl.java b/src/main/java/org/springblade/modules/information/service/impl/InformationServiceImpl.java
index 53cdf8b..7f8fed9 100644
--- a/src/main/java/org/springblade/modules/information/service/impl/InformationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/information/service/impl/InformationServiceImpl.java
@@ -42,7 +42,29 @@
 
 	@Override
 	public IPage<InformationVO> selectInformationPage(IPage<InformationVO> page, InformationVO information) {
-		return page.setRecords(baseMapper.selectInformationPage(page, information));
+		List<InformationVO> informationVOS = baseMapper.selectInformationPage(page, information);
+		//遍历
+		if (informationVOS.size()>0){
+			//判断有无子级
+			for (InformationVO informationVO : informationVOS) {
+				List<Dept> deptList = baseMapper.getDeptHashChildren(informationVO);
+				//有子级
+				if (deptList.size()>0){
+					Dept dept = new Dept();
+					dept.setId(Long.parseLong(informationVO.getDepartmentid()));
+					//查询当前子单位的人数
+					Integer z = baseMapper.selectInformationUserNumCount(dept) + Integer.parseInt(informationVO.getZnum());
+					informationVO.setZnum(z.toString());
+					//已派遣人数
+					Integer p = baseMapper.selectInformationDispatcherNumCount(dept) + Integer.parseInt(informationVO.getPnum());
+					informationVO.setPnum(p.toString());
+					//持证人数
+					Integer c = baseMapper.selectInformationHoldNumCount(dept) + Integer.parseInt(informationVO.getCnum());
+					informationVO.setCnum(c.toString());
+				}
+			}
+		}
+		return page.setRecords(informationVOS);
 	}
 
 	@Override
@@ -230,7 +252,7 @@
 		if (list.size()>0) {
 			//遍历
 			for (InformationStatisticsVO informationStatisticsVO : list) {
-				List<Dept> deptList = baseMapper.getDeptHashChildren(informationStatisticsVO);
+				List<Dept> deptList = baseMapper.getDeptHashChildrens(informationStatisticsVO);
 				//有子级
 				if (deptList.size()>0){
 					Dept dept = new Dept();

--
Gitblit v1.9.3