From 43ee95fbdcb6fe0a9d548d0935c23c232d5ffeaa Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期五, 12 十一月 2021 12:49:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml |  256 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 239 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
index 71cf4fe..f77d627 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
@@ -22,8 +22,26 @@
     <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="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 +65,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 +84,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 +121,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}
@@ -111,7 +146,16 @@
     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}
@@ -129,7 +173,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 +184,13 @@
   </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)
+    values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{project},#{waster})
   </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}
     where id=#{id}
   </update>
 
@@ -174,16 +220,192 @@
 	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