From 62eb499b0c969f246d3245d1429a97da4de1ce28 Mon Sep 17 00:00:00 2001
From: 钟日健 <arsn163@163.com>
Date: Mon, 01 Jun 2026 20:46:13 +0800
Subject: [PATCH] feat: 成绩查询增加年龄查询返回
---
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml | 968 +++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 844 insertions(+), 124 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 d61feb3..1c0698f 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -33,9 +33,6 @@
<result column="height" property="height"/>
<result column="cell" property="cell"/>
<result column="emails" property="emails"/>
- <result column="address" property="address"/>
- <result column="registered" property="registered"/>
- <result column="rtime" property="rtime"/>
<result column="hold" property="hold"/>
<result column="jurisdiction" property="jurisdiction"/>
<result column="securitynumber" property="securitynumber"/>
@@ -47,60 +44,137 @@
<result column="birthtime" property="birthtime"/>
<result column="healstats" property="healstats"/>
<result column="soil" property="soil"/>
+ <result column="reason_for_leav" property="reasonForLeav"/>
+ <result column="accreditationStatus" property="accreditationStatus"/>
+ <result column="ancestors" property="ancestors"/>
</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
+ bud.unit_name,
+ bud.permanent_residence_address as registered,
+ bd.dept_name,
+ bd.ancestors,
+ CASE WHEN sar.audit_status is not null THEN sar.audit_status ELSE -1 END AS accreditationStatus
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_live_location sll
- on
- sll.worker_id = bu.id
- left join
- blade_role br
- on
- br.id = bu.role_id
- where
- bu.is_deleted = 0
+ left join blade_user_detail bud on bud.user_id = bu.id
+ 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
+ LEFT JOIN sys_accreditation_records sar ON sar.user_id = bu.id
+ where bu.is_deleted = 0
+
+ <if test="user.accreditationStatus != null and user.accreditationStatus != ''">
+ <if test="user.accreditationStatus == -1">
+ AND sar.audit_status is null
+ </if>
+ <if test="user.accreditationStatus != -1">
+ AND sar.audit_status = #{user.accreditationStatus}
+ </if>
+ </if>
+
+ <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.auditStatus != null and user.auditStatus != ''">
+ and bu.audit_status = #{user.auditStatus}
+ </if>
<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 != 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.isFreeze!=null">
+ and bu.is_freeze = #{user.isFreeze}
+ </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.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 <=30
+ </if>
+ <if test="user.ageType==2">
+ and age >30 and age <=45
+ </if>
+ <if test="user.ageType==3">
+ and age >45 and age <=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,25 +185,198 @@
<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 bud.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,
+ bud.unit_name,
+ bd.dept_name
+ from
+ blade_user bu
+ left join blade_user_detail bud on bud.user_id = bu.id
+ 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.isFreeze!=null">
+ and bu.is_freeze = #{user.isFreeze}
+ </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 bud.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.auditStatus != null and user.auditStatus != ''">
+ and bu.audit_status = #{user.auditStatus}
+ </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 <=30
+ </if>
+ <if test="user.ageType==2">
+ and age >30 and age <=45
+ </if>
+ <if test="user.ageType==3">
+ and age >45 and age <=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.isFreeze!=null">
+ and bu.is_freeze = #{user.isFreeze}
+ </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}
@@ -145,29 +392,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,46 +412,54 @@
and account = #{param2}
and password = #{param3}
and is_deleted = 0
+ and status = 1
</select>
<select id="exportUser" resultType="org.springblade.modules.system.excel.UserExcel">
- SELECT id,
- tenant_id,
- user_type,
- account,
- name,
- real_name,
- email,
- phone,
- birthday,
- role_id,
- dept_id,
- post_id
- FROM blade_user ${ew.customSqlSegment}
+ SELECT
+ bu.id,
+ bd.dept_name AS deptId,
+ bu.real_name,
+ bu.phone,
+ bu.sex,
+ bu.cardid
+ FROM
+ blade_user bu
+ LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
+ where bu.is_deleted = 0
+ <if test="obj.account != null and obj.account != ''">
+ AND bu.account LIKE CONCAT('%',#{obj.account},'%')
+ </if>
+ <if test="obj.realName != null and obj.realName != ''">
+ AND bu.real_name LIKE CONCAT('%',#{obj.realName},'%')
+ </if>
+ <if test="obj.deptId != null and obj.deptId != ''">
+ AND bu.dept_id = #{obj.deptId}
+ </if>
</select>
<!--通过 身份证号查询用户信息-->
<select id="getUserInfoByIdCardNo" resultType="org.springblade.modules.system.entity.User">
- SELECT id, name, real_name RealName
+ SELECT id, name, real_name RealName,securitynumber,dept_id,dispatch
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
- where
- bu.is_deleted = 0
- and
- bd.dept_category = 1
+ left join blade_user_detail bud on bud.user_id = bu.id
+ 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 role_alias = '保安'
<if test="user.realName!=null and user.realName != ''">
and bu.real_name like concat(concat('%', #{user.realName}),'%')
</if>
@@ -232,6 +475,9 @@
<if test="user.sex!=null and user.sex != ''">
and bu.sex = #{user.sex}
</if>
+ <if test="user.isFreeze!=null">
+ and bu.is_freeze = #{user.isFreeze}
+ </if>
<if test="user.dispatch!=null and user.dispatch != ''">
<if test="user.dispatch==1">
and (bu.dispatch = #{user.dispatch} or bu.dispatch is null)
@@ -243,12 +489,15 @@
<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 bud.unit_name like concat('%', #{user.unitName},'%')-->
+<!-- </if>-->
<if test="user.securitynumber!=null and user.securitynumber != ''">
and bu.securitynumber = #{user.securitynumber}
</if>
@@ -261,30 +510,32 @@
bd.dept_name
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)
+ left join blade_user_detail bud on bud.user_id = bu.id
+ 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 (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}
+ </if>
+ <if test="user.isFreeze!=null">
+ and bu.is_freeze = #{user.isFreeze}
</if>
<if test="user.status!=null and user.status != ''">
and bu.status = #{user.status}
</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 bud.unit_name like concat('%', #{user.unitName},'%')
</if>
<if test="user.userType!=null and user.userType != ''">
and bu.user_type = #{user.userType}
@@ -298,31 +549,40 @@
<!--保安员列表树 安员列表树,帅选无保安证,下拉tree-->
<select id="getSecurityApplyTree" resultType="org.springblade.modules.system.node.TreeNode">
- (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.type,
+ 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,
+ if(es.user_id is not null,1,2) as type,
+ #{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
+ left join (select user_id,max(id) from exam_score where (qualified =1 or qualified =3) GROUP BY user_id) es
+ on es.user_id = bu.id
+ where
+ bu.is_deleted = 0 and bu.status = 1 and bu.is_freeze = 0
+ 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>
@@ -359,19 +619,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
@@ -379,7 +639,17 @@
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
+ and bu.is_freeze = 0
</select>
@@ -435,6 +705,10 @@
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
@@ -444,7 +718,7 @@
</if>
<if test="jurisdiction!=null and jurisdiction!=''">
and si.jurisdiction = #{jurisdiction}
- and dept_category=2
+ and br.role_alias = "公安管理员"
</if>
</select>
@@ -456,6 +730,10 @@
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
@@ -465,7 +743,7 @@
</if>
<if test="jurisdiction!=null and jurisdiction!=''">
and bu.jurisdiction = #{jurisdiction}
- and dept_category=2
+ and br.role_alias = "公安管理员"
</if>
</select>
@@ -483,4 +761,446 @@
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,if(IF(mod(SUBSTR(bu.cardid,17,1),2),1,2)=1,"男","女") sex,
+ bu.phone,bu.cardid,bu.nation,bu.education,bu.politicaloutlook,
+ bud.unit_name unitName,bud.marriage_status marriageStatus,bud.sign_level signLevel,
+ bud.permanent_residence_address permanentResidenceAddress,bud.dwell_address dwellAddress,
+ bud.member_of_family memberOfFamily,bud.work_experience workExperience,
+ bud.education_experience educationExperience,bud.acceptance_police_unit acceptancePoliceUnit,
+ bud.acceptance_person acceptancePerson,bud.acceptance_time acceptanceTime
+ from blade_user bu
+ left join blade_user_detail bud on bud.user_id = bu.id and bud.is_deleted = 0
+ left join blade_dept bd on bu.dept_id = bd.id and bd.is_deleted = 0
+ 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.isFreeze!=null">
+ and bu.is_freeze = #{user.isFreeze}
+ </if>
+ <if test="user.unitName!=null and user.unitName != ''">
+ and bud.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,securitynumber,
+ hold,jurisdiction,examination_type,status,is_deleted,dispatch,create_time
+ )
+ 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.securitynumber},
+ #{user.hold},#{user.jurisdiction},#{user.examinationType},#{user.status},#{user.isDeleted},#{user.dispatch},#{user.createTime}
+ )
+ </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 <=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 <=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 <=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} limit 1
+ </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_freeze = 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>
+
+
+ <update id="batchAudit">
+ UPDATE BLADE_USER SET audit_status = #{auditStatus}
+ WHERE is_deleted = 0 and id in
+ <foreach collection="ids.split(',')" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </update>
+
+ <!--判断是否报名-->
+ <select id="getUserIsApply" resultType="org.springblade.modules.system.entity.User">
+ select bu.* from blade_user bu
+ left join blade_role br on br.id = bu.role_id
+ where bu.is_deleted = 0 and bu.status = 1 and bu.id = #{id}
+ and br.role_alias = '保安'
+ </select>
+
+ <!--自定义查询详情信息-->
+ <select id="getUserDetailById" resultType="org.springblade.modules.system.vo.UserVO">
+ select bu.* from blade_user bu
+ where bu.is_deleted = 0
+ and bu.id = #{id}
+ </select>
+
+ <!--查询未关联的保安员-->
+ <select id="getNotGlList" resultType="org.springblade.modules.system.entity.User">
+ select bu.* from blade_user bu
+ left join blade_user_detail bud on bu.id = bud.user_id and bud.is_deleted = 0
+ where bu.is_deleted = 0
+ and bu.role_id = '1412226235153731586'
+ and bud.id is null
+ </select>
+ <select id="getUserInfoDetail" resultType="org.springblade.modules.system.vo.UserInfoDetail">
+ SELECT * FROM blade_user bu
+ LEFT JOIN blade_user_detail bud on bud.user_id = bu.id and bud.is_deleted = 0
+ WHERE bu.is_deleted = 0 and bu.id = #{id}
+ </select>
+ <select id="getUserInfoByIdCardNoAndSecurityNumber"
+ resultType="org.springblade.modules.system.entity.User">
+
+ SELECT id, name, real_name RealName,securitynumber,dept_id
+ FROM blade_user
+ where 1=1
+ and is_deleted = 0
+ and status = 1
+ and cardid = #{cardid}
+ and securitynumber = #{securityNumber}
+ </select>
+
+
</mapper>
--
Gitblit v1.9.3