diff --git a/app/adminapi/controller/contract/SubcontractingContractNegotiationController.php b/app/adminapi/controller/contract/SubcontractingContractNegotiationController.php index 036b9ac07..a34f09e61 100644 --- a/app/adminapi/controller/contract/SubcontractingContractNegotiationController.php +++ b/app/adminapi/controller/contract/SubcontractingContractNegotiationController.php @@ -11,118 +11,118 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - - -namespace app\adminapi\controller\contract; - - -use app\adminapi\controller\BaseAdminController; -use app\adminapi\lists\contract\SubcontractingContractNegotiationLists; -use app\adminapi\logic\contract\SubcontractingContractNegotiationLogic; -use app\adminapi\validate\contract\SubcontractingContractNegotiationValidate; -use app\common\model\oa\Flow; -use app\common\model\oa\FlowType; - - -/** - * SubcontractingContractNegotiation控制器 - * Class SubcontractingContractNegotiationController - * @package app\adminapi\controller\contract - */ -class SubcontractingContractNegotiationController extends BaseAdminController -{ - - - /** - * @notes 获取列表 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public function lists() - { - return $this->dataLists(new SubcontractingContractNegotiationLists()); - } - - - /** - * @notes 添加 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public function add() - { - $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('add'); - $result = SubcontractingContractNegotiationLogic::add($params,$this->adminId); - if (true === $result) { - return $this->success('添加成功', [], 1, 1); - } - return $this->fail(SubcontractingContractNegotiationLogic::getError()); - } - - - /** - * @notes 编辑 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public function edit() - { - $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('edit'); - $result = SubcontractingContractNegotiationLogic::edit($params); - if (true === $result) { - return $this->success('编辑成功', [], 1, 1); - } - return $this->fail(SubcontractingContractNegotiationLogic::getError()); - } - - - /** - * @notes 删除 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public function delete() - { - $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('delete'); - SubcontractingContractNegotiationLogic::delete($params); - return $this->success('删除成功', [], 1, 1); - } - - - /** - * @notes 获取详情 - * @return \think\response\Json - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public function detail() - { - $params = (new SubcontractingContractNegotiationValidate())->goCheck('detail'); - $result = SubcontractingContractNegotiationLogic::detail($params); - return $this->data($result); - } - public function flows(): \think\response\Json - { - $flow_type = FlowType::where('type',2)->where('name','fbhtqs')->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 + namespace app\adminapi\controller\contract; + + + use app\adminapi\controller\BaseAdminController; + use app\adminapi\lists\contract\SubcontractingContractNegotiationLists; + use app\adminapi\logic\contract\SubcontractingContractNegotiationLogic; + use app\adminapi\validate\contract\SubcontractingContractNegotiationValidate; + use app\common\model\oa\Flow; + use app\common\model\oa\FlowType; + + + /** + * SubcontractingContractNegotiation控制器 + * Class SubcontractingContractNegotiationController + * @package app\adminapi\controller\contract + */ + class SubcontractingContractNegotiationController extends BaseAdminController { - $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('approve'); - $result = SubcontractingContractNegotiationLogic::approve($params,$this->adminId); - if (true === $result) { - return $this->success('提交审核信息成功', [], 1, 1); + + + /** + * @notes 获取列表 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public function lists() + { + return $this->dataLists(new SubcontractingContractNegotiationLists()); } - return $this->fail(SubcontractingContractNegotiationLogic::getError()); - } - - -} \ No newline at end of file + + + /** + * @notes 添加 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public function add() + { + $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('add'); + $result = SubcontractingContractNegotiationLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(SubcontractingContractNegotiationLogic::getError()); + } + + + /** + * @notes 编辑 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public function edit() + { + $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('edit'); + $result = SubcontractingContractNegotiationLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(SubcontractingContractNegotiationLogic::getError()); + } + + + /** + * @notes 删除 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public function delete() + { + $params = (new SubcontractingContractNegotiationValidate())->post()->goCheck('delete'); + SubcontractingContractNegotiationLogic::delete($params); + return $this->success('删除成功', [], 1, 1); + } + + + /** + * @notes 获取详情 + * @return \think\response\Json + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public function detail() + { + $params = (new SubcontractingContractNegotiationValidate())->goCheck('detail'); + $result = SubcontractingContractNegotiationLogic::detail($params); + return $this->data($result); + } + + public function flows(): \think\response\Json + { + $flow_type = FlowType::where('type', 2)->where('name', 'fbhtqs')->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 SubcontractingContractNegotiationValidate())->post()->goCheck('approve'); + $result = SubcontractingContractNegotiationLogic::approve($params, $this->adminId); + if (true === $result) { + return $this->success('提交审核信息成功', [], 1, 1); + } + return $this->fail(SubcontractingContractNegotiationLogic::getError()); + } + + + } \ No newline at end of file diff --git a/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php b/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php index 0bfb28918..6807eb6d4 100644 --- a/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php +++ b/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php @@ -11,168 +11,169 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\contract; - - -use app\common\model\contract\SubcontractingContract; -use app\common\model\contract\SubcontractingContractNegotiation; -use app\common\logic\BaseLogic; -use app\common\model\oa\FlowApprove; -use app\common\model\project\Project; -use app\common\model\supplier\Supplier; -use think\facade\Db; - - -/** - * SubcontractingContractNegotiation逻辑 - * Class SubcontractingContractNegotiationLogic - * @package app\adminapi\logic\contract - */ -class SubcontractingContractNegotiationLogic extends BaseLogic -{ - - /** - * @notes 添加 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public static function add(array $params,$admin_id): bool - { - $subcontracting_contract = SubcontractingContract::field('project_id')->where('id',$params['subcontracting_contract_id'])->findOrEmpty(); - Db::startTrans(); - try { - SubcontractingContractNegotiation::create([ - 'project_id' => $subcontracting_contract['project_id'], - 'subcontracting_contract_id' => $params['subcontracting_contract_id'], - 'sign_date' => strtotime($params['sign_date']), - 'negotiation_name' => $params['negotiation_name'], - 'negotiation_no' => data_unique_code('QS-FBHT'), - 'negotiation_amount' => $params['negotiation_amount'], - 'negotiation_type' => $params['negotiation_type'], - 'warranty_amount' => $params['warranty_amount'] ?? 0, - 'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0, - 'negotiation_content' => $params['negotiation_content'] ?? '', - 'negotiation_detail' => $params['negotiation_detail'] ?? '', - 'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null, - 'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null, - ]); - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 编辑 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public static function edit(array $params): bool - { - $subcontracting_contract = SubcontractingContract::field('project_id')->where('id',$params['subcontracting_contract_id'])->findOrEmpty(); - Db::startTrans(); - try { - SubcontractingContractNegotiation::where('id', $params['id'])->update([ - 'project_id' => $subcontracting_contract['project_id'], - 'subcontracting_contract_id' => $params['subcontracting_contract_id'], - 'sign_date' => strtotime($params['sign_date']), - 'negotiation_name' => $params['negotiation_name'], - 'negotiation_amount' => $params['negotiation_amount'], - 'negotiation_type' => $params['negotiation_type'], - 'warranty_amount' => $params['warranty_amount'] ?? 0, - 'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0, - 'negotiation_content' => $params['negotiation_content'] ?? '', - 'negotiation_detail' => $params['negotiation_detail'] ?? '', - 'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null, - 'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null, - 'update_time' => time(), - ]); - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 删除 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public static function delete(array $params): bool - { - return SubcontractingContractNegotiation::destroy($params['id']); - } - - - /** - * @notes 获取详情 - * @param $params - * @return array - * @author likeadmin - * @date 2023/12/12 17:21 - */ - public static function detail($params): array - { - $data = SubcontractingContractNegotiation::field('id,project_id,subcontracting_contract_id,negotiation_name,negotiation_no,negotiation_amount,negotiation_type,sign_date,warranty_amount,warranty_expire_date,negotiation_content,negotiation_detail,negotiation_quotation,negotiation_basis,approve_id') - ->findOrEmpty($params['id']); - $subcontracting_contract = SubcontractingContract::field('supplier_id,contract_no,contract_name')->where('id',$data['subcontracting_contract_id'])->findOrEmpty(); - $project = Project::field('name,project_code')->where('id',$data['project_id'])->findOrEmpty(); - $supplier = Supplier::field('supplier_name,supplier_code')->where('id',$subcontracting_contract['supplier_id'])->findOrEmpty(); - $data['contract_name'] = $subcontracting_contract['contract_name']; - $data['contract_no'] = $subcontracting_contract['contract_no']; - $data['supplier_name'] = $supplier['supplier_name']; - $data['supplier_code'] = $supplier['supplier_code']; - $data['project_code'] = $project['project_code']; - $data['project_name'] = $project['name']; - $data['negotiation_type_text'] = $data->negotiation_type_text; - $approve_data = FlowApprove::where('id',$data['approve_id'])->findOrEmpty(); - $data['approve_check_status'] = $approve_data['check_status']; - return $data->toArray(); - } - public static function approve($params,$admin_id): bool{ - $data = SubcontractingContractNegotiation::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\contract\SubcontractingContractNegotiation', - $params['path'], - $params['flow_id'], - $admin_id - ); - if($res){ - SubcontractingContractNegotiation::where('id',$params['id'])->update([ - 'approve_id' => $res, + namespace app\adminapi\logic\contract; + + + use app\common\logic\BaseLogic; + use app\common\model\contract\SubcontractingContract; + use app\common\model\contract\SubcontractingContractNegotiation; + use app\common\model\oa\FlowApprove; + use app\common\model\project\Project; + use app\common\model\supplier\Supplier; + use think\facade\Db; + + + /** + * SubcontractingContractNegotiation逻辑 + * Class SubcontractingContractNegotiationLogic + * @package app\adminapi\logic\contract + */ + class SubcontractingContractNegotiationLogic extends BaseLogic + { + + /** + * @notes 添加 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public static function add(array $params): bool + { + $subcontracting_contract = SubcontractingContract::field('project_id')->where('id', $params['subcontracting_contract_id'])->findOrEmpty(); + Db::startTrans(); + try { + SubcontractingContractNegotiation::create([ + 'project_id' => $subcontracting_contract['project_id'], + 'subcontracting_contract_id' => $params['subcontracting_contract_id'], + 'sign_date' => strtotime($params['sign_date']), + 'negotiation_name' => $params['negotiation_name'], + 'negotiation_no' => data_unique_code('QS-FBHT'), + 'negotiation_amount' => $params['negotiation_amount'], + 'negotiation_type' => $params['negotiation_type'], + 'warranty_amount' => $params['warranty_amount'] ?? 0, + 'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0, + 'negotiation_content' => $params['negotiation_content'] ?? '', + 'negotiation_detail' => $params['negotiation_detail'] ?? '', + 'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null, + 'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null, ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; } - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; } - } -} \ No newline at end of file + + + /** + * @notes 编辑 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public static function edit(array $params): bool + { + $subcontracting_contract = SubcontractingContract::field('project_id')->where('id', $params['subcontracting_contract_id'])->findOrEmpty(); + Db::startTrans(); + try { + SubcontractingContractNegotiation::where('id', $params['id'])->update([ + 'project_id' => $subcontracting_contract['project_id'], + 'subcontracting_contract_id' => $params['subcontracting_contract_id'], + 'sign_date' => strtotime($params['sign_date']), + 'negotiation_name' => $params['negotiation_name'], + 'negotiation_amount' => $params['negotiation_amount'], + 'negotiation_type' => $params['negotiation_type'], + 'warranty_amount' => $params['warranty_amount'] ?? 0, + 'warranty_expire_date' => !empty($params['warranty_expire_date']) ? strtotime($params['warranty_expire_date']) : 0, + 'negotiation_content' => $params['negotiation_content'] ?? '', + 'negotiation_detail' => $params['negotiation_detail'] ?? '', + 'negotiation_quotation' => $params['negotiation_quotation'] ? json_encode($params['negotiation_quotation']) : null, + 'negotiation_basis' => $params['negotiation_basis'] ? json_encode($params['negotiation_basis']) : null, + 'update_time' => time(), + ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 删除 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public static function delete(array $params): bool + { + return SubcontractingContractNegotiation::destroy($params['id']); + } + + + /** + * @notes 获取详情 + * @param $params + * @return array + * @author likeadmin + * @date 2023/12/12 17:21 + */ + public static function detail($params): array + { + $data = SubcontractingContractNegotiation::field('id,project_id,subcontracting_contract_id,negotiation_name,negotiation_no,negotiation_amount,negotiation_type,sign_date,warranty_amount,warranty_expire_date,negotiation_content,negotiation_detail,negotiation_quotation,negotiation_basis,approve_id') + ->findOrEmpty($params['id']); + $subcontracting_contract = SubcontractingContract::field('supplier_id,contract_no,contract_name')->where('id', $data['subcontracting_contract_id'])->findOrEmpty(); + $project = Project::field('name,project_code')->where('id', $data['project_id'])->findOrEmpty(); + $supplier = Supplier::field('supplier_name,supplier_code')->where('id', $subcontracting_contract['supplier_id'])->findOrEmpty(); + $data['contract_name'] = $subcontracting_contract['contract_name']; + $data['contract_no'] = $subcontracting_contract['contract_no']; + $data['supplier_name'] = $supplier['supplier_name']; + $data['supplier_code'] = $supplier['supplier_code']; + $data['project_code'] = $project['project_code']; + $data['project_name'] = $project['name']; + $data['negotiation_type_text'] = $data->negotiation_type_text; + $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); + $data['approve_check_status'] = $approve_data['check_status']; + return $data->toArray(); + } + + public static function approve($params, $admin_id): bool + { + $data = SubcontractingContractNegotiation::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\contract\SubcontractingContractNegotiation', + $params['path'], + $params['flow_id'], + $admin_id + ); + if ($res) { + SubcontractingContractNegotiation::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