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

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,20 +170,30 @@ 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)
{ {
$datas = CostProject::where(function ($query) use ($name) { $datas = CostProject::where(function ($query) use ($name) {
if ($name) { if ($name) {
$query->where('project_name', 'like', '%' . $name . '%'); $query->where('project_name', 'like', '%' . $name . '%');
} }
}) })
->field(['id', 'project_num', 'project_name']) ->field(['id', 'project_num', 'project_name'])
->order(['id' => 'desc']) ->order(['id' => 'desc'])
->select() ->select()
->toArray(); ->toArray();
foreach ($datas as &$item) { foreach ($datas as &$item) {
$item['projectinfo'] = 'ID' . $item['id'] . ' / 名称:' . $item['project_name']; $item['projectinfo'] = 'ID' . $item['id'] . ' / 名称:' . $item['project_name'];
} }
@ -177,33 +202,47 @@ class CostProjectLogic extends BaseLogic
public static function createProject($data) public static function createProject($data)
{ {
return CostProject::create([ Db::startTrans();
'project_num' => generate_sn(CostProject::class, 'project_num'), try {
'project_name' => $data['project_name'], $res = CostProject::create([
'contract_id' => $data['contract_id'], 'project_num' => generate_sn(CostProject::class, 'project_num'),
'types' => $data['types'], 'project_name' => $data['project_name'],
'industry' => $data['industry'], 'contract_id' => $data['contract_id'],
'province' => $data['province'], 'types' => $data['types'],
'city' => $data['city'], 'industry' => $data['industry'],
'address' => $data['address'], 'province' => $data['province'],
'starting' => $data['starting'], 'city' => $data['city'],
'endtime' => $data['endtime'], 'address' => $data['address'],
'jhgq' => $data['jhgq'], 'starting' => $data['starting'],
'depar' => $data['depar'], 'endtime' => $data['endtime'],
'principal' => $data['principal'], 'jhgq' => $data['jhgq'],
'person' => $data['person'], 'depar' => $data['depar'],
'invest' => $data['invest'], 'principal' => $data['principal'],
'budget' => $data['budget'], 'invest' => $data['invest'],
'cost' => $data['cost'], 'budget' => $data['budget'],
'approval' => $data['approval'], 'cost' => $data['cost'],
'aunit' => $data['aunit'], 'approval' => $data['approval'],
'Acontact' => $data['Acontact'], 'aunit' => $data['aunit'],
'acontactnum' => $data['acontactnum'], 'Acontact' => $data['Acontact'],
'date' => $data['date'], 'acontactnum' => $data['acontactnum'],
'generalize' => $data['generalize'], 'date' => $data['date'],
'note' => $data['note'], 'generalize' => $data['generalize'],
'remark' => $data['remark'], 'note' => $data['note'],
'annex' => $data['annex'] 'remark' => $data['remark'],
]); '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;
}
} }
} }