diff --git a/app/adminapi/controller/supervision_connect/SupervisionCompanyCheckController.php b/app/adminapi/controller/supervision_connect/SupervisionCompanyCheckController.php new file mode 100644 index 000000000..1f83f1c62 --- /dev/null +++ b/app/adminapi/controller/supervision_connect/SupervisionCompanyCheckController.php @@ -0,0 +1,124 @@ +dataLists(new SupervisionCompanyCheckLists()); + } + + + /** + * @notes 添加工程监理--公司检查 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function add() + { + $params = (new SupervisionCompanyCheckValidate())->post()->goCheck('add'); + $result = SupervisionCompanyCheckLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(SupervisionCompanyCheckLogic::getError()); + } + + + /** + * @notes 编辑工程监理--公司检查 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function edit() + { + $params = (new SupervisionCompanyCheckValidate())->post()->goCheck('edit'); + $result = SupervisionCompanyCheckLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(SupervisionCompanyCheckLogic::getError()); + } + + /** + * @notes 回复工程监理--公司检查 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function reply() + { + $params = (new SupervisionCompanyCheckValidate())->post()->goCheck('reply'); + $result = SupervisionCompanyCheckLogic::reply($params); + if (true === $result) { + return $this->success('回复成功', [], 1, 1); + } + return $this->fail(SupervisionCompanyCheckLogic::getError()); + } + + + /** + * @notes 删除工程监理--公司检查 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function delete() + { + $params = (new SupervisionCompanyCheckValidate())->post()->goCheck('delete'); + SupervisionCompanyCheckLogic::delete($params); + return $this->success('删除成功', [], 1, 1); + } + + + /** + * @notes 获取工程监理--公司检查详情 + * @return \think\response\Json + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function detail() + { + $params = (new SupervisionCompanyCheckValidate())->goCheck('detail'); + $result = SupervisionCompanyCheckLogic::detail($params); + return $this->data($result); + } + + +} \ No newline at end of file diff --git a/app/adminapi/lists/supervision_connect/SupervisionCompanyCheckLists.php b/app/adminapi/lists/supervision_connect/SupervisionCompanyCheckLists.php new file mode 100644 index 000000000..807d4adc4 --- /dev/null +++ b/app/adminapi/lists/supervision_connect/SupervisionCompanyCheckLists.php @@ -0,0 +1,82 @@ + ['project_id'], + '%like%' => ['name', 'user', 'problem_name'], + ]; + } + + + /** + * @notes 获取工程监理--公司检查列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function lists(): array + { + return SupervisionCompanyCheck::where($this->searchWhere) + ->field(['id', 'project_id', 'name', 'date', 'user', 'problem_name', 'problem_type', 'problem_desc', 'reply_user', 'reply_date', 'reply_content', 'review_opinions']) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select()->each(function($data){ + $project = SupervisionProject::field('project_name')->where('id',$data['project_id'])->findOrEmpty(); + $data['project_name'] = $project['project_name']; + }) + ->toArray(); + } + + + /** + * @notes 获取工程监理--公司检查数量 + * @return int + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function count(): int + { + return SupervisionCompanyCheck::where($this->searchWhere)->count(); + } + +} \ No newline at end of file diff --git a/app/adminapi/logic/supervision_connect/SupervisionCompanyCheckLogic.php b/app/adminapi/logic/supervision_connect/SupervisionCompanyCheckLogic.php new file mode 100644 index 000000000..9087c7dbe --- /dev/null +++ b/app/adminapi/logic/supervision_connect/SupervisionCompanyCheckLogic.php @@ -0,0 +1,149 @@ + $params['project_id'], + 'name' => $params['name'], + 'date' => !empty($params['data']) ? strtotime($params['date']) : 0, + 'user' => $params['user'], + 'problem_name' => $params['problem_name'], + 'problem_type' => $params['problem_type'], + 'problem_desc' => $params['problem_desc'], + 'annex' => $params['annex'] ? json_encode($params['annex']) : null + ]); + 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/05 11:57 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + SupervisionCompanyCheck::where('id', $params['id'])->update([ + 'project_id' => $params['project_id'], + 'name' => $params['name'], + 'date' => !empty($params['data']) ? strtotime($params['date']) : 0, + 'user' => $params['user'], + 'problem_name' => $params['problem_name'], + 'problem_type' => $params['problem_type'], + 'problem_desc' => $params['problem_desc'], + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + '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/05 11:57 + */ + public static function reply(array $params): bool + { + Db::startTrans(); + try { + SupervisionCompanyCheck::where('id', $params['id'])->update([ + 'reply_user' => $params['reply_user'], + 'reply_date' => !empty($params['reply_date']) ? strtotime($params['reply_date']) : 0, + 'reply_content' => $params['reply_content'], + 'review_opinions' => $params['review_opinions'], + ]); + 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/05 11:57 + */ + public static function delete(array $params): bool + { + return SupervisionCompanyCheck::destroy($params['id']); + } + + + /** + * @notes 获取工程监理--公司检查详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public static function detail($params): array + { + $data = SupervisionCompanyCheck::field('id,project_id,name,date,user,problem_name,problem_type,problem_desc,annex')->findOrEmpty($params['id']); + $project = SupervisionProject::field('project_name')->where('id',$data['project_id'])->findOrEmpty(); + $data['project_name'] = $project['project_name']; + return $data->toArray(); + } +} \ No newline at end of file diff --git a/app/adminapi/validate/supervision_connect/SupervisionCompanyCheckValidate.php b/app/adminapi/validate/supervision_connect/SupervisionCompanyCheckValidate.php new file mode 100644 index 000000000..8554670a0 --- /dev/null +++ b/app/adminapi/validate/supervision_connect/SupervisionCompanyCheckValidate.php @@ -0,0 +1,156 @@ + 'require|checkData', + 'project_id' => 'require|checkProject', + 'name' => 'require', + 'date' => 'require|dateFormat:Y-m-d', + 'user' => 'require', + 'problem_name' => 'require', + 'problem_type' => 'require', + 'problem_desc' => 'require', + 'reply_user' => 'require', + 'reply_date' => 'require|dateFormat:Y-m-d', + 'reply_content' => 'require', + 'review_opinions' => 'require', + 'annex' => 'checkAnnex' + ]; + + + /** + * 参数描述 + * @var string[] + */ + protected $field = [ + 'id' => 'id', + 'project_id' => '项目id', + 'name' => '检查名称', + 'date' => '检查日期', + 'user' => '检查人', + 'problem_name' => '问题名称', + 'problem_type' => '问题类型', + 'problem_desc' => '问题说明', + 'reply_user' => '整改回复人', + 'reply_date' => '整改回复时间', + 'reply_content' => '整改回复说明', + 'review_opinions' => '复核意见', + ]; + + + /** + * @notes 添加场景 + * @return SupervisionCompanyCheckValidate + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function sceneAdd() + { + return $this->only(['project_id','name','date','user','problem_name','problem_type','problem_desc','annex']); + } + + + /** + * @notes 编辑场景 + * @return SupervisionCompanyCheckValidate + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function sceneEdit() + { + return $this->only(['id','project_id','name','date','user','problem_name','problem_type','problem_desc','annex']); + } + + /** + * @notes 编辑场景 + * @return SupervisionCompanyCheckValidate + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function sceneReply() + { + return $this->only(['id','reply_user','reply_date','reply_content','review_opinions']); + } + + + /** + * @notes 删除场景 + * @return SupervisionCompanyCheckValidate + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function sceneDelete() + { + return $this->only(['id']); + } + + + /** + * @notes 详情场景 + * @return SupervisionCompanyCheckValidate + * @author likeadmin + * @date 2024/03/05 11:57 + */ + public function sceneDetail() + { + return $this->only(['id']); + } + + public function checkData($value): bool|string + { + $data = SupervisionCompanyCheck::where('id',$value)->findOrEmpty(); + if($data->isEmpty()){ + return '数据不存在'; + } + return true; + } + + public function checkProject($value): bool|string + { + $data = SupervisionProject::where('id',$value)->findOrEmpty(); + if($data->isEmpty()){ + return '项目信息不存在'; + } + return true; + } + + public function checkAnnex($value): bool|string + { + if(!empty($value) && $value != '' && !is_array($value)){ + return '附件格式错误'; + } + return true; + } + +} \ No newline at end of file diff --git a/app/common/model/supervision_connect/SupervisionCompanyCheck.php b/app/common/model/supervision_connect/SupervisionCompanyCheck.php new file mode 100644 index 000000000..5a627ed67 --- /dev/null +++ b/app/common/model/supervision_connect/SupervisionCompanyCheck.php @@ -0,0 +1,46 @@ +