LiGuang пре 3 година
родитељ
комит
c6910b1f12

+ 212 - 166
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -58,6 +58,7 @@ import org.jeecg.modules.system.mapper.SysUserMapper;
 import org.jeecg.modules.system.model.DepartIdModel;
 import org.jeecg.modules.system.model.SysUserSysDepartModel;
 import org.jeecg.modules.system.service.*;
+import org.jeecg.modules.system.util.IDCardUtil;
 import org.jeecg.modules.system.util.UrlData;
 import org.jeecg.modules.system.util.emailUtils;
 import org.jeecg.modules.system.vo.CodeVo;
@@ -85,6 +86,7 @@ import java.text.ParseException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -970,189 +972,233 @@ public class SysUserController {
             try {
                 List<SysUser> listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params);
                 listSysUsers.remove(0);
+                String patt="^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}[0-9Xx]$";
+                String ph="/^1[3|4|5|7|8|9][0-9]\\d{8}$/";
                 for (int i = 0; i < listSysUsers.size(); i++) {
                     SysUser sysUserExcel = listSysUsers.get(i);
-                    int lineNumber = i + 1;
+                    int lineNumber = i + 2;
+                    boolean f=true;
+                    if (!oConvertUtils.isNotEmpty(sysUserExcel.getRealname())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:姓名为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getEgName())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:英文名为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getSfzCode())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:身份证为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getSfzType())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:身份证类型为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getPhone())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:手机号为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getOrgCodeTxt())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:部门为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getEntryDate())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:入职日期为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getEmploymentStatus())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:雇佣状态为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getTrialMoth())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:试用期为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getBankCard())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:银行卡为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getWagesOne())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:工资为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getCategory())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:人员类别为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getIsAttendance())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:是否打卡为空,忽略导入。");
+                    }else if (oConvertUtils.isNotEmpty(sysUserExcel.getSfzCode())&&sysUserExcel.getSfzCode().length()==18&&!UrlData.is18ByteIdCardComplex(sysUserExcel.getSfzCode())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:身份证格式不正确,忽略导入。");
+                    }else if(oConvertUtils.isNotEmpty(sysUserExcel.getSfzCode())&&sysUserExcel.getSfzCode().length()==15&&!sysUserExcel.getSfzCode().matches(patt)){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:身份证格式不正确,忽略导入。");
+                    }else if(oConvertUtils.isNotEmpty(sysUserExcel.getSfzCode())&&sysUserExcel.getSfzCode().length()!=15&&sysUserExcel.getSfzCode().length()!=18) {
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:身份证长度不正确,忽略导入。");
+                    }else if (oConvertUtils.isNotEmpty(sysUserExcel.getPhone())&&!Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$").matcher(sysUserExcel.getPhone()).matches()){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:手机号格式不正确,忽略导入。");
+                    }else if (sysUserExcel.getBankCard().length()!=16&&sysUserExcel.getBankCard().length()!=19){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:银行卡长度不正确,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getContractType())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:合同类型为空,忽略导入。");
+                    }else if (!oConvertUtils.isNotEmpty(sysUserExcel.getCEndDate())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:合同到期时间为空,忽略导入。");
+                    }else if (oConvertUtils.isNotEmpty(sysUserExcel.getIsAttendance())&&!sysUserExcel.getIsAttendance().equals("否")&&!sysUserExcel.getIsAttendance().equals("是")) {
+                            errorLines++;
+                            f=false;
+                            errorMessage.add("第 " + lineNumber + " 行:是否打卡不正确,忽略导入。");
+                    }else if (oConvertUtils.isNotEmpty(sysUserExcel.getSfzType())&&!sysUserExcel.getSfzType().equals("中国身份证")&&!sysUserExcel.getSfzType().equals("其他")) {
+                            errorLines++;
+                            f=false;
+                            errorMessage.add("第 " + lineNumber + " 行:身份证类型不正确,忽略导入。");
+                    }else if (sysUserExcel.getIsAttendance().equals("0")&&!oConvertUtils.isNotEmpty(sysUserExcel.getType())){
+                        errorLines++;
+                        f=false;
+                        errorMessage.add("第 " + lineNumber + " 行:上班类型为空,忽略导入。");
+                    }
                     CodeVo codeVo=new CodeVo();
                     codeVo.setSeqName("工号编码");
                     sysUserMapper.getNextNo(codeVo);
                     String workNo=sysUserExcel.getWorkNo();
