yxk-20260610-审批历史表写入功能优化
修复督办流程首节点自动完成时只写入旧日志、不写入审批历史新表的问题。
This commit is contained in:
+2
@@ -99,6 +99,8 @@ public class TaskCreatedAutoSubmitListener implements TaskListener {
|
|||||||
bpmlog.setTaskId(delegateTask.getId());
|
bpmlog.setTaskId(delegateTask.getId());
|
||||||
bpmlog.setTaskName(delegateTask.getName());
|
bpmlog.setTaskName(delegateTask.getName());
|
||||||
extActBpmLogService.save(bpmlog);
|
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 org.jeecg.modules.extbpm.process.entity.ExtActBpmLog;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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);
|
void saveBpmLog(String username, String reason, Task task, String processInstanceId, String rejectDescription);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将已写入旧审批日志的系统记录同步写入新审批历史表。
|
||||||
|
*
|
||||||
|
* @param bpmLog 旧审批日志
|
||||||
|
* @param startTime 任务创建时间
|
||||||
|
*/
|
||||||
|
void saveSystemApprovalOpinion(ExtActBpmLog bpmLog, Date startTime);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过流程实例id获取审批意见列表
|
* 通过流程实例id获取审批意见列表
|
||||||
|
|||||||
+29
@@ -208,6 +208,35 @@ public class ExtActBpmLogServiceImpl extends ServiceImpl<ExtActBpmLogMapper, Ext
|
|||||||
return this.baseMapper.selectList(queryWrapper);
|
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