diff --git a/app/adminapi/controller/bid/BidBiddingDecisionController.php b/app/adminapi/controller/bid/BidBiddingDecisionController.php index 7d51bd94d..0ec5116f0 100644 --- a/app/adminapi/controller/bid/BidBiddingDecisionController.php +++ b/app/adminapi/controller/bid/BidBiddingDecisionController.php @@ -20,6 +20,8 @@ use app\adminapi\controller\BaseAdminController; use app\adminapi\lists\bid\BidBiddingDecisionLists; use app\adminapi\logic\bid\BidBiddingDecisionLogic; use app\adminapi\validate\bid\BidBiddingDecisionValidate; +use app\common\model\oa\Flow; +use app\common\model\oa\FlowType; /** @@ -72,6 +74,25 @@ class BidBiddingDecisionController extends BaseAdminController $result = BidBiddingDecisionLogic::detail($params); return $this->data($result); } + + //获取审批流程列表 + public function flows(): \think\response\Json + { + $flow_type = FlowType::where('type',1)->where('name','tbjc')->findOrEmpty(); + $data = Flow::field('id,name')->where('flow_cate',$flow_type['id'])->where('status',2)->select(); + return $this->success('请求成功',$data->toArray()); + } + + //添加审批 + public function approve(): \think\response\Json + { + $params = (new BidBiddingDecisionValidate())->post()->goCheck('approve'); + $result = BidBiddingDecisionLogic::approve($params,$this->adminId); + if (true === $result) { + return $this->success('提交审核信息成功', [], 1, 1); + } + return $this->fail(BidBiddingDecisionLogic::getError()); + } } \ No newline at end of file diff --git a/app/adminapi/logic/bid/BidBiddingDecisionLogic.php b/app/adminapi/logic/bid/BidBiddingDecisionLogic.php index 4cce28b48..7d934ab8f 100644 --- a/app/adminapi/logic/bid/BidBiddingDecisionLogic.php +++ b/app/adminapi/logic/bid/BidBiddingDecisionLogic.php @@ -18,6 +18,7 @@ namespace app\adminapi\logic\bid; use app\common\model\bid\BidBiddingDecision; use app\common\model\custom\Custom; use app\common\logic\BaseLogic; +use app\common\model\oa\FlowApprove; use app\common\model\project\Project; use think\facade\Db; @@ -146,7 +147,40 @@ class BidBiddingDecisionLogic extends BaseLogic $data['is_margin'] = $data->is_margin_text; $data['is_internal_resources'] = $data->is_internal_resources_text; $data['project_assurance'] = $data->project_assurance_text; + $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); + $data['approve_check_status'] = $approve_data['check_status']; unset($data['org_id'],$data['dept_id'],$data['project_id'],$data['delete_time']); return $data->toArray(); } + + public static function approve($params,$admin_id): bool{ + $data = BidBiddingDecision::where('id',$params['id'])->findOrEmpty(); + $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); + if(!empty($data['approve_id']) && $approve_data['check_status'] != 3){ + self::setError('当前内容存在审核信息,请勿重复提交'); + return false; + } + Db::startTrans(); + try { + $res = addApprove( + '投标决策', + $params['id'], + 'app\common\model\bid\BidBiddingDecision', + $params['path'], + $params['flow_id'], + $admin_id + ); + if($res){ + BidBiddingDecision::where('id',$params['id'])->update([ + 'approve_id' => $res, + ]); + } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } } \ No newline at end of file diff --git a/app/adminapi/validate/bid/BidBiddingDecisionValidate.php b/app/adminapi/validate/bid/BidBiddingDecisionValidate.php index 6efa2964d..e2419bccc 100644 --- a/app/adminapi/validate/bid/BidBiddingDecisionValidate.php +++ b/app/adminapi/validate/bid/BidBiddingDecisionValidate.php @@ -14,6 +14,7 @@ namespace app\adminapi\validate\bid; +use app\common\model\bid\BidBiddingDecision; use app\common\model\dict\DictData; use app\common\model\project\Project; use app\common\validate\BaseValidate; @@ -32,7 +33,7 @@ class BidBiddingDecisionValidate extends BaseValidate * @var string[] */ protected $rule = [ - 'id' => 'require', + 'id' => 'require|checkData', 'project_id' => 'require|checkProject', 'project_estimation' => 'require|float|egt:0', 'bidding_project_fund_source' => 'checkBiddingProjectFundSource', @@ -44,7 +45,9 @@ class BidBiddingDecisionValidate extends BaseValidate 'margin_amount_return_date' => 'dateFormat:Y-m-d', 'is_internal_resources' => 'in:1,2', 'project_assurance' => 'checkProjectAssurance', - 'annex' => 'checkAnnex' + 'annex' => 'checkAnnex', + 'flow_id' => 'require|checkFlow', + 'path' => 'require', ]; protected $message = [ @@ -73,7 +76,7 @@ class BidBiddingDecisionValidate extends BaseValidate */ public function sceneAdd() { - return $this->remove('id', true); + return $this->remove('id', true)->remove('flow_id',true)->remove('path',true); } @@ -84,7 +87,9 @@ class BidBiddingDecisionValidate extends BaseValidate * @date 2023/11/27 18:14 */ public function sceneEdit() - {} + { + return $this->remove('flow_id',true)->remove('path',true); + } /** @@ -110,6 +115,20 @@ class BidBiddingDecisionValidate extends BaseValidate return $this->only(['id']); } + public function sceneApprove() + { + return $this->only(['id','flow_id','path']); + } + + public function checkData($value): bool|string + { + $data = BidBiddingDecision::where('id',$value)->findOrEmpty(); + if($data->isEmpty()){ + return '数据不存在'; + } + return true; + } + public function checkProject($value): bool|string { $project = Project::where('id',$value)->findOrEmpty(); diff --git a/app/adminapi/validate/bid/BidDocumentExaminationValidate.php b/app/adminapi/validate/bid/BidDocumentExaminationValidate.php index 0b230d98c..8d6abf4c9 100644 --- a/app/adminapi/validate/bid/BidDocumentExaminationValidate.php +++ b/app/adminapi/validate/bid/BidDocumentExaminationValidate.php @@ -49,8 +49,6 @@ class BidDocumentExaminationValidate extends BaseValidate protected $message = [ 'id.require' => '缺少必要参数', 'buy_bidding_document_id.require' => '请选择标书编号', - 'flow_id.require' => '审批流程', - 'path.require' => '前台路径', ];