feat:工作流前端进度 - 95%

This commit is contained in:
weifs
2023-04-19 17:19:28 +08:00
parent 596594d8b3
commit 09f48c32c7
10 changed files with 238 additions and 53 deletions

View File

@@ -2,16 +2,16 @@
namespace App\Http\Controllers\Api;
use Cache;
use Request;
use Carbon\Carbon;
use App\Models\User;
use App\Module\Base;
use App\Module\Ihttp;
use App\Tasks\PushTask;
use App\Models\WebSocketDialog;
use App\Models\WorkflowProcMsg;
use App\Exceptions\ApiException;
use App\Models\WebSocketDialogMsg;
use Hhxsv5\LaravelS\Swoole\Task\Task;
/**
* @apiDefine workflow
@@ -47,6 +47,28 @@ class WorkflowController extends AbstractController
}
}
/**
* @api {get} api/workflow/user/department 02. 获取当前用户部门
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup workflow
* @apiName user__department
*
* @apiQuery {Number} id 流程ID
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function user__department()
{
// User::auth();
// $data['id'] = intval(Request::input('id'));
// $workflow = $this->getProcessById($data['id']);
// return Base::retSuccess('success', $workflow);
}
/**
* @api {post} api/workflow/procdef/all 02. 查询流程定义
*
@@ -211,7 +233,22 @@ class WorkflowController extends AbstractController
if($process['is_finished'] == true) {
$dialog = WebSocketDialog::checkUserDialog($botUser, $process['start_user_id']);
$this->workflowMsg('workflow_submitter', $dialog, $botUser, ['userid' => $data['userid']], $process, $pass);
}else if ($process['candidate']) {
// 下个审批人
$userid = explode(',', $process['candidate']);
$toUser = User::whereIn('userid', $userid)->get()->toArray();
foreach ($toUser as $val) {
if ($val['bot']) {
continue;
}
$dialog = WebSocketDialog::checkUserDialog($botUser, $val['userid']);
if (empty($dialog)) {
continue;
}
$this->workflowMsg('workflow_reviewer', $dialog, $botUser, $val, $process,'start');
}
}
// 抄送人
$notifier = $this->handleProcessNode($process, $task['step']);
if ($notifier && $pass == 'pass') {
@@ -686,6 +723,20 @@ class WorkflowController extends AbstractController
$proc_msg->userid = $toUser['userid'];
$proc_msg->save();
}
// 更新工作报告 未读数量
if($type == 'workflow_reviewer' && $toUser['userid']){
$params = [
'userid' => [ $toUser['userid'], User::auth()->userid() ],
'msg' => [
'type' => 'workflow',
'action' => 'backlog',
'userid' => $toUser['userid'],
]
];
Task::deliver(new PushTask($params, false));
}
return true;
}
@@ -710,6 +761,9 @@ class WorkflowController extends AbstractController
}
$val['node_user_list'][$k]['userimg'] = User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname);
}
}else if($val['aprover_id']){
$info = User::whereUserid($val['aprover_id'])->first();
$val['userimg'] = $info ? User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname) : '';
}
}
$info = User::whereUserid($res['start_user_id'])->first();