From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期二, 28 十一月 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug

---
 src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java |  142 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 132 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
index ff70071..45b1b36 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
@@ -2,14 +2,20 @@
 
 import com.google.common.collect.ImmutableMap;
 import com.nanometer.smartlab.dao.SysUserDao;
+import com.nanometer.smartlab.entity.SysLaboratoryContainer;
 import com.nanometer.smartlab.entity.SysReagent;
 import com.nanometer.smartlab.entity.SysUser;
+import com.nanometer.smartlab.entity.dto.HazardousWasteUser;
+import com.nanometer.smartlab.entity.dto.LaboratoryVo;
+import com.nanometer.smartlab.entity.dto.SysUserDto;
 import com.nanometer.smartlab.entity.enumtype.ApproverFlag;
 import com.nanometer.smartlab.entity.enumtype.SeeFlag;
 import com.nanometer.smartlab.exception.AlarmCode;
 import com.nanometer.smartlab.exception.AlarmException;
 import com.nanometer.smartlab.exception.BusinessException;
 import com.nanometer.smartlab.exception.ExceptionEnumCode;
+import com.nanometer.smartlab.model.CommonPage;
+import com.nanometer.smartlab.util.ExcelUtils;
 import com.nanometer.smartlab.util.FacesUtils;
 import com.nanometer.smartlab.util.IDUtils;
 import com.nanometer.smartlab.util.MessageUtil;
@@ -23,10 +29,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.
@@ -40,7 +43,7 @@
     SysUserDao sysUserDao;
 
     @Transactional(propagation = Propagation.REQUIRED)
-    public List<SysUser> getSysUserList(String arp, String name,String departmentName, Integer first, Integer pageSize) {
+    public List<SysUser> getSysUserList(String arp, String name,String departmentName,String project,String company, Integer first, Integer pageSize) {
         try {
             Map<String, Object> params = new HashMap<String, Object>();
             if (StringUtils.isNotBlank(arp)) {
@@ -52,6 +55,8 @@
             if (StringUtils.isNotBlank(departmentName)) {
                 params.put("departmentNameLike", "%" + departmentName + "%");
             }
+            params.put("project", project);
+            params.put("company", company);
             params.put("first", first);
             params.put("pageSize", pageSize);
             return this.sysUserDao.getSysUserList(params);
@@ -60,8 +65,37 @@
             throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
         }
     }
+
+    @Override
+    public CommonPage<SysUser> getSysUserList(Integer pageNum, Integer pageSize, String name) {
+        if(pageNum==null||pageNum<1){
+            pageNum=1;
+        }
+        if(pageSize==null||pageSize<1){
+            pageSize=10;
+        }
+        if(pageSize>50){
+            pageSize=50;
+        }
+        Map<String, Object> params = new HashMap<>();
+        if (StringUtils.isNotBlank(name)) {
+            params.put("name","%" + name+ "%");
+        }
+        params.put("first", (pageNum-1)*pageSize);
+        params.put("pageSize", pageSize);
+        CommonPage commonPage=new CommonPage();
+        commonPage.setPageNum(pageNum);
+        commonPage.setPageSize(pageSize);
+        Long total=new Long(sysUserDao.getSysUserTotalCount(params));
+        commonPage.setTotal(total);
+        commonPage.setTotalPage(CommonPage.getTotalPage(total,pageSize));
+        List<SysUser> sysReagents=sysUserDao.getSysUserSimpleInfoList(params);
+        commonPage.setList(sysReagents);
+        return commonPage;
+    }
+
     @Transactional(propagation = Propagation.REQUIRED)
-    public int getSysUserTotalCount(String arp, String name,String departmentName) {
+    public int getSysUserTotalCount(String arp, String name,String departmentName,String project,String company) {
         try {
             Map<String, Object> params = new HashMap<String, Object>();
             if (StringUtils.isNotBlank(arp)) {
@@ -73,11 +107,35 @@
             if (StringUtils.isNotBlank(departmentName)) {
                 params.put("departmentNameLike", "%" + departmentName + "%");
             }
+            params.put("project", project);
+            params.put("company", company);
             return this.sysUserDao.getSysUserTotalCount(params);
         } catch (DataAccessException e) {
             logger.error(e.getMessage(), e);
             throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
         }
+    }
+
+    @Override
+    public int getUserCountInProject(String arp, String name, String departmentName, String project, String company) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("arp", arp);
+        params.put("name", name);
+        params.put("departmentNameLike", departmentName);
+        params.put("project", project);
+        params.put("company", company);
+        return sysUserDao.getUserCountInProject(params);
+    }
+
+    @Override
+    public List<SysUser> getUserInProject(String arp, String name, String departmentName, String project, String company, Integer first, Integer pageSize) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("arp", arp);
+        params.put("name", name);
+        params.put("departmentNameLike", departmentName);
+        params.put("project", project);
+        params.put("company", company);
+        return sysUserDao.getUserInProject(params);
     }
 
     @Transactional(propagation = Propagation.REQUIRED)
@@ -165,10 +223,11 @@
     }
 
     @Override
-    public List<SysUser> getHasProjectSysUserList(String department) {
+    public List<SysUser> getHasProjectSysUserList(String department, String project) {
         try {
             Map<String, Object> params = new HashMap<String, Object>();
             params.put("department", department);
+            params.put("project", project);
             params.put("approverFlag", ApproverFlag.YES);
             return this.sysUserDao.getHasProjectSysUserList(params);
         } catch (DataAccessException e) {
@@ -282,9 +341,9 @@
             if (userList.size()>0) {
                 for (SysUser user:userList) {
                     if (this.isSysUserExist(user.getArp(), null, null, null)) {
-
+                        throw new DuplicateKeyException("arp重复");
                     }else if(!com.alibaba.druid.util.StringUtils.isEmpty(user.getIdCard()) && this.isSysUserExist(null, null, user.getIdCard(), null)){
-
+                        throw new DuplicateKeyException("idCard为空或重复");
                     }else {
                         SysUser sysUser=sysUserDao.selectByAccount(user);
                         if(sysUser==null){
@@ -314,7 +373,7 @@
     }
 
     @Override
-    public Map getUser(String id) {
+    public SysUser getUser(String id) {
         try {
             return this.sysUserDao.getUser(id);
         } catch (DataAccessException e) {
@@ -344,5 +403,68 @@
 
     }
 
+    @Override
+    public List<SysUserDto> getUserInfo() {
+        return sysUserDao.selectUserInfo();
+    }
+
+    @Override
+    public HazardousWasteUser getUserByAccount(String account,String name) {
+        Map<String, String> params = new HashMap<>();
+        params.put("account", account);
+        params.put("name", name);
+        return sysUserDao.getUserByAccount(params);
+    }
+
+    @Override
+    public List<LaboratoryVo.LaboratoryUser> getUserByProject(String project) {
+        return sysUserDao.getUserByProject(project);
+    }
+
+    @Override
+    public List<SysUser> getUserByArp(String arp) {
+        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);
+    }
+
+
+    //获取库管员邮箱
+    @Override
+    public List<String> getLibrarianEmail() {
+        return sysUserDao.getLibrarianEmail();
+    }
+
+    @Override
+    public SysUser getUserByName(String approveUserName) {
+        List<SysUser> users = sysUserDao.getUserByName(approveUserName);
+        if (users.size() != 1) return  null;
+        return users.get(0);
+    }
+
 
 }

--
Gitblit v1.9.2