69 lines
2.6 KiB
PHP
69 lines
2.6 KiB
PHP
<?php
|
|
namespace app\adminapi\logic\oa;
|
|
|
|
use app\common\model\auth\Admin;
|
|
use app\common\model\dept\Dept;
|
|
use app\common\model\oa\Flow;
|
|
use app\common\model\oa\FlowApprove;
|
|
use app\common\logic\BaseLogic;
|
|
use app\common\model\oa\FlowRecord;
|
|
use app\common\model\oa\FlowStep;
|
|
|
|
|
|
/**
|
|
* 日常审批逻辑
|
|
* Class FlowApproveLogic
|
|
* @package app\adminapi\logic\oa
|
|
*/
|
|
class FlowApproveLogic extends BaseLogic
|
|
{
|
|
/**
|
|
* @notes 获取日常审批详情
|
|
* @param $params
|
|
* @return array
|
|
* @author likeadmin
|
|
* @date 2024/02/01 11:26
|
|
*/
|
|
public static function detail($params): array
|
|
{
|
|
$data = FlowApprove::field('id,title,flow_id,content_id,content_model,content_logic,create_user,check_status')->findOrEmpty($params['id']);
|
|
//获取审批内容信息
|
|
$content = $data['content_logic']::detail(['id'=>$data['content_id']]);
|
|
//获取创建人信息
|
|
$create_user = Admin::field('name,dept_id')->where('id',$data['create_user'])->findOrEmpty();
|
|
//获取审批流程信息
|
|
$flow = Flow::field('name,copy_uids')->where('id',$data['flow_id'])-> findOrEmpty();
|
|
//获取抄送人信息
|
|
$copy = Admin::where('id','in',$flow['copy_uids'])->column('name');
|
|
//获取审核步骤
|
|
$step = FlowStep::field('flow_step,flow_user')->where('approve_id',$data['id'])->order('sort asc')->select()->each(function($item)use($create_user){
|
|
$item['flow_step_text'] = $item->flow_step_text;
|
|
if($item['flow_step'] == 0){
|
|
$item['flow_step_text'] = $create_user['name'].'创建';
|
|
$item['flow_user'] = '';
|
|
}else if($item['flow_step'] == 1){
|
|
$item['flow_step_text'] = $item->flow_step_text;
|
|
$dept = Dept::field('leader')->where('id',$create_user['dept_id'])->findOrEmpty();
|
|
$flow_user = Admin::field('name')->where('id',$dept['leader'])->findOrEmpty();
|
|
$item['flow_user'] = $flow_user['name'];
|
|
}else{
|
|
$item['flow_step_text'] = $item->flow_step_text;
|
|
$flow_user = Admin::where('id','in',$item['flow_user'])->column('name');
|
|
$item['flow_user'] = implode(',',$flow_user);
|
|
}
|
|
})->toArray();
|
|
//获取审批记录
|
|
$record = FlowRecord::field('title,content,check_time,status')->where('approve_id',$data['id'])->select()->each(function($item){
|
|
$item['status_text'] = $item->status_text;
|
|
})->toArray();
|
|
$data['flow_name'] = $flow['name'];
|
|
$data['check_status_text'] = $data->check_status_text;
|
|
$data['create_user_name'] = $create_user['name'];
|
|
$data['copy_user'] = implode(',',$copy);
|
|
$data['content'] = $content;
|
|
$data['step'] = $step;
|
|
$data['record'] = $record;
|
|
unset($data['flow_id'],$data['content_id'],$data['content_model'],$data['content_logic']);
|
|
return $data->toArray();
|
|
}
|
|
} |