项目库相关人员-导入校验

This commit is contained in:
xiejunyu
2022-04-23 22:25:15 +08:00
parent 91280bfc19
commit 41d5f575d1
6 changed files with 110 additions and 13 deletions
@@ -1,4 +1,4 @@
package com.jero.modules.project.enums;
package com.jero.modules.enums;
public enum DictCodeEnum {
@@ -164,4 +164,7 @@ public interface ISysDictService extends IService<SysDict> {
Integer queryExitDictName(SysDict sysDict);
IPage<SysDict> queryPageList(Map<String, Object> params);
/**根据字典code查询中英文名*/
String queryDictItemByName(String code, String itemName, String cut);
}
@@ -422,4 +422,20 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
}
return result;
}
/**
* 根据字典code查询中英文名
* @return
*/
@Override
public String queryDictItemByName(String code,String itemName,String cut) {
if (CutEnum.CN.getValue().equals(cut)) {
String dictItemsCnName = sysDictMapper.queryDictTextByKey(code,itemName);
return dictItemsCnName;
}else {
String dictItemsEnName = sysDictMapper.queryDictTextByKeyEn(code,itemName);
return dictItemsEnName;
}
}
}
@@ -79,5 +79,5 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz, String projectId,String cut);
List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records);
List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records,String projectId,String cut);
}
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.DictCodeEnum;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysUser;
@@ -7,6 +7,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.enums.ExportTemplateEnum;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
@@ -14,6 +15,7 @@ import com.jero.modules.project.service.IProjectRelatedPersonnelService;
import com.jero.modules.project.util.ExcelLangUtils;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
@@ -52,6 +54,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
@Autowired
private ISysUserService sysUserService;
@Autowired
private ISysDictService sysDictService;
/**
* 保存
*
@@ -173,9 +178,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
lawName.append(lawEngineerName).append(" ");
lawName.append(lawEngineerName).append(" , ");
}
projectRelatedPersonnel.setLawEngineerName(lawName.toString());
projectRelatedPersonnel.setLawEngineerName(lawName.substring(0,lawName.toString().length()-3));
}
}
@@ -199,9 +204,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
engineeringInterfacePersonName = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
engineeringName.append(engineeringInterfacePersonName).append(" ");
engineeringName.append(engineeringInterfacePersonName).append(" , ");
}
projectRelatedPersonnel.setEngineeringInterfacePersonName(engineeringName.toString());
projectRelatedPersonnel.setEngineeringInterfacePersonName(engineeringName.substring(0,engineeringName.toString().length()-3));
}
}
@@ -224,9 +229,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
certificationEngineerName = certificationEngineerUsers.stream().filter(e -> data.equals(e.getId()))
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
certificationName.append(certificationEngineerName).append(" ");
certificationName.append(certificationEngineerName).append(" , ");
}
projectRelatedPersonnel.setCertificationEngineerName(certificationName.toString());
projectRelatedPersonnel.setCertificationEngineerName(certificationName.substring(0,certificationName.toString().length()-3));
}
}
@@ -451,7 +456,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
//接收导入数据
List<ProjectRelatedPersonnel> records = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
if(CollectionUtils.isNotEmpty(records)) {
oppositeDisposeData(records);
oppositeDisposeData(records,projectId,cut);
saveBatch(records);
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
@@ -490,9 +495,37 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
* 把导入的数据翻译成对应的id
* @return
*/
public List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records) {
public List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records,String projectId,String cut) {
int row=1;
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
//责任领域
if(!projectRelatedPersonnel.getDutyTerritory().isEmpty()) {
if (projectRelatedPersonnel.getDutyTerritory().contains(",")) {
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的责任领域只能填一个.请检查第" + row + "");
}else{
throw new JeroBootException("Only one duty territory can be filled in for import. Please check line " + row);
}
}
String dictItemsName = sysDictService.queryDictItemByName(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory(), cut);
if (dictItemsName.isEmpty()) {
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的责任领域不存在.请检查第" + row + "");
}else{
throw new JeroBootException("The imported duty territory does not exist. Please check line " + row );
}
}
}else{
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的责任领域不能为空.请检查第" + row + "");
}else{
throw new JeroBootException("The imported duty territory cannot be empty.Please check line " + row );
}
}
//法规工程师
List<SysUser> lawEngineerUsers = new ArrayList<>();
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineerName())){
@@ -500,6 +533,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
if (CollectionUtils.isNotEmpty(lawEngineerNameList)) {
lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList());
lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList);
if(lawEngineerUsers.size()!=lawEngineerNameList.size()){
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的法规工程师姓名有误,请检查第" + row + "");
}else{
throw new JeroBootException("The imported law engineer is wrong.Please check line " + row );
}
}
}
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
@@ -515,6 +556,13 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
projectRelatedPersonnel.setLawEngineer(midId.substring(0,midId.toString().length()-1));
}
}else{
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的法规工程师不能为空,请检查第" + row + "");
}else{
throw new JeroBootException("The imported law engineer cannot be empty.Please check line " + row );
}
}
//工程接口人
@@ -524,6 +572,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList)) {
engineeringInterfacePersonNameList = engineeringInterfacePersonNameList.stream().distinct().collect(Collectors.toList());
engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList);
if(engineeringInterfacePersonUsers.size()!=engineeringInterfacePersonNameList.size()){
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的工程接口人姓名有误,请检查第" + row + "");
}else{
throw new JeroBootException("The imported engineering interface person is wrong.Please check line " + row );
}
}
}
if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
@@ -539,6 +595,13 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
projectRelatedPersonnel.setEngineeringInterfacePerson(midId.substring(0,midId.toString().length()-1));
}
}else{
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的工程接口人不能为空,请检查第" + row + "");
}else {
throw new JeroBootException("The imported engineering interface person cannot be empty.Please check line " + row );
}
}
//认证工程师
@@ -548,6 +611,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
if (CollectionUtils.isNotEmpty(certificationEngineerNameList)) {
certificationEngineerNameList = certificationEngineerNameList.stream().distinct().collect(Collectors.toList());
certificationEngineerUsers=sysUserService.queryUserIdListByNameList(certificationEngineerNameList);
if(certificationEngineerUsers.size()!=certificationEngineerNameList.size()){
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的认证工程师姓名有误,请检查第" + row + "");
}else {
throw new JeroBootException("The imported certification engineer is wrong.Please check line " + row );
}
}
}
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
@@ -563,8 +634,15 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
projectRelatedPersonnel.setCertificationEngineer(midId.substring(0,midId.toString().length()-1));
}
}else{
//中英切换提示语
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("导入的认证工程师不能为空,请检查第" + row + "");
}else {
throw new JeroBootException("The imported certification engineer cannot be empty.Please check line " + row );
}
}
projectRelatedPersonnel.setProjectId(projectId);
}
return records;