feat: 法规符合性排查流程-选择标准发起

This commit is contained in:
2024-07-08 16:02:38 +08:00
parent 7025c0ae53
commit a5abdea61a
@@ -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<Proce
@Resource
private IProcessStandardComplianceCheckDetailService sccDetailService;
@Resource
private IDocumentSplitService documentSplitService;
@Override
public void startProcess(ProcessInfoVO<ProcessSccVO> processInfoVO) {
// 流程Key
@@ -87,8 +94,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
// 人员信息
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
// 业务数据
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
// 当前用户Id
String userId = UserUtils.getUserId();
// 设置流程变量
@@ -172,7 +177,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
switch (xmlNodeId) {
}
// 转办修改流程变量逻辑
// TODO 转办修改流程变量逻辑
switch (xmlNodeId) {
@@ -232,10 +237,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
*/
private List<ProcessStandardComplianceCheckDetail> getSplitData(ProcessStandardComplianceCheck scc, MultipartFile splitFile) {
List<ProcessStandardComplianceCheckDetail> 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<Proce
detail.setCheckId(scc.getId());
result.add(detail);
} else {
// TODO 获取数据返回
// 获取数据返回
result.addAll(this.getSplitExcelData(splitFile, scc.getId()));
}
} else {
// TODO 根据标准Id获取所有拆分数据
// 根据标准Id获取所有拆分数据
String infoId = scc.getSplitFileSource();
Map<String, Object> parameter = new HashMap<>();
parameter.put("infoId", infoId);
parameter.put("pageNo", 1);
parameter.put("pageSize", Integer.MAX_VALUE);
IPage<Map<String, Object>> 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<Proce
* @return
*/
private List<ProcessStandardComplianceCheckDetail> getSplitExcelData(MultipartFile splitFile, String sccId) {
// TODO
return null;
// 获取Excel的header
List<String> 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<ModelExcelVO> 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<ProcessStandardComplianceCheckDetail> result = BeanCopyUtils.copyBeanList(splitExcelVOList, ProcessStandardComplianceCheckDetail.class);
result.forEach(detail -> detail.setCheckId(sccId));
return result;
}
private List<ModelExcelVO> getModelExcelData(MultipartFile file) throws Exception {
private List<ModelExcelVO> getModelExcelData(MultipartFile file) {
// 获取Excel的header
List<String> headers = null;
List<String> headers;
try {
headers = ExcelUtils.getHeaderFromExcel(file.getInputStream());
} catch (Exception e) {
@@ -287,7 +333,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
params.setTitleRows(1);
params.setHeadRows(1);
params.setNeedSave(true);
List<ModelExcelVO> modelExcelVOList = new ArrayList<>();
List<ModelExcelVO> modelExcelVOList;
try {
modelExcelVOList = ExcelImportUtil.importExcel(file.getInputStream(), ModelExcelVO.class, params);
if (modelExcelVOList.isEmpty()) {