From d00d1d584875b5b38c70c235963b46543a3eba28 Mon Sep 17 00:00:00 2001
From: 李宇 <986321569@qq.com>
Date: 星期二, 15 六月 2021 12:30:01 +0800
Subject: [PATCH] 修改发送邮件

---
 src/main/java/com/nanometer/smartlab/controller/UserMngController.java |  181 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 167 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
index 53a987a..0ba7a4d 100644
--- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
@@ -7,8 +7,10 @@
 import com.nanometer.smartlab.entity.enumtype.ApproverFlag;
 import com.nanometer.smartlab.entity.enumtype.SeeFlag;
 import com.nanometer.smartlab.entity.enumtype.ValidFlag;
+import com.nanometer.smartlab.entity.enumtype.Waster;
 import com.nanometer.smartlab.service.BaseMetaService;
 import com.nanometer.smartlab.service.BaseRoleService;
+import com.nanometer.smartlab.service.SysProjectService;
 import com.nanometer.smartlab.service.SysUserService;
 import com.nanometer.smartlab.util.Constants;
 import com.nanometer.smartlab.util.FacesUtils;
@@ -50,6 +52,8 @@
     private BaseMetaService baseMetaService;
     @Resource
     private BaseRoleService baseRoleService;
+    @Resource
+    private SysProjectService sysProjectService;
 
     private LazyDataModel<SysUser> dataModel;
     private SysUser sysUser;
@@ -66,6 +70,10 @@
     private String editPasswor;
     private List<BaseMeta> codeList;
     private List<BaseRole> roleList;
+    private List<Waster> wasterSelectList;
+    private String project;
+    private String company;
+    private BaseRole role;
 
     public List<BaseRole> getRoleList() {
         return roleList;
@@ -95,6 +103,14 @@
 
     public void onNewBtnClick() {
         this.sysUser = new SysUser();
+        if (this.selectedList.size() > 1) {
+            FacesUtils.warn("不能多选");
+            return;
+        }
+        if (this.selectedList.size() == 1) {
+            this.sysUser = this.sysUserService.getSysUser(this.selectedList.get(0).getId());
+            this.sysUser.setId(null);
+        }
         this.action = Constants.ACTION_ADD;
     }
 
@@ -182,6 +198,9 @@
                 }
                 System.out.println("size :     "+valuesList.size());
                 System.out.println("value :     "+valuesList);
+                if (valuesList.size() != 14){
+                    break;
+                }
                 SysUser sysUser=new SysUser();
                 sysUser.setCompany(valuesList.get(0));//单位
                 sysUser.setDepartment(valuesList.get(1));//部门
@@ -194,11 +213,26 @@
                     errorMsg += "第"+i+"行,密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上";
                 }
 
-                sysUser.setPassword(MD5Utils.encode((int)Double.parseDouble(valuesList.get(5))+""));//密码
+                sysUser.setPassword(MD5Utils.encode(valuesList.get(5))+"");//密码
 
+                //valuesList.get(8) id卡号检查
+                if (valuesList.get(8) != null && valuesList.get(8).length()>0){
+                    //大写转换
+                    String idCardUpper = valuesList.get(8).trim().toUpperCase();
+                    //8位和20位下8位才做补齐20位,否则提示输入id卡号8位或者20位
+                    if (idCardUpper.length() == 8 ||idCardUpper.length() == 20) {
+                        if (idCardUpper.length() == 8){
+                            //8位补齐20位,否则不做操作
+                            String idCard = "E0E01E000A" + idCardUpper + "01";
+                            sysUser.setIdCard(idCard);//id卡号
+                        }
+                    }else{
+                        FacesUtils.warn("第"+i+"行,id卡号需要8位或者20位");
+                        return;
+                    }
+                }
                 sysUser.setPhone(valuesList.get(6));//电话
                 sysUser.setEmail(valuesList.get(7));//邮箱
