From 8853292babb2ad94de4a3207966f1e83b767cd2d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 17 Sep 2023 16:38:34 +0800
Subject: [PATCH] 新增流程节点进程查询接口

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml |  942 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 854 insertions(+), 88 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 e40c8c8..80dfff4 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -47,12 +47,15 @@
         <result column="birthtime" property="birthtime"/>
         <result column="healstats" property="healstats"/>
         <result column="soil" property="soil"/>
+        <result column="reason_for_leav" property="reasonForLeav"/>
     </resultMap>
 
     <!--带坐标-->
     <select id="selectUserPages" resultMap="userResultMap">
         select
-        bu.*,
+        distinct
+        bu.*,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sexs,
+        ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
         sll.longitude,sll.latitude,
         bd.dept_name
         from
@@ -66,6 +69,10 @@
         on
         si.departmentid = bd.id
         left join
+        sys_jurisdiction sj
+        on
+        sj.id = si.jurisdiction
+        left join
         sys_live_location sll
         on
         sll.worker_id = bu.id
@@ -73,34 +80,99 @@
         blade_role br
         on
         br.id = bu.role_id
+        left join
+        sys_training_registration str
+        on
+        bu.id = str.user_id
         where
         bu.is_deleted = 0
+        <if test="user.examinationType!=null and user.examinationType != ''">
+            <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>
         <if test="user.account!=null and user.account != ''">
