diff --git a/app/adminapi/lists/contract/SubcontractingContractNegotiationLists.php b/app/adminapi/lists/contract/SubcontractingContractNegotiationLists.php index 0671f3659..5804a0162 100644 --- a/app/adminapi/lists/contract/SubcontractingContractNegotiationLists.php +++ b/app/adminapi/lists/contract/SubcontractingContractNegotiationLists.php @@ -18,7 +18,7 @@ namespace app\adminapi\lists\contract; use app\adminapi\lists\BaseAdminDataLists; use app\common\model\contract\SubcontractingContractNegotiation; use app\common\lists\ListsSearchInterface; - +use think\facade\Db; /** * SubcontractingContractNegotiation列表 @@ -38,7 +38,7 @@ class SubcontractingContractNegotiationLists extends BaseAdminDataLists implemen public function setSearch(): array { return [ - '=' => ['subcontracting_contract_id', 'negotiation_name', 'negotiation_no', 'negotiation_type'], + '=' => ['scn.subcontracting_contract_id', 'scn.negotiation_name', 'scn.negotiation_no', 'scn.negotiation_type'], ]; } @@ -54,11 +54,24 @@ class SubcontractingContractNegotiationLists extends BaseAdminDataLists implemen */ public function lists(): array { - return SubcontractingContractNegotiation::where($this->searchWhere) - ->field(['*']) + return Db::name('SubcontractingContractNegotiation')->alias('scn') + ->where($this->searchWhere) + ->whereNull('scn.delete_time') + ->leftJoin('orgs o','o.id = scn.org_id') + ->leftJoin('dept d','d.id = scn.dept_id') + ->leftJoin('procurement_contract pc','pc.id = scn.subcontracting_contract_id') + ->leftJoin('project p','p.id = pc.project_id') + ->field('scn.*, d.name as dept_name, o.name as org_name, p.name as project_name, p.project_code, pc.contract_no, pc.contract_name') ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select() + ->order(['scn.id' => 'desc']) + ->select()->each(function($item, $key){ + //关联数据后续添加 + $item['approve_no'] = '付款单号'; + $item['approve_step'] = '流程步骤'; + $item['approve_settle_status'] = 1; + + return $item; + }) ->toArray(); } @@ -71,7 +84,13 @@ class SubcontractingContractNegotiationLists extends BaseAdminDataLists implemen */ public function count(): int { - return SubcontractingContractNegotiation::where($this->searchWhere)->count(); + return Db::name('SubcontractingContractNegotiation')->alias('scn') + ->where($this->searchWhere) + ->whereNull('scn.delete_time') + ->leftJoin('orgs o','o.id = scn.org_id') + ->leftJoin('dept d','d.id = scn.dept_id') + ->leftJoin('procurement_contract pc','pc.id = scn.subcontracting_contract_id') + ->leftJoin('project p','p.id = pc.project_id')->count(); } } \ No newline at end of file diff --git a/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php b/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php index 7fb8531ca..240398d27 100644 --- a/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php +++ b/app/adminapi/logic/contract/SubcontractingContractNegotiationLogic.php @@ -41,6 +41,8 @@ class SubcontractingContractNegotiationLogic extends BaseLogic Db::startTrans(); try { SubcontractingContractNegotiation::create([ + 'org_id' => $params['org_id'] ?? 0, + 'dept_id' => $params['dept_id'] ?? 0, 'subcontracting_contract_id' => $params['subcontracting_contract_id'] ?? 0, 'negotiation_name' => $params['negotiation_name'] ?? '', 'negotiation_no' => $params['negotiation_no'] ?? '', @@ -76,6 +78,8 @@ class SubcontractingContractNegotiationLogic extends BaseLogic Db::startTrans(); try { SubcontractingContractNegotiation::where('id', $params['id'])->update([ + 'org_id' => $params['org_id'] ?? 0, + 'dept_id' => $params['dept_id'] ?? 0, 'subcontracting_contract_id' => $params['subcontracting_contract_id'] ?? 0, 'negotiation_name' => $params['negotiation_name'] ?? '', 'negotiation_no' => $params['negotiation_no'] ?? '', @@ -123,6 +127,12 @@ class SubcontractingContractNegotiationLogic extends BaseLogic { $subcontractingContractNegotiation = SubcontractingContractNegotiation::findOrEmpty($params['id']); $subcontractingContractNegotiation->contract; + $subcontractingContractNegotiation->org; + $subcontractingContractNegotiation->dept; + $subcontractingContractNegotiation->project = null; + if (!empty($subcontractingContractNegotiation->contract->project)) { + $subcontractingContractNegotiation->project = $subcontractingContractNegotiation->contract->project; + } return $subcontractingContractNegotiation->toArray(); } } \ No newline at end of file diff --git a/app/common/model/contract/SubcontractingContractNegotiation.php b/app/common/model/contract/SubcontractingContractNegotiation.php index e687303f8..4c0b0f48a 100644 --- a/app/common/model/contract/SubcontractingContractNegotiation.php +++ b/app/common/model/contract/SubcontractingContractNegotiation.php @@ -34,5 +34,15 @@ class SubcontractingContractNegotiation extends BaseModel { return $this->belongsTo(\app\common\model\contract\ProcurementContract::class, 'subcontracting_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'); + } } \ No newline at end of file