更新造价咨询--造价项目台账 项目相关人员

This commit is contained in:
mkm 2024-03-11 17:23:18 +08:00
parent fb7ed56a58
commit 1b20b0eb81
2 changed files with 95 additions and 49 deletions

View File

@ -20,6 +20,7 @@ use app\common\lists\ListsExcelInterface;
use app\common\model\cost_project\CostProject; use app\common\model\cost_project\CostProject;
use app\common\lists\ListsSearchInterface; use app\common\lists\ListsSearchInterface;
use app\common\model\auth\Admin; use app\common\model\auth\Admin;
use app\common\model\cost_project\CostProjectPerson;
/** /**
* 造价项目台账列表 * 造价项目台账列表
@ -68,9 +69,12 @@ class CostProjectLists extends BaseAdminDataLists implements ListsSearchInterfac
->order(['id' => 'desc']) ->order(['id' => 'desc'])
->select() ->select()
->each(function($item){ ->each(function($item){
if($item['person']){ $uid=(new CostProjectPerson)->where('cost_project_id',$item['id'])->column('uid');
$arr=explode(',',$item['person']); if($uid){
Admin::whereIn('id',$arr)->column('name'); $admin=Admin::whereIn('id',$uid)->column('name');
if($admin){
$res['person']=implode(',',$admin);
}
} }
}) })
->toArray(); ->toArray();
@ -81,9 +85,12 @@ class CostProjectLists extends BaseAdminDataLists implements ListsSearchInterfac
->order(['id' => 'desc']) ->order(['id' => 'desc'])
->select() ->select()
->each(function($item){ ->each(function($item){
if($item['person']){ $uid=(new CostProjectPerson)->where('cost_project_id',$item['id'])->column('uid');
$arr=explode(',',$item['person']); if($uid){
Admin::whereIn('id',$arr)->column('name'); $admin=Admin::whereIn('id',$uid)->column('name');
if($admin){
$res['person']=implode(',',$admin);
}
} }
}) })
->toArray(); ->toArray();

View File

@ -17,6 +17,8 @@ namespace app\adminapi\logic\cost_project;
use app\common\model\cost_project\CostProject; use app\common\model\cost_project\CostProject;
use app\common\logic\BaseLogic; use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
use app\common\model\cost_project\CostProjectPerson;
use think\facade\Db; use think\facade\Db;
@ -40,7 +42,7 @@ class CostProjectLogic extends BaseLogic
{ {
Db::startTrans(); Db::startTrans();
try { try {
CostProject::create([ $data = CostProject::create([
'project_num' => generate_sn(CostProject::class, 'project_num'), 'project_num' => generate_sn(CostProject::class, 'project_num'),
'project_name' => $params['project_name'], 'project_name' => $params['project_name'],
'contract_id' => $params['contract_id'], 'contract_id' => $params['contract_id'],
@ -55,7 +57,6 @@ class CostProjectLogic extends BaseLogic
'org_id' => $params['org_id'], 'org_id' => $params['org_id'],
'depar' => $params['depar'], 'depar' => $params['depar'],
'principal' => $params['principal'], 'principal' => $params['principal'],
'person' => $params['person_id'],
'invest' => $params['invest'], 'invest' => $params['invest'],
'budget' => $params['budget'], 'budget' => $params['budget'],
'cost' => $params['cost'], 'cost' => $params['cost'],
@ -70,7 +71,14 @@ class CostProjectLogic extends BaseLogic
'remark' => $params['remark'], 'remark' => $params['remark'],
'annex' => $params['annex'] 'annex' => $params['annex']
]); ]);
if ($params['person_id']) {
$arr = [];
$person_id = explode(',', $params['person_id']);
foreach ($person_id as $k => $v) {
$arr[] = ['cost_project_id' => $data->id, $v];
}
$arr ?? (new CostProjectPerson)->saveAll($arr);
}
Db::commit(); Db::commit();
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {
@ -107,7 +115,6 @@ class CostProjectLogic extends BaseLogic
'org_id' => $params['org_id'], 'org_id' => $params['org_id'],
'depar' => $params['depar'], 'depar' => $params['depar'],
'principal' => $params['principal'], 'principal' => $params['principal'],
'person' => $params['person_id'],
'invest' => $params['invest'], 'invest' => $params['invest'],
'budget' => $params['budget'], 'budget' => $params['budget'],
'cost' => $params['cost'], 'cost' => $params['cost'],
@ -122,7 +129,15 @@ class CostProjectLogic extends BaseLogic
'remark' => $params['remark'], 'remark' => $params['remark'],
'annex' => $params['annex'] 'annex' => $params['annex']
]); ]);
if ($params['person_id']) {
$arr = [];
$person_id = explode(',', $params['person_id']);
(new CostProjectPerson)->delete($person_id);
foreach ($person_id as $k => $v) {
$arr[] = ['cost_project_id' => $data->id, $v];
}
$arr ?? (new CostProjectPerson)->saveAll($arr);
}
Db::commit(); Db::commit();
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {
@ -155,7 +170,17 @@ class CostProjectLogic extends BaseLogic
*/ */
public static function detail($params): array public static function detail($params): array
{ {
return CostProject::with(['contract'])->findOrEmpty($params['id'])->toArray(); $res= CostProject::with(['contract'])->findOrEmpty($params['id'])->toArray();
if($res){
$uid=(new CostProjectPerson)->where('cost_project_id',$res['id'])->column('uid');
if($uid){
$admin=Admin::whereIn('id',$uid)->column('name');
if($admin){
$res['person']=implode(',',$admin);
}
}
}
return $res;
} }
public static function datas($name) public static function datas($name)
@ -177,7 +202,9 @@ class CostProjectLogic extends BaseLogic
public static function createProject($data) public static function createProject($data)
{ {
return CostProject::create([ Db::startTrans();
try {
$res = CostProject::create([
'project_num' => generate_sn(CostProject::class, 'project_num'), 'project_num' => generate_sn(CostProject::class, 'project_num'),
'project_name' => $data['project_name'], 'project_name' => $data['project_name'],
'contract_id' => $data['contract_id'], 'contract_id' => $data['contract_id'],
@ -191,7 +218,6 @@ class CostProjectLogic extends BaseLogic
'jhgq' => $data['jhgq'], 'jhgq' => $data['jhgq'],
'depar' => $data['depar'], 'depar' => $data['depar'],
'principal' => $data['principal'], 'principal' => $data['principal'],
'person' => $data['person'],
'invest' => $data['invest'], 'invest' => $data['invest'],
'budget' => $data['budget'], 'budget' => $data['budget'],
'cost' => $data['cost'], 'cost' => $data['cost'],
@ -205,5 +231,18 @@ class CostProjectLogic extends BaseLogic
'remark' => $data['remark'], 'remark' => $data['remark'],
'annex' => $data['annex'] 'annex' => $data['annex']
]); ]);
if ($data['person_id']) {
$arr = [];
$person_id = explode(',', $data['person_id']);
(new CostProjectPerson)->delete($person_id);
foreach ($person_id as $k => $v) {
$arr[] = ['cost_project_id' => $data->id, $v];
}
$arr ?? (new CostProjectPerson)->saveAll($arr);
}
return $res;
} catch (\Exception $e) {
return false;
}
} }
} }