mirror of
https://github.com/kuaifan/dootask.git
synced 2026-01-26 04:18:29 +00:00
fix(task): 修复工作流切换时完成状态处理逻辑
- 恢复工作流切换时通过 $data['complete_at'] 设置完成状态,确保走统一处理入口 - 修复工作流切换时主任务完成状态校验被跳过的问题 - 修复工作流切换时 $updateMarking['is_update_project'] 未设置的问题 - checkAndAutoSetFlowItem 仅在用户单独提交 complete_at 时调用 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
parent
37de721df9
commit
1ac6bad2bb
@ -684,13 +684,13 @@ class ProjectTask extends AbstractModel
|
||||
// 判断自动完成
|
||||
if (!$this->complete_at) {
|
||||
$flowData['complete_at'] = $this->complete_at;
|
||||
$this->completeTask(Carbon::now(), $newFlowItem->name);
|
||||
$data['complete_at'] = date("Y-m-d H:i");
|
||||
}
|
||||
} else {
|
||||
// 判断自动打开
|
||||
if ($this->complete_at) {
|
||||
$flowData['complete_at'] = $this->complete_at;
|
||||
$this->completeTask(null);
|
||||
$data['complete_at'] = false;
|
||||
}
|
||||
}
|
||||
$flowUserids = $newFlowItem->userids;
|
||||
@ -740,7 +740,7 @@ class ProjectTask extends AbstractModel
|
||||
])->save();
|
||||
}
|
||||
// 状态
|
||||
if (Arr::exists($data, 'complete_at') && !Arr::exists($data, 'flow_item_id')) {
|
||||
if (Arr::exists($data, 'complete_at')) {
|
||||
// 子任务:主任务已完成时无法修改
|
||||
if ($mainTask?->complete_at) {
|
||||
throw new ApiException('主任务已完成,无法修改子任务状态');
|
||||
@ -750,14 +750,22 @@ class ProjectTask extends AbstractModel
|
||||
if ($this->complete_at) {
|
||||
throw new ApiException('任务已完成');
|
||||
}
|
||||
$flowItemName = $this->checkAndAutoSetFlowItem('end', -4005);
|
||||
// 只有用户单独提交 complete_at 时才自动设置工作流状态
|
||||
if (!Arr::exists($data, 'flow_item_id')) {
|
||||
$flowItemName = $this->checkAndAutoSetFlowItem('end', -4005);
|
||||
} else {
|
||||
$flowItemName = isset($newFlowItem) ? $newFlowItem->name : null;
|
||||
}
|
||||
$this->completeTask(Carbon::now(), $flowItemName);
|
||||
} else {
|
||||
// 标记未完成
|
||||
if (!$this->complete_at) {
|
||||
throw new ApiException('未完成任务');
|
||||
}
|
||||
$this->checkAndAutoSetFlowItem('start', -4006);
|
||||
// 只有用户单独提交 complete_at 时才自动设置工作流状态
|
||||
if (!Arr::exists($data, 'flow_item_id')) {
|
||||
$this->checkAndAutoSetFlowItem('start', -4006);
|
||||
}
|
||||
$this->completeTask(null);
|
||||
}
|
||||
$updateMarking['is_update_project'] = true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user