yxk-20260610-审批历史表写入功能优化
修复督办流程首节点自动完成时只写入旧日志、不写入审批历史新表的问题。
This commit is contained in:
+2
@@ -99,6 +99,8 @@ public class TaskCreatedAutoSubmitListener implements TaskListener {
|
||||
bpmlog.setTaskId(delegateTask.getId());
|
||||
bpmlog.setTaskName(delegateTask.getName());
|
||||
extActBpmLogService.save(bpmlog);
|
||||
// 首节点自动完成原本只写旧日志,这里同步补写新审批历史表用于页面展示。
|
||||
extActBpmLogService.saveSystemApprovalOpinion(bpmlog, delegateTask.getCreateTime());
|
||||
//----------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
|
||||
+9
@@ -5,6 +5,7 @@ import org.jeecg.modules.bpm.dto.CommentVo;
|
||||
import org.jeecg.modules.extbpm.process.entity.ExtActBpmLog;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -49,6 +50,14 @@ public interface IExtActBpmLogService extends IService<ExtActBpmLog> {
|
||||
*/
|
||||
void saveBpmLog(String username, String reason, Task task, String processInstanceId, String rejectDescription);
|
||||
|
||||
/**
|
||||
* 将已写入旧审批日志的系统记录同步写入新审批历史表。
|
||||
*
|
||||
* @param bpmLog 旧审批日志
|
||||
* @param startTime 任务创建时间
|
||||
*/
|
||||
void saveSystemApprovalOpinion(ExtActBpmLog bpmLog, Date startTime);
|
||||
|
||||
|
||||
/**
|
||||
* 通过流程实例id获取审批意见列表
|
||||
|
||||
+29
@@ -208,6 +208,35 @@ public class ExtActBpmLogServiceImpl extends ServiceImpl<ExtActBpmLogMapper, Ext
|
||||
return this.baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 首节点自动完成等系统记录先写旧日志,再通过这里补写新审批历史表。
|
||||
*/
|
||||
@Override
|
||||
public void saveSystemApprovalOpinion(ExtActBpmLog bpmLog, Date startTime) {
|
||||
if (bpmLog == null) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
ProcessInstance processInstance = null;
|
||||
if (oConvertUtils.isNotEmpty(bpmLog.getProcInstId())) {
|
||||
processInstance = runtimeService.createProcessInstanceQuery()
|
||||
.processInstanceId(bpmLog.getProcInstId()).singleResult();
|
||||
}
|
||||
|
||||
String username = bpmLog.getOpUserId();
|
||||
LoginUser user = oConvertUtils.isNotEmpty(username) ? sysBaseAPI.getUserByName(username) : null;
|
||||
saveTaskApprovalOpinion(bpmLog, processInstance, RECORD_TYPE_SYSTEM,
|
||||
resolveSystemActionType(bpmLog.getRemarks()), resolveActionResult(bpmLog.getRemarks(), ACTION_SYSTEM),
|
||||
startTime,
|
||||
user != null ? user.getOrgId() : null,
|
||||
oConvertUtils.isNotEmpty(username) ? resolveDeptName(username) : null,
|
||||
user != null ? user.getOrgCode() : null);
|
||||
} catch (Exception e) {
|
||||
log.error("补写系统审批历史失败,已保留原 ext_act_bpm_log。procInstId={}, taskId={}",
|
||||
bpmLog.getProcInstId(), bpmLog.getTaskId(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 以旧表写入结果为准,新审批意见表只做尽力双写,失败不能影响办理主流程。
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user