物品归还

This commit is contained in:
2026-02-04 09:28:54 +08:00
parent 6496a40679
commit a16429ff3a
8 changed files with 192 additions and 17 deletions
@@ -178,6 +178,9 @@ class InvRequisitionItemReturnService
$created = $this->logicCreate($item);
}
$this->processRequisitionItemReturnAttachment($res, $attachment);
InvRequisition::where('id',$request->post('requisition_id'))->update(
['status' => 14] //审批状态:10默认、11审批中、12已审批(待归还)、13拒绝、14申请归还、15归还审核中、16部分归还、17已全部归还、18已拒绝
);
$this->postProcess('Store', $created);
return $res;
});
@@ -406,6 +409,7 @@ class InvRequisitionItemReturnService
// 全部非耗材都已归还
$affected = InvRequisition::where('id', $requisitionId)->update([
'is_returned' => 1,
'status' => 17,
'updated_at' => time(),
]);
@@ -413,6 +417,12 @@ class InvRequisitionItemReturnService
if ($affected === 0) {
throw new BusinessException('更新领用单状态失败,可能记录不存在');
}
}else{
// 非耗材未全部都已归还
$affected = InvRequisition::where('id', $requisitionId)->update([
'status' => 16,
'updated_at' => time(),
]);
}
// 7. 返回处理结果(保持你原来的 postProcess 习惯)
@@ -444,13 +454,13 @@ class InvRequisitionItemReturnService
$config['where']['id'] = $p['requisition_item_return_id'];
break;
case 'index':
$config['where']['status'] = 1;
$config['order']['sort'] = 'desc';
if(isset($p['status'])){
$config['where']['status'] = $p['status'];
}
$config['order']['id'] = 'desc';
break;
case 'show':
$config['where']['id'] = $p['id'];
$config['where']['status'] = 1;
break;
case 'store':
break;
@@ -5,6 +5,8 @@ namespace app\common\service;
use app\common\validate\InvRequisitionReturnValidate;
use app\common\traits\crud\CrudServiceTrait;
use app\common\model\InvRequisitionReturn;
use support\exception\BusinessException;
use support\Request;
class InvRequisitionReturnService
{
@@ -28,4 +30,59 @@ class InvRequisitionReturnService
{
return new $this->validator;
}
public function serviceReturnConfirm(Request$request)
{
$status = $request->post('status');
if(in_array($status,[1,2])){
throw new BusinessException("状态不正确");
}
$requisitionReturn = InvRequisitionReturn::where(['id' => $request['id']])->first();
if (!$requisitionReturn && $requisitionReturn->handler_id == $request->user->uid) {
$requisitionReturn->status = $status;
return $requisitionReturn->save();
}else{
throw new BusinessException("审核示例不正确或非物品管理员");
}
}
/**
* 构建查询配置
*
* @param Request $request
* @param string $scene
* @return array
*/
protected function buildQueryConfig(Request $request, string $scene = 'default'): array
{
$p = $request->all();
$config = [];
$config['model'] = $this->modelClass;
switch ($scene) {
case 'returnConfirm':
$config['where']['id'] = $p['requisition_item_return_id'];
break;
case 'index':
if(isset($p['status'])){
$config['where']['status'] = $p['status'];
}
$config['order']['id'] = 'desc';
break;
case 'show':
$config['where']['id'] = $p['id'];
break;
case 'store':
break;
case 'update':
$config['where']['id'] = $p['id'];
break;
case 'destroy':
$config['where']['id'] = $p['id'];
break;
}
return $config;
}
}
+9 -1
View File
@@ -52,7 +52,15 @@ class InvRequisitionService
$config['order']['id'] = 'desc';
break;
case 'index':
$config['where']['applicant_id'] = $request->user->uid;
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'];
}
$config['order']['id'] = 'desc';
break;
case 'show':