-                    if(!oConvertUtils.isNotEmpty(workNo)){
-                        workNo=String.valueOf(codeVo.getSeqNo());
-                    }if (oConvertUtils.isNotEmpty(sysUserExcel.getCategory())&&!oConvertUtils.isNotEmpty(sysUserExcel.getWorkNo())){
-                        if (sysUserExcel.getCategory().equals(105)||sysUserExcel.getCategory().equals(106)){
-                            workNo="WB"+String.valueOf(codeVo.getSeqNo());
+                    if (f) {
+                        if (!oConvertUtils.isNotEmpty(workNo)) {
+                            workNo = String.valueOf(codeVo.getSeqNo());
                         }
-                    }
-                    sysUserExcel.setWorkNo(workNo);
-                    sysUserExcel.setCode(workNo);
-                    sysUserExcel.setId(workNo);
-                    if (!oConvertUtils.isNotEmpty(sysUserExcel.getEmploymentStatus())){
-                        sysUserExcel.setEmploymentStatus(40);
-                    }if(sysUserExcel.getEntryDate()!=null){
-                        Date entryDate =new Date(sysUserExcel.getEntryDate().getTime());
-                        entryDate.setMonth(entryDate.getMonth()+6);
-                        now.setTime(entryDate);
-                        now.add(Calendar.DAY_OF_MONTH,-1);
-                        sysUserExcel.setTrialEndDate(now.getTime());
-                    } if (sysUserExcel.getEntryDate()==null){
-                        Date date = new Date();
-                        sysUserExcel.setEntryDate(new Date());
-                        date.setMonth(date.getMonth()+6);
-                        now.setTime(date);
-                        now.add(Calendar.DAY_OF_MONTH,-1);
-                        sysUserExcel.setTrialEndDate(now.getTime());
-                    }if (oConvertUtils.isNotEmpty(sysUserExcel.getIsAttendance())){
-                        if (sysUserExcel.getIsAttendance().equals("否")){
-                            sysUserExcel.setIsAttendance("1");
-                        }if (sysUserExcel.getIsAttendance().equals("是")){
-                            sysUserExcel.setIsAttendance("0");
+                        if (oConvertUtils.isNotEmpty(sysUserExcel.getWorkNo())) {
+                            if (sysUserExcel.getCategory().equals(105) || sysUserExcel.getCategory().equals(106)) {
+                                workNo = "WB" + String.valueOf(codeVo.getSeqNo());
+                            }
+                        }if (oConvertUtils.isNotEmpty(sysUserExcel.getSfzType())){
+                            if (sysUserExcel.getSfzType().equals("中国身份证")) {
+                                sysUserExcel.setSfzType("0");
+                            }else if (sysUserExcel.getSfzType().equals("其他")) {
+                                sysUserExcel.setSfzType("1");
+                            }
+                        }if (oConvertUtils.isNotEmpty(sysUserExcel.getIsAttendance())){
+                            if (sysUserExcel.getIsAttendance().equals("否")) {
+                                sysUserExcel.setIsAttendance("1");
+                            }else if (sysUserExcel.getIsAttendance().equals("是")) {
+                                sysUserExcel.setIsAttendance("0");
+                            }
                         }
-                    }if (oConvertUtils.isNotEmpty(sysUserExcel.getSfzType())){
-                        if (sysUserExcel.getSfzType().equals("中国身份证")){
-                            sysUserExcel.setSfzType("0");
-                        }if(sysUserExcel.getSfzType().equals("其他")){
-                            sysUserExcel.setSfzType("1");
+                        sysUserExcel.setWorkNo(workNo);
+                        sysUserExcel.setCode(workNo);
+                        sysUserExcel.setId(workNo);
+                        if (sysUserExcel.getEntryDate() != null) {
+                            Date entryDate = new Date(sysUserExcel.getEntryDate().getTime());
+                            entryDate.setMonth(entryDate.getMonth() + Integer.parseInt(sysUserExcel.getTrialMoth()));
+                            now.setTime(entryDate);
+                            now.add(Calendar.DAY_OF_MONTH, -1);
+                            sysUserExcel.setTrialEndDate(now.getTime());
                         }
-                    }if (oConvertUtils.isNotEmpty(sysUserExcel.getRealname())&&oConvertUtils.isNotEmpty(sysUserExcel.getEgName())){
-                            String email=sysUserExcel.getEmail();
-                        if (!oConvertUtils.isNotEmpty(sysUserExcel.getEmail())){
-                            String pinYinFirst = UrlData.getPinYinFirst(sysUserExcel.getEgName());
-                            String s = pinYinFirst.substring(0, 1).toLowerCase();
-                            email=s+pinYinFirst.substring(1,pinYinFirst.length())+"."+UrlData.getPinYinFirst(sysUserExcel.getRealname().substring(0,1))+"@gksports.com.cn";
+                        if (oConvertUtils.isNotEmpty(sysUserExcel.getRealname()) && oConvertUtils.isNotEmpty(sysUserExcel.getEgName())) {
+                            String email = sysUserExcel.getEmail();
+                            if (!oConvertUtils.isNotEmpty(sysUserExcel.getEmail())) {
+                                String pinYinFirst = UrlData.getPinYinFirst(sysUserExcel.getEgName());
+                                String s = pinYinFirst.substring(0, 1).toLowerCase();
+                                email = s + pinYinFirst.substring(1, pinYinFirst.length()) + "." + UrlData.getPingYin(sysUserExcel.getRealname().substring(0, 1)) + "@gksports.com.cn";
+                            }
+                            String emails = this.emails(email, null);
+                            sysUserExcel.setEmail(email);
+                            if (oConvertUtils.isNotEmpty(emails)) {
+                                sysUserExcel.setEmail(emails);
+                            }
                         }
-                        String emails = this.emails(email, null);
-                        sysUserExcel.setEmail(email);
-                        if (oConvertUtils.isNotEmpty(emails)){
-                            sysUserExcel.setEmail(emails);
+                        if (oConvertUtils.isNotEmpty(sysUserExcel.getSfzCode()) && oConvertUtils.isNotEmpty(sysUserExcel.getSfzType())) {
+                            if (sysUserExcel.getSfzType().equals("0")) {
+                                if (IDCardUtil.isValid(sysUserExcel.getSfzCode())){
+                                    sysUserExcel.setSex(Integer.parseInt(IDCardUtil.getSex(sysUserExcel.getSfzCode())));
+                                    sysUserExcel.setAge(IDCardUtil.getAge(sysUserExcel.getSfzCode()));
+                                    sysUserExcel.setBirthday(DateUtils.parseDate(IDCardUtil.getBirthday(sysUserExcel.getSfzCode()),"yyyy-MM-dd"));
+                                }
+                            }
                         }
-                    }if (oConvertUtils.isNotEmpty(sysUserExcel.getSfzCode())&&oConvertUtils.isNotEmpty(sysUserExcel.getSfzType())){
-                        if (sysUserExcel.getSfzType().equals("0")){
 
+                        sysUserExcel.setUsername(workNo);
+                        if (StringUtils.isBlank(sysUserExcel.getPassword())) {
+                            // 密码默认为 “123456”
+                            sysUserExcel.setPassword("123456");
                         }
-                    }
-
-                    sysUserExcel.setUsername(workNo);
-                    if (StringUtils.isBlank(sysUserExcel.getPassword())) {
-                        // 密码默认为 “123456”
-                        sysUserExcel.setPassword("123456");
-                    }
-                    // 密码加密加盐
-                    String salt = oConvertUtils.randomGen(8);
-                    sysUserExcel.setSalt(salt);
-                    String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt);
-                    sysUserExcel.setPassword(passwordEncode);
-                    sysUserExcel.setDelFlag(Integer.parseInt(CommonConstant.DEL_FLAG_0.toString()));
-                    sysUserExcel.setStatus(1);
-                    sysUserExcel.setInfoSy(3);
-                    boolean f=true;
-                    String depids="";
-                    if(oConvertUtils.isNotEmpty(sysUserExcel.getOrgCodeTxt())) {
-                        for(String str:sysUserExcel.getOrgCodeTxt().split(",")){
-                            String departLis = departMapper.getDepartLis(str);
-                            depids+=departLis+",";
-                            String pid = sysUserDepartService.getPid(departLis);
-                            if (pid!=null&&!departLis.equals("34")&&!pid.equals("34")){
-                                f=false;
+                        // 密码加密加盐
+                        String salt = oConvertUtils.randomGen(8);
+                        sysUserExcel.setSalt(salt);
+                        String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt);
+                        sysUserExcel.setPassword(passwordEncode);
+                        sysUserExcel.setDelFlag(Integer.parseInt(CommonConstant.DEL_FLAG_0.toString()));
+                        sysUserExcel.setStatus(1);
+                        sysUserExcel.setInfoSy(3);
+                        boolean b = true;
+                        String depids = "";
+                        if (oConvertUtils.isNotEmpty(sysUserExcel.getOrgCodeTxt())) {
+                            for (String str : sysUserExcel.getOrgCodeTxt().split(",")) {
+                                String departLis = departMapper.getDepartLis(str);
+                                depids += departLis + ",";
+                                String pid = sysUserDepartService.getPid(departLis);
+                                if (pid != null && !departLis.equals("34") && !pid.equals("34")) {
+                                    f = false;
+                                }
                             }
                         }
-                    }if (f){
-                        sysUserExcel.setIsSalary("1");
-                    }
-                    sysUserExcel.setDepartIds(depids);
-                    try {
-                        if (!"".equals(sysUserExcel.getRealname())&&sysUserExcel.getRealname()!=null){
-                            if (!"".equals(sysUserExcel.getEmail())&&sysUserExcel.getEmail()!=null){
-                                if (!"".equals(sysUserExcel.getOrgCodeTxt())&&sysUserExcel.getOrgCodeTxt()!=null){
-                                        if (!"".equals(sysUserExcel.getPhone())&&sysUserExcel.getPhone()!=null){
-                                            if (!"".equals(sysUserExcel.getBankCard())&&sysUserExcel.getBankCard()!=null){
-                                                if (sysUserExcel.getBankCard().length()!=16&&sysUserExcel.getBankCard().length()!=18){
-                                                    errorLines++;
-                                                    errorMessage.add("第 " + lineNumber + " 行:请输入16位至19位银行卡号,忽略导入。");
-                                                } else{
-                                                if (!"".equals(sysUserExcel.getWagesOne())&&sysUserExcel.getWagesOne()!=null){
-                                                    if (!"".equals(sysUserExcel.getSfzCode())&&sysUserExcel.getSfzCode()!=null){
-                                                        if (!"".equals(sysUserExcel.getEgName())&&sysUserExcel.getEgName()!=null){
-                                                            if (sysUserExcel.getBirthday()!=null){
-                                                                    if (!"".equals(sysUserExcel.getSex())&&sysUserExcel.getSex()!=null){
-                                                                        //sysUserService.addUserWithRole(sysUserExcel, "1473241527673765890");
-                                                                        if (sysUserExcel.getIsAttendance().equals("0")){
-                                                                            AttendanceRule attendanceRule=new AttendanceRule();
-                                                                            attendanceRule.setUserId(workNo);
-                                                                            attendanceRule.setType(sysUserExcel.getType());
-                                                                          //  attendanceRuleService.save(attendanceRule);
-                                                                        }
-                                                                        UserContract userContract=new UserContract();
-                                                                        userContract.setUserId(sysUserExcel.getId());
-                                                                        userContract.setRealname(sysUserExcel.getRealname());
-                                                                        userContract.setContractType(sysUserExcel.getContractType());
-                                                                        userContract.setDeptId(sysUserExcel.getDepartId());
-                                                                        userContract.setStartDate(sysUserExcel.getEntryDate());
-                                                                        userContract.setEndDate(sysUserExcel.getCEndDate());
-                                                                      //  userContractService.save(userContract);
-                                                                        successLines++;
-                                                                    }else {
-                                                                        errorLines++;
-                                                                        errorMessage.add("第 " + lineNumber + " 行:性别为空,忽略导入。");
-                                                                    }
-
-                                                            }else {
-                                                                errorLines++;
-                                                                errorMessage.add("第 " + lineNumber + " 行:生日为空,忽略导入。");
-                                                            }
-                                                        }else {
-                                                            errorLines++;
-                                                            errorMessage.add("第 " + lineNumber + " 行:英文名为空,忽略导入。");
-                                                        }
-                                                    }else {
-                                                        errorLines++;
-                                                        errorMessage.add("第 " + lineNumber + " 行:身份证号为空,忽略导入。");
-                                                    }
-                                                }else {
-                                                    errorLines++;
-                                                    errorMessage.add("第 " + lineNumber + " 行:工资为空,忽略导入。");
-                                                }
-                                            }
-                                        }else {
-                                                errorLines++;
-                                                errorMessage.add("第 " + lineNumber + " 行:银行卡为空,忽略导入。");
-                                            }
-                                    }else {
-                                            errorLines++;
-                                            errorMessage.add("第 " + lineNumber + " 行:手机号为空,忽略导入。");
-                                        }
-
-                                }else {
-                                    errorLines++;
-                                    errorMessage.add("第 " + lineNumber + " 行:部门为空,忽略导入。");
+                        if (b) {
+                            sysUserExcel.setIsSalary("1");
+                        }
+                        sysUserExcel.setDepartIds(depids);
+                        try {
+                            sysUserService.addUserWithRole(sysUserExcel, "1473241527673765890");
+                            if (sysUserExcel.getIsAttendance().equals("0")) {
+                                AttendanceRule attendanceRule = new AttendanceRule();
+                                attendanceRule.setUserId(workNo);
+                                attendanceRule.setType(sysUserExcel.getType());
+                                if (sysUserExcel.getType().equals("1")||sysUserExcel.getType().equals(1)){
+                                    String str="2022-01-02 10:00:00";
+                                    String end="2022-01-02 19:00:00";
+                                    attendanceRule.setWorkDay("0,1,2,3,4,5,6");
+                                    attendanceRule.setStartDate(DateUtils.parseDate(str,"yyyy-MM-dd HH:mm:ss"));
+                                    attendanceRule.setEndDate(DateUtils.parseDate(end,"yyyy-MM-dd HH:mm:ss"));
                                 }
-                            }else {
-                                errorLines++;
-                                errorMessage.add("第 " + lineNumber + " 行:邮箱为空,忽略导入。");
+                                attendanceRuleService.save(attendanceRule);
                             }
-
-                        }else {
+                            UserContract userContract = new UserContract();
+                            userContract.setUserId(sysUserExcel.getId());
+                            userContract.setRealname(sysUserExcel.getRealname());
+                            userContract.setContractType(sysUserExcel.getContractType());
+                            userContract.setDeptId(sysUserExcel.getDepartId());
+                            userContract.setStartDate(sysUserExcel.getEntryDate());
+                            userContract.setEndDate(sysUserExcel.getCEndDate());
+                            userContractService.save(userContract);
+                            successLines++;
+
+
+                        } catch (Exception e) {
                             errorLines++;
-                            errorMessage.add("第 " + lineNumber + " 行:姓名为空,忽略导入。");
-                        }
-
-
-                    } catch (Exception e) {
-                        errorLines++;
-                        String message = e.getMessage().toLowerCase();
-
-                        // 通过索引名判断出错信息
-                        if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) {
-                            errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");
-                        } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {
-                            errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");
-                        } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {
-                            errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");
+                            String message = e.getMessage().toLowerCase();
+                            // 通过索引名判断出错信息
+                            if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) {
+                                errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");
+                            } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {
+                                errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");
+                            } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {
+                                errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");
+                            }
                         }
-                    }
-                    // 批量将部门和用户信息建立关联关系
-                    String departIds = sysUserExcel.getOrgCodeTxt();
-                   /* if (StringUtils.isNotBlank(departIds)) {
+                        // 批量将部门和用户信息建立关联关系
+                        String departIds = sysUserExcel.getOrgCodeTxt();
+                    if (StringUtils.isNotBlank(departIds)) {
                         String userId = sysUserExcel.getId();
                         String[] departIdArray = departIds.split(",");
                         List<SysUserDepart> userDepartList = new ArrayList<>(departIdArray.length);
@@ -1164,7 +1210,7 @@ public class SysUserController {
                         }
                         sysUserDepartService.saveBatch(userDepartList);
                     }
-*/
+                    }
                 }
             } catch (Exception e) {
                 errorMessage.add("发生异常:" + e.getMessage());
@@ -1181,7 +1227,7 @@ public class SysUserController {
     }
 
 
-    /*@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+   /* @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException {
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
         Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();

+ 10 - 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysUser.java

@@ -58,7 +58,7 @@ public class SysUser implements Serializable {
     private String realname;
 
     /**英文名**/
-    //@Excel(name="*英文名",width = 15)
+    @Excel(name="*英文名",width = 15)
     private  String egName;
 
     @Excel(name = "*身份证号码", width = 15)
@@ -121,7 +121,7 @@ public class SysUser implements Serializable {
     /**
      * 性别(1:男 2:女)
      */
-    @Excel(name = "*性别", width = 15,dicCode="sex")
+    @Excel(name = "性别", width = 15,dicCode="sex")
     @Dict(dicCode = "sex")
     private Integer sex;
 
@@ -129,7 +129,7 @@ public class SysUser implements Serializable {
     /**
      * 电子邮件
      */
-    //@Excel(name = "电子邮件", width = 15)
+    @Excel(name = "电子邮件", width = 15)
     private String email;
 
 
@@ -195,10 +195,10 @@ public class SysUser implements Serializable {
     @Excel(name = "家庭住址", width = 15)
     private String addr;
     /**用户所属组织**/
-    ///@Excel(name = "一级部门", width = 15)
+   // @Excel(name = "一级部门", width = 15)
     private transient  String del2;
     /**用户所属组织**/
-    //@Excel(name = "二级部门", width = 15)
+   // @Excel(name = "二级部门", width = 15)
     private  transient String del3;
     /**用户所属组织**/
     //@Excel(name = "三级部门", width = 15)
@@ -236,7 +236,7 @@ public class SysUser implements Serializable {
     /**
      * 司龄(按月)
      */
-    @Excel(name = "*司龄(/月)", width = 15)
+    @Excel(name = "司龄(/月)", width = 15)
     private String divisionMoth;
 
     @Excel(name = "公积金账号", width = 15)
@@ -261,7 +261,7 @@ public class SysUser implements Serializable {
     /**
      * 雇佣状态 10在职 20离退 30离职
      */
-    @Excel(name = "雇佣状态", width = 15,dicCode="employmentStatus")
+    @Excel(name = "*雇佣状态", width = 15,dicCode="employmentStatus")
     @Dict(dicCode = "employmentStatus")
     private Integer employmentStatus;
     /**
@@ -453,10 +453,11 @@ public class SysUser implements Serializable {
 
     private transient String empStatus;
 
-    //@Excel(name = "*合同类型", width = 15)
+    //@Excel(name = "*合同类型", width = 15,dicCode = "contract_type")
     private transient String contractType;
 
-   // @Excel(name="合同到期日期",width = 15,format = "yyyy-MM-dd")
+    //@Excel(name = "*合同结束日期", width = 15,format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private transient Date cEndDate;
 

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java

@@ -39,6 +39,8 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -738,4 +740,5 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 	}
 
 
+
 }

+ 98 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/util/UrlData.java

@@ -20,7 +20,10 @@ import org.springframework.stereotype.Component;
 import javax.xml.soap.SAAJResult;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 @Component
 public class UrlData {
@@ -109,7 +112,8 @@ public class UrlData {
     //h5token
     public  static   void getH5Token() throws IOException {
         UrlData uData = new UrlData();
-        uData.setGet_Token_Url("wwd372e7740b9b586f","l58FcELMPA455cnZ7DPygzFXjZEfploDnOa3vazFakE");
+        uData.setGet_Token_Url("ww7c43b4b5f33945ad","1KZfuIWFyvbepdQTOKQfE7Eu19g9LeC97wClsyPT_-w");//正式
+        //uData.setGet_Token_Url("wwd372e7740b9b586f","l58FcELMPA455cnZ7DPygzFXjZEfploDnOa3vazFakE");//测试
         String resp = toAuth(uData.getGet_Token_Url());
         Map<String, Object> map = gson.fromJson(resp,
                 new TypeToken<Map<String, Object>>() {
@@ -120,7 +124,8 @@ public class UrlData {
     //Webtoken
     public  static   void getWebToken() throws IOException {
         UrlData uData = new UrlData();
-        uData.setGet_Token_Url("wwd372e7740b9b586f","rgwU8GJ5RAc7ir7TRpZ4c_ttoRgK5uaoU_4j1bVHlgY");
+        uData.setGet_Token_Url("ww7c43b4b5f33945ad","yc_cYVGl2OvxhCzFDfFe1dB1Q64rS70F8a3vafdGbno");//正式
+        //uData.setGet_Token_Url("wwd372e7740b9b586f","rgwU8GJ5RAc7ir7TRpZ4c_ttoRgK5uaoU_4j1bVHlgY");//测试
         String resp = toAuth(uData.getGet_Token_Url());
         Map<String, Object> map = gson.fromJson(resp,
                 new TypeToken<Map<String, Object>>() {
@@ -209,4 +214,95 @@ public class UrlData {
 
     }
 
+
+    /**
+     * 18位身份证校验,比较严格校验
+     * @author lyl
+     * @param idCard
+     * @return
+     */
+    public static boolean is18ByteIdCardComplex(String idCard){
+        Pattern pattern1 = Pattern.compile("^(\\d{6})(19|20)(\\d{2})(1[0-2]|0[1-9])(0[1-9]|[1-2][0-9]|3[0-1])(\\d{3})(\\d|X|x)?$");
+        Matcher matcher = pattern1.matcher(idCard);
+        int[] prefix = new int[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
+        int[] suffix = new int[]{ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
+        if(matcher.matches()){
+            Map<String, String> cityMap = initCityMap();
+            if(cityMap.get(idCard.substring(0,2)) == null ){
+                return false;
+            }
+            int idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和
+            for(int i=0;i<17;i++){
+                idCardWiSum+=Integer.valueOf(idCard.substring(i,i+1))*prefix[i];
+            }
+
+            int idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置
+            String idCardLast=idCard.substring(17);//得到最后一位身份证号码
+
+            //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
+            if(idCardMod==2){
+                if(idCardLast.equalsIgnoreCase("x")){
+                    return true;
+                }else{
+                    return false;
+                }
+            }else{
+                //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
+                if(idCardLast.equals(suffix[idCardMod]+"")){
+                    return true;
+                }else{
+                    return false;
+                }
+            }
+        }
+        return false;
+    }
+
+    private static Map<String, String> initCityMap(){
+        Map<String, String> cityMap = new HashMap<String, String>();
+        cityMap.put("11", "北京");
+        cityMap.put("12", "天津");
+        cityMap.put("13", "河北");
+        cityMap.put("14", "山西");
+        cityMap.put("15", "内蒙古");
+
+        cityMap.put("21", "辽宁");
+        cityMap.put("22", "吉林");
+        cityMap.put("23", "黑龙江");
+
+        cityMap.put("31", "上海");
+        cityMap.put("32", "江苏");
+        cityMap.put("33", "浙江");
+        cityMap.put("34", "安徽");
+        cityMap.put("35", "福建");
+        cityMap.put("36", "江西");
+        cityMap.put("37", "山东");
+
+        cityMap.put("41", "河南");
+        cityMap.put("42", "湖北");
+        cityMap.put("43", "湖南");
+        cityMap.put("44", "广东");
+        cityMap.put("45", "广西");
+        cityMap.put("46", "海南");
+
+        cityMap.put("50", "重庆");
+        cityMap.put("51", "四川");
+        cityMap.put("52", "贵州");
+        cityMap.put("53", "云南");
+        cityMap.put("54", "西藏");
+
+        cityMap.put("61", "陕西");
+        cityMap.put("62", "甘肃");
+        cityMap.put("63", "青海");
+        cityMap.put("64", "宁夏");
+        cityMap.put("65", "新疆");
+
+//			cityMap.put("71", "台湾");
+//			cityMap.put("81", "香港");
+//			cityMap.put("82", "澳门");
+//			cityMap.put("91", "国外");
+//			System.out.println(cityMap.keySet().size());
+        return cityMap;
+    }
+
 }