From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: Tue, 28 Nov 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug
---
src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml | 288 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 257 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
index d24e9f0..2331466 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
@@ -22,8 +22,28 @@
<result property="updateTime" column="update_time"></result>
<result property="roleName" column="roleName"></result>
<result property="containerCodeList" column="containerCodeList"></result>
- <result property="projectId" column="project_id"></result>
+ <result property="project" column="project"></result>
+ <result property="url" column="url"></result>
+ <result property="score" column="score"></result>
+ <result property="waster" column="waster" typeHandler="com.nanometer.smartlab.entity.handler.WasterHandler"></result>
</resultMap>
+
+ <resultMap id="SysUserDto" type="com.nanometer.smartlab.entity.dto.SysUserDto">
+ <id property="id" column="id"/>
+ <result property="arp" column="arp"/>
+ <result property="account" column="account"/>
+ <result property="department" column="department"/>
+ <result property="name" column="name"/>
+ <result property="point" column="point"/>
+ <collection property="sysLaboratory" ofType="com.nanometer.smartlab.entity.dto.SysLaboratoryDto" fetchType="lazy">
+ <id property="id" column="sl_id"/>
+ <result property="name" column="sl_name"/>
+ <collection property="sysLaboratoryContainer" ofType="com.nanometer.smartlab.entity.dto.SysLaboratoryContainerDto" fetchType="lazy">
+ <id property="id" column="slc_id"/>
+ <result property="name" column="slc_name"/>
+ </collection>
+ </collection>
+ </resultMap>
<sql id="queryWhereSql">
<if test="arp != null and arp != ''">
@@ -47,11 +67,17 @@
<if test="seeFlag != null">
and su.see_flag = #{seeFlag}
</if>
- <if test="seeFlag != null">
- and su.see_flag = #{seeFlag}
- </if>
<if test="editId != null and editId != ''">
and su.id != #{editId}
+ </if>
+ <if test="waster != null">
+ and su.waster = #{waster}
+ </if>
+ <if test="project != null and project != ''">
+ and su.project like concat("%",#{project},"%")
+ </if>
+ <if test="company != null and company != ''">
+ and bm1.meta_value like concat("%",#{company},"%")
</if>
</sql>
@@ -60,10 +86,18 @@
where id = #{id} and valid_flag = 1
</select>
- <select id="getUser" parameterType="java.lang.String" resultType="java.util.Map">
- select * from sys_user
+ <select id="getUser" parameterType="java.lang.String" resultMap="SysUser">
+ select
+ sys_user.id,
+ sys_user.`name`,
+ sys_user.phone,
+ sys_user.project,
+ base_meta.meta_value as department
+ from sys_user
left join base_meta on sys_user.department = base_meta.id
- where sys_user.id = #{id} and sys_user.valid_flag = 1
+ where sys_user.id = #{id}
+ and sys_user.valid_flag = 1
+ and base_meta.valid_flag = 1
</select>
<insert id="insertUserFavor" parameterType="java.util.Map">
@@ -89,13 +123,16 @@
<select id="getSysUserByIdCard" parameterType="java.lang.String" resultMap="SysUser" >
select * from sys_user
- where id_card = #{idCard} and valid_flag = 1
+ where id_card = #{idCard}
+ and valid_flag = 1
+ limit 1
</select>
<select id="getSysUserList" parameterType="java.util.Map" resultMap="SysUser">
select su.*, br.name as roleName from sys_user as su
left join base_role as br on su.role_id = br.id
left join base_meta bm on su.department = bm.id
+ left join base_meta bm1 on bm1.id = su.company
where su.valid_flag = 1
<if test="departmentNameLike != null and departmentNameLike != ''">
and bm.meta_value like #{departmentNameLike}
@@ -107,11 +144,32 @@
</if>
</select>
+ <select id="getSysUserSimpleInfoList" parameterType="java.util.Map" resultMap="SysUser">
+ select su.id,su.arp,su.account,su.name,su.phone,su.email,su.create_time,su.project,bm.meta_value as department,bm1.meta_value as company from sys_user as su
+ left join base_meta bm on su.department = bm.id
+ left join base_meta bm1 on bm1.id = su.company
+ where su.valid_flag = 1
+ <include refid="queryWhereSql"/>
+ order by su.arp ASC
+ <if test="first != null and pageSize != null">
+ limit #{first}, #{pageSize}
+ </if>
+ </select>
+
<select id="getHasProjectSysUserList" parameterType="java.util.Map" resultMap="SysUser">
select DISTINCT su.*, br.name as roleName from sys_user as su
left join base_role as br on su.role_id = br.id inner join sys_project as sp on su.id=sp.sys_user_id
where su.valid_flag = 1
- <include refid="queryWhereSql"/>
+ <if test="department != null and department != ''">
+ and su.department = #{department}
+ </if>
+ <if test="approverFlag != null">
+ and su.approver_flag = #{approverFlag}
+ </if>
+ <if test="project != null and project != ''">
+ and (su.project like concat('%',#{project},'%')
+ or su.project is null or su.project = '')
+ </if>
order by su.arp ASC
<if test="first != null and pageSize != null">
limit #{first}, #{pageSize}
@@ -119,7 +177,9 @@
</select>
<select id="getSysUserInfoList" parameterType="java.util.Map" resultMap="SysUser">
- select u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,u.point,group_concat(container_code SEPARATOR ',') containerCodeList ,u.arp, bm1.meta_value department,bm2.meta_value company,u.project_id projectId from sys_user u
+ select u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,u.point,group_concat(container_code SEPARATOR ',') containerCodeList ,u.arp, bm1.meta_value department,bm2.meta_value company,u.project_id projectId,
+ u.url,u.score
+ from sys_user u
left join sys_laboratory l on l.department = u.department and l.valid_flag = 1
left join sys_laboratory_container c on c.laboratory_id = l.id and c.valid_flag = 1
left join base_meta bm1 on bm1.id = u.department
@@ -129,7 +189,9 @@
</select>
<select id="getSysUserTotalCount" parameterType="java.util.Map" resultType="int">
- select count(1) from sys_user as su left join base_meta bm on su.department = bm.id
+ select count(1) from sys_user as su
+ left join base_meta bm on su.department = bm.id
+ left join base_meta bm1 on bm1.id = su.company
where su.valid_flag = 1
<if test="departmentNameLike != null and departmentNameLike != ''">
and bm.meta_value like #{departmentNameLike}
@@ -138,13 +200,15 @@
</select>
<insert id="insertSysUser" parameterType="com.nanometer.smartlab.entity.SysUser">
- insert into sys_user(id, arp, account, password, company, department, name, phone, email, memo, id_card, approver_flag, see_flag, role_id, valid_flag, create_time, update_time,project_id)
- values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{projectId})
+ insert into sys_user(id, arp, account, password, company, department, name, phone, email, memo, id_card, approver_flag, see_flag, role_id, valid_flag, create_time, update_time,project,waster,url,score)
+ values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{project},#{waster},#{url},#{score})
</insert>
<update id="updateSysUser" parameterType="com.nanometer.smartlab.entity.SysUser">
update sys_user set arp=#{arp}, account=#{account}, password=#{password}, company=#{company}, department=#{department}, name=#{name}, phone=#{phone},
- email=#{email}, memo=#{memo}, id_card=#{idCard}, approver_flag=#{approverFlag}, see_flag=#{seeFlag}, role_id=#{roleId}, point=#{point},update_time=now(),project_id=#{projectId}
+ email=#{email}, memo=#{memo}, id_card=#{idCard}, approver_flag=#{approverFlag}, see_flag=#{seeFlag}, role_id=#{roleId}, point=#{point},update_time=now(),project=#{project},waster=#{waster},
+ url= #{url},
+ score = #{score}
where id=#{id}
</update>
@@ -175,29 +239,191 @@
</select>
- <select id="getUserListByContainerCodeNew" parameterType="java.util.Map" resultMap="SysUser">
- SELECT u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,bm2.meta_value department,bm1.meta_value company,u.arp,u.point
- from sys_user u
- left join base_meta bm1 on bm1.id = u.company
- left join base_meta bm2 on bm2.id = u.department
- where project_id = (
- SELECT project_id from sys_laboratory_container
- WHERE container_code = #{0}
- and valid_flag = 1)
- AND u.valid_flag = 1
- and u.update_time >= #{1} and #{2} > u.update_time
- </select>
-
<select id="selectByAccount" parameterType="com.nanometer.smartlab.entity.SysUser" resultMap="SysUser">
select * from sys_user where valid_flag=1 and account=#{account}
</select>
+ <select id="selectUserInfo" resultMap="SysUserDto">
+ SELECT
+ su.id,
+ su.arp,
+ su.account,
+ su.`name`,
+ su.point,
+ bm1.meta_value department,
+ sl.id sl_id,
+ sl.`name` sl_name,
+ slc.id slc_id,
+ slc.`name` slc_name
+ FROM sys_user su
+ LEFT JOIN base_meta bm1 on bm1.id = su.department
+ LEFT JOIN sys_laboratory sl on sl.department = su.department
+ LEFT JOIN sys_laboratory_container slc on slc.laboratory_id = sl.id
+ WHERE su.valid_flag = 1
+ and sl.valid_flag = 1
+ and slc.valid_flag = 1
+ ORDER BY su.`name` asc
+ </select>
- <update id="updateUserPointBySelective" parameterType="java.util.Map">
- update sys_user set point=#{point}
+ <select id="getUserListByProject" parameterType="java.util.Map" resultMap="SysUser">
+ SELECT u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,bm2.meta_value department,bm1.meta_value company,u.arp,u.point,u.project
+ from sys_user u
+ left join base_meta bm1 on bm1.id = u.company
+ left join base_meta bm2 on bm2.id = u.department
+ where
+ u.project = #{0}
+ and u.valid_flag = 1
+ and u.update_time >= #{1} and #{2} > u.update_time
+ </select>
+ <select id="getUserByAccount" resultType="com.nanometer.smartlab.entity.dto.HazardousWasteUser">
+ SELECT
+ su.id,
+ su.account,
+ su.`name`,
+ su.`password`,
+ su.waster as adminFlag,
+ su.project,
+ bm.meta_value as department,
+ com.meta_value as company
+ FROM sys_user AS su
+ LEFT JOIN base_meta bm ON su.department = bm.id
+ LEFT JOIN base_meta com on com.id = su.company
+ <where>
+ su.valid_flag = 1
+ <if test="account != null and account !=''">
+ AND su.account = #{account}
+ </if>
+ <if test="name != null and name !=''">
+ AND su.name = #{name}
+ </if>
+ </where>
+ </select>
+ <select id="getUserByProject" resultType="com.nanometer.smartlab.entity.dto.LaboratoryVo$LaboratoryUser">
+ SELECT
+ `name` as username
+ FROM sys_user
+ WHERE
+ valid_flag = '1'
+ AND waster = '1'
+ AND project = #{project};
+ </select>
+ <select id="getUserByArp" resultMap="SysUser">
+ select * from sys_user
+ where arp = #{0} and valid_flag = 1
+ </select>
+ <select id="getUserCountInProject" parameterType="java.util.Map" resultType="java.lang.Integer">
+ select count(1) from sys_user as su
+ left join base_meta bm on su.department = bm.id
+ left join base_meta bm1 on bm1.id = su.company
+ where su.valid_flag = 1
+ <if test="departmentNameLike != null and departmentNameLike != ''">
+ and bm.meta_value like concat("%",#{departmentNameLike},"%")
+ </if>
+ <if test="arp != null and arp != ''">
+ and su.arp like concat("%",#{arp},"%")
+ </if>
+ <if test="name != null and name != ''">
+ and su.name like concat("%",#{name},"%")
+ </if>
+ <if test="company != null and company != ''">
+ and bm1.meta_value like concat("%",#{company},"%")
+ </if>
+ <if test="project != null and project != ''">
+ and
+ <foreach item="item" index="index" collection="project.split(',')" open="(" separator="or" close=")">
+ su.project like concat("%",#{item},"%")
+ </foreach>
+ </if>
+ </select>
+ <select id="getUserInProject" parameterType="java.util.Map" resultMap="SysUser">
+ select su.*, br.name as roleName from sys_user as su
+ left join base_role as br on su.role_id = br.id
+ left join base_meta bm on su.department = bm.id
+ left join base_meta bm1 on bm1.id = su.company
+ where su.valid_flag = 1
+ <if test="departmentNameLike != null and departmentNameLike != ''">
+ and bm.meta_value like concat("%",#{departmentNameLike},"%")
+ </if>
+ <if test="arp != null and arp != ''">
+ and su.arp like concat("%",#{arp},"%")
+ </if>
+ <if test="name != null and name != ''">
+ and su.name like concat("%",#{name},"%")
+ </if>
+ <if test="company != null and company != ''">
+ and bm1.meta_value like concat("%",#{company},"%")
+ </if>
+ <if test="project != null and project != ''">
+ and
+ <foreach item="item" index="index" collection="project.split(',')" open="(" separator="or" close=")">
+ su.project like concat("%",#{item},"%")
+ </foreach>
+ </if>
+ order by su.arp ASC
+ <if test="first != null and pageSize != null">
+ limit #{first}, #{pageSize}
+ </if>
+ </select>
+ <select id="getExportUserList" resultType="Map">
+ select
+ bm.meta_value AS departmentName,
+ bm1.meta_value AS companyName,
+ su.project,
+ su.arp,
+ su.name,
+ su.account,
+ su.id_card as idCard,
+ su.phone,
+ su.email,
+ su.memo,
+ br. NAME AS roleName,
+ CASE WHEN su.approver_flag=0 then '否' else '是' END AS approver,
+ CASE WHEN su.see_flag=2 then '一般人员' WHEN su.see_flag=3 then '安全员' WHEN su.see_flag=11 then '系统管理员'WHEN su.see_flag=0 then '实验室管理员' END AS seeName,
+ CASE WHEN su.waster=2 then '危废管理员' WHEN su.waster=1 then '危废处理人员' else '' END AS wasterName,
+ su.update_time as updateTime
+ from sys_user as su
+ left join base_role as br on su.role_id = br.id
+ left join base_meta bm on su.department = bm.id
+ left join base_meta bm1 on bm1.id = su.company
<where>
- <if test="id != null">
- id = #{id}
+ su.valid_flag = 1
+ <if test="arp != null and arp != ''">
+ and su.arp like #{arp}
+ </if>
+ <if test="name != null and name != ''">
+ and su.name like concat("%",#{name},"%")
+ </if>
+ <if test="departmentName != null and departmentName != ''">
+ and su.department like concat("%",#{departmentName},"%")
+ </if>
+ <if test="project != null and project != ''">
+ and su.project like concat("%",#{project},"%")
+ </if>
+ <if test="company != null and company != ''">
+ and bm1.meta_value like concat("%",#{company},"%")
</if>
</where>
+ order by su.arp ASC
+ </select>
+ <select id="getLibrarianEmail" resultType="java.lang.String">
+ select su.email
+ from sys_user as su
+ left join base_role as br on br.id = su.role_id
+ where
+ su.valid_flag = 1
+ and br.name = '库管员'
+ and su.email is not null
+ and su.email != ''
+ </select>
+ <select id="getUserByName" resultMap="SysUser">
+ select * from sys_user
+ where name = #{name} and valid_flag = 1
+ </select>
+ <update id="updateUserPointBySelective" parameterType="java.util.Map">
+ update sys_user set point=#{point}
+ <where>
+ <if test="id != null">
+ id = #{id}
+ </if>
+ </where>
</update>
</mapper>
--
Gitblit v1.9.2