diff --git a/app/adminapi/controller/cost_project/CostProjectController.php b/app/adminapi/controller/cost_project/CostProjectController.php new file mode 100644 index 000000000..6ab8c546e --- /dev/null +++ b/app/adminapi/controller/cost_project/CostProjectController.php @@ -0,0 +1,108 @@ +dataLists(new CostProjectLists()); + } + + + /** + * @notes 添加造价项目台账 + * @return \think\response\Json + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function add() + { + $params = (new CostProjectValidate())->post()->goCheck('add'); + $result = CostProjectLogic::add($params); + if (true === $result) { + return $this->success('添加成功', [], 1, 1); + } + return $this->fail(CostProjectLogic::getError()); + } + + + /** + * @notes 编辑造价项目台账 + * @return \think\response\Json + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function edit() + { + $params = (new CostProjectValidate())->post()->goCheck('edit'); + $result = CostProjectLogic::edit($params); + if (true === $result) { + return $this->success('编辑成功', [], 1, 1); + } + return $this->fail(CostProjectLogic::getError()); + } + + + /** + * @notes 删除造价项目台账 + * @return \think\response\Json + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function delete() + { + $params = (new CostProjectValidate())->post()->goCheck('delete'); + CostProjectLogic::delete($params); + return $this->success('删除成功', [], 1, 1); + } + + + /** + * @notes 获取造价项目台账详情 + * @return \think\response\Json + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function detail() + { + $params = (new CostProjectValidate())->goCheck('detail'); + $result = CostProjectLogic::detail($params); + return $this->data($result); + } + + +} \ No newline at end of file diff --git a/app/adminapi/lists/cost_project/CostProjectLists.php b/app/adminapi/lists/cost_project/CostProjectLists.php new file mode 100644 index 000000000..cd17af711 --- /dev/null +++ b/app/adminapi/lists/cost_project/CostProjectLists.php @@ -0,0 +1,78 @@ + ['types', 'industry'], + '%like%' => ['project_num', 'project_name'], + ]; + } + + + /** + * @notes 获取造价项目台账列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function lists(): array + { + return CostProject::where($this->searchWhere) + ->field(['id', 'project_num', 'project_name', 'contract_id', 'types', 'industry', 'province', 'city', 'address', 'starting', 'endtime', 'jhgq', 'depar', 'principal', 'person', 'invest', 'budget', 'cost', 'approval', 'aunit', 'Acontact', 'acontactnum', 'date', 'generalize', 'note', 'remark', 'annex']) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select() + ->toArray(); + } + + + /** + * @notes 获取造价项目台账数量 + * @return int + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function count(): int + { + return CostProject::where($this->searchWhere)->count(); + } + +} \ No newline at end of file diff --git a/app/adminapi/logic/cost_project/CostProjectLogic.php b/app/adminapi/logic/cost_project/CostProjectLogic.php new file mode 100644 index 000000000..bebf13ad4 --- /dev/null +++ b/app/adminapi/logic/cost_project/CostProjectLogic.php @@ -0,0 +1,156 @@ + $params['project_num'], + 'project_name' => $params['project_name'], + 'contract_id' => $params['contract_id'], + 'types' => $params['types'], + 'industry' => $params['industry'], + 'province' => $params['province'], + 'city' => $params['city'], + 'address' => $params['address'], + 'starting' => $params['starting'], + 'endtime' => $params['endtime'], + 'jhgq' => $params['jhgq'], + 'depar' => $params['depar'], + 'principal' => $params['principal'], + 'person' => $params['person'], + 'invest' => $params['invest'], + 'budget' => $params['budget'], + 'cost' => $params['cost'], + 'approval' => $params['approval'], + 'aunit' => $params['aunit'], + 'Acontact' => $params['Acontact'], + 'acontactnum' => $params['acontactnum'], + 'date' => $params['date'], + 'generalize' => $params['generalize'], + 'note' => $params['note'], + 'remark' => $params['remark'], + 'annex' => $params['annex'] + ]); + + 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/02/21 09:23 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + CostProject::where('id', $params['id'])->update([ + 'project_num' => $params['project_num'], + 'project_name' => $params['project_name'], + 'contract_id' => $params['contract_id'], + 'types' => $params['types'], + 'industry' => $params['industry'], + 'province' => $params['province'], + 'city' => $params['city'], + 'address' => $params['address'], + 'starting' => $params['starting'], + 'endtime' => $params['endtime'], + 'jhgq' => $params['jhgq'], + 'depar' => $params['depar'], + 'principal' => $params['principal'], + 'person' => $params['person'], + 'invest' => $params['invest'], + 'budget' => $params['budget'], + 'cost' => $params['cost'], + 'approval' => $params['approval'], + 'aunit' => $params['aunit'], + 'Acontact' => $params['Acontact'], + 'acontactnum' => $params['acontactnum'], + 'date' => $params['date'], + 'generalize' => $params['generalize'], + 'note' => $params['note'], + 'remark' => $params['remark'], + 'annex' => $params['annex'] + ]); + + 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/02/21 09:23 + */ + public static function delete(array $params): bool + { + return CostProject::destroy($params['id']); + } + + + /** + * @notes 获取造价项目台账详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public static function detail($params): array + { + return CostProject::findOrEmpty($params['id'])->toArray(); + } +} \ No newline at end of file diff --git a/app/adminapi/validate/cost_project/CostProjectValidate.php b/app/adminapi/validate/cost_project/CostProjectValidate.php new file mode 100644 index 000000000..180148850 --- /dev/null +++ b/app/adminapi/validate/cost_project/CostProjectValidate.php @@ -0,0 +1,113 @@ + 'require', + 'project_name' => 'require', + 'contract_id' => 'require|checkContract', + 'types' => 'checkTypes', + 'industry' => 'checkIndustry', + 'starting' => 'require|dateFormat:Y-m-d', + 'endtime' => 'require|dateFormat:Y-m-d', + 'jhgq' => 'require', + 'principal' => 'require', + 'invest' => 'require', + 'aunit' => 'require', + ]; + + + /** + * 参数描述 + * @var string[] + */ + protected $field = [ + 'id' => 'id', + 'project_num' => '项目编号', + 'project_name' => '项目名称', + 'contract_id' => '关联合同', + 'starting' => '计划开始日期', + 'endtime' => '计划结束日期', + 'jhgq' => '计划工期(天)', + 'principal' => '项目负责人', + 'invest' => '项目总投资(万元)', + 'aunit' => '委托单位', + ]; + + + /** + * @notes 添加场景 + * @return CostProjectValidate + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function sceneAdd() + { + return $this->only(['project_num','project_name','contract_id','starting','endtime','jhgq','principal','invest','aunit']); + } + + + /** + * @notes 编辑场景 + * @return CostProjectValidate + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function sceneEdit() + { + return $this->only(['id','project_num','project_name','contract_id','starting','endtime','jhgq','principal','invest','aunit']); + } + + + /** + * @notes 删除场景 + * @return CostProjectValidate + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function sceneDelete() + { + return $this->only(['id']); + } + + + /** + * @notes 详情场景 + * @return CostProjectValidate + * @author likeadmin + * @date 2024/02/21 09:23 + */ + public function sceneDetail() + { + return $this->only(['id']); + } + +} \ No newline at end of file diff --git a/app/common/model/cost_project/CostProject.php b/app/common/model/cost_project/CostProject.php new file mode 100644 index 000000000..87e5f76cb --- /dev/null +++ b/app/common/model/cost_project/CostProject.php @@ -0,0 +1,34 @@ +