物品归还
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\common\controller\BaseController;
|
||||
use app\common\traits\crud\CrudControllerTrait;
|
||||
use app\common\service\InvRequisitionReturnService;
|
||||
use support\Request;
|
||||
|
||||
class InvRequisitionReturnController extends BaseController
|
||||
{
|
||||
use CrudControllerTrait;
|
||||
|
||||
protected $service;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->service = new InvRequisitionReturnService();
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 列表页数据格式化
|
||||
// *
|
||||
// * @param array $data
|
||||
// * @return array
|
||||
// */
|
||||
// protected function indexFormat($data)
|
||||
// {
|
||||
// if (isset($data['created_at']))
|
||||
// $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
|
||||
// if (isset($data['updated_at']))
|
||||
// $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
|
||||
// return $data;
|
||||
// }
|
||||
|
||||
public function returnConfirm(Request $request){
|
||||
try {
|
||||
// 处理申请逻辑
|
||||
$result = $this->service->serviceReturnConfirm($request);
|
||||
|
||||
return $this->success($result, '申请提交成功');
|
||||
} catch (\Throwable $e) {
|
||||
return $this->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,15 @@ class InvRequisitionService
|
||||
$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'];
|
||||
}
|
||||
$config['order']['id'] = 'desc';
|
||||
break;
|
||||
case 'show':
|
||||
|
||||
@@ -43,6 +43,25 @@ class InvRequisitionController extends BaseController
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列表
|
||||
*
|
||||
* @param Request $request 请求对象
|
||||
* @return mixed 返回分页数据及总数
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
try {
|
||||
$raw = $this->service->serviceList($request);
|
||||
$data = $this->transformData($raw, method_exists($this, 'indexFormat')
|
||||
? [$this, 'indexFormat']
|
||||
: null);
|
||||
return $this->success($data);
|
||||
} catch (\Throwable $e) {
|
||||
return $this->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表页数据格式化
|
||||
*
|
||||
|
||||
@@ -17,6 +17,25 @@ class InvRequisitionItemReturnController extends BaseController
|
||||
$this->service = new InvRequisitionItemReturnService();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列表
|
||||
*
|
||||
* @param Request $request 请求对象
|
||||
* @return mixed 返回分页数据及总数
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
try {
|
||||
$raw = $this->service->serviceList($request);
|
||||
$data = $this->transformData($raw, method_exists($this, 'indexFormat')
|
||||
? [$this, 'indexFormat']
|
||||
: null);
|
||||
return $this->success($data);
|
||||
} catch (\Throwable $e) {
|
||||
return $this->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表页数据格式化
|
||||
*
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace app\mobile\controller;
|
||||
|
||||
use app\common\controller\BaseController;
|
||||
use app\common\model\InvRequisitionItem;
|
||||
use app\common\traits\crud\CrudControllerTrait;
|
||||
use app\common\service\InvRequisitionReturnService;
|
||||
|
||||
@@ -22,12 +23,15 @@ class InvRequisitionReturnController extends BaseController
|
||||
* @param array $data
|
||||
* @return array
|
||||
*/
|
||||
// protected function indexFormat($data)
|
||||
// {
|
||||
// if (isset($data['created_at']))
|
||||
// $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
|
||||
// if (isset($data['updated_at']))
|
||||
// $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
|
||||
// return $data;
|
||||
// }
|
||||
protected function indexFormat($data)
|
||||
{
|
||||
if (isset($data['id'])) {
|
||||
$data['item'] = InvRequisitionItem::where('requisition_id', $data['id'])->get();
|
||||
}
|
||||
if (isset($data['created_at']))
|
||||
$data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
|
||||
if (isset($data['updated_at']))
|
||||
$data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
+18
-5
@@ -520,6 +520,9 @@ Route::group('/admin', function () {
|
||||
Route::any('/show', [app\admin\controller\InvRequisitionController::class, 'show']);
|
||||
Route::any('/approve', [app\admin\controller\InvRequisitionController::class, 'approve']);
|
||||
});
|
||||
// 物品归还
|
||||
Route::any('/requisition/return', [app\admin\controller\InvRequisitionReturnController::class, 'store']);
|
||||
// Route::any('/requisition/return', [app\admin\controller\InvRequisitionReturnController::class, 'returnConfirm']);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -652,14 +655,24 @@ Route::group('/mobile', function () {
|
||||
Route::any('/item/preset', [app\mobile\controller\InvItemController::class, 'preset']);
|
||||
|
||||
// 物品领用申请
|
||||
Route::any('/requisition/list', [app\mobile\controller\InvRequisitionController::class, 'index']);
|
||||
Route::any('/requisition/show', [app\mobile\controller\InvRequisitionController::class, 'show']);
|
||||
// Route::any('/requisition/list', [app\mobile\controller\InvRequisitionController::class, 'index']);
|
||||
// Route::any('/requisition/show', [app\mobile\controller\InvRequisitionController::class, 'show']);
|
||||
Route::any('/requisition/apply', [app\mobile\controller\InvRequisitionController::class, 'apply']);
|
||||
Route::any('/requisition/update', [app\mobile\controller\InvRequisitionController::class, 'update']);
|
||||
|
||||
|
||||
Route::group('/requisition', function () {
|
||||
Route::any('/list', [app\mobile\controller\InvRequisitionController::class, 'index']);
|
||||
Route::any('/show', [app\mobile\controller\InvRequisitionController::class, 'show']);
|
||||
// Route::any('/approve', [app\mobile\controller\InvRequisitionController::class, 'approve']);
|
||||
});
|
||||
|
||||
// 物品归还
|
||||
Route::any('/requisition/item/return', [app\mobile\controller\InvRequisitionItemReturnController::class, 'store']);
|
||||
Route::any('/requisition/item/return/update', [app\mobile\controller\InvRequisitionItemReturnController::class, 'update']);
|
||||
Route::any('/requisition/item/return/confirm', [app\mobile\controller\InvRequisitionItemReturnController::class, 'returnConfirm']);
|
||||
Route::group('/requisition/return', function () {
|
||||
Route::any('/store', [app\mobile\controller\InvRequisitionItemReturnController::class, 'store']);
|
||||
Route::any('/update', [app\mobile\controller\InvRequisitionItemReturnController::class, 'update']);
|
||||
Route::any('/list', [app\mobile\controller\InvRequisitionItemReturnController::class, 'index']);
|
||||
Route::any('/confirm', [app\mobile\controller\InvRequisitionItemReturnController::class, 'returnConfirm']);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user