From 033ae9f67aefb533cab6e400b2954b89ad726d95 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Mon, 4 Mar 2024 16:31:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8D=B1=E5=A4=A7=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B=E6=96=BD=E5=B7=A5=E5=88=97=E8=A1=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...erousEngineeringConstructionController.php | 108 +++++++++++++++ ...nDangerousEngineeringConstructionLists.php | 88 ++++++++++++ ...nDangerousEngineeringConstructionLogic.php | 125 ++++++++++++++++++ ...ionDangerousEngineeringMonitoringLogic.php | 19 ++- ...ngerousEngineeringConstructionValidate.php | 119 +++++++++++++++++ ...visionDangerousEngineeringConstruction.php | 43 ++++++ 6 files changed, 501 insertions(+), 1 deletion(-) create mode 100644 app/adminapi/controller/supervision_dangerous/SupervisionDangerousEngineeringConstructionController.php create mode 100644 app/adminapi/lists/supervision_dangerous/SupervisionDangerousEngineeringConstructionLists.php create mode 100644 app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringConstructionLogic.php create mode 100644 app/adminapi/validate/supervision_dangerous/SupervisionDangerousEngineeringConstructionValidate.php create mode 100644 app/common/model/supervision_dangerous/SupervisionDangerousEngineeringConstruction.php diff --git a/app/adminapi/controller/supervision_dangerous/SupervisionDangerousEngineeringConstructionController.php b/app/adminapi/controller/supervision_dangerous/SupervisionDangerousEngineeringConstructionController.php new file mode 100644 index 000000000..8ead78165 --- /dev/null +++ b/app/adminapi/controller/supervision_dangerous/SupervisionDangerousEngineeringConstructionController.php @@ -0,0 +1,108 @@ +dataLists(new SupervisionDangerousEngineeringConstructionLists()); + } + + + /** + * @notes 添加工程监理--危大工程施工列表 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function add() + { + $params = (new SupervisionDangerousEngineeringConstructionValidate())->post()->goCheck('add'); + $result = SupervisionDangerousEngineeringConstructionLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(SupervisionDangerousEngineeringConstructionLogic::getError()); + } + + + /** + * @notes 编辑工程监理--危大工程施工列表 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function edit() + { + $params = (new SupervisionDangerousEngineeringConstructionValidate())->post()->goCheck('edit'); + $result = SupervisionDangerousEngineeringConstructionLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(SupervisionDangerousEngineeringConstructionLogic::getError()); + } + + + /** + * @notes 删除工程监理--危大工程施工列表 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function delete() + { + $params = (new SupervisionDangerousEngineeringConstructionValidate())->post()->goCheck('delete'); + SupervisionDangerousEngineeringConstructionLogic::delete($params); + return $this->success('删除成功', [], 1, 1); + } + + + /** + * @notes 获取工程监理--危大工程施工列表详情 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function detail() + { + $params = (new SupervisionDangerousEngineeringConstructionValidate())->goCheck('detail'); + $result = SupervisionDangerousEngineeringConstructionLogic::detail($params); + return $this->data($result); + } + + +} \ No newline at end of file diff --git a/app/adminapi/lists/supervision_dangerous/SupervisionDangerousEngineeringConstructionLists.php b/app/adminapi/lists/supervision_dangerous/SupervisionDangerousEngineeringConstructionLists.php new file mode 100644 index 000000000..c09aeb7b8 --- /dev/null +++ b/app/adminapi/lists/supervision_dangerous/SupervisionDangerousEngineeringConstructionLists.php @@ -0,0 +1,88 @@ + ['dangerous_engineering_monitoring_id', 'is_notice'], + '%like%' => ['notice_user'], + ]; + } + + + /** + * @notes 获取工程监理--危大工程施工列表列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function lists(): array + { + return SupervisionDangerousEngineeringConstruction::where($this->searchWhere) + ->field(['id', 'dangerous_engineering_monitoring_id', 'actual_construction_date', 'is_notice', 'notice_user']) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select()->each(function($data){ + $dangerous_engineering_monitoring = SupervisionDangerousEngineeringMonitoring::field('project_id,type,position')->where('id',$data['dangerous_engineering_monitoring_id'])->findOrEmpty(); + $project = SupervisionProject::field('project_name')->where('id',$dangerous_engineering_monitoring['project_id'])->findOrEmpty(); + $data['project_name'] = $project['project_name']; + $data['type'] = $dangerous_engineering_monitoring->type_text; + $data['position'] = $dangerous_engineering_monitoring['position']; + $data['is_notice_text'] = $data->is_notice_text; + $data['dangerous_engineering_monitoring_title'] = $project['project_name']; + }) + ->toArray(); + } + + + /** + * @notes 获取工程监理--危大工程施工列表数量 + * @return int + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function count(): int + { + return SupervisionDangerousEngineeringConstruction::where($this->searchWhere)->count(); + } + +} \ No newline at end of file diff --git a/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringConstructionLogic.php b/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringConstructionLogic.php new file mode 100644 index 000000000..9f5932e39 --- /dev/null +++ b/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringConstructionLogic.php @@ -0,0 +1,125 @@ + $params['dangerous_engineering_monitoring_id'], + 'actual_construction_date' => !empty($params['actual_construction_date']) ? strtotime($params['actual_construction_date']) : 0, + 'is_notice' => $params['is_notice'], + 'notice_user' => $params['notice_user'] + ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 编辑工程监理--危大工程施工列表 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + SupervisionDangerousEngineeringConstruction::where('id', $params['id'])->update([ + 'dangerous_engineering_monitoring_id' => $params['dangerous_engineering_monitoring_id'], + 'actual_construction_date' => !empty($params['actual_construction_date']) ? strtotime($params['actual_construction_date']) : 0, + 'is_notice' => $params['is_notice'], + 'notice_user' => $params['notice_user'], + 'update_time' => time(), + ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } + + + /** + * @notes 删除工程监理--危大工程施工列表 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public static function delete(array $params): bool + { + return SupervisionDangerousEngineeringConstruction::destroy($params['id']); + } + + + /** + * @notes 获取工程监理--危大工程施工列表详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public static function detail($params): array + { + $data = SupervisionDangerousEngineeringConstruction::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']); + $dangerous_engineering_monitoring = SupervisionDangerousEngineeringMonitoring::field('project_id,type,partial_project,planned_construction_time,position,project_characteristics,supervisor,responsible_person')->where('id',$data['dangerous_engineering_monitoring_id'])->findOrEmpty(); + $project = SupervisionProject::field('project_name')->where('id',$dangerous_engineering_monitoring['project_id'])->findOrEmpty(); + $data['project_name'] = $project['project_name']; + $data['type'] = $dangerous_engineering_monitoring->type_text; + $data['partial_project'] = $dangerous_engineering_monitoring->partial_project_text; + $data['planned_construction_time'] = $dangerous_engineering_monitoring['planned_construction_time']; + $data['position'] = $dangerous_engineering_monitoring['position']; + $data['project_characteristics'] = $dangerous_engineering_monitoring['project_characteristics']; + $data['supervisor'] = $dangerous_engineering_monitoring['supervisor']; + $data['responsible_person'] = $dangerous_engineering_monitoring['responsible_person']; + $data['is_notice_text'] = $data->is_notice_text; + return $data->toArray(); + } +} \ No newline at end of file diff --git a/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringMonitoringLogic.php b/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringMonitoringLogic.php index 0f8960acc..ee00cb6ee 100644 --- a/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringMonitoringLogic.php +++ b/app/adminapi/logic/supervision_dangerous/SupervisionDangerousEngineeringMonitoringLogic.php @@ -15,6 +15,9 @@ namespace app\adminapi\logic\supervision_dangerous; +use app\common\model\supervision_dangerous\SupervisionDangerousEngineeringCase; +use app\common\model\supervision_dangerous\SupervisionDangerousEngineeringConstruction; +use app\common\model\supervision_dangerous\SupervisionDangerousEngineeringEliminate; use app\common\model\supervision_dangerous\SupervisionDangerousEngineeringMonitoring; use app\common\logic\BaseLogic; use app\common\model\supervision_project\SupervisionProject; @@ -105,7 +108,21 @@ class SupervisionDangerousEngineeringMonitoringLogic extends BaseLogic */ public static function delete(array $params): bool { - // todo + $case = SupervisionDangerousEngineeringCase::where('dangerous_engineering_monitoring_id',$params['id'])->findOrEmpty(); + if(!$case->isEmpty()){ + self::setError('当前数据下存在危大方案提交信息,须先删除危大方案提交信息'); + return false; + } + $eliminate = SupervisionDangerousEngineeringEliminate::where('dangerous_engineering_monitoring_id',$params['id'])->findOrEmpty(); + if(!$eliminate->isEmpty()){ + self::setError('当前数据下存在危大工程消除信息,须先删除危大工程消除信息'); + return false; + } + $construction = SupervisionDangerousEngineeringConstruction::where('dangerous_engineering_monitoring_id',$params['id'])->findOrEmpty(); + if(!$construction->isEmpty()){ + self::setError('当前数据下存在危大工程施工信息,须先删除危大工程施工信息'); + return false; + } return SupervisionDangerousEngineeringMonitoring::destroy($params['id']); } diff --git a/app/adminapi/validate/supervision_dangerous/SupervisionDangerousEngineeringConstructionValidate.php b/app/adminapi/validate/supervision_dangerous/SupervisionDangerousEngineeringConstructionValidate.php new file mode 100644 index 000000000..831efaf83 --- /dev/null +++ b/app/adminapi/validate/supervision_dangerous/SupervisionDangerousEngineeringConstructionValidate.php @@ -0,0 +1,119 @@ + 'require|checkData', + 'dangerous_engineering_monitoring_id' => 'require|checkDangerousEngineeringMonitoring', + 'actual_construction_date' => 'require|dateFormat:Y-m-d', + 'is_notice' => 'require|in:0,1', + ]; + + + /** + * 参数描述 + * @var string[] + */ + protected $field = [ + 'id' => 'id', + 'dangerous_engineering_monitoring_id' => '危大工程监控id', + 'actual_construction_date' => '实际施工日期', + 'is_notice' => '是否告知 0-否 1-是', + 'notice_user' => '告知人员', + ]; + + + /** + * @notes 添加场景 + * @return SupervisionDangerousEngineeringConstructionValidate + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function sceneAdd() + { + return $this->remove('id',true); + } + + + /** + * @notes 编辑场景 + * @return SupervisionDangerousEngineeringConstructionValidate + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function sceneEdit() + {} + + + /** + * @notes 删除场景 + * @return SupervisionDangerousEngineeringConstructionValidate + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function sceneDelete() + { + return $this->only(['id']); + } + + + /** + * @notes 详情场景 + * @return SupervisionDangerousEngineeringConstructionValidate + * @author likeadmin + * @date 2024/03/04 16:02 + */ + public function sceneDetail() + { + return $this->only(['id']); + } + + public function checkData($value): bool|string + { + $data = SupervisionDangerousEngineeringConstruction::where('id',$value)->findOrEmpty(); + if($data->isEmpty()){ + return '数据不存在'; + } + return true; + } + + public function checkDangerousEngineeringMonitoring($value): bool|string + { + $data = SupervisionDangerousEngineeringMonitoring::where('id',$value)->findOrEmpty(); + if($data->isEmpty()){ + return '危大工程监控信息不存在'; + } + return true; + } + +} \ No newline at end of file diff --git a/app/common/model/supervision_dangerous/SupervisionDangerousEngineeringConstruction.php b/app/common/model/supervision_dangerous/SupervisionDangerousEngineeringConstruction.php new file mode 100644 index 000000000..7c27ea5c4 --- /dev/null +++ b/app/common/model/supervision_dangerous/SupervisionDangerousEngineeringConstruction.php @@ -0,0 +1,43 @@ +'否', 1=>'是']; + return $arr[$data['is_notice']]; + } +} \ No newline at end of file