物品归还
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);
|
$created = $this->logicCreate($item);
|
||||||
}
|
}
|
||||||
$this->processRequisitionItemReturnAttachment($res, $attachment);
|
$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);
|
$this->postProcess('Store', $created);
|
||||||
return $res;
|
return $res;
|
||||||
});
|
});
|
||||||
@@ -406,6 +409,7 @@ class InvRequisitionItemReturnService
|
|||||||
// 全部非耗材都已归还
|
// 全部非耗材都已归还
|
||||||
$affected = InvRequisition::where('id', $requisitionId)->update([
|
$affected = InvRequisition::where('id', $requisitionId)->update([
|
||||||
'is_returned' => 1,
|
'is_returned' => 1,
|
||||||
|
'status' => 17,
|
||||||
'updated_at' => time(),
|
'updated_at' => time(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -413,6 +417,12 @@ class InvRequisitionItemReturnService
|
|||||||
if ($affected === 0) {
|
if ($affected === 0) {
|
||||||
throw new BusinessException('更新领用单状态失败,可能记录不存在');
|
throw new BusinessException('更新领用单状态失败,可能记录不存在');
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
// 非耗材未全部都已归还
|
||||||
|
$affected = InvRequisition::where('id', $requisitionId)->update([
|
||||||
|
'status' => 16,
|
||||||
|
'updated_at' => time(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 7. 返回处理结果(保持你原来的 postProcess 习惯)
|
// 7. 返回处理结果(保持你原来的 postProcess 习惯)
|
||||||
@@ -444,13 +454,13 @@ class InvRequisitionItemReturnService
|
|||||||
$config['where']['id'] = $p['requisition_item_return_id'];
|
$config['where']['id'] = $p['requisition_item_return_id'];
|
||||||
break;
|
break;
|
||||||
case 'index':
|
case 'index':
|
||||||
$config['where']['status'] = 1;
|
if(isset($p['status'])){
|
||||||
$config['order']['sort'] = 'desc';
|
$config['where']['status'] = $p['status'];
|
||||||
|
}
|
||||||
$config['order']['id'] = 'desc';
|
$config['order']['id'] = 'desc';
|
||||||
break;
|
break;
|
||||||
case 'show':
|
case 'show':
|
||||||
$config['where']['id'] = $p['id'];
|
$config['where']['id'] = $p['id'];
|
||||||
$config['where']['status'] = 1;
|
|
||||||
break;
|
break;
|
||||||
case 'store':
|
case 'store':
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ namespace app\common\service;
|
|||||||
use app\common\validate\InvRequisitionReturnValidate;
|
use app\common\validate\InvRequisitionReturnValidate;
|
||||||
use app\common\traits\crud\CrudServiceTrait;
|
use app\common\traits\crud\CrudServiceTrait;
|
||||||
use app\common\model\InvRequisitionReturn;
|
use app\common\model\InvRequisitionReturn;
|
||||||
|
use support\exception\BusinessException;
|
||||||
|
use support\Request;
|
||||||
|
|
||||||
class InvRequisitionReturnService
|
class InvRequisitionReturnService
|
||||||
{
|
{
|
||||||
@@ -28,4 +30,59 @@ class InvRequisitionReturnService
|
|||||||
{
|
{
|
||||||
return new $this->validator;
|
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';
|
$config['order']['id'] = 'desc';
|
||||||
break;
|
break;
|
||||||
case 'index':
|
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';
|
$config['order']['id'] = 'desc';
|
||||||
break;
|
break;
|
||||||
case 'show':
|
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();
|
$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;
|
namespace app\mobile\controller;
|
||||||
|
|
||||||
use app\common\controller\BaseController;
|
use app\common\controller\BaseController;
|
||||||
|
use app\common\model\InvRequisitionItem;
|
||||||
use app\common\traits\crud\CrudControllerTrait;
|
use app\common\traits\crud\CrudControllerTrait;
|
||||||
use app\common\service\InvRequisitionReturnService;
|
use app\common\service\InvRequisitionReturnService;
|
||||||
|
|
||||||
@@ -22,12 +23,15 @@ class InvRequisitionReturnController extends BaseController
|
|||||||
* @param array $data
|
* @param array $data
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
// protected function indexFormat($data)
|
protected function indexFormat($data)
|
||||||
// {
|
{
|
||||||
// if (isset($data['created_at']))
|
if (isset($data['id'])) {
|
||||||
// $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']);
|
$data['item'] = InvRequisitionItem::where('requisition_id', $data['id'])->get();
|
||||||
// if (isset($data['updated_at']))
|
}
|
||||||
// $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']);
|
if (isset($data['created_at']))
|
||||||
// return $data;
|
$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('/show', [app\admin\controller\InvRequisitionController::class, 'show']);
|
||||||
Route::any('/approve', [app\admin\controller\InvRequisitionController::class, 'approve']);
|
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('/item/preset', [app\mobile\controller\InvItemController::class, 'preset']);
|
||||||
|
|
||||||
// 物品领用申请
|
// 物品领用申请
|
||||||
Route::any('/requisition/list', [app\mobile\controller\InvRequisitionController::class, 'index']);
|
// Route::any('/requisition/list', [app\mobile\controller\InvRequisitionController::class, 'index']);
|
||||||
Route::any('/requisition/show', [app\mobile\controller\InvRequisitionController::class, 'show']);
|
// Route::any('/requisition/show', [app\mobile\controller\InvRequisitionController::class, 'show']);
|
||||||
Route::any('/requisition/apply', [app\mobile\controller\InvRequisitionController::class, 'apply']);
|
Route::any('/requisition/apply', [app\mobile\controller\InvRequisitionController::class, 'apply']);
|
||||||
Route::any('/requisition/update', [app\mobile\controller\InvRequisitionController::class, 'update']);
|
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::group('/requisition/return', function () {
|
||||||
Route::any('/requisition/item/return/update', [app\mobile\controller\InvRequisitionItemReturnController::class, 'update']);
|
Route::any('/store', [app\mobile\controller\InvRequisitionItemReturnController::class, 'store']);
|
||||||
Route::any('/requisition/item/return/confirm', [app\mobile\controller\InvRequisitionItemReturnController::class, 'returnConfirm']);
|
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