From e65b6121405dd91607b1b76b354914ac4d8be836 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Sat, 23 Mar 2024 15:30:03 +0800 Subject: [PATCH] update --- .../ProjectManagerAppointmentLogic.php | 262 +++++++++--------- .../ProjectManagerAppointmentValidate.php | 29 -- .../project/ProjectManagerAppointment.php | 64 ++--- 3 files changed, 160 insertions(+), 195 deletions(-) diff --git a/app/adminapi/logic/project/ProjectManagerAppointmentLogic.php b/app/adminapi/logic/project/ProjectManagerAppointmentLogic.php index 5e8c25e21..0a5a29120 100644 --- a/app/adminapi/logic/project/ProjectManagerAppointmentLogic.php +++ b/app/adminapi/logic/project/ProjectManagerAppointmentLogic.php @@ -11,135 +11,133 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\adminapi\logic\project; - - -use app\common\model\auth\Admin; -use app\common\model\contract\Contract; -use app\common\model\custom\Custom; -use app\common\model\project\Project; -use app\common\model\project\ProjectManagerAppointment; -use app\common\logic\BaseLogic; -use app\common\model\project\ProjectTypeSet; -use think\facade\Db; - - -/** - * 项目经理委任逻辑 - * Class ProjectManagerAppointmentLogic - * @package app\adminapi\logic\project - */ -class ProjectManagerAppointmentLogic extends BaseLogic -{ - - - /** - * @notes 添加项目经理委任 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/12/15 15:22 - */ - public static function add(array $params): bool - { - Db::startTrans(); - try { - ProjectManagerAppointment::create([ - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'project_id' => $params['project_id'], - 'contract_id' => $params['contract_id'], - 'project_type_id' => $params['project_type_id'], - 'project_manager' => $params['project_manager'], - 'amount' => $params['amount'], - 'project_approval_date' => strtotime($params['project_approval_date']), - 'start_date' => strtotime($params['start_date']), - 'delivery_date' => strtotime($params['delivery_date']), - 'remark' => $params['remark'], - 'annex' => $params['annex']? json_encode($params['annex']) : null, - ]); - Project::where('id',$params['project_id'])->update([ - 'status' => 4, - '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/15 15:22 - */ - public static function edit(array $params): bool - { - Db::startTrans(); - try { - ProjectManagerAppointment::where('id', $params['id'])->update([ - 'project_id' => $params['project_id'], - 'contract_id' => $params['contract_id'], - 'project_type_id' => $params['project_type_id'], - 'project_manager' => $params['project_manager'], - 'amount' => $params['amount'], - 'project_approval_date' => strtotime($params['project_approval_date']), - 'start_date' => strtotime($params['start_date']), - 'delivery_date' => strtotime($params['delivery_date']), - 'remark' => $params['remark'], - 'annex' => $params['annex']? json_encode($params['annex']) : 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/15 15:22 - */ - public static function delete(array $params): bool - { - return ProjectManagerAppointment::destroy($params['id']); - } - - - /** - * @notes 获取项目经理委任详情 - * @param $params - * @return array - * @author likeadmin - * @date 2023/12/15 15:22 - */ - public static function detail($params): array - { - $data = ProjectManagerAppointment::field('id,project_id,contract_id,project_type_id,project_manager,amount,project_approval_date,start_date,delivery_date,remark,annex')->findOrEmpty($params['id'])->toArray(); - $project = Project::field('name,project_code,custom_id')->where('id',$data['project_id'])->findOrEmpty(); - $custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty(); - $contract = Contract::field('contract_code')->where('id',$data['contract_id'])->findOrEmpty(); - $projectType = ProjectTypeSet::field('name')->where('id',$data['project_type_id'])->findOrEmpty(); - $admin = Admin::field('name')->where('id',$data['project_manager'])->findOrEmpty(); - $data['project_name'] = $project['name']; - $data['project_code'] = $project['project_code']; - $data['custom_name'] = $custom['name']; - $data['contract_code'] = $contract['contract_code']; - $data['project_type_name'] = $projectType['name']; - $data['project_manager_name'] = $admin['name']; - return $data; - } -} \ No newline at end of file + + namespace app\adminapi\logic\project; + + + use app\common\logic\BaseLogic; + use app\common\model\auth\Admin; + use app\common\model\contract\Contract; + use app\common\model\custom\Custom; + use app\common\model\project\Project; + use app\common\model\project\ProjectManagerAppointment; + use app\common\model\project\ProjectTypeSet; + use think\facade\Db; + + + /** + * 项目经理委任逻辑 + * Class ProjectManagerAppointmentLogic + * @package app\adminapi\logic\project + */ + class ProjectManagerAppointmentLogic extends BaseLogic + { + + + /** + * @notes 添加项目经理委任 + * @param array $params + * @return bool + * @author likeadmin + * @date 2023/12/15 15:22 + */ + public static function add(array $params): bool + { + Db::startTrans(); + try { + ProjectManagerAppointment::create([ + 'project_id' => $params['project_id'], + 'contract_id' => $params['contract_id'], + 'project_type_id' => $params['project_type_id'], + 'project_manager' => $params['project_manager'], + 'amount' => $params['amount'], + 'project_approval_date' => strtotime($params['project_approval_date']), + 'start_date' => strtotime($params['start_date']), + 'delivery_date' => strtotime($params['delivery_date']), + 'remark' => $params['remark'], + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + Project::where('id', $params['project_id'])->update([ + 'status' => 4, + '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/15 15:22 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + ProjectManagerAppointment::where('id', $params['id'])->update([ + 'project_id' => $params['project_id'], + 'contract_id' => $params['contract_id'], + 'project_type_id' => $params['project_type_id'], + 'project_manager' => $params['project_manager'], + 'amount' => $params['amount'], + 'project_approval_date' => strtotime($params['project_approval_date']), + 'start_date' => strtotime($params['start_date']), + 'delivery_date' => strtotime($params['delivery_date']), + 'remark' => $params['remark'], + 'annex' => $params['annex'] ? json_encode($params['annex']) : 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/15 15:22 + */ + public static function delete(array $params): bool + { + return ProjectManagerAppointment::destroy($params['id']); + } + + + /** + * @notes 获取项目经理委任详情 + * @param $params + * @return array + * @author likeadmin + * @date 2023/12/15 15:22 + */ + public static function detail($params): array + { + $data = ProjectManagerAppointment::field('id,project_id,contract_id,project_type_id,project_manager,amount,project_approval_date,start_date,delivery_date,remark,annex')->findOrEmpty($params['id'])->toArray(); + $project = Project::field('name,project_code,custom_id')->where('id', $data['project_id'])->findOrEmpty(); + $custom = Custom::field('name')->where('id', $project['custom_id'])->findOrEmpty(); + $contract = Contract::field('contract_code')->where('id', $data['contract_id'])->findOrEmpty(); + $projectType = ProjectTypeSet::field('name')->where('id', $data['project_type_id'])->findOrEmpty(); + $admin = Admin::field('name')->where('id', $data['project_manager'])->findOrEmpty(); + $data['project_name'] = $project['name']; + $data['project_code'] = $project['project_code']; + $data['custom_name'] = $custom['name']; + $data['contract_code'] = $contract['contract_code']; + $data['project_type_name'] = $projectType['name']; + $data['project_manager_name'] = $admin['name']; + return $data; + } + } \ No newline at end of file diff --git a/app/adminapi/validate/project/ProjectManagerAppointmentValidate.php b/app/adminapi/validate/project/ProjectManagerAppointmentValidate.php index 7d70c8f00..f7530c4aa 100644 --- a/app/adminapi/validate/project/ProjectManagerAppointmentValidate.php +++ b/app/adminapi/validate/project/ProjectManagerAppointmentValidate.php @@ -17,8 +17,6 @@ use app\common\model\auth\Admin; use app\common\model\contract\Contract; - use app\common\model\dept\Dept; - use app\common\model\dept\Orgs; use app\common\model\project\Project; use app\common\model\project\ProjectManagerAppointment; use app\common\model\project\ProjectTypeSet; @@ -39,8 +37,6 @@ */ protected $rule = [ 'id' => 'require|checkData', - 'org_id' => 'require|checkOrg', - 'dept_id' => 'require|checkDept', 'project_id' => 'require|checkProject', 'contract_id' => 'require|checkContract', 'project_type_id' => 'require|checkProjectType', @@ -53,8 +49,6 @@ protected $message = [ 'id.require' => '缺少必要参数', - 'org_id.require' => '请选择组织', - 'dept_id.require' => '请选择部门', 'project_id.require' => '请选择项目', 'contract_id.require' => '请选择合同', 'project_type_id.require' => '请选择项目类型', @@ -79,8 +73,6 @@ 'id' => 'id', 'project_id' => '项目id', 'contract_id' => '合同id', - 'org_id' => '组织id', - 'dept_id' => '部门id', 'project_type_id' => '项目类型', 'project_manager' => '项目经理', 'amount' => '项目金额', @@ -147,27 +139,6 @@ return true; } - public function checkOrg($value): bool|string - { - $data = Orgs::where('id', $value)->findOrEmpty(); - if ($data->isEmpty()) { - return '组织不存在'; - } - return true; - } - - public function checkDept($value, $rule, $data): bool|string - { - $dept = Dept::where('id', $value)->findOrEmpty(); - if ($dept->isEmpty()) { - return '部门不存在'; - } - if ($data['org_id'] != $dept['org_id']) { - return '部门不属于当前选择的组织'; - } - return true; - } - public function checkProject($value): bool|string { $data = Project::where('id', $value)->findOrEmpty(); diff --git a/app/common/model/project/ProjectManagerAppointment.php b/app/common/model/project/ProjectManagerAppointment.php index e8b2835f8..6043edeb1 100644 --- a/app/common/model/project/ProjectManagerAppointment.php +++ b/app/common/model/project/ProjectManagerAppointment.php @@ -11,42 +11,38 @@ // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- - -namespace app\common\model\project; - - -use app\common\model\BaseModel; -use think\model\concern\SoftDelete; - - -/** - * 项目经理委任模型 - * Class ProjectManagerAppointment - * @package app\common\model\project - */ -class ProjectManagerAppointment extends BaseModel -{ - use SoftDelete; - protected $name = 'project_manager_appointment'; - protected $deleteTime = 'delete_time'; - public function getProjectApprovalDateAttr($value) - { - return !empty($value) ? date('Y-m-d',$value) : ''; - } + namespace app\common\model\project; - public function getStartDateAttr($value) - { - return !empty($value) ? date('Y-m-d',$value) : ''; - } - public function getDeliveryDateAttr($value) - { - return !empty($value) ? date('Y-m-d',$value) : ''; - } + use app\common\model\BaseModel; + use think\model\concern\SoftDelete; - public function getAnnexAttr($value) + + /** + * 项目经理委任模型 + * Class ProjectManagerAppointment + * @package app\common\model\project + */ + class ProjectManagerAppointment extends BaseModel { - return !empty($value) ? json_decode($value,true) : ''; - } -} \ No newline at end of file + use SoftDelete; + + protected $name = 'project_manager_appointment'; + protected $deleteTime = 'delete_time'; + + public function getProjectApprovalDateAttr($value) + { + return !empty($value) ? date('Y-m-d', $value) : ''; + } + + public function getStartDateAttr($value) + { + return !empty($value) ? date('Y-m-d', $value) : ''; + } + + public function getDeliveryDateAttr($value) + { + return !empty($value) ? date('Y-m-d', $value) : ''; + } + } \ No newline at end of file