diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 12b491960..9127a8e3b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -14,9 +14,11 @@ import com.jero.common.util.RedisUtil; import com.jero.common.util.TokenUtils; import com.jero.modules.dummy.service.impl.DummyInventoryInfoEOServiceImpl; import com.jero.modules.enums.DictCodeEnum; +import com.jero.modules.ocr.entity.User; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.enums.ProjectInventoryFieldEnum; +import com.jero.modules.project.enums.ProjectRoleEnum; import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper; import com.jero.modules.project.service.IProjectRelatedPersonnelService; import com.jero.modules.system.entity.SysDictItem; @@ -967,6 +969,11 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl oppositeDisposeData(List records, String projectId, String cut) { + //查询所有的用户 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(SysUser::getUsername,SysUser::getId); + List userList = sysUserService.list(wrapper); + Result result = new Result<>(); int row=3; StringBuilder message = new StringBuilder(); @@ -1021,15 +1028,18 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl lawEngineerNameList = Arrays.asList(projectRelatedPersonnel.getLawEngineerName().split(",")); if (CollectionUtils.isNotEmpty(lawEngineerNameList) && StringUtils.isNotBlank(lawEngineerNameList.get(0))) { lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList()); - lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList); - if(lawEngineerUsers.size()!=lawEngineerNameList.size()){ - //中英切换提示语 - if(CutEnum.CN.getValue().equals(cut)) { - message.append("导入的法规工程师姓名有误,请检查第" + row + "行"); - }else{ - message.append("The imported law engineer is wrong.Please check line " + row ); - } - } + //验证导入的相关人员 + lawEngineerUsers = personnelMatch(userList, lawEngineerNameList, message, ProjectRoleEnum.REGULATI_ENGINEER.getValue(), cut, row); + +// lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList); +// if(lawEngineerUsers.size()!=lawEngineerNameList.size()){ +// //中英切换提示语 +// if(CutEnum.CN.getValue().equals(cut)) { +// message.append("导入的法规工程师姓名有误,请检查第" + row + "行"); +// }else{ +// message.append("The imported law engineer is wrong.Please check line " + row ); +// } +// } } if(CollectionUtils.isNotEmpty(lawEngineerUsers)) { @@ -1055,15 +1065,18 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl engineeringInterfacePersonNameList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePersonName().split(",")); if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList) && StringUtils.isNotBlank(engineeringInterfacePersonNameList.get(0))) { engineeringInterfacePersonNameList = engineeringInterfacePersonNameList.stream().distinct().collect(Collectors.toList()); - engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList); - if(engineeringInterfacePersonUsers.size()!=engineeringInterfacePersonNameList.size()){ - //中英切换提示语 - if(CutEnum.CN.getValue().equals(cut)) { - message.append("导入的工程接口人姓名有误,请检查第" + row + "行"); - }else{ - message.append("The imported engineering interface person is wrong.Please check line " + row ); - } - } + //验证导入的相关人员 + engineeringInterfacePersonUsers = personnelMatch(userList, engineeringInterfacePersonNameList, message, ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), cut, row); + +// engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList); +// if(engineeringInterfacePersonUsers.size()!=engineeringInterfacePersonNameList.size()){ +// //中英切换提示语 +// if(CutEnum.CN.getValue().equals(cut)) { +// message.append("导入的工程接口人姓名有误,请检查第" + row + "行"); +// }else{ +// message.append("The imported engineering interface person is wrong.Please check line " + row ); +// } +// } } if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) { @@ -1090,8 +1103,13 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl baseCertificationEngineerList = queryCertificationEngineer(projectId); List baseCertificationEngineerNameList = baseCertificationEngineerList.stream().map(e -> e.getCertificationEngineerName()).collect(Collectors.toList()); + //转为小写后在判断 + List baseCertificationEngineerNameListTemp = new ArrayList<>(); + for (String s : baseCertificationEngineerNameList) { + baseCertificationEngineerNameListTemp.add(s.toLowerCase()); + } for(String certificationEngineerName : certificationEngineerNameList){ - if(!baseCertificationEngineerNameList.contains(certificationEngineerName)){ + if(!baseCertificationEngineerNameListTemp.contains(certificationEngineerName.toLowerCase())){ //中英切换提示语 if(CutEnum.CN.getValue().equals(cut)) { message.append("导入的认证工程师姓名不属于该项目,请检查第" + row + "行"); @@ -1101,18 +1119,32 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl personnelMatch(List userList, + List personnelList, + StringBuilder message, + String personnelType, + String cut, + int row){ + int count = 0; + //全部转为小写来匹配 + List sysUserList = new ArrayList<>(); + for (String personnel : personnelList) { + String personnelLower = personnel.toLowerCase(); + for (SysUser sysUser : userList) { + String username = sysUser.getUsername(); + String usernameLower = username.toLowerCase(); + if(personnelLower.equals(usernameLower)){ + sysUserList.add(sysUser); + count ++; + } + } + } + if(personnelList.size() != count){ + //法规工程师异常提示语 + if(ProjectRoleEnum.REGULATI_ENGINEER.getValue().equals(personnelType)){ + if(CutEnum.CN.getValue().equals(cut)) { + message.append("导入的工程接口人姓名有误,请检查第" + row + "行"); + }else{ + message.append("The imported engineering interface person is wrong.Please check line " + row ); + } + } + //认证工程师异常提示语 + if(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(personnelType)){ + if(CutEnum.CN.getValue().equals(cut)) { + message.append("导入的认证工程师姓名有误,请检查第" + row + "行"); + }else { + message.append("The imported certification engineer is wrong.Please check line " + row ); + } + } + //工程接口人异常提示语 + if(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue().equals(personnelType)){ + if(CutEnum.CN.getValue().equals(cut)) { + message.append("导入的工程接口人姓名有误,请检查第" + row + "行"); + }else{ + message.append("The imported engineering interface person is wrong.Please check line " + row ); + } + } + }else{ + return sysUserList; + } + return new ArrayList<>(); + } + @Override public ProjectRelatedPersonnel queryByProjectIdAndDutyTerritory(String projectId, String dutyTerritory) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();