-            and bu.account = #{user.account}
+            and bu.account like concat('%', #{user.account},'%')
         </if>
         <if test="user.hold!=null and user.hold != ''">
             and bu.hold = #{user.hold}
         </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.roleId!=null and user.roleId != ''">
             and bu.role_id = #{user.roleId}
         </if>
         <if test="user.roleAlias!=null and user.roleAlias != ''">
-            and (br.role_alias = '保安' or br.role_alias = '未持证保安')
+            and br.role_alias = '保安'
         </if>
-        <if test="user.status!=null and user.status != ''">
+        <if test="user.status!=null and user.status != '' and user.status != 6">
             and bu.status = #{user.status}
         </if>
-        <if test="user.jurisdiction!=null and user.jurisdiction != '' and user.jurisdiction!='1123598813738675201'">
-            and si.jurisdiction = #{user.jurisdiction}
+        <if test="user.education!=null  and user.education != ''">
+            and bu.education = #{user.education}
+        </if>
+        <if test="user.trainingUnitId!=null and user.trainingUnitId != ''">
+            and str.training_unit_id = #{user.trainingUnitId}
+        </if>
+        <if test="user.deptName!=null and user.deptName != ''">
+            and  bd.dept_name like concat('%', #{user.deptName},'%')
+        </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.realName!=null and user.realName != ''">
             and bu.real_name like concat('%', #{user.realName},'%')
         </if>
         <if test="user.dispatch!=null and user.dispatch != ''">
-            and bu.dispatch = #{user.dispatch}
+            <if test="user.dispatch == 0">
+                and bu.dispatch = #{user.dispatch}
+            </if>
+            <if test="user.dispatch == 1">
+                and bu.dispatch = #{user.dispatch}
+            </if>
+        </if>
+        <if test="user.isAvatar==1">
+            and bu.avatar is not null and bu.avatar!=""
+        </if>
+        <if test="user.isAvatar==2">
+            and (bu.avatar is null or bu.avatar="")
+        </if>
+        <if test="user.ageType==1">
+            and age >=18 and age &lt;=30
+        </if>
+        <if test="user.ageType==2">
+            and age >30 and age &lt;=45
+        </if>
+        <if test="user.ageType==3">
+            and age >45 and age &lt;=60
+        </if>
+        <if test="user.isFingerprint==1">
+            and bu.fingerprint is not null and bu.fingerprint!=""
+        </if>
+        <if test="user.isFingerprint==2">
+            and (bu.fingerprint is null or bu.fingerprint="")
         </if>
         <if test="user.userType!=null and user.userType != ''">
             and bu.user_type = #{user.userType}
@@ -111,31 +183,215 @@
         <if test="user.cardid!=null and user.cardid != ''">
             and bu.cardid like concat('%', #{user.cardid},'%')
         </if>
-        <if test="user.examinationType!=null and user.examinationType != ''">
-            and bu.examination_type = #{user.examinationType}
+        <if test="user.unitName!=null and user.unitName != ''">
+            and bu.unit_name like concat('%', #{user.unitName},'%')
         </if>
-        ORDER BY bu.id
+        <if test="user.sortName!=null and user.sortName!=''">
+            ORDER BY bu.${user.sortName} ${user.sort},bu.id desc
+        </if>
+        <if test="user.sortName==null or user.sortName==''">
+            ORDER BY bu.id desc
+        </if>
     </select>
 
+
+    <!--带坐标,按年龄分布查询-->
+    <select id="selectUserPagesByAge" resultMap="userResultMap">
+        select * from
+        (
+            select
+            distinct
+            bu.*,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sexs,
+            ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
+            sll.longitude,sll.latitude,
+            bd.dept_name
+            from
+            blade_user bu
+            left join
+            blade_dept bd
+            on
+            bu.dept_id = bd.id
+            left join
+            sys_information si
+            on
+            si.departmentid = bd.id
+            left join
+            sys_jurisdiction sj
+            on
+            sj.id = si.jurisdiction
+            left join
+            sys_live_location sll
+            on
+            sll.worker_id = bu.id
+            left join
+            blade_role br
+            on
+            br.id = bu.role_id
+            left join
+            sys_training_registration str
+            on
+            bu.id = str.user_id
+            where
+            bu.is_deleted = 0
+            <if test="user.examinationType!=null and user.examinationType != ''">
+                <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>
+            <if test="user.account!=null and user.account != ''">
+                and bu.account like concat('%', #{user.account},'%')
+            </if>
+            <if test="user.hold!=null and user.hold != ''">
+                and bu.hold = #{user.hold}
+            </if>
+            <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.roleId!=null and user.roleId != ''">
+                and bu.role_id = #{user.roleId}
+            </if>
+            <if test="user.roleAlias!=null and user.roleAlias != ''">
+                and br.role_alias = '保安'
+            </if>
+            <if test="user.status!=null and user.status != '' and user.status != 6">
+                and bu.status = #{user.status}
+            </if>
+            <if test="user.education!=null  and user.education != ''">
+                and bu.education = #{user.education}
+            </if>
+            <if test="user.trainingUnitId!=null and user.trainingUnitId != ''">
+                and str.training_unit_id = #{user.trainingUnitId}
+            </if>
+            <if test="user.deptName!=null and user.deptName != ''">
+                and  bd.dept_name like concat('%', #{user.deptName},'%')
+            </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.realName!=null and user.realName != ''">
+                and bu.real_name like concat('%', #{user.realName},'%')
+            </if>
+            <if test="user.unitName!=null and user.unitName != ''">
+                and bu.unit_name like concat('%', #{user.unitName},'%')
+            </if>
+            <if test="user.dispatch!=null and user.dispatch != ''">
+                <if test="user.dispatch == 0">
+                    and bu.dispatch = #{user.dispatch}
+                </if>
+                <if test="user.dispatch == 1">
+                    and bu.dispatch = #{user.dispatch}
+                </if>
+            </if>
+            <if test="user.isAvatar==1">
+                and bu.avatar is not null and bu.avatar!=""
+            </if>
+            <if test="user.isAvatar==2">
+                and (bu.avatar is null or bu.avatar="")
+            </if>
+
+            <if test="user.isFingerprint==1">
+                and bu.fingerprint is not null and bu.fingerprint!=""
+            </if>
+            <if test="user.isFingerprint==2">
+                and (bu.fingerprint is null or bu.fingerprint="")
+            </if>
+            <if test="user.userType!=null and user.userType != ''">
+                and bu.user_type = #{user.userType}
+            </if>
+            <if test="user.securitynumber!=null and user.securitynumber != ''">
+                and bu.securitynumber like concat('%', #{user.securitynumber},'%')
+            </if>
+            <if test="user.cardid!=null and user.cardid != ''">
+                and bu.cardid like concat('%', #{user.cardid},'%')
+            </if>
+            <if test="user.sortName!=null and user.sortName!=''">
+                ORDER BY bu.${user.sortName} ${user.sort},bu.id desc
+            </if>
+            <if test="user.sortName==null or user.sortName==''">
+                ORDER BY bu.id desc
+            </if>
+        ) user
+        where 1=1
+        <if test="user.ageType==1">
+            and age >=18 and age &lt;=30
+        </if>
+        <if test="user.ageType==2">
+            and age >30 and age &lt;=45
+        </if>
+        <if test="user.ageType==3">
+            and age >45 and age &lt;=60
+        </if>
+    </select>
+
+    <!--用户列表信息-->
     <select id="selectUserPage" resultMap="userResultMap">
-        select * from blade_user where is_deleted = 0
+        select bu.* from blade_user bu
+        left join blade_dept bd on bd.id = bu.dept_id
+        left join sys_jurisdiction sj on sj.id = bu.jurisdiction
+        left join blade_role br on br.id = bu.role_id
+        where bu.is_deleted = 0 and bu.id != 1123598821738675201
         <if test="user.tenantId!=null and user.tenantId != ''">
             and tenant_id = #{user.tenantId}
         </if>
         <if test="user.account!=null and user.account != ''">
-            and account != #{user.account}
+            and account like concat('%', #{user.account},'%')
+        </if>
+        <if test="user.roleId!=null and user.roleId != ''">
+            and (br.role_alias = '公安管理员' or br.role_alias = '民警')
         </if>
         <if test="user.realName!=null and user.realName != ''">
             and real_name like concat(concat('%', #{user.realName}),'%')
         </if>
         <if test="user.deptId!=null and user.deptId != ''">
-            and dept_id like concat(concat('%', #{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.userType!=null and user.userType != ''">
             and user_type = #{user.userType}
         </if>
         <if test="user.nativeplace!=null and user.nativeplace != ''">
             and nativeplace = #{user.nativeplace}
+        </if>
+        <if test="user.unitName!=null and user.unitName != ''">
+            and bu.unit_name like concat('%', #{user.unitName},'%')
         </if>
         <if test="user.sex!=null and user.sex != ''">
             and sex = #{user.sex}
@@ -145,29 +401,17 @@
         </if>
         <if test="user.hold!=null and user.hold != ''">
             and hold = #{user.hold}
-        </if> <if test="user.jurisdiction!=null and user.jurisdiction != ''">
-        and jurisdiction = #{user.jurisdiction}
-    </if>
+        </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 securitynumber = #{user.securitynumber}
         </if>
         <if test="user.examinationType!=null and user.examinationType != ''">
             and examination_type = #{user.examinationType}
         </if>
-        <if test="deptIdList!=null and deptIdList.size>0">
-            and id in (
-            SELECT
-            user_id
-            FROM
-            blade_user_dept
-            WHERE
-            dept_id IN
-            <foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
-                #{item}
-            </foreach>
-            )
-        </if>
-        ORDER BY id
+        ORDER BY bu.id desc
     </select>
 
     <select id="getUser" resultMap="userResultMap">
@@ -177,6 +421,7 @@
           and account = #{param2}
           and password = #{param3}
           and is_deleted = 0
+          and status = 1
     </select>
 
     <select id="exportUser" resultType="org.springblade.modules.system.excel.UserExcel">
@@ -197,26 +442,32 @@
 
     <!--通过 身份证号查询用户信息-->
     <select id="getUserInfoByIdCardNo" resultType="org.springblade.modules.system.entity.User">
-        SELECT id, name, real_name RealName
+        SELECT id, name, real_name RealName,securitynumber
         FROM blade_user
-        where cardid = #{param1}
+        where 1=1
+        and is_deleted = 0
+        and status = 1
+        and cardid = #{param1}
     </select>
 
 
     <!--保安员列表-->
     <select id="selectUserPageSecurity" resultMap="userResultMap">
         select
-        bu.*
+        bu.*,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sexs
         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
         where
         bu.is_deleted = 0
-        and
-        bd.dept_category = 1
+        and role_alias = '保安'
         <if test="user.realName!=null and user.realName != ''">
             and bu.real_name like concat(concat('%', #{user.realName}),'%')
         </if>
@@ -232,14 +483,25 @@
         <if test="user.sex!=null and user.sex != ''">
             and bu.sex = #{user.sex}
         </if>
+        <if test="user.dispatch!=null and user.dispatch != ''">
+            <if test="user.dispatch==1">
+                and (bu.dispatch = #{user.dispatch} or bu.dispatch is null)
+            </if>
+            <if test="user.dispatch==0">
+                and bu.dispatch = #{user.dispatch}
+            </if>
+        </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 test="user.equipmentCode!=null">
+            and bu.equipment_code !="" and bu.equipment_code is not null and bu.equipment_code !=null
         </if>
         <if test="user.jurisdiction!=null and user.jurisdiction != ''">
             and bu.jurisdiction = #{user.jurisdiction}
+        </if>
+        <if test="user.unitName!=null and user.unitName != ''">
+            and bu.unit_name like concat('%', #{user.unitName},'%')
         </if>
         <if test="user.securitynumber!=null and user.securitynumber != ''">
             and bu.securitynumber = #{user.securitynumber}
@@ -257,17 +519,20 @@
         blade_dept bd
         on
         bu.dept_id = bd.id
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
         where
         bu.is_deleted = 0
         and
-        bd.dept_category = 1
-        and
         (hold = 2 or hold = 3)
+        and br.role_alias = "保安"
         <if test="user.deptId!=null and user.deptId != ''">
             and bu.dept_id = #{user.deptId}
         </if>
         <if test="user.isApply!=null">
-            and sa.is_apply = #{user.isApply}
+            and bu.is_apply = #{user.isApply}
         </if>
         <if test="user.roleId!=null and user.roleId != ''">
             and bu.role_id = #{user.roleId}
@@ -277,6 +542,9 @@
         </if>
         <if test="user.realName!=null and user.realName != ''">
             and bu.real_name like concat('%', #{user.realName},'%')
+        </if>
+        <if test="user.unitName!=null and user.unitName != ''">
+            and bu.unit_name like concat('%', #{user.unitName},'%')
         </if>
         <if test="user.userType!=null and user.userType != ''">
             and bu.user_type = #{user.userType}
@@ -290,30 +558,54 @@
 
     <!--保安员列表树 安员列表树,帅选无保安证,下拉tree-->
     <select id="getSecurityApplyTree" resultType="org.springblade.modules.system.node.TreeNode">
-        (select #{user.deptId} as id,
-            '全部' as name,
-            0 as parentId
-            from blade_user)
+        (
+            select #{user.deptId} as id,
+                '全部' as name,
+                0 as parentId
+                from blade_user
+        )
 
         union all
 
-        (select
-            bu.id,
-            bu.real_name as name,
-            #{user.deptId} parentId
-        from
-            blade_user bu
-        left join
-        blade_dept bd
-        on
-        bu.dept_id = bd.id
-        where
-        bu.is_deleted = 0
-        and
-        bd.dept_category = 1
-        and
-        (hold = 2 or hold = 3)
-        and bd.id = #{user.deptId}
+        (
+            select
+            a.id,
+            a.name,
+            a.parentId
+            from (
+                select
+                    distinct
+                    bu.id,
+                    ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
+                    bu.is_apply isApply,
+                    bu.is_train isTrain,
+                    bu.real_name as name,
+                    #{user.deptId} parentId
+                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
+                where
+                bu.is_deleted = 0
+                and bu.status = 1
+                and (bu.examination_type != 1 or bu.examination_type is null)
+                and (hold = 2 or hold = 3)
+                and bd.id = #{user.deptId}
+                and br.role_alias = '保安'
+            ) a
+            where 1 = 1
+            <if test="user.examType==1">
+                and a.isApply != 1
+            </if>
+            <if test="user.examType==2">
+                and a.isTrain != 1
+            </if>
         )
     </select>
 
@@ -326,9 +618,9 @@
           </if>
     </select>
 
-    <!--查询当前年份已有的保安证编号-->
+    <!--查询当前年份已有的保安证编号,取倒数5位的最大值-->
     <select id="getSecurityPaperCount" resultType="java.lang.Integer">
-        select count(*) from blade_user
+        select ifnull(max(0+RIGHT(securitynumber,5)),0) from blade_user
         where securitynumber like concat('%', #{pre},'%')
     </select>
 
@@ -351,19 +643,19 @@
 
     <!--计算保安人员年龄-->
     <select id="getUserAgeById" resultType="org.springblade.modules.system.vo.UserVO">
-        select id,ifnull(TIMESTAMPDIFF(YEAR, birthday, CURDATE()),0) age from blade_user where id = #{userId}
+        select id,real_name realName,ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(cardid, 7, 8), CURDATE()),0) AS age,securitynumber,cardid
+        from
+        blade_user
+        where
+        id = #{userId}
     </select>
 
 
     <!--根据保安员编码查询保安信息-->
     <select id="getUserInfoBySecurityNumber" resultType="org.springblade.modules.system.vo.UserVO">
         select
-        bu.id,
-        bu.avatar,
-        bu.securitynumber securityNumber,
-        ifnull(TIMESTAMPDIFF(YEAR, bu.birthday, CURDATE()),0) age,
-        bu.real_name realName,
-        bu.sex,
+        bu.*,
+        ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(cardid, 7, 8), CURDATE()),0) AS age,
         bd.dept_name deptName
          from
          blade_user bu
@@ -371,7 +663,16 @@
          blade_dept bd
          on
          bu.dept_id = bd.id
-        where securitynumber = #{securityNumber}
+        where
+        1=1
+        <if test="securityNumber!=null and securityNumber!=''">
+            and securitynumber = #{securityNumber}
+        </if>
+        <if test="cardid!=null and cardid!=''">
+            and cardid = #{cardid}
+        </if>
+        and bu.status = 1
+        and bu.is_deleted = 0
     </select>
 
 
@@ -393,25 +694,490 @@
         where bu.id = #{user.id}
     </select>
 
-    <select id="seleL" resultType="java.util.HashMap">
-        SELECT
-            *
-        FROM
-            blade_user where 1=1
-        <if test="type!=null and type=='2'.toString()">
-            and role_id='1414840172333842433' and `status`=1 AND is_deleted=0
-        </if>
-        <if test="type!=null and type=='1'.toString()">
-            AND ( role_id = '1412226235153731586'
-            OR role_id = '1416733602219110402') AND `status` = 1
-            AND is_deleted = 0
-            AND dept_id = '1425665656887545857'
-        </if>
+    <!--获取派遣信息-->
+    <select id="getDispaterInfo" resultType="java.util.HashMap">
+        select bu.*,sdu.jurisdiction from blade_user bu
+        left join
+        sys_dispatcher sd
+        on
+        bu.id = sd.user_ids
+        left join
+        sys_dispatcher_unit sdu
+        on
+        sdu.id = sd.dispatcher_unit_id
+        where
+        bu.dispatch =0
+        and bu.status = 1
+        and bu.is_deleted = 0
         <if test="deptid!=null and deptid!=''">
-            and dept_id=#{deptid}
+            and bu.dept_id = #{deptid}
         </if>
         <if test="jurisdiction!=null and jurisdiction!=''">
-            and jurisdiction=#{jurisdiction}
+            and sdu.jurisdiction = #{jurisdiction}
         </if>
     </select>
+
+    <!--获取工作汇报-->
+    <select id="getWorkReportInfo" resultType="java.util.HashMap">
+        select bu.*,si.jurisdiction from blade_user bu
+        left join
+        blade_dept bd
+        on
+        bd.id = bu.dept_id
+        left join
+        sys_information si
+        on
+        bd.id = si.departmentid
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
+        where
+        1=1
+        and bu.status = 1
+        and bu.is_deleted = 0
+        <if test="deptid!=null and deptid!=''">
+            and bu.dept_id = #{deptid}
+        </if>
+        <if test="jurisdiction!=null and jurisdiction!=''">
+            and si.jurisdiction = #{jurisdiction}
+            and br.role_alias = "公安管理员"
+        </if>
+    </select>
+
+
+    <!--获取工作汇报 向民警-->
+    <select id="getWorkReportInfos" resultType="java.util.HashMap">
+        select bu.* from blade_user bu
+        left join
+        blade_dept bd
+        on
+        bd.id = bu.dept_id
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
+        where
+        1=1
+        and bu.status = 1
+        and bu.is_deleted = 0
+        <if test="deptid!=null and deptid!=''">
+            and bu.dept_id = #{deptid}
+        </if>
+        <if test="jurisdiction!=null and jurisdiction!=''">
+            and bu.jurisdiction = #{jurisdiction}
+            and br.role_alias = "公安管理员"
+        </if>
+    </select>
+
+    <!--查询用的派遣信息-->
+    <select id="getDispatcherInfoByUserId" resultType="org.springblade.modules.dispatcher.vo.DispatcherVO">
+        select
+            sd.id,sdu.jurisdiction
+        from
+            sys_dispatcher sd
+        left join
+            sys_dispatcher_unit sdu
+        on
+            sdu.id = sd.dispatcher_unit_id
+        where sd.user_ids = #{userId}
+        and sd.status = 0
+    </select>
+
+    <!--查询账号相同的数量-->
+    <select id="selectCountAccount" resultType="java.lang.Integer">
+        select count(*) from blade_user where 1=1
+        and status = 1
+        and is_deleted = 0
+        and account = #{account}
+    </select>
+
+    <!--查询当前部门名称及父级部门名称-->
+    <select id="getDeptName" resultType="java.lang.String">
+        (select dept_name from blade_dept where id = #{deptId} and 1=1)
+        union
+        (
+            select dept_name from blade_dept where id =  (select parent_id from blade_dept where id= #{deptId} and 1=1)
+        )
+    </select>
+
+    <!--查询用户表中未删除,未离职的用户信息-->
+    <select id="getUserInfo" resultType="org.springblade.modules.system.entity.User">
+        select id,account from blade_user
+        where account = #{account}
+        and is_deleted = 0
+        and status = 1
+    </select>
+
+
+    <!--现场检查获取保安员-->
+    <select id="getSecurityInfo" resultType="java.util.HashMap">
+        select bu.*,si.jurisdiction from blade_user bu
+        left join
+        blade_dept bd
+        on
+        bd.id = bu.dept_id
+        left join
+        sys_information si
+        on
+        bd.id = si.departmentid
+        left join
+        sys_jurisdiction sj
+        on
+        sj.id = si.jurisdiction
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
+        where
+        1=1
+        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
+            and (sj.id = #{jurisdiction} or sj.parent_id = #{jurisdiction})
+        </if>
+        and bu.status = 1
+        and bu.is_deleted = 0
+        and br.role_alias = "保安"
+    </select>
+
+    <!--保安员列表树 安员列表树,帅选无保安证,下拉tree-->
+    <select id="getSecurityDispatcherTree" resultType="org.springblade.modules.system.node.TreeNode">
+        (
+        select #{user.deptId} as id,
+        '全选' as name,
+        0 as parentId
+        from blade_user
+        )
+
+        union all
+
+        (
+        select
+        distinct
+        bu.id,
+        bu.real_name as name,
+        #{user.deptId} parentId
+        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
+        where
+        bu.is_deleted = 0
+        and bu.status = 1
+        and bd.is_deleted = 0
+        and bd.id = #{user.deptId}
+        and br.role_alias = '保安'
+        and bu.dispatch = 1
+        )
+    </select>
+
+
+    <!--导出保安员信息-->
+    <select id="exportSecurityInfo" resultType="org.springblade.modules.system.excel.SecurityExcel">
+        select
+        distinct bu.id,
+        bd.dept_name deptId,
+        bu.real_name realName,
+        bu.phone,
+        if(IF(mod(SUBSTR(bu.cardid,17,1),2),1,2)=1,"男","女") sex,
+        bu.cardid,
+        bu.nation,
+        bu.registered,
+        bu.unit_name unitName,
+        case when bu.education=1 then '初中及以下'
+        when bu.education=2 then '高中/中技/中专'
+        when bu.education=3 then '大专'
+        when bu.education=4 then '本科'
+        when bu.education=5 then '博士'
+        when bu.education=6 then '硕士'
+        else '' end as education,
+        bu.politicaloutlook,
+        bu.address
+        from blade_user bu left join blade_dept bd on bu.dept_id = bd.id
+        left join sys_information si on si.departmentid = bd.id
+        left join sys_jurisdiction sj on sj.id = si.jurisdiction
+        left join blade_role br on br.id = bu.role_id
+        left join sys_training_registration str on bu.id = str.user_id
+        where bu.is_deleted = 0
+        <if test="user.examinationType!=null and user.examinationType != ''">
+            <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>
+        <if test="user.isAvatar==1">
+            and bu.avatar is not null and bu.avatar!=""
+        </if>
+        <if test="user.isAvatar==2">
+            and (bu.avatar is null or bu.avatar="")
+        </if>
+        <if test="user.unitName!=null and user.unitName != ''">
+            and bu.unit_name like concat('%', #{user.unitName},'%')
+        </if>
+        <if test="user.isFingerprint==1">
+            and bu.fingerprint is not null and bu.fingerprint!=""
+        </if>
+        <if test="user.isFingerprint==2">
+            and (bu.fingerprint is null or bu.fingerprint="")
+        </if>
+        <if test="user.account!=null and user.account != ''">
+            and bu.account like concat('%', #{user.account},'%')
+        </if>
+        <if test="user.hold!=null and user.hold != ''">
+            and bu.hold = #{user.hold}
+        </if>
+        <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.roleId!=null and user.roleId != ''">
+            and bu.role_id = #{user.roleId}
+        </if>
+        <if test="user.roleAlias!=null and user.roleAlias != ''">
+            and br.role_alias = '保安'
+        </if>
+        <if test="user.status!=null and user.status != '' and user.status != 6">
+            and bu.status = #{user.status}
+        </if>
+        <if test="user.trainingUnitId!=null and user.trainingUnitId != ''">
+            and str.training_unit_id = #{user.trainingUnitId}
+        </if>
+        <if test="user.deptName!=null and user.deptName != ''">
+            and  bd.dept_name like concat('%', #{user.deptName},'%')
+        </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.realName!=null and user.realName != ''">
+            and bu.real_name like concat('%', #{user.realName},'%')
+        </if>
+        <if test="user.dispatch!=null and user.dispatch != ''">
+            <if test="user.dispatch == 0">
+                and bu.dispatch = #{user.dispatch}
+            </if>
+            <if test="user.dispatch == 1">
+                and bu.dispatch = #{user.dispatch}
+            </if>
+        </if>
+        <if test="user.userType!=null and user.userType != ''">
+            and bu.user_type = #{user.userType}
+        </if>
+        <if test="user.securitynumber!=null and user.securitynumber != ''">
+            and bu.securitynumber like concat('%', #{user.securitynumber},'%')
+        </if>
+        <if test="user.cardid!=null and user.cardid != ''">
+            and bu.cardid like concat('%', #{user.cardid},'%')
+        </if>
+        <if test="user.sortName!=null and user.sortName!=''">
+            ORDER BY bu.${user.sortName} ${user.sort},bu.id desc
+        </if>
+        <if test="user.sortName==null or user.sortName==''">
+            ORDER BY bu.id desc
+        </if>
+    </select>
+
+    <!--查询押运人员编码不为null的保安信息-->
+    <select id="selectEquipent" resultType="java.util.HashMap">
+        SELECT id,
+               equipment_code as code
+        FROM blade_user
+        WHERE dept_id = '1460129345988239362'
+          AND role_id = '1412226235153731586'
+          AND is_deleted = 0
+          AND `status` = 1
+          AND equipment_code IS NOT NULL
+          AND equipment_code!=""
+    </select>
+
+    <!--查詢用戶派遣記錄信息-->
+    <select id="getUserDispatcherInfo" resultType="org.springblade.modules.dispatcher.vo.DispatcherVO">
+        select
+        sdu.name dispatcherCompany,
+        dispatcherTime dispatchertime,
+        sd.end_time endTime
+        from blade_user bu
+        left join
+        sys_dispatcher sd
+        on
+        sd.user_ids = bu.id
+        left join
+        sys_dispatcher_unit sdu
+        on
+        sdu.id = sd.dispatcher_unit_id
+        where 1=1
+        and sd.status = 0
+        and bu.dispatch = 0
+        and bu.id = #{id}
+    </select>
+
+    <!-- 批量插入时将主键值设置到参数user的userId字段上 -->
+    <insert id="batchUserList" useGeneratedKeys="true" keyProperty="id">
+        insert into blade_user
+        (id,
+        tenant_id,account,password,name,real_name,avatar,email,phone,sex,
+        role_id,dept_id,cardid,nativePlace,nation,fingerprint,education,
+        politicaloutlook,healstats,height,address,registered,securitynumber,
+        hold,jurisdiction,examination_type,status,is_deleted,dispatch,create_time,unit_name
+        )
+        values
+        <foreach collection="list" item="user" separator=",">
+            (#{user.id},
+            #{user.tenantId},#{user.account},#{user.password},#{user.name},#{user.realName},#{user.avatar},#{user.email},#{user.phone},#{user.sex},
+            #{user.roleId},#{user.deptId},#{user.cardid},#{user.nativeplace},#{user.nation},#{user.fingerprint},#{user.education},
+            #{user.politicaloutlook},#{user.healstats},#{user.height},#{user.address},#{user.registered},#{user.securitynumber},
+            #{user.hold},#{user.jurisdiction},#{user.examinationType},#{user.status},#{user.isDeleted},#{user.dispatch},#{user.createTime},#{user.unitName}
+            )
+        </foreach>
+    </insert>
+
+    <!-- 批量插入时将主键值设置到参数user的userId字段上 -->
+    <insert id="batchExperienceList" useGeneratedKeys="true" keyProperty="id">
+        insert into sys_experience
+        (
+        name,post,entryTime,cardId,companyname,securityId
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.name},#{item.post},#{item.entrytime},#{item.cardid},#{item.companyname},#{item.securityid}
+            )
+        </foreach>
+    </insert>
+
+    <!--查询学历统计信息-->
+    <select id="getAgeStatistics" resultType="java.lang.Integer">
+        select count(*) c from (
+        select ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age from blade_user bu
+        left join blade_dept bd on bu.dept_id = bd.id
+        left join sys_information si on si.departmentid = bd.id
+        left join sys_jurisdiction sj on sj.id = si.jurisdiction
+        where bu.status = 1
+        and bu.is_deleted = 0
+        and bu.role_id = 1412226235153731586
+        <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.deptId!=null and user.deptId != ''">
+            and bu.dept_id = #{user.deptId}
+        </if>
+        )a where age>=18 and age &lt;=30
+
+        union
+        (
+            select count(*) c from
+            (
+            select ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age from blade_user bu
+            left join blade_dept bd on bu.dept_id = bd.id
+            left join sys_information si on si.departmentid = bd.id
+            left join sys_jurisdiction sj on sj.id = si.jurisdiction
+            where bu.status = 1
+            and bu.is_deleted = 0
+            and bu.role_id = 1412226235153731586
+            <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.deptId!=null and user.deptId != ''">
+                and bu.dept_id = #{user.deptId}
+            </if>
+            )a where age>30 and age &lt;=45
+        )
+        union
+        (
+            select count(*) c from
+            (
+            select ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age from blade_user bu
+            left join blade_dept bd on bu.dept_id = bd.id
+            left join sys_information si on si.departmentid = bd.id
+            left join sys_jurisdiction sj on sj.id = si.jurisdiction
+            where bu.status = 1
+            and bu.is_deleted = 0
+            and bu.role_id = 1412226235153731586
+            <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.deptId!=null and user.deptId != ''">
+                and bu.dept_id = #{user.deptId}
+            </if>
+            )a where age>45 and age &lt;=60
+        )
+    </select>
+
+    <select id="getUserById" resultType="org.springblade.modules.system.entity.User">
+        select * from blade_user where id = #{id}
+    </select>
+
+    <!--根据手机号获取用户信息-->
+    <select id="getUserByPhone" resultType="org.springblade.modules.system.entity.User">
+        select * from blade_user where is_deleted = 0 and status = 1
+        and tenant_id = #{tenantId} and phone = #{phone}
+    </select>
+
+    <!--按天查询 day 天未登录的人员ids集合信息-->
+    <select id="getMoreDayNotLoginUser" resultType="java.lang.String">
+        select bu.id from blade_user bu
+        left join  (
+            select user_id,max(create_time) as create_time from sys_login_record GROUP BY user_id
+        )slr on bu.id = slr.user_id
+         where bu.status = 1 and bu.is_deleted = 0 and bu.role_id = 1412226235153731586
+         and DATE_SUB(CURDATE(), INTERVAL #{day} DAY) > date(bu.create_time)
+         and DATE_SUB(CURDATE(), INTERVAL #{day} DAY) > date(slr.create_time)
+    </select>
+
+    <!--用户冻结操作-->
+    <update id="updateFreeze">
+        update blade_user set is_deleted = 1
+        <choose>
+            <when test="list!=null and list.size()>0">
+                where id in
+                <foreach collection="list" item="id" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </when>
+            <otherwise>
+                where id in ('')
+            </otherwise>
+        </choose>
+    </update>
+
+    <!--用户注销操作-->
+    <update id="updateLogout">
+        update blade_user set is_deleted = 1
+        <choose>
+            <when test="list!=null and list.size()>0">
+                where id in
+                <foreach collection="list" item="id" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </when>
+            <otherwise>
+                where id in ('')
+            </otherwise>
+        </choose>
+    </update>
+
+
 </mapper>

--
Gitblit v1.9.3