kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
@@ -2,8 +2,11 @@
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;
@@ -11,6 +14,8 @@
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;
@@ -24,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.
@@ -41,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 projectName,String company, Integer first, Integer pageSize) {
        try {
            Map<String, Object> params = new HashMap<String, Object>();
            if (StringUtils.isNotBlank(arp)) {
@@ -53,6 +55,10 @@
            if (StringUtils.isNotBlank(departmentName)) {
                params.put("departmentNameLike", "%" + departmentName + "%");
            }
            if (StringUtils.isNotBlank(projectName)) {
                params.put("projectName", projectName);
            }
            params.put("company", company);
            params.put("first", first);
            params.put("pageSize", pageSize);
            return this.sysUserDao.getSysUserList(params);
@@ -61,8 +67,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 projectName,String company) {
        try {
            Map<String, Object> params = new HashMap<String, Object>();
            if (StringUtils.isNotBlank(arp)) {
@@ -74,6 +109,8 @@
            if (StringUtils.isNotBlank(departmentName)) {
                params.put("departmentNameLike", "%" + departmentName + "%");
            }
            params.put("projectName", projectName);
            params.put("company", company);
            return this.sysUserDao.getSysUserTotalCount(params);
        } catch (DataAccessException e) {
            logger.error(e.getMessage(), e);
@@ -81,8 +118,30 @@
        }
    }
    @Override
    public int getUserCountInProject(String arp, String name, String departmentName, String projectName, String company) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("arp", arp);
        params.put("name", name);
        params.put("departmentNameLike", departmentName);
        params.put("projectName", projectName);
        params.put("company", company);
        return sysUserDao.getUserCountInProject(params);
    }
    @Override
    public List<SysUser> getUserInProject(String arp, String name, String departmentName, String projectName, 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("projectName", projectName);
        params.put("company", company);
        return sysUserDao.getUserInProject(params);
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public SysUser getSysUser(String id) {
    public SysUser getSysUser(Long id) {
        try {
            return this.sysUserDao.getSysUser(id);
        } catch (DataAccessException e) {
@@ -92,7 +151,7 @@
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public SysUser getSysUserForSuppllier(String id) {
    public SysUser getSysUserForSuppllier(Long id) {
        try {
            return this.sysUserDao.getSysUserForSuppllier(id);
        } catch (DataAccessException e) {
@@ -136,7 +195,7 @@
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public boolean isSysUserExist(String arp, String account, String idCard, String editId) {
    public boolean isSysUserExist(String arp, String account, String idCard, Long editId) {
        try {
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("arp", arp);
@@ -166,10 +225,11 @@
    }
    @Override
    public List<SysUser> getHasProjectSysUserList(String department) {
    public List<SysUser> getHasProjectSysUserList(Long department, Long projectId) {
        try {
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("department", department);
            params.put("projectId", projectId);
            params.put("approverFlag", ApproverFlag.YES);
            return this.sysUserDao.getHasProjectSysUserList(params);
        } catch (DataAccessException e) {
@@ -190,7 +250,7 @@
    }
    @Transactional(propagation = Propagation.REQUIRED)
    public List<SysUser> getSeeUserList(String department) {
    public List<SysUser> getSeeUserList(Long department) {
       try {
          Map<String, Object> params = new HashMap<String, Object>();
          params.put("department", department);
@@ -204,9 +264,9 @@
    @Transactional(propagation = Propagation.REQUIRED)
    public SysUser insertSysUser(SysUser sysUser) {
        try {
            if (sysUser.getId() == null) {
                sysUser.setId(IDUtils.uuid());
            }
//            if (sysUser.getId() == null) {
//                sysUser.setId(IDUtils.uuid());
//            }
            this.sysUserDao.insertSysUser(sysUser);
            return sysUser;
        } catch (DuplicateKeyException ex) {
@@ -246,7 +306,7 @@
                return false;
            }
            List<String> ids = new ArrayList<String>();
            List<Long> ids = new ArrayList<Long>();
            for (SysUser sysUser : sysUserList) {
                ids.add(sysUser.getId());
            }
@@ -271,7 +331,7 @@
    @Transactional(propagation = Propagation.REQUIRED)
    @Override
    public void updateUserPointBySelective(Integer point,String id) {
    public void updateUserPointBySelective(Integer point,Long id) {
        sysUserDao.updateUserPointBySelective(point,id);
    }
@@ -289,9 +349,9 @@
                    }else {
                        SysUser sysUser=sysUserDao.selectByAccount(user);
                        if(sysUser==null){
                            if (user.getId() == null) {
                                user.setId(IDUtils.uuid());
                            }
//                            if (user.getId() == null) {
//                                user.setId(IDUtils.uuid());
//                            }
                            sysUserDao.insertSysUser(user);
                        }else {
                            sysUserDao.updateSysUser(user);
@@ -315,7 +375,7 @@
    }
    @Override
    public Map getUser(String id) {
    public SysUser getUser(Long id) {
        try {
            return this.sysUserDao.getUser(id);
        } catch (DataAccessException e) {
@@ -351,11 +411,62 @@
    }
    @Override
    public SysUser getUserByAccount(String account) {
        Map<String, String> params = new HashMap<>();
    public HazardousWasteUser getUserByAccount(String account,Long userId) {
        Map<String, Object> params = new HashMap<>();
        params.put("account", account);
        params.put("useId", userId);
        return sysUserDao.getUserByAccount(params);
    }
    @Override
    public List<LaboratoryVo.LaboratoryUser> getUserByProject(Long projectId) {
        return sysUserDao.getUserByProject(projectId);
    }
    @Override
    public List<SysUser> getUserByArp(String arp) {
        return sysUserDao.getUserByArp(arp);
    }
    @Override
    public List<Map> getExportUserList(String arp, String name, String departmentName, Long projectId, String company) {
        return sysUserDao.getExportUserList(arp, name, departmentName, projectId, company);
    }
    @Override
    public void exportUser2Excel(List<Map> list)throws Exception {
        Map<String, String> map = new LinkedHashMap<>();
        map.put("companyName", "单位");
        map.put("departmentName", "部门");
        map.put("projectName", "课题组");
        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);
    }
}