-                sysUser.setIdCard(valuesList.get(8));//id卡号
                 sysUser.setPoint((int)Double.parseDouble(valuesList.get(9)));//分数
                 sysUser.setRoleId(valuesList.get(10));//角色
                 if(valuesList.get(11).equals("是")){
@@ -218,10 +252,20 @@
                 if(valuesList.get(12).equals(SeeFlag.LEADING.getText())){
                     sysUser.setSeeFlag(SeeFlag.LEADING);
                 }
-                if(valuesList.size()==14){
-                    sysUser.setMemo(valuesList.get(13));
-                }else {
-                    sysUser.setMemo("");
+
+
+                if (valuesList.size() > 13 && !valuesList.get(13).replace(" ","").isEmpty()){
+                    String[] projects = valuesList.get(13).split(",");
+                    for (String project : projects) {
+                        //不存再就直接推出
+                        if (!sysProjectService.isExistProject(project)) {
+                            throw new Exception("课题组不存在,(" + i  + "行)");
+                        }
+                    }
+                    //都存在就设置
+                    sysUser.setProject(valuesList.get(13).replace(" ",""));
+                }else{
+                    sysUser.setProject(null);
                 }
 
                 sysUser.setValidFlag(ValidFlag.VALID);
@@ -336,12 +380,30 @@
                 }
 
                 // 检查idCard
+                if (this.sysUser.getIdCard() != null && this.sysUser.getIdCard().length()>0){
+                    String idCardUpper = sysUser.getIdCard().trim().toUpperCase();
+                    //8位和20位下8位才做补齐20位,否则提示输入id卡号8位或者20位
+                    if (idCardUpper.length() == 8 ||idCardUpper.length() == 20) {
+                        if (idCardUpper.length() == 8){
+                            //8位补齐20位,否则不做操作
+                            this.sysUser.setIdCard("E0E01E000A" + idCardUpper + "01");
+                        }else{
+                            //20位
+                            this.sysUser.setIdCard(idCardUpper);
+                        }
+                    }else{
+                        FacesUtils.warn("id卡号8位或者20位");
+                        return;
+                    }
+                }
+
+
                 if (!StringUtils.isEmpty(this.sysUser.getIdCard()) && this.sysUserService.isSysUserExist(null, null, this.sysUser.getIdCard(), null)) {
                     FacesUtils.warn("ID卡号已存在。");
                     return;
                 }
-                if(!org.apache.commons.lang.StringUtils.isNotBlank(sysUser.getProjectId())){
-                    sysUser.setProjectId(null);
+                if(!org.apache.commons.lang.StringUtils.isNotBlank(sysUser.getProject())){
+                    sysUser.setProject(null);
                 }
 
                 String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
@@ -362,8 +424,14 @@
                     return;
                 }
 
-                // 检查ARP号
-                if (this.sysUserService.isSysUserExist(this.sysUser.getArp(), null, null, this.sysUser.getId())) {
+                // 检查ARP号 //除自己外的arp
+//                if (this.sysUserService.isSysUserExist(this.sysUser.getArp(), null, null, this.sysUser.getId())) {
+//                    FacesUtils.warn("ARP已存在。");
+//                    return;
+//                }
+                List<SysUser> list = sysUserService.getUserByArp(this.sysUser.getArp());
+                assert list.size() < 2;
+                if (list.size() > 0 && !list.get(0).getId().equals(this.sysUser.getId())) {
                     FacesUtils.warn("ARP已存在。");
                     return;
                 }
@@ -375,6 +443,23 @@
                 }
 
                 // 检查idCard
+                if (this.sysUser.getIdCard() != null && this.sysUser.getIdCard().length()>0){
+                    String idCardUpper = sysUser.getIdCard().trim().toUpperCase();
+                    //8位和20位下8位才做补齐20位,否则提示输入id卡号8位或者20位
+                    if (idCardUpper.length() == 8 ||idCardUpper.length() == 20) {
+                        if (idCardUpper.length() == 8){
+                            //8位补齐20位,否则不做操作
+                            this.sysUser.setIdCard("E0E01E000A" + idCardUpper + "01");
+                        }else{
+                            //20位
+                            this.sysUser.setIdCard(idCardUpper);
+                        }
+                    }else{
+                        FacesUtils.warn("id卡号8位或者20位");
+                        return;
+                    }
+                }
+
                 if(this.sysUser.getIdCard()==null || this.sysUser.getIdCard()==""){
 
                 }else {
@@ -386,6 +471,11 @@
                 if(sysUser.getPassword()==null || sysUser.getPassword().equals("")){
                     sysUser.setPassword(this.editPasswor);
                 }else {
+                    String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
+                    if (!sysUser.getPassword().matches(PW_PATTERN)){
+                        FacesUtils.warn("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上");
+                        return;
+                    }
                     sysUser.setPassword(MD5Utils.encode(sysUser.getPassword()));
                 }
                 this.sysUserService.updateSysUser(sysUser);
@@ -416,6 +506,16 @@
         }
     }
 
+
+    public void initPage() {
+        sysUser = sysUserService.getSysUser(getUser().getId());
+        role = baseRoleService.getRoleByUserId(sysUser.getId());
+    }
+    public boolean isAccess(String info) {
+        String permission = role.getBtnPermission();
+        return permission.contains(info);
+    }
+
     public LazyDataModel<SysUser> getDataModel() {
         if (this.dataModel == null) {
             this.dataModel = new LazyDataModel<SysUser>() {
@@ -423,11 +523,29 @@
                 public List<SysUser> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
                     List<SysUser> list = null;
                     try {
-                        int count = sysUserService.getSysUserTotalCount(arp, name,departmentName);
-                        this.setRowCount(count);
-                        if (count > 0) {
-                            list = sysUserService.getSysUserList(arp, name,departmentName, first, pageSize);
+                        //做可见人员过滤
+                        String userPermission = role.getUserPermission();
+                        if (userPermission.contains("自己")) {
+                            list = Collections.singletonList(sysUserService.getSysUser(UserMngController.this.sysUser.getId()));
+                            this.setRowCount(1);
+
+                        }else if (userPermission.contains("课题组")){
+                            project = sysUser.getProject();
+                            int count = sysUserService.getUserCountInProject(arp, name,departmentName,project,company);
+                            this.setRowCount(count);
+                            if (count > 0) {
+                                list = sysUserService.getUserInProject(arp, name,departmentName,project,company, first, pageSize);
+                            }
+
+                        }else{
+                            int count = sysUserService.getSysUserTotalCount(arp, name,departmentName,project,company);
+                            this.setRowCount(count);
+                            if (count > 0) {
+                                list = sysUserService.getSysUserList(arp, name,departmentName,project,company, first, pageSize);
+                            }
                         }
+
+
                     } catch (Exception e) {
                         logger.error(e);
                     }
@@ -451,6 +569,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() {
@@ -487,6 +616,14 @@
     	}
 
     	return seeFlagSelectList;
+    }
+
+    public List<Waster> getWasterSelectList() {
+        if (this.wasterSelectList == null) {
+            this.wasterSelectList = Arrays.asList(Waster.values());
+        }
+
+        return wasterSelectList;
     }
 
     public String getArp() {
@@ -544,4 +681,20 @@
     public void setDepartmentName(String departmentName) {
         this.departmentName = departmentName;
     }
+
+    public String getProject() {
+        return project;
+    }
+
+    public void setProject(String project) {
+        this.project = project;
+    }
+
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
 }

--
Gitblit v1.9.2