This commit is contained in:
weiz 2024-03-18 10:54:12 +08:00
parent cfcce13191
commit 23b121d499
10 changed files with 94 additions and 26 deletions

View File

@ -8,7 +8,11 @@ use app\common\model\cost_project\CostProject;
use app\common\model\cost_project\CostProjectPerson;
use app\common\model\DataReception;
use app\common\model\dept\Dept;
use app\common\model\GeoCity;
use app\common\model\GeoProvince;
use app\common\model\project_process_management\JianliProjectProgressReport;
use app\common\model\ProjectCommission;
use app\common\model\ProjectCommissionDetail;
use app\common\model\task\TaskAllocation;
use app\common\model\TaskHandlingThreeLevelReview;
use app\common\model\zjzx_finance\ZjzxInvoice;
@ -171,7 +175,6 @@ class CostConsultationReportController extends BaseAdminController
/**
* 项目部门分布
*/
public function distribution_project_departments()
{
@ -222,8 +225,58 @@ class CostConsultationReportController extends BaseAdminController
if(!empty($params['project_name'])){
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
}
// if(!empty($params['date'])){
//
// }
if(!empty($params['date'])){
$date = explode(',',$params['date']);
$where[] = ['apptime','between',[$date]];
}
$lists = ProjectCommission::field('id,project_id')->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
$project = CostProject::field('project_name,project_num,contract_id')->where('id',$data['project_id'])->findOrEmpty();
$contract = CostApprovedProject::field('contract_name')->where('id',$project['contract_id'])->findOrEmpty();
$data['project_num'] = $project['project_num'];
$data['project_name'] = $project['project_name'];
$data['contract_name'] = $contract['contract_name'];
$data['children'] = ProjectCommissionDetail::withoutField('engineer_id,remark,create_time,update_time,delete_time')
->where('project_commission_id',$data['id'])->select()->each(function($data){
$data['task_type'] = $data->task_type_text;
$data['professional_type'] = $data->professional_type_text;
})->toArray();
})->toArray();
$count = ProjectCommission::where($where)->count();
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
}
//项目进度统计
public function project_schedule_statistics(){
$params = $this->request->get();
$page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
$page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
$where = [];
if(!empty($params['contract_name'])){
$contract_ids1 = CostApprovedProject::where('contract_name','like','%'.$params['contract_name'].'%')->column('id');
$where[] = ['contract_id','in',$contract_ids1];
}
if(!empty($params['project_name'])){
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
}
$lists = CostProject::field('id,contract_id,project_num,project_name,types,aunit,province,city,starting,endtime,jhgq')
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
$contract = CostApprovedProject::field('contract_name,industry_nature,project_director')->where('id',$data['contract_id'])->findOrEmpty();
$province = GeoProvince::field('province_name')->where('province_code',$data['province'])->findOrEmpty();
$city = GeoCity::field('city_name')->where('city_code',$data['city'])->findOrEmpty();
$schedule = JianliProjectProgressReport::field('start_date,end_date,duration,done_progress')->where('project_id',$data['id'])->findOrEmpty();
$data['contract_name'] = $contract['contract_name'];
$data['project_director'] = $contract['project_director'];
$data['types'] = $data->types_text;
$data['industry_nature'] = $contract->industry_nature_text;
$data['project_director'] = $contract['project_director'];
$data['province'] = $province['province_name'];
$data['city'] = $city['city_name'];
$data['actual_starting'] = $schedule['start_date'];
$data['actual_endtime'] = $schedule['end_date'];
$data['duration'] = $schedule['duration'];
$data['done_progress'] = $schedule['done_progress'];
})->toArray();
$count = CostProject::where($where)->count();
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
}
}

View File

@ -52,7 +52,7 @@ class SupervisionSafetyManagementPersonnelController extends BaseAdminController
public function add()
{
$params = (new SupervisionSafetyManagementPersonnelValidate())->post()->goCheck('add');
$result = SupervisionSafetyManagementPersonnelLogic::add($params,$this->adminId);
$result = SupervisionSafetyManagementPersonnelLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}

View File

