fix: 法规符合性排查流程-生成

This commit is contained in:
2024-07-09 10:35:21 +08:00
parent 03419eb4b0
commit 4c54a673dd
6 changed files with 98 additions and 37 deletions
@@ -8,4 +8,5 @@ public class ActivitiCommon {
public static final String PASS = "pass";
public static final String MAIN_INSTANCE_ID = "mainInstanceId";
public static final String PARENT_TASK_ID = "parentTaskId";
public static final String DISTRIBUTE = "distribute";
}
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.standardComplianceCheck.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.Translation;
import com.jero.common.system.base.controller.JeroController;
@@ -29,7 +30,6 @@ import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
@@ -95,10 +95,9 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
/**
* 转办
*
*/
@AutoLog(value = "法规符合性排查流程-转办")
@ApiOperation(value="法规符合性排查流程-转办", notes="法规符合性排查流程-转办")
@ApiOperation(value = "法规符合性排查流程-转办", notes = "法规符合性排查流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody TransferVO transferVO) {
processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId());
@@ -107,10 +106,11 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
/**
* 保存到待办
*
* @param taskId
*/
@AutoLog(value = "法规符合性排查流程-办理")
@ApiOperation(value="法规符合性排查流程-办理", notes="法规符合性排查流程-办理")
@ApiOperation(value = "法规符合性排查流程-办理", notes = "法规符合性排查流程-办理")
@GetMapping("/handle/{taskId}")
@Translation
public Result<?> handle(@PathVariable("taskId") String taskId) {
@@ -123,16 +123,14 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
/**
* 生成
*
* @param scc
*/
@AutoLog(value = "法规符合性排查流程-生成")
@ApiOperation(value="法规符合性排查流程-生成", notes="法规符合性排查流程-生成")
@ApiOperation(value = "法规符合性排查流程-生成", notes = "法规符合性排查流程-生成")
@PostMapping("/generate")
@Translation
public Result<?> generate(@RequestPart("scc") ProcessStandardComplianceCheck scc,
@RequestPart("modelFile") MultipartFile modelFile,
@RequestPart(name = "splitFile", required = false) MultipartFile splitFile) throws Exception {
return Result.OK(sccService.generate(scc, modelFile, splitFile));
public Result<String> generate(@RequestBody ProcessStandardComplianceCheck scc) throws Exception {
return Result.OK(ResultCommon.OK, sccService.generate(scc));
}
/**
@@ -146,12 +144,12 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
String title = "车型批量导入模板";
//此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(FILE_NAME, title);
mv.addObject(FILE_NAME);
mv.addObject(CLASS, ModelExcelVO.class);
ExportParams exportParams=new ExportParams(title, title);
ExportParams exportParams = new ExportParams(null, title);
// 导出xls
exportParams.setType(ExcelType.HSSF);
mv.addObject(PARAMS,exportParams);
mv.addObject(PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
return mv;
}
@@ -169,10 +167,10 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
//此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(FILE_NAME, title);
mv.addObject(CLASS, SplitExcelVO.class);
ExportParams exportParams=new ExportParams(title, title);
ExportParams exportParams = new ExportParams(null, title);
// 导出xls
exportParams.setType(ExcelType.HSSF);
mv.addObject(PARAMS,exportParams);
mv.addObject(PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
return mv;
}
@@ -180,9 +178,9 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
@PostMapping({"/deleteBatch"})
@ApiOperation(value = "法规符合性排查流程-批量删除", notes = "法规符合性排查流程-批量删除")
@AutoLog(value = "法规符合性排查流程-批量删除")
public Result<String> deleteBatch(@RequestBody Map<String,String> map) {
public Result<String> deleteBatch(@RequestBody Map<String, String> map) {
String var1 = map.get("ids");
if(StringUtils.isBlank(var1)){
if (StringUtils.isBlank(var1)) {
return Result.error("参数不识别!");
}
this.sccService.removeByIds(Arrays.asList(var1.split(",")));
@@ -197,8 +195,8 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
* @param pageSize
* @return
*/
@AutoLog(value = "法规符合性评估库-法规符合性评估库-分页列表查询")
@ApiOperation(value = "法规符合性评估库-法规符合性评估库-分页列表查询", notes = "法规符合性评估库-法规符合性评估库-分页列表查询")
@AutoLog(value = "法规符合性排查流程-分页列表查询")
@ApiOperation(value = "法规符合性排查流程-分页列表查询", notes = "法规符合性排查流程-分页列表查询")
@GetMapping(value = "/detailPage")
public Result<IPage<ProcessStandardComplianceCheckDetail>> queryPageList(ProcessStandardComplianceCheckDetail processStandardComplianceCheckDetail,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@@ -94,12 +94,16 @@ public class ProcessStandardComplianceCheck implements Serializable {
/**
* 新生产车实施日期
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "新生产车实施日期")
private Date newProductImplDate;
/**
* 新认证车实施日期
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "新认证车实施日期")
private Date newAuthImplDate;
@@ -121,6 +125,20 @@ public class ProcessStandardComplianceCheck implements Serializable {
@ApiModelProperty(value = "是否与上一版相同")
private String isSameLastVersion;
/**
* 车型上传文件Id
*/
@ApiModelProperty(value = "车型上传文件Id")
@TableField(exist = false)
private String modelFile;
/**
* 拆解单上传文件Id
*/
@ApiModelProperty(value = "拆解单上传文件Id")
@TableField(exist = false)
private String splitFile;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
@@ -5,7 +5,6 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.vo.ProcessSccVO;
import org.activiti.engine.delegate.DelegateTask;
import org.springframework.web.multipart.MultipartFile;
/**
* @author ThinkBook
@@ -24,5 +23,5 @@ public interface IProcessStandardComplianceCheckService extends IService<Process
void submit(ProcessInfoVO<ProcessSccVO> processInfoVO);
String generate(ProcessStandardComplianceCheck scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception;
String generate(ProcessStandardComplianceCheck scc) throws Exception;
}
@@ -5,6 +5,7 @@ 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.common.util.MinioUtil;
import com.jero.modules.activiti.common.ActivitiCommon;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
@@ -31,23 +32,30 @@ 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.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.sys.utils.UserUtils;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.http.entity.ContentType;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE;
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
@@ -84,6 +92,9 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
@Resource
private IDocumentSplitService documentSplitService;
@Resource
private IOSSFileService ossFileService;
@Override
public void startProcess(ProcessInfoVO<ProcessSccVO> processInfoVO) {
// 流程Key
@@ -166,16 +177,31 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
// 获取当前流程
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
String processDefinitionId = processInstance.getProcessDefinitionId();
Map<String, Object> userMap = new HashMap<>();
Map<String, Object> flowUser;
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(processTask, taskId);
String curUserId;
String curUserId = UserUtils.getUserId();
switch (xmlNodeId) {
case DEPT_USER_DISTRIBUTE:
break;
case MAIN_CHECK_USER_DISTRIBUTE:
// this.mainCheckUserDistribute()
runtimeService.setVariable(processInstanceId, DISTRIBUTE, true);
break;
case MAIN_CHECK_USER_REDISTRIBUTE:
runtimeService.setVariable(processInstanceId, DISTRIBUTE, true);
break;
case MAIN_CHECK_USER_COLLECT:
break;
case COUNTERSIGN:
break;
case MANAGER_APPROVAL:
break;
case SENIOR_MANAGER_APPROVAL:
break;
case DESIGNER_ENGINEER_EVALUATION:
break;
case MAIN_CHECK_USER_APPROVAL:
break;
}
// TODO 转办修改流程变量逻辑
switch (xmlNodeId) {
@@ -184,7 +210,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
}
runtimeService.setVariable(processInstanceId, PASS, pass);
// 审批节点
actFlowCommonService.completeTask(taskId, userId);
actFlowCommonService.completeTask(taskId, curUserId);
}
@Override
@@ -193,7 +219,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
}
@Override
public String generate(ProcessStandardComplianceCheck scc, MultipartFile modelFile, MultipartFile splitFile) throws Exception {
public String generate(ProcessStandardComplianceCheck scc) throws Exception {
// 获取两个文件
MultipartFile modelFile = this.getFileById(scc.getModelFile());
MultipartFile splitFile = this.getFileById(scc.getSplitFile());
// 文件内容转换
List<ModelExcelVO> modelExcelVOList = this.getModelExcelData(modelFile);
// 新增流程主表数据
@@ -206,6 +235,24 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
return scc.getId();
}
private MultipartFile getFileById(String fileId) {
List<OSSFile> fileInfos = ossFileService.getFileInfos(fileId);
if (fileInfos == null || fileInfos.isEmpty()) {
return null;
}
OSSFile fileInfo = fileInfos.get(0);
String fileName = fileInfo.getFileName();
String url = fileInfo.getUrl();
try (InputStream originalInputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url)) {
if (originalInputStream == null) {
return null;
}
return new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), originalInputStream);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 循环生成所有数据
*
@@ -224,6 +271,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detail.setTermContent(detail.getTermContent());
detail.setAuthDept(detailInfo.getAuthDept());
detail.setCheckId(detailInfo.getCheckId());
result.add(detail);
}
}
sccDetailService.saveBatch(result);
@@ -297,8 +345,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
throw new JeroBootException("上传模板错误,请检查后重试。");
}
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
params.setHeadRows(0);
params.setNeedSave(true);
List<ModelExcelVO> splitExcelVOList;
try {
@@ -330,8 +377,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
throw new JeroBootException("上传模板错误,请检查后重试。");
}
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
params.setHeadRows(0);
params.setNeedSave(true);
List<ModelExcelVO> modelExcelVOList;
try {
@@ -19,7 +19,6 @@ import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -89,11 +88,11 @@ public class ExcelUtils {
public static List<String> getHeaderFromExcel(InputStream is) throws Exception {
List<String> headers = new ArrayList<>();
Workbook workbook = new XSSFWorkbook(is);
Workbook workbook = new HSSFWorkbook(is);
Sheet sheet = workbook.getSheetAt(0);
// HeadRow在index 1
for (int rowIndex = 1; rowIndex <= 1; rowIndex++) {
for (int rowIndex = 0; rowIndex <= 0; rowIndex++) {
Row row = sheet.getRow(rowIndex);
for (Cell cell : row) {
headers.add(cell.getStringCellValue());