From ecaa9c9151c807d8deca59b08b6162e9167cf307 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Fri, 22 Dec 2023 15:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcurementContractChangeLists.php | 39 +++++++++++++++---- .../contract/ProcurementContractLists.php | 6 +-- .../ProcurementContractChangeLogic.php | 17 +++++--- .../contract/ProcurementContractChange.php | 15 ++++--- 4 files changed, 56 insertions(+), 21 deletions(-) diff --git a/app/adminapi/lists/contract/ProcurementContractChangeLists.php b/app/adminapi/lists/contract/ProcurementContractChangeLists.php index 936630293..e748e6243 100644 --- a/app/adminapi/lists/contract/ProcurementContractChangeLists.php +++ b/app/adminapi/lists/contract/ProcurementContractChangeLists.php @@ -18,7 +18,7 @@ namespace app\adminapi\lists\contract; use app\adminapi\lists\BaseAdminDataLists; use app\common\model\contract\ProcurementContractChange; use app\common\lists\ListsSearchInterface; - +use think\facade\Db; /** * ProcurementContractChange列表 @@ -38,7 +38,7 @@ class ProcurementContractChangeLists extends BaseAdminDataLists implements Lists public function setSearch(): array { return [ - '=' => ['procurement_contract_id', 'supplier_id', 'project_id', 'contract_no'], + '=' => ['pcc.procurement_contract_id', 'pcc.supplier_id', 'pcc.project_id', 'pcc.contract_no'], ]; } @@ -54,11 +54,30 @@ class ProcurementContractChangeLists extends BaseAdminDataLists implements Lists */ public function lists(): array { - return ProcurementContractChange::where($this->searchWhere) - ->field(['*']) + return Db::name('ProcurementContractChange')->alias('pcc') + ->where($this->searchWhere) + ->whereNull('pcc.delete_time') + ->leftJoin('orgs o','o.id = pcc.org_id') + ->leftJoin('dept d','d.id = pcc.dept_id') + ->leftJoin('procurement_contract pc','pc.id = pcc.procurement_contract_id') + ->leftJoin('project p','p.id = pc.project_id') + ->field('pcc.*, pc.project_id, pc.contract_no, pc.contract_name, p.name as project_name, p.project_code') ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select() + ->order(['pcc.id' => 'desc']) + ->select()->each(function($item, $key){ + //关联数据后续添加 + $item['supplier_name'] = '供应商名称'; + $item['approve_no'] = '付款单号'; + $item['approve_step'] = '流程步骤'; + $item['approve_settle_status'] = 1; + if (!empty($item['pay_plan'])) { + $planArray = json_decode($item['pay_plan'], true); + if (is_array($planArray)) { + $item['pay_plan'] = $planArray; + } + } + return $item; + }) ->toArray(); } @@ -71,7 +90,13 @@ class ProcurementContractChangeLists extends BaseAdminDataLists implements Lists */ public function count(): int { - return ProcurementContractChange::where($this->searchWhere)->count(); + return Db::name('ProcurementContractChange')->alias('pcc') + ->where($this->searchWhere) + ->whereNull('pcc.delete_time') + ->leftJoin('orgs o','o.id = pcc.org_id') + ->leftJoin('dept d','d.id = pcc.dept_id') + ->leftJoin('procurement_contract pc','pc.id = pcc.procurement_contract_id') + ->leftJoin('project p','p.id = pc.project_id')->count(); } } \ No newline at end of file diff --git a/app/adminapi/lists/contract/ProcurementContractLists.php b/app/adminapi/lists/contract/ProcurementContractLists.php index b1df31a44..24a2bc3fa 100644 --- a/app/adminapi/lists/contract/ProcurementContractLists.php +++ b/app/adminapi/lists/contract/ProcurementContractLists.php @@ -77,9 +77,9 @@ class ProcurementContractLists extends BaseAdminDataLists implements ListsSearch $item['approve_step'] = '流程步骤'; $item['approve_settle_status'] = 1; if (!empty($item['pay_plan'])) { - $otherContactsArray = json_decode($item['pay_plan'], true); - if (is_array($otherContactsArray)) { - $item['pay_plan'] = $otherContactsArray; + $planArray = json_decode($item['pay_plan'], true); + if (is_array($planArray)) { + $item['pay_plan'] = $planArray; } } return $item; diff --git a/app/adminapi/logic/contract/ProcurementContractChangeLogic.php b/app/adminapi/logic/contract/ProcurementContractChangeLogic.php index 36c144b47..6a4c2cedf 100644 --- a/app/adminapi/logic/contract/ProcurementContractChangeLogic.php +++ b/app/adminapi/logic/contract/ProcurementContractChangeLogic.php @@ -43,9 +43,10 @@ class ProcurementContractChangeLogic extends BaseLogic Db::startTrans(); try { ProcurementContractChange::create([ + 'org_id' => $params['org_id'] ?? 0, + 'dept_id' => $params['dept_id'] ?? 0, 'procurement_contract_id' => $params['procurement_contract_id'] ?? 0, 'supplier_id' => $params['supplier_id'] ?? 0, - 'approve_id' => $params['approve_id'] ?? 0, 'project_id' => $params['project_id'] ?? 0, 'contract_no' => $params['contract_no'] ?? '', 'supplier_contract_no' => $params['supplier_contract_no'] ?? '', @@ -97,10 +98,11 @@ class ProcurementContractChangeLogic extends BaseLogic Db::startTrans(); try { ProcurementContractChange::where('id', $params['id'])->update([ + 'org_id' => $params['org_id'] ?? 0, + 'dept_id' => $params['dept_id'] ?? 0, 'procurement_contract_id' => $params['procurement_contract_id'] ?? 0, 'supplier_id' => $params['supplier_id'] ?? 0, 'approve_id' => $params['approve_id'] ?? 0, - 'project_id' => $params['project_id'] ?? 0, 'contract_no' => $params['contract_no'] ?? '', 'supplier_contract_no' => $params['supplier_contract_no'] ?? '', 'contract_type' => $params['contract_type'] ?? 0, @@ -162,13 +164,16 @@ class ProcurementContractChangeLogic extends BaseLogic public static function detail($params): array { $procurementContractChange = ProcurementContractChange::findOrEmpty($params['id']); - $procurementContractChange->custom = null; - if (!empty($procurementContractChange->project->custom_id)) { - $procurementContractChange->custom = Custom::findOrEmpty($procurementContractChange->project->custom_id); + $procurementContractChange->contract; + $procurementContractChange->project= null; + if (!empty($procurementContractChange->contract->project_id)) { + $procurementContractChange->project = $procurementContractChange->contract->project; + unset($procurementContractChange->contract->project); } $procurementContractChange->pay_plan = json_decode($procurementContractChange->pay_plan, true); - $procurementContractChange->project; $procurementContractChange->material; + $procurementContractChange->org; + $procurementContractChange->dept; return $procurementContractChange->toArray(); } } \ No newline at end of file diff --git a/app/common/model/contract/ProcurementContractChange.php b/app/common/model/contract/ProcurementContractChange.php index 458e3d278..be52586ce 100644 --- a/app/common/model/contract/ProcurementContractChange.php +++ b/app/common/model/contract/ProcurementContractChange.php @@ -30,11 +30,6 @@ class ProcurementContractChange extends BaseModel protected $name = 'procurement_contract_change'; protected $deleteTime = 'delete_time'; - public function project() - { - return $this->belongsTo(\app\common\model\project\Project::class, 'project_id'); - } - public function contract() { return $this->belongsTo(\app\common\model\contract\ProcurementContract::class, 'procurement_contract_id'); @@ -45,6 +40,16 @@ class ProcurementContractChange extends BaseModel return $this->hasMany(\app\common\model\contract\ProcurementContractDetail::class, 'procurement_contract_id', 'procurement_contract_id'); } + public function org() + { + return $this->hasOne(\app\common\model\dept\Orgs::class, 'id', 'org_id'); + } + + public function dept() + { + return $this->hasOne(\app\common\model\dept\Dept::class, 'id', 'dept_id'); + } + public function getSigningDateAttr($value) { return empty($value) ? '' : date('Y-m-d H:i:s', $value);