From f9ff113e9d2e9a3e643b185f08652004e5e43d94 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 06 Dec 2021 16:19:37 +0800
Subject: [PATCH] 保安员统计导出,业务情况统计导出修改

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml |  171 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 145 insertions(+), 26 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index fbf2038..48127a4 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -148,15 +148,19 @@
     <select id="selectUserPages" resultMap="userResultMaps">
         select
         bu.*,
-        ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING( cardid,7,4),0) age
+        ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING( bu.cardid,7,4),0) age,
+        p.score
         from
         blade_user bu
         left join
         sys_information si
         on
         si.departmentid = bu.dept_id
-        where is_deleted = 0
-        and status = 1
+        LEFT JOIN blade_dept d ON bu.dept_id = d.id
+        LEFT JOIN sys_jurisdiction j ON j.id = si.jurisdiction
+        LEFT JOIN sys_performance p ON p.cardid = bu.cardid
+        where bu.is_deleted = 0
+        and bu.status = 1
         <if test="user.realName!=null and user.realName != ''">
             and bu.real_name like concat(concat('%', #{user.realName}),'%')
         </if>
@@ -178,11 +182,20 @@
         <if test="user.hold!=null and user.hold != ''">
             and bu.hold = #{user.hold}
         </if>
-        <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction != '1372091709474910209'">
-            and si.jurisdiction = #{user.jurisdiction}
+        <if test="user.types!=null and user.types=='1'.toString()">
+            and to_days(bu.audit_time) = to_days(now())
+        </if>
+        <if test="user.types!=null and user.types=='2'.toString()">
+            and DATE_FORMAT(bu.audit_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
+        </if>
+        <if test="user.jurisdiction!=null and user.jurisdiction!='' and user.jurisdiction!='1372091709474910209'">
+            and (j.id = #{user.jurisdiction} or j.parent_id = #{user.jurisdiction})
         </if>
         <if test="user.securitynumber!=null and user.securitynumber != ''">
             and bu.securitynumber = #{user.securitynumber}
+        </if>
+        <if test="user.score!=null and user.score != ''">
+            and p.score = 3
         </if>
         ORDER BY bu.id
     </select>
@@ -218,9 +231,27 @@
         br.role_alias = "安保人员"
         and
         bu.status = 1
-        and bd.parent_id!=1425365577303621633
-        and bd.id != 1425365577303621633
-        and bd.id != 1432625856013971457
+        <if test="user.deptId!=null and user.deptId!=''">
+            and bd.id in
+            (
+            select id from blade_dept where id = #{user.deptId}
+            union
+            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 := #{user.deptId} ) t2
+            ) t3
+            WHERE
+            ischild != 0
+            )
+        </if>
         <if test="user.cardid!=null and user.cardid != ''">
             and bu.cardid like concat(concat('%', #{user.cardid}),'%')
         </if>
@@ -236,20 +267,26 @@
         <if test="user.sex!=null and user.sex != ''">
             and bu.sex = #{user.sex}
         </if>
+        <if test="user.examinationType==0">
+            and (bu.examination_type = #{user.examinationType} or bu.examination_type is null or bu.examination_type="")
+        </if>
+        <if test="user.examinationType==1">
+            and bu.examination_type = #{user.examinationType}
+        </if>
         <if test="user.status!=null and user.status != ''">
             and bu.status = #{user.status}
         </if>
         <if test="user.hold!=null and user.hold != ''">
             and bu.hold = #{user.hold}
         </if>
+        <if test="user.type!=null">
+            and bu.equipment_code is not null
+        </if>
         <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction != '1372091709474910209'">
             and (sj.id = #{user.jurisdiction} or sj.parent_id = #{user.jurisdiction})
         </if>
         <if test="user.securitynumber!=null and user.securitynumber != ''">
             and bu.securitynumber like concat('%', #{user.securitynumber},'%')
-        </if>
-        <if test="user.deptId!=null and user.deptId!=''">
-            and bu.dept_id =#{user.deptId}
         </if>
         <if test="user.startTime!=null and user.startTime!=''">
             and bu.paper_time &gt;= #{user.startTime}
@@ -258,7 +295,7 @@
             and bu.paper_time &lt;= #{user.endTime}
         </if>
         <if test="user.useName==null or user.useName==''">
-            order by bu.id
+            order by bu.examination_type desc,bu.id
         </if>
         <if test="user.useName!=null and user.useName!='' and user.useName=='examinationType'">
             order by bu.examination_type ${user.sort}
@@ -311,21 +348,20 @@
     <select id="getNotAuditAllUserList" resultType="org.springblade.modules.system.entity.User">
         select id, cardid
         from blade_user
-        where examination_type is null
+        where 1 = 1
+          and (examination_type is null or examination_type = "" or examination_type = null)
     </select>
 
     <!--根据保安员编码查询保安信息-->
     <select id="getUserInfoBySecurityNumber" resultType="org.springblade.modules.system.vo.UserVO">
-        select
-        bu.*,
-        ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING( cardid,7,4),0) age,
-        bd.dept_name deptName
-         from
-         blade_user bu
-         left join
-         blade_dept bd
-         on
-         bu.dept_id = bd.id
+        select bu.*,
+               ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING(cardid, 7, 4), 0) age,
+               bd.dept_name                                                  deptName
+        from blade_user bu
+                 left join
+             blade_dept bd
+             on
+                 bu.dept_id = bd.id
         where securitynumber = #{securityNumber}
     </select>
 
@@ -338,7 +374,7 @@
         bu.cardid,
         ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING( bu.cardid,7,4),0) age,
         bu.phone,
-        if(bu.examination_type=0,'正常','异常') examinationType,
+        if(bu.examination_type=1,'异常','正常') examinationType,
         bu.examination_mx examinationMx,
         bu.paper_time paperTime
         from
@@ -396,7 +432,25 @@
             and bu.securitynumber like concat('%', #{user.securitynumber},'%')
         </if>
         <if test="user.deptId!=null and user.deptId!=''">
-            and bu.dept_id =#{user.deptId}
+            and bd.id in
+            (
+            select id from blade_dept where id = #{user.deptId}
+            union
+            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 := #{user.deptId} ) t2
+            ) t3
+            WHERE
+            ischild != 0
+            )
         </if>
         <if test="user.startTime!=null and user.startTime!=''">
             and bu.paper_time &gt;= #{user.startTime}
@@ -404,8 +458,14 @@
         <if test="user.endTime!=null and user.endTime!=''">
             and bu.paper_time &lt;= #{user.endTime}
         </if>
+        <if test="user.examinationType==0">
+            and (bu.examination_type = #{user.examinationType} or bu.examination_type is null or bu.examination_type="")
+        </if>
+        <if test="user.examinationType==1">
+            and bu.examination_type = #{user.examinationType}
+        </if>
         <if test="user.useName==null or user.useName==''">
-            order by bu.id
+            order by bu.examination_type desc,bu.id
         </if>
         <if test="user.useName!=null and user.useName!='' and user.useName=='examinationType'">
             order by bu.examination_type ${user.sort}
@@ -414,4 +474,63 @@
             order by bu.examination_mx ${user.sort}
         </if>
     </select>
+
+    <select id="selectPeo" resultType="java.util.HashMap">
+        select
+        bu.*,
+        ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING( bu.cardid,7,4),0) age,
+        bd.dept_name as deptName
+        from
+        blade_user bu
+        left join
+        blade_dept bd
+        on
+        bu.dept_id = bd.id
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
+        left join
+        sys_information si
+        on
+        si.departmentid = bd.id
+        left join
+        sys_jurisdiction sj
+        on
+        sj.id = si.jurisdiction
+        where
+        bu.is_deleted = 0
+        and
+        br.role_alias = "安保人员"
+        and
+        bu.status = 1
+        and bd.parent_id!=1425365577303621633
+        and bd.id != 1425365577303621633
+        and bd.id != 1432625856013971457
+        <if test="user.deptId!=null and user.deptId!=''">
+            and bd.id in
+            (
+            select id from blade_dept where id = #{user.deptId}
+            union
+            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 := #{user.deptId} ) t2
+            ) t3
+            WHERE
+            ischild != 0
+            )
+        </if>
+        <if test="user.type!=null">
+            and bu.equipment_code is not null
+        </if>
+
+    </select>
 </mapper>

--
Gitblit v1.9.3