diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index 5d768eb4..c4838487 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.standardComplianceCheck.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.common.ActivitiCommon; @@ -21,12 +22,15 @@ import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessS import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail; import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ModelExcelVO; import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO; +import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.SplitExcelVO; import com.jero.modules.activiti.process.standardComplianceCheck.mapper.ProcessStandardComplianceCheckMapper; import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckDetailService; import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.util.ExcelUtils; +import com.jero.modules.laws.documenttool.service.IDocumentSplitService; +import com.jero.modules.laws.enterprise.util.BeanCopyUtils; import com.jero.modules.sys.utils.UserUtils; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; @@ -77,6 +81,9 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl processInfoVO) { // 流程Key @@ -87,8 +94,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl userInfoMap = processInfoVO.getUserInfoMap(); - // 业务数据 - ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 当前用户Id String userId = UserUtils.getUserId(); // 设置流程变量 @@ -172,7 +177,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl getSplitData(ProcessStandardComplianceCheck scc, MultipartFile splitFile) { List result = new ArrayList<>(); - boolean newStandard = false; - if (StrUtil.isBlank(scc.getStandardId())) { - newStandard = true; - } + boolean newStandard = StrUtil.isBlank(scc.getStandardId()); // 是否手动新增标准 if (newStandard) { // 是否上传分解单 @@ -246,12 +248,28 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl parameter = new HashMap<>(); + parameter.put("infoId", infoId); + parameter.put("pageNo", 1); + parameter.put("pageSize", Integer.MAX_VALUE); + IPage> data = documentSplitService.queryDocumentSplitDetail(parameter, false); + if (data.getRecords().isEmpty()) { + throw new JeroBootException("标准拆分数据为空"); + } + data.getRecords().forEach(item -> { + ProcessStandardComplianceCheckDetail detail = new ProcessStandardComplianceCheckDetail(); + detail.setTermNumber(item.get("termNumber").toString()); + detail.setTermTitle(item.get("termTitle").toString()); + detail.setTermContent(item.get("termContent").toString()); + detail.setCheckId(scc.getId()); + result.add(detail); + }); } if (result.isEmpty()) { throw new JeroBootException("拆分单数据为空"); @@ -265,13 +283,41 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl getSplitExcelData(MultipartFile splitFile, String sccId) { - // TODO - return null; + // 获取Excel的header + List headers; + try { + headers = ExcelUtils.getHeaderFromExcel(splitFile.getInputStream()); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new JeroBootException("上传模板错误,请检查后重试。"); + } + // 使用Grade的静态方法验证header + boolean isMatched = ModelExcelVO.validateExcelHeaders(headers); + if (!isMatched) { + throw new JeroBootException("上传模板错误,请检查后重试。"); + } + ImportParams params = new ImportParams(); + params.setTitleRows(1); + params.setHeadRows(1); + params.setNeedSave(true); + List splitExcelVOList; + try { + splitExcelVOList = ExcelImportUtil.importExcel(splitFile.getInputStream(), SplitExcelVO.class, params); + if (splitExcelVOList.isEmpty()) { + throw new JeroBootException("文件导入失败:数据为空"); + } + } catch (Exception e) { + log.error("文件导入异常:" + e.getMessage(), e); + throw new JeroBootException("文件导入失败:" + e.getMessage()); + } + List result = BeanCopyUtils.copyBeanList(splitExcelVOList, ProcessStandardComplianceCheckDetail.class); + result.forEach(detail -> detail.setCheckId(sccId)); + return result; } - private List getModelExcelData(MultipartFile file) throws Exception { + private List getModelExcelData(MultipartFile file) { // 获取Excel的header - List headers = null; + List headers; try { headers = ExcelUtils.getHeaderFromExcel(file.getInputStream()); } catch (Exception e) { @@ -287,7 +333,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl modelExcelVOList = new ArrayList<>(); + List modelExcelVOList; try { modelExcelVOList = ExcelImportUtil.importExcel(file.getInputStream(), ModelExcelVO.class, params); if (modelExcelVOList.isEmpty()) {