mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-11 18:42:54 +00:00
fix: 工作流存在已离职人员
This commit is contained in:
parent
e5efcd3d26
commit
e6f6b3fee2
@ -419,6 +419,7 @@ class Project extends AbstractModel
|
|||||||
$hasStart = false;
|
$hasStart = false;
|
||||||
$hasEnd = false;
|
$hasEnd = false;
|
||||||
$upTaskList = [];
|
$upTaskList = [];
|
||||||
|
$projectUserids = $this->relationUserids();
|
||||||
foreach ($flows as $item) {
|
foreach ($flows as $item) {
|
||||||
$id = intval($item['id']);
|
$id = intval($item['id']);
|
||||||
$turns = Base::arrayRetainInt($item['turns'] ?: [], true);
|
$turns = Base::arrayRetainInt($item['turns'] ?: [], true);
|
||||||
@ -435,6 +436,12 @@ class Project extends AbstractModel
|
|||||||
if ($userlimit && empty($userids)) {
|
if ($userlimit && empty($userids)) {
|
||||||
throw new ApiException("状态[{$item['name']}]设置错误,设置限制负责人时必须填写状态负责人");
|
throw new ApiException("状态[{$item['name']}]设置错误,设置限制负责人时必须填写状态负责人");
|
||||||
}
|
}
|
||||||
|
foreach ($userids as $userid) {
|
||||||
|
if (!in_array($userid, $projectUserids)) {
|
||||||
|
$nickname = User::userid2nickname($userid);
|
||||||
|
throw new ApiException("状态[{$item['name']}]设置错误,状态负责人[{$nickname}]不在项目成员内");
|
||||||
|
}
|
||||||
|
}
|
||||||
$flow = ProjectFlowItem::updateInsert([
|
$flow = ProjectFlowItem::updateInsert([
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'project_id' => $this->id,
|
'project_id' => $this->id,
|
||||||
|
|||||||
@ -618,7 +618,12 @@ class ProjectTask extends AbstractModel
|
|||||||
$data['complete_at'] = false;
|
$data['complete_at'] = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($newFlowItem->userids) {
|
$flowUserids = $newFlowItem->userids;
|
||||||
|
if ($flowUserids) {
|
||||||
|
// 确认负责人在任务中
|
||||||
|
$flowUserids = ProjectUser::whereProjectId($this->project_id)->whereIn('userid', $flowUserids)->pluck('userid')->toArray();
|
||||||
|
}
|
||||||
|
if ($flowUserids) {
|
||||||
// 判断自动添加负责人
|
// 判断自动添加负责人
|
||||||
$flowData['owner'] = $data['owner'] = $this->taskUser->where('owner', 1)->pluck('userid')->toArray();
|
$flowData['owner'] = $data['owner'] = $this->taskUser->where('owner', 1)->pluck('userid')->toArray();
|
||||||
if (in_array($newFlowItem->usertype, ["replace", "merge"])) {
|
if (in_array($newFlowItem->usertype, ["replace", "merge"])) {
|
||||||
@ -627,14 +632,14 @@ class ProjectTask extends AbstractModel
|
|||||||
$flowData['assist'] = $data['assist'] = $this->taskUser->where('owner', 0)->pluck('userid')->toArray();
|
$flowData['assist'] = $data['assist'] = $this->taskUser->where('owner', 0)->pluck('userid')->toArray();
|
||||||
$data['assist'] = array_merge($data['assist'], $data['owner']);
|
$data['assist'] = array_merge($data['assist'], $data['owner']);
|
||||||
}
|
}
|
||||||
$data['owner'] = $newFlowItem->userids;
|
$data['owner'] = $flowUserids;
|
||||||
// 判断剔除模式:保留操作状态的人员
|
// 判断剔除模式:保留操作状态的人员
|
||||||
if ($newFlowItem->usertype == "merge") {
|
if ($newFlowItem->usertype == "merge") {
|
||||||
$data['owner'][] = User::userid();
|
$data['owner'][] = User::userid();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 添加模式
|
// 添加模式
|
||||||
$data['owner'] = array_merge($data['owner'], $newFlowItem->userids);
|
$data['owner'] = array_merge($data['owner'], $flowUserids);
|
||||||
}
|
}
|
||||||
$data['owner'] = array_values(array_unique($data['owner']));
|
$data['owner'] = array_values(array_unique($data['owner']));
|
||||||
if (isset($data['assist'])) {
|
if (isset($data['assist'])) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user