添加任务自动上工作流状态

This commit is contained in:
kuaifan 2022-01-09 17:59:08 +08:00
parent b895eec69c
commit 95ac9aac14
2 changed files with 17 additions and 12 deletions

View File

@ -1438,13 +1438,12 @@ class ProjectController extends AbstractController
if ($projectFlowItem?->projectFlow) {
$projectFlow = $projectFlowItem->projectFlow;
} else {
$projectFlow = ProjectFlow::whereProjectId($projectTask->project_id)->first();
$projectFlow = ProjectFlow::whereProjectId($projectTask->project_id)->orderByDesc('id')->first();
}
if (empty($projectFlow)) {
return Base::retSuccess('success', [
'task_id' => $projectTask->id,
'flow_item_id' => 0,
'flow_item_name' => '',
'turns' => [],
]);
}
@ -1454,22 +1453,20 @@ class ProjectController extends AbstractController
$data = [
'task_id' => $projectTask->id,
'flow_item_id' => 0,
'flow_item_name' => '',
'turns' => $turns,
];
$assign = null;
if ($projectTask->complete_at) {
// 赋一个结束状态
foreach ($turns as $turn) {
if ($turn->status == 'end' || preg_match("/complete|done|完成/i", $turn->name)) {
$assign = $turn;
$data['flow_item_id'] = $turn->id;
break;
}
}
if (empty($data['flow_item_id'])) {
foreach ($turns as $turn) {
if ($turn->status == 'end') {
$assign = $turn;
$data['flow_item_id'] = $turn->id;
break;
}
}
@ -1478,20 +1475,15 @@ class ProjectController extends AbstractController
// 赋一个开始状态
foreach ($turns as $turn) {
if ($turn->status == 'start') {
$assign = $turn;
$data['flow_item_id'] = $turn->id;
break;
}
}
}
if ($assign) {
$data['flow_item_id'] = $assign->id;
$data['flow_item_name'] = $assign->name;
}
} else {
$data = [
'task_id' => $projectTask->id,
'flow_item_id' => $projectFlowItem->id,
'flow_item_name' => $projectFlowItem->name,
'turns' => $turns,
];
}

View File

@ -419,6 +419,19 @@ class ProjectTask extends AbstractModel
} else {
$task->sort = intval(self::whereColumnId($task->column_id)->orderByDesc('sort')->value('sort')) + 1;
}
// 工作流
$projectFlow = ProjectFlow::whereProjectId($project_id)->orderByDesc('id')->first();
if ($projectFlow) {
$turns = ProjectFlowItem::select(['id', 'name', 'status', 'turns'])->whereFlowId($projectFlow->id)->orderBy('sort')->get();
// 赋一个开始状态
foreach ($turns as $turn) {
if ($turn->status == 'start') {
$task->flow_item_id = $turn->id;
$task->flow_item_name = $turn->status . "|" . $turn->name;
break;
}
}
}
//
return AbstractModel::transaction(function() use ($times, $subtasks, $content, $owner, $task) {
$task->save();