fix 90615 企标年度制修订计划流程-导入的把新增的覆盖了,两个企标并不重复
This commit is contained in:
+95
-6
@@ -1,7 +1,9 @@
|
||||
package com.jero.modules.activiti.process.annualinit.service;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
@@ -13,6 +15,9 @@ import com.jero.modules.activiti.process.annualinit.common.ProcessAnnualInitComm
|
||||
import com.jero.modules.activiti.process.annualinit.entity.ProcessAnnualInitLink;
|
||||
import com.jero.modules.activiti.process.annualinit.mapper.ProcessAnnualInitLinkMapper;
|
||||
import com.jero.modules.activiti.process.annualinit.vo.ProcessAnnualInitLinkExcelVO;
|
||||
import com.jero.modules.activiti.process.planchange.entity.ProcessPlanChangeLink;
|
||||
import com.jero.modules.activiti.process.planchange.service.ProcessPlanChangeLinkService;
|
||||
import com.jero.modules.activiti.process.planchange.service.ProcessPlanChangeService;
|
||||
import com.jero.modules.laws.common.util.ImportUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
@@ -22,6 +27,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -59,6 +65,8 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
private ImportUtil importUtil;
|
||||
@Resource
|
||||
private ISysDepartService sysDepartService;
|
||||
@Resource
|
||||
private ProcessPlanChangeLinkService planChangeLinkService;
|
||||
|
||||
public IPage<ProcessAnnualInitLink> pageList(Page<ProcessAnnualInitLink> page, ProcessAnnualInitLink processAnnualInitLink, HttpServletRequest req) {
|
||||
QueryWrapper<ProcessAnnualInitLink> queryWrapper = QueryGenerator.initQueryWrapper(processAnnualInitLink, req.getParameterMap());
|
||||
@@ -100,6 +108,23 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
}
|
||||
|
||||
public List<ProcessAnnualInitLinkExcelVO> importExcel(HttpServletRequest request) {
|
||||
String processId = request.getParameter("businessId");
|
||||
List<String> standardIdList = new ArrayList<>();
|
||||
Integer type = 1;
|
||||
if (StringUtils.isNotBlank(processId)){
|
||||
LambdaQueryWrapper<ProcessAnnualInitLink> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessAnnualInitLink::getProcessId,processId);
|
||||
List<ProcessAnnualInitLink> list = this.list(wrapper);
|
||||
if (!list.isEmpty()){
|
||||
standardIdList = list.stream().map(ProcessAnnualInitLink::getStandardId).collect(Collectors.toList());
|
||||
}else {
|
||||
type = 2;
|
||||
LambdaQueryWrapper<ProcessPlanChangeLink> wrapper1 = new LambdaQueryWrapper<>();
|
||||
wrapper1.eq(ProcessPlanChangeLink::getProcessId,processId);
|
||||
List<ProcessPlanChangeLink> list1 = planChangeLinkService.list(wrapper1);
|
||||
standardIdList = list1.stream().map(ProcessPlanChangeLink::getStandardId).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
||||
@@ -132,10 +157,19 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
if (CollectionUtils.isEmpty(excelList)) {
|
||||
throw new JeroBootException("没有数据可导入");
|
||||
}
|
||||
StringBuilder msg = validateExcelData(excelList); // 校验数据
|
||||
StringBuilder msg = validateExcelData(excelList,standardIdList); // 校验数据
|
||||
if (StringUtils.isNotEmpty(msg.toString())) {
|
||||
throw new JeroBootException(msg.toString());
|
||||
}
|
||||
if (StringUtils.isNotBlank(processId)){
|
||||
if (type == 1){
|
||||
List<ProcessAnnualInitLink> list = convertToProcessAnnualInitLink(processId,excelList);
|
||||
this.saveBatch(list);
|
||||
}else {
|
||||
List<ProcessPlanChangeLink> list = convertToProcessPlanChangeLink(processId,excelList);
|
||||
planChangeLinkService.saveBatch(list);
|
||||
}
|
||||
}
|
||||
return excelList;
|
||||
} catch (Exception e) {
|
||||
log.error("文件导入失败:",e);
|
||||
@@ -154,7 +188,61 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
return null;
|
||||
}
|
||||
|
||||
private StringBuilder validateExcelData(List<ProcessAnnualInitLinkExcelVO> excelList) {
|
||||
private List<ProcessPlanChangeLink> convertToProcessPlanChangeLink(String processId, List<ProcessAnnualInitLinkExcelVO> excelList) {
|
||||
List<ProcessPlanChangeLink> processPlanChangeLinklist=Lists.newArrayList();
|
||||
for (ProcessAnnualInitLinkExcelVO processAnnualInitLinkExcelVO :excelList) {
|
||||
processPlanChangeLinklist.add(convertFromProcessAnnualInitLinkExcelVO1(processId,processAnnualInitLinkExcelVO));
|
||||
}
|
||||
return processPlanChangeLinklist;
|
||||
}
|
||||
|
||||
private ProcessPlanChangeLink convertFromProcessAnnualInitLinkExcelVO1(String processId, ProcessAnnualInitLinkExcelVO vo) {
|
||||
ProcessPlanChangeLink processPlanChangeLink = new ProcessPlanChangeLink();
|
||||
processPlanChangeLink.setProcessId(processId);
|
||||
processPlanChangeLink.setRevisionType(vo.getRevisionType());
|
||||
processPlanChangeLink.setStandardId(vo.getStandardId());
|
||||
processPlanChangeLink.setStandardNumber(vo.getStandardNumber());
|
||||
processPlanChangeLink.setStandardName(vo.getStandardName());
|
||||
processPlanChangeLink.setMainDraftingUser(vo.getMainDraftingUser());
|
||||
processPlanChangeLink.setEmail(vo.getEmail());
|
||||
processPlanChangeLink.setDepartId(vo.getDepartId());
|
||||
processPlanChangeLink.setProfessionalModule(vo.getProfessionalModule());
|
||||
processPlanChangeLink.setDraftCompleteDate(DateUtil.parseDate(vo.getDraftCompleteDate()));
|
||||
processPlanChangeLink.setPlanArchivingDate(DateUtil.parseDate(vo.getPlanArchivingDate()));
|
||||
processPlanChangeLink.setHaveEnglishVersion(vo.getHaveEnglishVersion());
|
||||
processPlanChangeLink.setCommittee(vo.getCommittee());
|
||||
return processPlanChangeLink;
|
||||
|
||||
}
|
||||
|
||||
private List<ProcessAnnualInitLink> convertToProcessAnnualInitLink(String processId, List<ProcessAnnualInitLinkExcelVO> excelList) {
|
||||
List<ProcessAnnualInitLink> processAnnualInitLinklist=Lists.newArrayList();
|
||||
for (ProcessAnnualInitLinkExcelVO vo :excelList) {
|
||||
processAnnualInitLinklist.add(convertFromProcessAnnualInitLinkExcelVO(processId,vo));
|
||||
}
|
||||
return processAnnualInitLinklist;
|
||||
}
|
||||
|
||||
private ProcessAnnualInitLink convertFromProcessAnnualInitLinkExcelVO(String processId, ProcessAnnualInitLinkExcelVO vo) {
|
||||
ProcessAnnualInitLink processAnnualInitLink = new ProcessAnnualInitLink();
|
||||
processAnnualInitLink.setProcessId(processId);
|
||||
processAnnualInitLink.setRevisionType(vo.getRevisionType());
|
||||
processAnnualInitLink.setStandardId(vo.getStandardId());
|
||||
processAnnualInitLink.setStandardNumber(vo.getStandardNumber());
|
||||
processAnnualInitLink.setStandardName(vo.getStandardName());
|
||||
processAnnualInitLink.setMainDraftingUser(vo.getMainDraftingUser());
|
||||
processAnnualInitLink.setEmail(vo.getEmail());
|
||||
processAnnualInitLink.setDepartId(vo.getDepartId());
|
||||
processAnnualInitLink.setProfessionalModule(vo.getProfessionalModule());
|
||||
processAnnualInitLink.setDraftCompleteDate(DateUtil.parseDate(vo.getDraftCompleteDate()));
|
||||
processAnnualInitLink.setPlanArchivingDate(DateUtil.parseDate(vo.getPlanArchivingDate()));
|
||||
processAnnualInitLink.setHaveEnglishVersion(vo.getHaveEnglishVersion());
|
||||
processAnnualInitLink.setCommittee(vo.getCommittee());
|
||||
return processAnnualInitLink;
|
||||
|
||||
}
|
||||
|
||||
private StringBuilder validateExcelData(List<ProcessAnnualInitLinkExcelVO> excelList, List<String> oldStandardIdList) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
//日期格式
|
||||
String users = excelList.stream().map(ProcessAnnualInitLinkExcelVO::getMainDraftingUser).collect(Collectors.joining(","));
|
||||
@@ -202,7 +290,11 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
standardNumberList.add(standardNumber);
|
||||
LawsEnterpriseStandard lawsEnterpriseStandard = enterpriseStandardService.queryByStandardNumber(standardNumber);
|
||||
if (lawsEnterpriseStandard != null){
|
||||
excelVO.setStandardId(lawsEnterpriseStandard.getId());
|
||||
String standardId = lawsEnterpriseStandard.getId();
|
||||
if (oldStandardIdList.contains(standardId)) {
|
||||
msgSub.append("第" + (i + 4) + "行" + "企标编号已经存在;");
|
||||
}
|
||||
excelVO.setStandardId(standardId);
|
||||
//使用当前年份的年代号
|
||||
String[] split = standardNumber.split("-");
|
||||
split[split.length-1] = String.valueOf(DateUtil.thisYear());
|
||||
@@ -279,9 +371,6 @@ public class ProcessAnnualInitLinkService extends ServiceImpl<ProcessAnnualInitL
|
||||
if (StringUtils.isNotBlank(committee)&&committee.length()>500){
|
||||
msgSub.append("第" + (i + 4) + "行" + "所属技术委员会最大为500字符;");
|
||||
}
|
||||
if (msgSub.length() > 0) {
|
||||
msg.append(msgSub).append("</br>");
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user