项目库相关人员-导入校验
This commit is contained in:
-1
@@ -28,7 +28,6 @@
|
||||
where s.dict_id = (select id from sys_dict where dict_code = #{code})
|
||||
and s.item_text = #{text}
|
||||
</select>
|
||||
|
||||
<!--通过查询指定table的 text code 获取字典-->
|
||||
<select id="queryTableDictItemsByCode" parameterType="String" resultType="com.jero.common.system.vo.DictModel">
|
||||
select ${text} as "text",${code} as "value" from ${table}
|
||||
|
||||
+2
@@ -167,4 +167,6 @@ public interface ISysDictService extends IService<SysDict> {
|
||||
|
||||
/**根据字典code查询中英文名*/
|
||||
String queryDictItemByName(String code, String itemName, String cut);
|
||||
|
||||
String queryDictItemByValue(String code, String itemName, String cut);
|
||||
}
|
||||
|
||||
+12
-3
@@ -428,14 +428,23 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String queryDictItemByName(String code,String itemName,String cut) {
|
||||
public String queryDictItemByName(String code, String itemName, String cut) {
|
||||
String itemValue = sysDictMapper.queryDictKeyByText(code, itemName);
|
||||
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
String dictItemsCnName = sysDictMapper.queryDictTextByKey(code,itemName);
|
||||
String dictItemsCnName = sysDictMapper.queryDictTextByKey(code,itemValue);
|
||||
return dictItemsCnName;
|
||||
}else {
|
||||
String dictItemsEnName = sysDictMapper.queryDictTextByKeyEn(code,itemName);
|
||||
String dictItemsEnName = sysDictMapper.queryDictTextByKeyEn(code,itemValue);
|
||||
return dictItemsEnName;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryDictItemByValue(String code, String itemValue, String cut) {
|
||||
|
||||
String dictItemValue= sysDictMapper.queryDictTextByKey(code,itemValue);
|
||||
return dictItemValue;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -79,5 +79,6 @@ 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,String projectId,String cut);
|
||||
}
|
||||
|
||||
+91
-18
@@ -14,6 +14,7 @@ import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
|
||||
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.SysDictMapper;
|
||||
import com.jero.modules.system.mapper.SysUserMapper;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
@@ -57,6 +58,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
@Autowired
|
||||
private ISysDictService sysDictService;
|
||||
|
||||
@Autowired
|
||||
private SysDictMapper sysDictMapper;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -457,7 +461,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
List<ProjectRelatedPersonnel> records = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
||||
if(CollectionUtils.isNotEmpty(records)) {
|
||||
oppositeDisposeData(records,projectId,cut);
|
||||
saveBatch(records);
|
||||
|
||||
//中英切换提示语
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
result.success("文件导入成功!数据行数:" + records.size());
|
||||
@@ -474,12 +478,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
//中英切换提示语
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
result.error500("文件导入失败:" + e.getMessage());
|
||||
}else {
|
||||
result.error500("File import failed.:" + e.getMessage());
|
||||
}
|
||||
result.error500(e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
file.getInputStream().close();
|
||||
@@ -492,29 +491,43 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
|
||||
/**
|
||||
* 把导入的数据翻译成对应的id
|
||||
* 把导入的数据翻译成对应的id,并校验
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
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)) {
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
throw new JeroBootException("导入的责任领域只能填一个.请检查第" + row + "行");
|
||||
}else{
|
||||
} 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 {
|
||||
// String dictItemsName = sysDictService.queryDictItemByName(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory(), cut);
|
||||
String dictItemValue = sysDictService.queryDictItemByValue(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory(), cut);
|
||||
|
||||
if (StringUtils.isBlank(dictItemValue)) {
|
||||
//中英切换提示语
|
||||
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 {
|
||||
|
||||
QueryWrapper<ProjectRelatedPersonnel> queryWrapper = new QueryWrapper<>();
|
||||
//String itemValue = sysDictMapper.queryDictTextByKey(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory());
|
||||
List<ProjectRelatedPersonnel> idList = list(queryWrapper.select("id").eq("duty_territory", projectRelatedPersonnel.getDutyTerritory()).eq("project_id",projectId));
|
||||
projectRelatedPersonnel.setId(idList.get(0).getId());
|
||||
//projectRelatedPersonnel.setDutyTerritory(itemValue);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
@@ -644,7 +657,67 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
projectRelatedPersonnel.setProjectId(projectId);
|
||||
row++;
|
||||
updateDataById(projectRelatedPersonnel);
|
||||
}
|
||||
return records;
|
||||
}
|
||||
|
||||
//导入时,把传入的数据,拼到原来数据后面
|
||||
private void updateDataById(ProjectRelatedPersonnel projectRelatedPersonnel) {
|
||||
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelMapper.queryById(projectRelatedPersonnel.getId());
|
||||
for (ProjectRelatedPersonnel data : records) {
|
||||
if (StringUtils.isBlank(data.getLawEngineer())) {//数据库里法规工程师是空的
|
||||
projectRelatedPersonnel.setLawEngineer(projectRelatedPersonnel.getLawEngineer());
|
||||
}else{//数据库里不空,原+新
|
||||
StringBuilder law = new StringBuilder(data.getLawEngineer());
|
||||
String lawString = law.append(",").append(projectRelatedPersonnel.getLawEngineer()).toString();
|
||||
//去重
|
||||
List<String> lawList = Arrays.asList(lawString.split(","));
|
||||
String lawDistinct = lawList.stream().distinct().collect(Collectors.joining(","));
|
||||
|
||||
projectRelatedPersonnel.setLawEngineer(lawDistinct);
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(data.getEngineeringInterfacePerson())) {//数据库里工程接口人是空的
|
||||
projectRelatedPersonnel.setEngineeringInterfacePerson(projectRelatedPersonnel.getEngineeringInterfacePerson());
|
||||
}else{//数据库里不空,原+新
|
||||
StringBuilder interfacePerson = new StringBuilder(data.getEngineeringInterfacePerson());
|
||||
String interfaceString = interfacePerson.append(",").append(projectRelatedPersonnel.getEngineeringInterfacePerson()).toString();
|
||||
//去重
|
||||
List<String> interfaceList = Arrays.asList(interfaceString.split(","));
|
||||
String interfaceDistinct = interfaceList.stream().distinct().collect(Collectors.joining(","));
|
||||
projectRelatedPersonnel.setEngineeringInterfacePerson(interfaceDistinct);
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(data.getCertificationEngineer())) {//数据库里工程接口人是空的
|
||||
projectRelatedPersonnel.setCertificationEngineer(projectRelatedPersonnel.getCertificationEngineer());
|
||||
}else{//数据库里不空,原+新
|
||||
StringBuilder certification = new StringBuilder(data.getCertificationEngineer());
|
||||
String certificationString = certification.append(",").append(projectRelatedPersonnel.getCertificationEngineer()).toString();
|
||||
//去重
|
||||
List<String> certificationList = Arrays.asList(certificationString.split(","));
|
||||
String certificationDistinct= certificationList.stream().distinct().collect(Collectors.joining(","));
|
||||
projectRelatedPersonnel.setCertificationEngineer(certificationDistinct);
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(data.getRemark())) {//数据库里备注是空的
|
||||
projectRelatedPersonnel.setRemark(projectRelatedPersonnel.getRemark());
|
||||
} else {//数据库里备注不是空的
|
||||
if (StringUtils.isNotBlank(projectRelatedPersonnel.getRemark())) {//导入的备注不是空的
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(projectRelatedPersonnel.getRemark())) {//导入的备注不是是空的,原+新
|
||||
StringBuilder remark = new StringBuilder(data.getRemark());
|
||||
projectRelatedPersonnel.setRemark(remark.append(",").append(projectRelatedPersonnel.getRemark()).toString());
|
||||
} else {
|
||||
projectRelatedPersonnel.setRemark(data.getRemark());
|
||||
}
|
||||
}
|
||||
Date now = new Date();
|
||||
projectRelatedPersonnel.setUpdateTime(now);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
projectRelatedPersonnel.setUpdateBy(sysUser.getUsername());
|
||||
saveOrUpdate(projectRelatedPersonnel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user