feat: 法规符合性排查流程-选择标准发起
This commit is contained in:
+61
-15
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user