Files
fdesk/app/admin/service/InvRequisitionService.php
T
2026-02-10 13:57:52 +08:00

100 lines
3.3 KiB
PHP

<?php
namespace app\admin\service;
use app\common\validate\InvRequisitionValidate;
use app\common\traits\crud\CrudServiceTrait;
use app\common\model\InvRequisition;
use support\Request;
class InvRequisitionService
{
use CrudServiceTrait;
/**
* 指定当前要操作的模型
*/
protected string $modelClass = InvRequisition::class;
/**
* 验证器
*/
protected $validator = InvRequisitionValidate::class;
/**
* 获取验证器
*/
public function getValidator()
{
return new $this->validator;
}
/**
* 构造 CrudUtil 查询配置
*/
protected function buildQueryConfig(Request $request, string $scene = 'default'): array
{
$p = $request->all();
$config = [];
$config['model'] = $this->modelClass;
switch ($scene) {
case 'default':
//$config['where']['status'] = 1;
$config['order']['id'] = 'desc';
break;
case 'index':
if(isset($p['status']) && $p['status']){
$config['where']['status'] = $p['status'];
}
if (isset($p['applicant_id']) && $p['applicant_id'] == 'self') { //自己的领用申请
$config['where']['applicant_id'] = $request->user->uid;
} elseif (isset($p['applicant_id']) && $p['applicant_id']) { //指定人员的申请
$config['where']['applicant_id'] = $p['applicant_id'];
} else { //审批人对应的记录
$config['where']['approval.approver_id'] = $request->user->uid;
$config['where']['approval.action'] = 0;
}
if(isset($p['phase']) && $p['phase'] == 'approve'){//借用审批中
$config['where']['status'] = ['in',[10,11,13]];
}elseif(isset($p['phase']) && $p['phase'] == 'repaid'){//已全部归还
$config['where']['status'] = 17;
}elseif(isset($p['phase']) && $p['phase'] == 'unreturned'){ //未归还
$config['where']['status'] = ['in',[12,14,15,16,18]];
}
$config['order']['id'] = 'desc';
break;
case 'show':
$config['where']['id'] = $p['id'];
//$config['where']['status'] = 1;
break;
case 'store':
break;
case 'update':
$config['where']['id'] = $p['id'];
break;
case 'destroy':
$config['where']['id'] = $p['id'];
break;
}
return $config;
}
/**
* 审批
* @param Request $request
* @return mixed|string[]|null
*/
public function serviceApprove(Request $request)
{
$param = $request->all();
//$appro = new \app\common\utils\approval\service\ApprovalFlowService();
$appro = new \app\common\service\InvRequisitionApproveService();
//requisition_id:申请id
//action:审批动作:1通过 2驳回
//comment:审批意见
return $appro->approve($param['requisition_id'], $param['approve_id'], $request->user->uid, $param['action'], $param['comment'], $param['attachment']);
}
}