diff --git a/app/adminapi/controller/CostConsultationReportController.php b/app/adminapi/controller/CostConsultationReportController.php index 462b7b26f..bdc225542 100644 --- a/app/adminapi/controller/CostConsultationReportController.php +++ b/app/adminapi/controller/CostConsultationReportController.php @@ -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')); } } diff --git a/app/adminapi/controller/supervision_qualification_review/SupervisionSafetyManagementPersonnelController.php b/app/adminapi/controller/supervision_qualification_review/SupervisionSafetyManagementPersonnelController.php index b3e9f9418..8ebd0e1cb 100644 --- a/app/adminapi/controller/supervision_qualification_review/SupervisionSafetyManagementPersonnelController.php +++ b/app/adminapi/controller/supervision_qualification_review/SupervisionSafetyManagementPersonnelController.php @@ -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); } diff --git a/app/adminapi/controller/supervision_qualification_review/SupervisionSpecialOperationPersonnelController.php b/app/adminapi/controller/supervision_qualification_review/SupervisionSpecialOperationPersonnelController.php index 26bfe80b9..0c4037693 100644 --- a/app/adminapi/controller/supervision_qualification_review/SupervisionSpecialOperationPersonnelController.php +++ b/app/adminapi/controller/supervision_qualification_review/SupervisionSpecialOperationPersonnelController.php @@ -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); } diff --git a/app/adminapi/lists/supervision_qualification_review/SupervisionSafetyManagementPersonnelLists.php b/app/adminapi/lists/supervision_qualification_review/SupervisionSafetyManagementPersonnelLists.php index f6ff21d65..9174bcf6e 100644 --- a/app/adminapi/lists/supervision_qualification_review/SupervisionSafetyManagementPersonnelLists.php +++ b/app/adminapi/lists/supervision_qualification_review/SupervisionSafetyManagementPersonnelLists.php @@ -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; }) diff --git a/app/adminapi/lists/supervision_qualification_review/SupervisionSpecialOperationPersonnelLists.php b/app/adminapi/lists/supervision_qualification_review/SupervisionSpecialOperationPersonnelLists.php index 0d84fc70d..a226f500b 100644 --- a/app/adminapi/lists/supervision_qualification_review/SupervisionSpecialOperationPersonnelLists.php +++ b/app/adminapi/lists/supervision_qualification_review/SupervisionSpecialOperationPersonnelLists.php @@ -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(); diff --git a/app/adminapi/logic/project_process_management/JianliProjectProgressReportLogic.php b/app/adminapi/logic/project_process_management/JianliProjectProgressReportLogic.php index 84efe8743..1ae925bcd 100644 --- a/app/adminapi/logic/project_process_management/JianliProjectProgressReportLogic.php +++ b/app/adminapi/logic/project_process_management/JianliProjectProgressReportLogic.php @@ -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'], diff --git a/app/adminapi/logic/supervision_qualification_review/SupervisionSafetyManagementPersonnelLogic.php b/app/adminapi/logic/supervision_qualification_review/SupervisionSafetyManagementPersonnelLogic.php index 1d348262e..4cb1ba4e3 100644 --- a/app/adminapi/logic/supervision_qualification_review/SupervisionSafetyManagementPersonnelLogic.php +++ b/app/adminapi/logic/supervision_qualification_review/SupervisionSafetyManagementPersonnelLogic.php @@ -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(); diff --git a/app/adminapi/logic/supervision_qualification_review/SupervisionSpecialOperationPersonnelLogic.php b/app/adminapi/logic/supervision_qualification_review/SupervisionSpecialOperationPersonnelLogic.php index 3042839ff..32499e27e 100644 --- a/app/adminapi/logic/supervision_qualification_review/SupervisionSpecialOperationPersonnelLogic.php +++ b/app/adminapi/logic/supervision_qualification_review/SupervisionSpecialOperationPersonnelLogic.php @@ -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(); } diff --git a/app/common/model/ProjectCommissionDetail.php b/app/common/model/ProjectCommissionDetail.php index 7233ce589..702ae3a82 100644 --- a/app/common/model/ProjectCommissionDetail.php +++ b/app/common/model/ProjectCommissionDetail.php @@ -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']] : ''; + } } \ No newline at end of file diff --git a/app/common/model/project_process_management/JianliProjectProgressReport.php b/app/common/model/project_process_management/JianliProjectProgressReport.php index ffea3d46b..35335887f 100644 --- a/app/common/model/project_process_management/JianliProjectProgressReport.php +++ b/app/common/model/project_process_management/JianliProjectProgressReport.php @@ -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) : ''; + } } \ No newline at end of file