{"type":"assistant","message":{"role":"assistant","content":[{"type":"text","text":"我会快速查看当前 git diff 的文件清单和统计,确认这次提交的主线,避免只根据截断 diff 猜测。"}]}}{"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","id":"item_1","name":"bash","input":{"command":"\"C:\\\\Users\\\\admin\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps\\\\pwsh.exe\" -Command 'git diff --stat'","description":"Run \"C:\\\\Users\\\\admin\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps\\\\pwsh.exe\""}}]}}

This commit is contained in:
yuhaiming
2026-06-17 10:07:56 +08:00
parent c74363afa4
commit 5548512633
37 changed files with 1301 additions and 177 deletions

View File

@@ -263,9 +263,11 @@ public class WorkflowGlobalListener implements GlobalListener {
if (flwTaskService.isTaskEnd(instanceId)) {
String status = BusinessStatusEnum.FINISH.getStatus();
// 更新流程状态为已完成
flwInstanceService.updateStatus(instanceId, status);
log.info("流程已结束,状态更新为: {}", status);
return status;
if (flwInstanceService.updateStatusIfNotFinal(instanceId, status)) {
log.info("流程已结束,状态更新为: {}", status);
return status;
}
log.debug("流程实例已被其他处理更新为最终状态跳过重复完成事件实例ID: {}", instanceId);
}
return null;
}

View File

@@ -126,6 +126,15 @@ public interface IFlwInstanceService {
*/
void updateStatus(Long instanceId, String status);
/**
* 流程未处于最终状态时更新状态
*
* @param instanceId 实例id
* @param status 状态
* @return 是否更新成功
*/
boolean updateStatusIfNotFinal(Long instanceId, String status);
/**
* 获取流程变量
*

View File

@@ -388,6 +388,15 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
flowInstanceMapper.update(wrapper);
}
@Override
public boolean updateStatusIfNotFinal(Long instanceId, String status) {
LambdaUpdateWrapper<FlowInstance> wrapper = new LambdaUpdateWrapper<>();
wrapper.set(FlowInstance::getFlowStatus, status);
wrapper.eq(FlowInstance::getId, instanceId);
wrapper.notIn(FlowInstance::getFlowStatus, BusinessStatusEnum.finishStatus());
return flowInstanceMapper.update(wrapper) > 0;
}
/**
* 获取流程变量
*