@ -52,7 +52,7 @@ class SupervisionSpecialOperationPersonnelController extends BaseAdminController
public function add()
{
$params = (new SupervisionSpecialOperationPersonnelValidate())->post()->goCheck('add');
$result = SupervisionSpecialOperationPersonnelLogic::add($params,$this->adminId);
$result = SupervisionSpecialOperationPersonnelLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}

View File

@ -16,7 +16,6 @@ namespace app\adminapi\lists\supervision_qualification_review;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\auth\Admin;
use app\common\model\supervision_project\SupervisionParticipatingUnits;
use app\common\model\supervision_qualification_review\SupervisionParticipatingUnitsQualifications;
use app\common\model\supervision_qualification_review\SupervisionSafetyManagementPersonnel;
@ -64,9 +63,7 @@ class SupervisionSafetyManagementPersonnelLists extends BaseAdminDataLists imple
->select()->each(function($data){
$unit_qualification = SupervisionParticipatingUnitsQualifications::field('company_id')->where('id',$data['unit_qualification_id'])->findOrEmpty();
$company = SupervisionParticipatingUnits::field('unit_name')->where('id',$unit_qualification['company_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id',$data['create_user'])->findOrEmpty();
$data['company_name'] = $company['unit_name'];
$data['create_user_name'] = $admin['name'];
$data['qualification_one_status_text'] = $data->qualification_one_status_text;
$data['qualification_two_status_text'] = $data->qualification_two_status_text;
})

View File

@ -16,7 +16,6 @@ namespace app\adminapi\lists\supervision_qualification_review;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\auth\Admin;
use app\common\model\supervision_project\SupervisionParticipatingUnits;
use app\common\model\supervision_qualification_review\SupervisionParticipatingUnitsQualifications;
use app\common\model\supervision_qualification_review\SupervisionSpecialOperationPersonnel;
@ -64,9 +63,7 @@ class SupervisionSpecialOperationPersonnelLists extends BaseAdminDataLists imple
->select()->each(function($data){
$unit_qualification = SupervisionParticipatingUnitsQualifications::field('company_id')->where('id',$data['unit_qualification_id'])->findOrEmpty();
$company = SupervisionParticipatingUnits::field('unit_name')->where('id',$unit_qualification['company_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id',$data['create_user'])->findOrEmpty();
$data['company_name'] = $company['unit_name'];
$data['create_user_name'] = $admin['name'];
$data['status_text'] = $data->status_text;
})
->toArray();

View File

@ -47,8 +47,8 @@ class JianliProjectProgressReportLogic extends BaseLogic
'bm_master' => $params['bm_master'],
'wt_unit' => $params['wt_unit'],
'xm_master' => $params['xm_master'],
'start_date' => $params['start_date'],
'end_date' => $params['end_date'],
'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0,
'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0,
'duration' => $params['duration'],
'working_hours' => $params['working_hours'],
'done_progress' => $params['done_progress'],
@ -86,8 +86,8 @@ class JianliProjectProgressReportLogic extends BaseLogic
'bm_master' => $params['bm_master'],
'wt_unit' => $params['wt_unit'],
'xm_master' => $params['xm_master'],
'start_date' => $params['start_date'],
'end_date' => $params['end_date'],
'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0,
'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0,
'duration' => $params['duration'],
'working_hours' => $params['working_hours'],
'done_progress' => $params['done_progress'],

View File

@ -15,7 +15,6 @@
namespace app\adminapi\logic\supervision_qualification_review;
use app\common\model\auth\Admin;
use app\common\model\supervision_project\SupervisionParticipatingUnits;
use app\common\model\supervision_qualification_review\SupervisionParticipatingUnitsQualifications;
use app\common\model\supervision_qualification_review\SupervisionSafetyManagementPersonnel;
@ -39,7 +38,7 @@ class SupervisionSafetyManagementPersonnelLogic extends BaseLogic
* @author likeadmin
* @date 2024/02/26 11:30
*/
public static function add(array $params,$admin_id): bool
public static function add(array $params): bool
{
Db::startTrans();
try {
@ -63,7 +62,8 @@ class SupervisionSafetyManagementPersonnelLogic extends BaseLogic
'qualification_two_status' => $params['qualification_two_status'],
'remark' => $params['remark'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
'create_user' => $admin_id,
'create_user' => $params['create_user'],
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
]);
Db::commit();
return true;
@ -106,6 +106,8 @@ class SupervisionSafetyManagementPersonnelLogic extends BaseLogic
'qualification_two_status' => $params['qualification_two_status'],
'remark' => $params['remark'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
'create_user' => $params['create_user'],
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
'update_time' => time(),
]);
Db::commit();
@ -143,9 +145,7 @@ class SupervisionSafetyManagementPersonnelLogic extends BaseLogic
$data = SupervisionSafetyManagementPersonnel::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
$unit_qualification = SupervisionParticipatingUnitsQualifications::field('company_id')->where('id',$data['unit_qualification_id'])->findOrEmpty();
$company = SupervisionParticipatingUnits::field('unit_name')->where('id',$unit_qualification['company_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id',$data['create_user'])->findOrEmpty();
$data['company_name'] = $company['unit_name'];
$data['create_user_name'] = $admin['name'];
$data['qualification_one_status_text'] = $data->qualification_one_status_text;
$data['qualification_two_status_text'] = $data->qualification_two_status_text;
return $data->toArray();

View File

@ -15,7 +15,6 @@
namespace app\adminapi\logic\supervision_qualification_review;
use app\common\model\auth\Admin;
use app\common\model\supervision_project\SupervisionParticipatingUnits;
use app\common\model\supervision_qualification_review\SupervisionParticipatingUnitsQualifications;
use app\common\model\supervision_qualification_review\SupervisionSpecialOperationPersonnel;
@ -39,7 +38,7 @@ class SupervisionSpecialOperationPersonnelLogic extends BaseLogic
* @author likeadmin
* @date 2024/02/26 11:45
*/
public static function add(array $params,$admin_id): bool
public static function add(array $params): bool
{
Db::startTrans();
try {
@ -54,7 +53,8 @@ class SupervisionSpecialOperationPersonnelLogic extends BaseLogic
'status' => $params['status'],
'remark' => $params['remark'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
'create_user' => $admin_id,
'create_user' => $params['create_user'],
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
]);
Db::commit();
return true;
@ -88,6 +88,8 @@ class SupervisionSpecialOperationPersonnelLogic extends BaseLogic
'status' => $params['status'],
'remark' => $params['remark'],
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
'create_user' => $params['create_user'],
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
'update_time' => time(),
]);
Db::commit();
@ -125,9 +127,7 @@ class SupervisionSpecialOperationPersonnelLogic extends BaseLogic
$data = SupervisionSpecialOperationPersonnel::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
$unit_qualification = SupervisionParticipatingUnitsQualifications::field('company_id')->where('id',$data['unit_qualification_id'])->findOrEmpty();
$company = SupervisionParticipatingUnits::field('unit_name')->where('id',$unit_qualification['company_id'])->findOrEmpty();
$admin = Admin::field('name')->where('id',$data['create_user'])->findOrEmpty();
$data['company_name'] = $company['unit_name'];
$data['create_user_name'] = $admin['name'];
$data['status_text'] = $data->status_text;
return $data->toArray();
}

View File

@ -16,6 +16,7 @@ namespace app\common\model;
use app\common\model\BaseModel;
use app\common\model\dict\DictData;
use think\model\concern\SoftDelete;
@ -34,4 +35,14 @@ class ProjectCommissionDetail extends BaseModel
{
return $this->belongsTo(ProjectCommission::class, 'project_commission_id', 'id');
}
public function getTaskTypeTextAttr($value,$data){
$dict = DictData::where('type_value','task_type')->column('name','value');
return !empty($data['task_type']) ? $dict[$data['task_type']] : '';
}
public function getProfessionalTypeTextAttr($value,$data){
$dict = DictData::where('type_value','major_type')->column('name','value');
return !empty($data['professional_type']) ? $dict[$data['professional_type']] : '';
}
}

View File

@ -35,4 +35,14 @@ class JianliProjectProgressReport extends BaseModel
{
return $this->hasOne(CostProject::class, 'id', 'project_id');
}
public function getStartDateAttr($value): string
{
return !empty($value) ? date('Y-m-d',$value) : '';
}
public function getEndDateAttr($value): string
{
return !empty($value) ? date('Y-m-d',$value) : '';
}
}