!55 feat(dqinspecttask): 分页查询VO及Mapper XML补充completedStage字段
* feat(dqinspecttask): 分页查询VO及Mapper XML补充completedStage字段 * feat(dqinspecttask): 新增completedStage字段及流程结束阶段递增监听器
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
package org.jeecg.inspectimprove.listener;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.flowable.engine.delegate.ExecutionListener;
|
||||
import org.jeecg.inspectimprove.InspectImproveConfig;
|
||||
import org.jeecg.modules.demo.dqinspecttask.entity.DqInspectTask;
|
||||
import org.jeecg.modules.demo.dqinspecttask.service.IDqInspectTaskService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 流程结束时将 DqInspectTask.completedStage 原子递增 1
|
||||
*
|
||||
* <p>配置方式:在 BPMN 流程定义的 end 事件上添加 ExecutionListener,
|
||||
* event="end",delegateExpression="${DqInspectTaskStageIncrementListener}"</p>
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("DqInspectTaskStageIncrementListener")
|
||||
@RequiredArgsConstructor
|
||||
public class DqInspectTaskStageIncrementListener implements ExecutionListener {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final InspectImproveConfig inspectImproveConfig;
|
||||
private final IDqInspectTaskService dqInspectTaskService;
|
||||
|
||||
@Override
|
||||
public void notify(DelegateExecution execution) {
|
||||
Object businessKeyObj = execution.getVariable(inspectImproveConfig.getInspectImprove().getBusinessKey());
|
||||
if (businessKeyObj == null || StringUtils.isBlank(businessKeyObj.toString())) {
|
||||
log.warn("【巡视整改-阶段递增监听器】未获取到业务表单ID,跳过, processInstanceId: {}",
|
||||
execution.getProcessInstanceId());
|
||||
return;
|
||||
}
|
||||
|
||||
String businessKey = businessKeyObj.toString();
|
||||
boolean updated = dqInspectTaskService.lambdaUpdate()
|
||||
.setSql("completed_stage = completed_stage + 1")
|
||||
.eq(DqInspectTask::getId, businessKey)
|
||||
.update();
|
||||
|
||||
if (updated) {
|
||||
log.info("【巡视整改-阶段递增监听器】completedStage 已递增, businessKey: {}, processInstanceId: {}",
|
||||
businessKey, execution.getProcessInstanceId());
|
||||
} else {
|
||||
log.warn("【巡视整改-阶段递增监听器】递增未影响任何行,可能记录已删除, businessKey: {}", businessKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user