diff --git a/app/adminapi/controller/cost_project/CostApprovedProjectController.php b/app/adminapi/controller/cost_project/CostApprovedProjectController.php index 6ad0b3ed9..45d9e137b 100644 --- a/app/adminapi/controller/cost_project/CostApprovedProjectController.php +++ b/app/adminapi/controller/cost_project/CostApprovedProjectController.php @@ -169,4 +169,9 @@ $result = CostApprovedProjectLogic::detail($params); return $this->data($result); } + + public function datas() + { + return $this->data(CostApprovedProjectLogic::datas()); + } } \ No newline at end of file diff --git a/app/adminapi/logic/cost_project/CostApprovedProjectLogic.php b/app/adminapi/logic/cost_project/CostApprovedProjectLogic.php index f6f519ce4..c7ef05d14 100644 --- a/app/adminapi/logic/cost_project/CostApprovedProjectLogic.php +++ b/app/adminapi/logic/cost_project/CostApprovedProjectLogic.php @@ -1,184 +1,192 @@ $params['contract_name'], - 'contract_num' => date('Ymd',time()).'-'.mt_rand(100000, 999999), - 'contract_type' => $params['contract_type'], - 'part_a' => $params['part_a'], - 'part_a_contract' => $params['part_a_contract'] ?? '', - 'part_a_address' => $params['part_a_address'] ?? '', - 'part_b' => $params['part_b'], - 'part_b_signatory' => $params['part_b_signatory'] ?? '', - 'business_nature' => $params['business_nature'] ?? 0, - 'industry_nature' => $params['industry_nature'] ?? 0, - 'fund_sources' => $params['fund_sources'] ?? 0, - 'const_area' => $params['const_area'] ?? 0, - 'project_money' => $params['project_money'] ?? 0, - 'project_scale' => $params['project_scale'] ?? '', - 'money' => $params['money'], - 'rate' => $params['rate'] ?? 0, - 'contract_service' => $params['contract_service'] ?? '', - 'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0, - 'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0, - 'performance' => $params['performance'] ?? 0, - 'due_time' => !empty($params['due_time']) ? strtotime($params['due_time']) : 0, - 'payment' => $params['payment'] ?? '', - 'content' => $params['content'] ?? '', - 'founder' => $params['founder'] ?? '', - 'create_date' => !empty($params['create_date']) ? strtotime($params['create_date']) : 0, - 'dept' => $params['dept'], - 'signing_person' => $params['signing_person'] ?? '', - 'regulators' => $params['regulators'], - 'project_director' => $params['project_director'] ?? '', - 'way' => $params['way'] ?? 0, - 'seal_name' => $params['seal_name'] ?? 0, - 'limit' => $params['limit'] ?? 0, - 'limit_num' => $params['limit_num'] ?? 0, - 'file_type' => $params['file_type'] ?? 0, - 'seal_num' => $params['seal_num'] ?? 0, - 'sealer' => $params['sealer'] ?? '', - 'plance_seal' => $params['plance_seal'] ?? 0, - 'send_date' => !empty($params['send_date']) ? strtotime($params['send_date']) : 0, - 'number' => $params['number'] ?? '', - '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/02/20 14:16 - */ - public static function edit(array $params): bool - { - Db::startTrans(); - try { - CostApprovedProject::where('id', $params['id'])->update([ - 'contract_type' => $params['contract_type'], - 'contract_name' => $params['contract_name'], - 'part_a' => $params['part_a'], - 'part_a_contract' => $params['part_a_contract'] ?? '', - 'part_a_address' => $params['part_a_address'] ?? '', - 'part_b' => $params['part_b'], - 'part_b_signatory' => $params['part_b_signatory'] ?? '', - 'business_nature' => $params['business_nature'] ?? 0, - 'industry_nature' => $params['industry_nature'] ?? 0, - 'fund_sources' => $params['fund_sources'] ?? 0, - 'const_area' => $params['const_area'] ?? 0, - 'project_money' => $params['project_money'] ?? 0, - 'project_scale' => $params['project_scale'] ?? '', - 'money' => $params['money'], - 'rate' => $params['rate'] ?? 0, - 'contract_service' => $params['contract_service'] ?? '', - 'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0, - 'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0, - 'performance' => $params['performance'] ?? 0, - 'due_time' => !empty($params['due_time']) ? strtotime($params['due_time']) : 0, - 'payment' => $params['payment'] ?? '', - 'content' => $params['content'] ?? '', - 'founder' => $params['founder'] ?? '', - 'create_date' => !empty($params['create_date']) ? strtotime($params['create_date']) : 0, - 'dept' => $params['dept'], - 'signing_person' => $params['signing_person'] ?? '', - 'regulators' => $params['regulators'], - 'project_director' => $params['project_director'] ?? '', - 'way' => $params['way'] ?? 0, - 'seal_name' => $params['seal_name'] ?? 0, - 'limit' => $params['limit'] ?? 0, - 'limit_num' => $params['limit_num'] ?? 0, - 'file_type' => $params['file_type'] ?? 0, - 'seal_num' => $params['seal_num'] ?? 0, - 'sealer' => $params['sealer'] ?? '', - 'plance_seal' => $params['plance_seal'] ?? 0, - 'send_date' => !empty($params['send_date']) ? strtotime($params['send_date']) : 0, - 'number' => $params['number'] ?? '', - '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/02/20 14:16 - */ - public static function delete(array $params): bool - { - $project = CostProject::where('contract_id','in',$params['id'])->findOrEmpty(); - if(!$project->isEmpty()){ - self::setError('此数据关联了造价项目信息,需删除造价项目信息'); - return false; + namespace app\adminapi\logic\cost_project; + + use app\common\logic\BaseLogic; + use app\common\model\cost_project\CostApprovedProject; + use app\common\model\cost_project\CostProject; + use think\facade\Db; + + + /** + * 待立项造价项目逻辑 + * Class CostApprovedProjectLogic + * @package app\adminapi\logic\cost_project + */ + class CostApprovedProjectLogic extends BaseLogic + { + + /** + * @notes 添加待立项造价项目 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/20 14:16 + */ + public static function add(array $params): bool + { + Db::startTrans(); + try { + CostApprovedProject::create([ + 'contract_name' => $params['contract_name'], + 'contract_num' => date('Ymd', time()) . '-' . mt_rand(100000, 999999), + 'contract_type' => $params['contract_type'], + 'part_a' => $params['part_a'], + 'part_a_contract' => $params['part_a_contract'] ?? '', + 'part_a_address' => $params['part_a_address'] ?? '', + 'part_b' => $params['part_b'], + 'part_b_signatory' => $params['part_b_signatory'] ?? '', + 'business_nature' => $params['business_nature'] ?? 0, + 'industry_nature' => $params['industry_nature'] ?? 0, + 'fund_sources' => $params['fund_sources'] ?? 0, + 'const_area' => $params['const_area'] ?? 0, + 'project_money' => $params['project_money'] ?? 0, + 'project_scale' => $params['project_scale'] ?? '', + 'money' => $params['money'], + 'rate' => $params['rate'] ?? 0, + 'contract_service' => $params['contract_service'] ?? '', + 'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0, + 'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0, + 'performance' => $params['performance'] ?? 0, + 'due_time' => !empty($params['due_time']) ? strtotime($params['due_time']) : 0, + 'payment' => $params['payment'] ?? '', + 'content' => $params['content'] ?? '', + 'founder' => $params['founder'] ?? '', + 'create_date' => !empty($params['create_date']) ? strtotime($params['create_date']) : 0, + 'dept' => $params['dept'], + 'signing_person' => $params['signing_person'] ?? '', + 'regulators' => $params['regulators'], + 'project_director' => $params['project_director'] ?? '', + 'way' => $params['way'] ?? 0, + 'seal_name' => $params['seal_name'] ?? 0, + 'limit' => $params['limit'] ?? 0, + 'limit_num' => $params['limit_num'] ?? 0, + 'file_type' => $params['file_type'] ?? 0, + 'seal_num' => $params['seal_num'] ?? 0, + 'sealer' => $params['sealer'] ?? '', + 'plance_seal' => $params['plance_seal'] ?? 0, + 'send_date' => !empty($params['send_date']) ? strtotime($params['send_date']) : 0, + 'number' => $params['number'] ?? '', + 'annex' => $params['annex'] ? json_encode($params['annex']) : null, + ]); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } } - return CostApprovedProject::destroy($params['id']); - } - - - /** - * @notes 获取待立项造价项目详情 - * @param $params - * @return array - * @author likeadmin - * @date 2024/02/20 14:16 - */ - public static function detail($params): array - { - $data = CostApprovedProject::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']); - $data['contract_type_text'] = $data->contract_type_text; - $data['business_nature_text'] = $data->business_nature_text; - $data['industry_nature_text'] = $data->industry_nature_text; - $data['fund_sources_text'] = $data->fund_sources_text; - $data['const_area_text'] = $data->const_area_text; - $data['way_text'] = $data->way_text; - $data['seal_name_text'] = $data->seal_name_text; - $data['file_type_text'] = $data->file_type_text; - $data['plance_seal_text'] = $data->plance_seal_text; - $data['limit_text'] = $data->limit_text; - return $data->toArray(); - } -} \ No newline at end of file + + + /** + * @notes 编辑待立项造价项目 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/02/20 14:16 + */ + public static function edit(array $params): bool + { + Db::startTrans(); + try { + CostApprovedProject::where('id', $params['id'])->update([ + 'contract_type' => $params['contract_type'], + 'contract_name' => $params['contract_name'], + 'part_a' => $params['part_a'], + 'part_a_contract' => $params['part_a_contract'] ?? '', + 'part_a_address' => $params['part_a_address'] ?? '', + 'part_b' => $params['part_b'], + 'part_b_signatory' => $params['part_b_signatory'] ?? '', + 'business_nature' => $params['business_nature'] ?? 0, + 'industry_nature' => $params['industry_nature'] ?? 0, + 'fund_sources' => $params['fund_sources'] ?? 0, + 'const_area' => $params['const_area'] ?? 0, + 'project_money' => $params['project_money'] ?? 0, + 'project_scale' => $params['project_scale'] ?? '', + 'money' => $params['money'], + 'rate' => $params['rate'] ?? 0, + 'contract_service' => $params['contract_service'] ?? '', + 'start_date' => !empty($params['start_date']) ? strtotime($params['start_date']) : 0, + 'end_date' => !empty($params['end_date']) ? strtotime($params['end_date']) : 0, + 'performance' => $params['performance'] ?? 0, + 'due_time' => !empty($params['due_time']) ? strtotime($params['due_time']) : 0, + 'payment' => $params['payment'] ?? '', + 'content' => $params['content'] ?? '', + 'founder' => $params['founder'] ?? '', + 'create_date' => !empty($params['create_date']) ? strtotime($params['create_date']) : 0, + 'dept' => $params['dept'], + 'signing_person' => $params['signing_person'] ?? '', + 'regulators' => $params['regulators'], + 'project_director' => $params['project_director'] ?? '', + 'way' => $params['way'] ?? 0, + 'seal_name' => $params['seal_name'] ?? 0, + 'limit' => $params['limit'] ?? 0, + 'limit_num' => $params['limit_num'] ?? 0, + 'file_type' => $params['file_type'] ?? 0, + 'seal_num' => $params['seal_num'] ?? 0, + 'sealer' => $params['sealer'] ?? '', + 'plance_seal' => $params['plance_seal'] ?? 0, + 'send_date' => !empty($params['send_date']) ? strtotime($params['send_date']) : 0, + 'number' => $params['number'] ?? '', + '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/02/20 14:16 + */ + public static function delete(array $params): bool + { + $project = CostProject::where('contract_id', 'in', $params['id'])->findOrEmpty(); + if (!$project->isEmpty()) { + self::setError('此数据关联了造价项目信息,需删除造价项目信息'); + return false; + } + return CostApprovedProject::destroy($params['id']); + } + + + /** + * @notes 获取待立项造价项目详情 + * @param $params + * @return array + * @author likeadmin + * @date 2024/02/20 14:16 + */ + public static function detail($params): array + { + $data = CostApprovedProject::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']); + $data['contract_type_text'] = $data->contract_type_text; + $data['business_nature_text'] = $data->business_nature_text; + $data['industry_nature_text'] = $data->industry_nature_text; + $data['fund_sources_text'] = $data->fund_sources_text; + $data['const_area_text'] = $data->const_area_text; + $data['way_text'] = $data->way_text; + $data['seal_name_text'] = $data->seal_name_text; + $data['file_type_text'] = $data->file_type_text; + $data['plance_seal_text'] = $data->plance_seal_text; + $data['limit_text'] = $data->limit_text; + return $data->toArray(); + } + + public static function datas() + { + return CostApprovedProject::field(['id', 'contract_name'])->order(['id' => 'desc'])->select()->each(function ($data) { + $data['projectinfo'] = 'ID:' . $data['id'] . ' / 名称:' . $data['contract_name']; + })->toArray(); + } + } \ No newline at end of file