perf: scc流程性能优化

This commit is contained in:
2024-08-21 09:25:18 +08:00
parent e5cbdf1e6e
commit 74e9c1054c
4 changed files with 80 additions and 9 deletions
@@ -29,7 +29,6 @@ import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
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;
@@ -42,7 +41,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
/**
* 流程-测试流程(process_demo)表控制层
@@ -65,15 +63,15 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
@AutoLog(value = "法规符合性排查流程-发起流程")
@ApiOperation(value = "法规符合性排查流程-发起流程", notes = "法规符合性排查流程-发起流程")
@PostMapping(value = "/start")
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
CompletableFuture.runAsync(() -> sccService.startProcess(processInfoVO));
public Result<T> startProcess(@RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
sccService.startProcess(processInfoVO);
return Result.OK();
}
@AutoLog(value = "法规符合性排查流程-同意")
@ApiOperation(value = "法规符合性排查流程-同意", notes = "法规符合性排查流程-同意")
@PostMapping("/agree")
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
public Result<T> agree(@RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
sccService.approveTask(processInfoVO, true);
return Result.OK();
}
@@ -81,7 +79,7 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
@AutoLog(value = "法规符合性排查流程-驳回")
@ApiOperation(value = "法规符合性排查流程-驳回", notes = "法规符合性排查流程-驳回")
@PostMapping("/reject")
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
public Result<T> reject(@RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
sccService.approveTask(processInfoVO, false);
return Result.OK();
}
@@ -89,7 +87,7 @@ public class ProcessStandardComplianceCheckController extends JeroController<Pro
@AutoLog(value = "法规符合性排查流程-提交")
@ApiOperation(value = "法规符合性排查流程-提交", notes = "法规符合性排查流程-提交")
@PostMapping("/submit")
public Result<T> submit(@Validated @RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
public Result<T> submit(@RequestBody ProcessInfoVO<ProcessSccVO> processInfoVO) {
sccService.submit(processInfoVO);
return Result.OK();
}
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Queue;
/**
@@ -15,6 +16,8 @@ import java.util.Queue;
public interface ProcessStandardComplianceCheckDetailMapper extends BaseMapper<ProcessStandardComplianceCheckDetail> {
void batchInsert(@Param("queue") Queue<ProcessStandardComplianceCheckDetail> needAddDetailInfoQueue);
void batchInsertList(@Param("list") List<ProcessStandardComplianceCheckDetail> needAddDetailInfoList);
}
@@ -100,4 +100,72 @@
</foreach>
</insert>
<insert id="batchInsertList" parameterType="java.util.Collection">
INSERT INTO process_standard_compliance_check_detail (
id,
create_by,
create_time,
update_by,
update_time,
org_code,
process_instance_id,
term_number,
term_title,
term_content,
model,
model_status,
assessor,
result,
description,
material,
valuation_time,
correction_solution,
unsatisfied_require,
correction_period,
correction_cost,
commonality,
commonality_cost,
remark,
auth_dept,
main_check_user,
design_engineer,
check_id,
batch_id
)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.id},
#{item.createBy},
#{item.createTime},
#{item.updateBy},
#{item.updateTime},
#{item.orgCode},
#{item.processInstanceId},
#{item.termNumber},
#{item.termTitle},
#{item.termContent},
#{item.model},
#{item.modelStatus},
#{item.assessor},
#{item.result},
#{item.description},
#{item.material},
#{item.valuationTime},
#{item.correctionSolution},
#{item.unsatisfiedRequire},
#{item.correctionPeriod},
#{item.correctionCost},
#{item.commonality},
#{item.commonalityCost},
#{item.remark},
#{item.authDept},
#{item.mainCheckUser},
#{item.designEngineer},
#{item.checkId},
#{item.batchId}
)
</foreach>
</insert>
</mapper>
@@ -220,7 +220,9 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
// 给流程中设置主表流程变量Id
runtimeService.setVariable(processInstanceId, CHECK_ID, standardInfo.getId());
runtimeService.setVariable(processInstanceId, MAIN_INSTANCE_ID, processInstanceId);
this.startNodeDetailBusProcess(processInstanceId, standardInfo.getId(), businessInfoDTO.getDetailInfoList());
CompletableFuture.runAsync(() ->
this.startNodeDetailBusProcess(
processInstanceId, standardInfo.getId(), businessInfoDTO.getDetailInfoList()));
}
private void startNodeDetailBusProcess(String processInstanceId, String checkId, List<ProcessStandardComplianceCheckDetail> detailInfoList) {
@@ -249,7 +251,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detail.setCheckId(checkId);
detail.setProcessInstanceId(processInstanceId);
});
sccDetailService.saveBatch(detailInfoList, detailInfoList.size());
sccDetailMapper.batchInsertList(detailInfoList);
}
private Map<String, Object> setVariables(ProcessInfoVO<ProcessSccVO> businessInfoDTO) {