From 6347c04b782402410af44c636cbf90ced31ff657 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Mon, 27 May 2024 11:05:08 +0800 Subject: [PATCH] update --- .../works/bgsp/OaApproveController.php | 2 +- .../works/finance/ExpenseController.php | 3 +- .../works/finance/ExpenseValidate.php | 92 +++++++++++++++++-- 3 files changed, 88 insertions(+), 9 deletions(-) diff --git a/app/adminapi/controller/works/bgsp/OaApproveController.php b/app/adminapi/controller/works/bgsp/OaApproveController.php index d24052bac..0637f813f 100644 --- a/app/adminapi/controller/works/bgsp/OaApproveController.php +++ b/app/adminapi/controller/works/bgsp/OaApproveController.php @@ -72,7 +72,7 @@ }; return $data; })->toArray(); - $step = Db::name('oa_flow_step')->field('id,action_id,flow_uids')->where('action_id',$params['id'])->order('sort asc')->select()->toArray(); + $step = Db::name('oa_flow_step')->field('id,action_id,flow_uids,flow_type')->where('action_id',$params['id'])->order('sort asc')->select()->toArray(); foreach ($step as $key => &$val) { $user_id_info = Admin::field('id,name')->where('id','in',$val['flow_uids'])->select()->toArray(); foreach ($user_id_info as $k => &$v) { diff --git a/app/adminapi/controller/works/finance/ExpenseController.php b/app/adminapi/controller/works/finance/ExpenseController.php index 831af54f9..31e976650 100644 --- a/app/adminapi/controller/works/finance/ExpenseController.php +++ b/app/adminapi/controller/works/finance/ExpenseController.php @@ -3,10 +3,11 @@ namespace app\adminapi\controller\works\finance; use app\adminapi\controller\BaseAdminController; + use app\adminapi\validate\works\finance\ExpenseValidate; class ExpenseController extends BaseAdminController { public function add(){ - $params = $this->request->post(['code','income_month','expense_time','flow_id','check_admin_ids','copy_uids','annex','detail']); + $params = (new ExpenseValidate())->post()->goCheck('add'); } } \ No newline at end of file diff --git a/app/adminapi/validate/works/finance/ExpenseValidate.php b/app/adminapi/validate/works/finance/ExpenseValidate.php index 0f2b7abf5..ce3553aef 100644 --- a/app/adminapi/validate/works/finance/ExpenseValidate.php +++ b/app/adminapi/validate/works/finance/ExpenseValidate.php @@ -2,6 +2,7 @@ namespace app\adminapi\validate\works\finance; + use app\common\model\works\bgsp\OaFlow; use app\common\validate\BaseValidate; class ExpenseValidate extends BaseValidate @@ -22,12 +23,89 @@ * @var string[] */ protected $field = [ - 'id' => 'require', - 'code' => 'require', - 'income_month' => 'require|dateFormat:Y-m', - 'expense_time' => 'require|dateFormat:Y-m-d', - 'flow_id' => 'require|checkFlow', - 'annex' => 'checkAnnex', - 'detail' => 'require|checkDetail', + 'id' => 'id', + 'code' => '报销编码', + 'income_month' => '入账月份', + 'expense_time' => '原始单据日期', + 'flow_id' => '审批流程', + 'annex' => '附件', + 'detail' => '报销选项', ]; + + /** + * @notes 添加场景 + * @return ExpenseValidate + * @author likeadmin + * @date 2024/05/24 14:16 + */ + public function sceneAdd() + { + return $this->only(['code','income_month','expense_time','flow_id','annex','detail','check_admin_ids','copy_uids']); + } + + + /** + * @notes 编辑场景 + * @return ExpenseValidate + * @author likeadmin + * @date 2024/05/24 14:16 + */ + public function sceneEdit() + { + return $this->only(['id','code','income_month','expense_time','flow_id','annex','detail','check_admin_ids','copy_uids']); + } + + + /** + * @notes 删除场景 + * @return ExpenseValidate + * @author likeadmin + * @date 2024/05/24 14:16 + */ + public function sceneDelete() + { + return $this->only(['id']); + } + + + /** + * @notes 详情场景 + * @return ExpenseValidate + * @author likeadmin + * @date 2024/05/24 14:16 + */ + public function sceneDetail() + { + return $this->only(['id']); + } + + public function checkFlow($value): bool|string { + $data = OaFlow::where('id',$value)->findOrEmpty(); + if($data->isEmpty()){ + return '审批流程信息不存在'; + } + if($data['type'] != 5){ + return '当前审批流信息不属于报销审批类型'; + } + return true; + } + + public function checkDetail($value): bool|string + { + if(!is_array($value)){ + return '报销选项数据格式错误'; + } + foreach($value as $k=>$v){ + if(empty($v['amount'])){ + return '报销选项第'.($k+1).'行报销金额为空'; + } + if(empty($v['cate_id'])){ + return '报销选项第'.($k+1).'行报销项目为空'; + } + if(!in_array($v['cate_id'],[1,2,3,4,5,6])){ + return '报销选项第'.($k+1).'行报销项目数据值错误'; + } + } + return true; + } } \ No newline at end of file