From 7cac5d429cfd5b648bb6bab5183461d2ca05fa07 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期三, 26 五月 2021 10:03:51 +0800
Subject: [PATCH] 添加导出人员
---
src/main/webapp/user_mng.xhtml | 4 +
src/main/java/com/nanometer/smartlab/service/SysUserService.java | 4 ++
src/main/java/com/nanometer/smartlab/controller/UserMngController.java | 11 +++++
src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml | 45 ++++++++++++++++++++++
src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java | 32 ++++++++++++++--
src/main/java/com/nanometer/smartlab/dao/SysUserDao.java | 3 +
6 files changed, 93 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
index 48c079b..0ba7a4d 100644
--- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
@@ -571,6 +571,17 @@
return dataModel;
}
+ public void exportLab2Excel(){
+ try {
+ List<Map> list = sysUserService.getExportUserList(arp, name,departmentName,project,company);
+ sysUserService.exportUser2Excel(list);
+ FacesUtils.info("导出成功");
+ }catch (Exception e){
+ e.printStackTrace();
+ FacesUtils.warn("导出失败");
+ }
+ }
+
public SysUser getSysUser() {
return sysUser;
}
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
index 010a62b..c2502aa 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
@@ -57,4 +57,7 @@
int getUserCountInProject(Map params);
List<SysUser> getUserInProject(Map params);
+
+ List<Map> getExportUserList(@Param("arp") String arp,@Param("name") String name, @Param("departmentName") String departmentName,
+ @Param("project") String project,@Param("company") String company);
}
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
index d4b7cac..196db18 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
@@ -121,7 +121,9 @@
<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">
@@ -334,6 +336,47 @@
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>
+ 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 #{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>
<update id="updateUserPointBySelective" parameterType="java.util.Map">
update sys_user set point=#{point}
<where>
diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserService.java b/src/main/java/com/nanometer/smartlab/service/SysUserService.java
index 4d591aa..8915b4d 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysUserService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysUserService.java
@@ -48,4 +48,8 @@
List<LaboratoryVo.LaboratoryUser> getUserByProject(String project);
List<SysUser> getUserByArp(String arp);
+
+ List<Map> getExportUserList(String arp, String name, String departmentName, String project, String company);
+
+ void exportUser2Excel(List<Map> list)throws Exception;
}
diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
index 1b81ddc..11afaf0 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
@@ -13,6 +13,7 @@
import com.nanometer.smartlab.exception.AlarmException;
import com.nanometer.smartlab.exception.BusinessException;
import com.nanometer.smartlab.exception.ExceptionEnumCode;
+import com.nanometer.smartlab.util.ExcelUtils;
import com.nanometer.smartlab.util.FacesUtils;
import com.nanometer.smartlab.util.IDUtils;
import com.nanometer.smartlab.util.MessageUtil;
@@ -26,10 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* Created by johnny on 17/11/20.
@@ -396,5 +394,31 @@
return sysUserDao.getUserByArp(arp);
}
+ @Override
+ public List<Map> getExportUserList(String arp, String name, String departmentName, String project, String company) {
+ return sysUserDao.getExportUserList(arp, name, departmentName, project, company);
+ }
+
+ @Override
+ public void exportUser2Excel(List<Map> list)throws Exception {
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("companyName", "单位");
+ map.put("departmentName", "部门");
+ map.put("project", "课题组");
+ map.put("arp", "ARP");
+ map.put("name", "姓名");
+ map.put("account", "账号");
+ map.put("idCard", "ID卡号");
+ map.put("phone", "电话");
+ map.put("email", "邮箱");
+ map.put("memo", "备注");
+ map.put("roleName", "角色");
+ map.put("approver", "审批者");
+ map.put("seeName", "可见度");
+ map.put("wasterName", "危废人员");
+ map.put("updateTime", "更新时间");
+ ExcelUtils.export2Excel(list,"人员信息",map);
+ }
+
}
diff --git a/src/main/webapp/user_mng.xhtml b/src/main/webapp/user_mng.xhtml
index 5e590ba..4764996 100644
--- a/src/main/webapp/user_mng.xhtml
+++ b/src/main/webapp/user_mng.xhtml
@@ -35,7 +35,7 @@
</p:panelGrid>
</p:panel>
<p:panel styleClass="center-body">
- <p:panelGrid columns="5" styleClass="btn">
+ <p:panelGrid columns="6" styleClass="btn">
<p:commandButton value="新建" styleClass="new-btn"
process="@form"
actionListener="#{userMngController.onNewBtnClick}"
@@ -60,6 +60,8 @@
<p:outputLabel rendered="#{userMngController.isAccess('导入')}">
<a href="resources/template/用户导入模板.xlsx" style="display: inline-block;"><img src="resources/images/xlsx.png" width="30px;" alt=""/></a>
</p:outputLabel>
+ <p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="#{userMngController.exportLab2Excel}"
+ />
<script>
function importUser(){
$("#userMngForm\\:importUserBtn_input").click();
--
Gitblit v1.9.2