From 8d43111bd0e598bc0b2014cbfa69a32e74959dff Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 15 Dec 2021 19:24:05 +0800
Subject: [PATCH] ftp sql 同步封装

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml |  381 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 335 insertions(+), 46 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 76e8469..220ebc5 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -53,7 +53,8 @@
     <!--带坐标-->
     <select id="selectUserPages" resultMap="userResultMap">
         select
-        bu.*,
+        distinct
+        bu.*,IF(mod(SUBSTR(bu.cardid,17,1),2),1,2) sexs,
         sll.longitude,sll.latitude,
         bd.dept_name
         from
@@ -78,11 +79,20 @@
         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
-        and bd.parent_id!=1425365577303621633
-        and bd.id != 1425365577303621633
-        and bd.id != 1432625856013971457
+        <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>
@@ -90,7 +100,25 @@
             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}
@@ -98,8 +126,14 @@
         <if test="user.roleAlias!=null and user.roleAlias != ''">
             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.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})
@@ -108,7 +142,12 @@
             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.userType!=null and user.userType != ''">
             and bu.user_type = #{user.userType}
@@ -119,10 +158,7 @@
         <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>
-        ORDER BY bu.id
+        ORDER BY bu.id desc
     </select>
 
     <select id="selectUserPage" resultMap="userResultMap">
@@ -132,13 +168,13 @@
         on
         bd.id = bu.dept_id
         left join
-        sys_information si
-        on
-        si.departmentid = bd.id
-        left join
         sys_jurisdiction sj
         on
-        sj.id = si.jurisdiction
+        sj.id = bu.jurisdiction
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
         where bu.is_deleted = 0
         <if test="user.tenantId!=null and user.tenantId != ''">
             and tenant_id = #{user.tenantId}
@@ -146,11 +182,32 @@
         <if test="user.account!=null and user.account != ''">
             and account like concat('%', #{user.account},'%')
         </if>
+        <if test="user.roleId!=null and user.roleId != ''">
+            and 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 (bd.id = #{user.deptId} or bd.parent_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.userType!=null and user.userType != ''">
             and user_type = #{user.userType}
@@ -176,7 +233,7 @@
         <if test="user.examinationType!=null and user.examinationType != ''">
             and examination_type = #{user.examinationType}
         </if>
-        ORDER BY bu.id
+        ORDER BY bu.id desc
     </select>
 
     <select id="getUser" resultMap="userResultMap">
@@ -207,16 +264,19 @@
 
     <!--通过 身份证号查询用户信息-->
     <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
@@ -255,6 +315,9 @@
         </if>
         <if test="user.status!=null and user.status != ''">
             and bu.status = #{user.status}
+        </if>
+        <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}
@@ -322,32 +385,42 @@
 
         (
             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 (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.id,
+            a.name,
+            a.parentId
+            from (
+                select
+                    distinct
+                    bu.id,
+                    ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING(bu.cardid,7,4),0) 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 bu.is_apply != 1
+                and a.isApply != 1
             </if>
             <if test="user.examType==2">
-                and bu.is_train != 1
+                and a.isTrain != 1
             </if>
         )
     </select>
@@ -386,7 +459,11 @@
 
     <!--计算保安人员年龄-->
     <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,ifnull(DATE_FORMAT(NOW(), '%Y') - SUBSTRING(cardid,7,4),0) age,securitynumber,cardid
+        from
+        blade_user
+        where
+        id = #{userId}
     </select>
 
 
@@ -516,7 +593,10 @@
 
     <!--查询账号相同的数量-->
     <select id="selectCountAccount" resultType="java.lang.Integer">
-        select count(*) from blade_user where account = #{account}
+        select count(*) from blade_user where 1=1
+        and status = 1
+        and is_deleted = 0
+        and account = #{account}
     </select>
 
     <!--查询当前部门名称及父级部门名称-->
@@ -535,4 +615,213 @@
         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,
+        if(bu.hold=1,"是","否") hold,
+        bu.securitynumber
+        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.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 != ''">
+            and bu.dispatch = #{user.dispatch}
+        </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>
+        ORDER BY bu.id desc
+    </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
+    </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>
 </mapper>

--
Gitblit v1.9.3