项目库相关人员-导入校验
This commit is contained in:
-1
@@ -28,7 +28,6 @@
|
|||||||
where s.dict_id = (select id from sys_dict where dict_code = #{code})
|
where s.dict_id = (select id from sys_dict where dict_code = #{code})
|
||||||
and s.item_text = #{text}
|
and s.item_text = #{text}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!--通过查询指定table的 text code 获取字典-->
|
<!--通过查询指定table的 text code 获取字典-->
|
||||||
<select id="queryTableDictItemsByCode" parameterType="String" resultType="com.jero.common.system.vo.DictModel">
|
<select id="queryTableDictItemsByCode" parameterType="String" resultType="com.jero.common.system.vo.DictModel">
|
||||||
select ${text} as "text",${code} as "value" from ${table}
|
select ${text} as "text",${code} as "value" from ${table}
|
||||||
|
|||||||
+2
@@ -167,4 +167,6 @@ public interface ISysDictService extends IService<SysDict> {
|
|||||||
|
|
||||||
/**根据字典code查询中英文名*/
|
/**根据字典code查询中英文名*/
|
||||||
String queryDictItemByName(String code, String itemName, String cut);
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@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)) {
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
String dictItemsCnName = sysDictMapper.queryDictTextByKey(code,itemName);
|
String dictItemsCnName = sysDictMapper.queryDictTextByKey(code,itemValue);
|
||||||
return dictItemsCnName;
|
return dictItemsCnName;
|
||||||
}else {
|
}else {
|
||||||
String dictItemsEnName = sysDictMapper.queryDictTextByKeyEn(code,itemName);
|
String dictItemsEnName = sysDictMapper.queryDictTextByKeyEn(code,itemValue);
|
||||||
return dictItemsEnName;
|
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);
|
Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz, String projectId,String cut);
|
||||||
|
|
||||||
|
|
||||||
List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records,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.service.IProjectRelatedPersonnelService;
|
||||||
import com.jero.modules.project.util.ExcelLangUtils;
|
import com.jero.modules.project.util.ExcelLangUtils;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
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.mapper.SysUserMapper;
|
||||||
import com.jero.modules.system.service.ISysDictService;
|
import com.jero.modules.system.service.ISysDictService;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
@@ -57,6 +58,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISysDictService sysDictService;
|
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);
|
List<ProjectRelatedPersonnel> records = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
||||||
if(CollectionUtils.isNotEmpty(records)) {
|
if(CollectionUtils.isNotEmpty(records)) {
|
||||||
oppositeDisposeData(records,projectId,cut);
|
oppositeDisposeData(records,projectId,cut);
|
||||||
saveBatch(records);
|
|
||||||
//中英切换提示语
|
//中英切换提示语
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
result.success("文件导入成功!数据行数:" + records.size());
|
result.success("文件导入成功!数据行数:" + records.size());
|
||||||
@@ -474,12 +478,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
//中英切换提示语
|
result.error500(e.getMessage());
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
|
||||||
result.error500("文件导入失败:" + e.getMessage());
|
|
||||||
}else {
|
|
||||||
result.error500("File import failed.:" + e.getMessage());
|
|
||||||
}
|
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
file.getInputStream().close();
|
file.getInputStream().close();
|
||||||
@@ -492,29 +491,43 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 把导入的数据翻译成对应的id
|
* 把导入的数据翻译成对应的id,并校验
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records,String projectId,String cut) {
|
public List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records,String projectId,String cut) {
|
||||||
int row=1;
|
int row=1;
|
||||||
|
|
||||||
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
|
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
|
||||||
|
|
||||||
//责任领域
|
//责任领域
|
||||||
if(!projectRelatedPersonnel.getDutyTerritory().isEmpty()) {
|
if(!projectRelatedPersonnel.getDutyTerritory().isEmpty()) {
|
||||||
|
//导入的一条数据,只能有一个责任领域
|
||||||
if (projectRelatedPersonnel.getDutyTerritory().contains(",")) {
|
if (projectRelatedPersonnel.getDutyTerritory().contains(",")) {
|
||||||
//中英切换提示语
|
//中英切换提示语
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
throw new JeroBootException("导入的责任领域只能填一个.请检查第" + row + "行");
|
throw new JeroBootException("导入的责任领域只能填一个.请检查第" + row + "行");
|
||||||
}else{
|
} else {
|
||||||
throw new JeroBootException("Only one duty territory can be filled in for import. Please check line " + row);
|
throw new JeroBootException("Only one duty territory can be filled in for import. Please check line " + row);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
String dictItemsName = sysDictService.queryDictItemByName(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory(), cut);
|
// String dictItemsName = sysDictService.queryDictItemByName(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory(), cut);
|
||||||
if (dictItemsName.isEmpty()) {
|
String dictItemValue = sysDictService.queryDictItemByValue(DictCodeEnum.DUTY_TERRITORY.getValue(), projectRelatedPersonnel.getDutyTerritory(), cut);
|
||||||
//中英切换提示语
|
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
if (StringUtils.isBlank(dictItemValue)) {
|
||||||
throw new JeroBootException("导入的责任领域不存在.请检查第" + row + "行");
|
//中英切换提示语
|
||||||
}else{
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
throw new JeroBootException("The imported duty territory does not exist. Please check line " + row );
|
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{
|
}else{
|
||||||
@@ -644,7 +657,67 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
}
|
}
|
||||||
projectRelatedPersonnel.setProjectId(projectId);
|
projectRelatedPersonnel.setProjectId(projectId);
|
||||||
row++;
|
row++;
|
||||||
|
updateDataById(projectRelatedPersonnel);
|
||||||
}
|
}
|
||||||
return records;
|
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