# 专项债结构化 > 为了规范化专项债数据。目前采集采集的数据并没有更新处理,需要对采集的数据进行结构化,并对存量数据进行更新; > 目前 主要针对 `https://www.zhuanxiangzhaiquan.com/home` 网站的数据处理的;如果后期有新的网站数据,需要更新项目代码 ## 使用说明 1. 修改配置文件,`mongob` 里面的 `list` `detail` 字段,修改成最新的数据表 2. 执行可执行文件 ### 数据表结构设计 #### project_base_info 项目基本信息数据表 ```mysql CREATE TABLE `zxz_project_base_info` CREATE TABLE `zxz_project_base_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `project_name` varchar(255) NOT NULL COMMENT '项目名称,索引', `total_investment` float DEFAULT NULL COMMENT '总投资(万元)', `area` varchar(255) DEFAULT NULL COMMENT '省份', `city` varchar(255) DEFAULT NULL COMMENT '城市', `district` varchar(255) DEFAULT NULL COMMENT '区县', `capital` float DEFAULT NULL COMMENT '不含专项债的资本金(万元)', `apply_total_bonds` float DEFAULT NULL COMMENT '申请专项债总额(万元)', `other_debt_financing` float DEFAULT NULL COMMENT '其他债务融资(万元)', `special_debt_capital` float DEFAULT NULL COMMENT '专项债作资本金(万元)', `expected_return` float DEFAULT NULL COMMENT '预期收入(万元)', `project_cost` int(11) DEFAULT NULL COMMENT '成本', `project_domain` varchar(255) DEFAULT NULL COMMENT '项目领域', `project_owner` text DEFAULT NULL COMMENT '项目业主', `start_date` varchar(255) DEFAULT NULL COMMENT '建设期开始', `end_date` varchar(255) DEFAULT NULL COMMENT '建设期结束', `operation_start_date` varchar(255) DEFAULT NULL COMMENT '运营期开始', `operation_end_date` varchar(255) DEFAULT NULL COMMENT '运营期结束', `source_income` text DEFAULT NULL COMMENT '收入来源', `construction_content` text DEFAULT NULL COMMENT '建设内容', `remarks` varchar(500) DEFAULT NULL COMMENT '特殊情况备注', `other_debt_financing_source` varchar(500) DEFAULT NULL COMMENT '其他债务融资来源', `cost_income_percent` varchar(50) DEFAULT NULL COMMENT '成本/收入(%)', `coverage_multiple` float DEFAULT NULL COMMENT '覆盖倍数', `competent_department` varchar(255) DEFAULT NULL COMMENT '主管部门', `accounting_firm` varchar(255) DEFAULT NULL COMMENT '会计所', `law_firm` varchar(255) DEFAULT NULL COMMENT '律所', `create_date` varchar(255) DEFAULT NULL COMMENT '原网站发行时间', `update_date` varchar(255) DEFAULT NULL COMMENT '原网站更新时间', `comeintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */, KEY `idx_project_name` (`project_name`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin COMMENT ='项目基本信息'; ``` #### project_change 项目变更表 ```mysql CREATE TABLE `zxz_project_change` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `project_id` int(11) DEFAULT NULL COMMENT '项目ID', `project_name` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '项目名称,索引', `change_content` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '变更内容', `update_reason` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新原因', `submit_time` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '提交时间', `comeintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_projectName` (`project_name`), KEY `project_id` (`project_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin COMMENT ='项目变更表'; ``` #### project_issue_details 项目发行明细表 ```mysql CREATE TABLE `zxz_project_issue_details` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `project_id` int(11) DEFAULT NULL COMMENT '项目ID', `project_name` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '项目名称', `project_bach_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '项目批次名称', `bond_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '债券名称', `first_publish_date` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '发布时间', `batch_num` int(11) DEFAULT NULL COMMENT '批次', `present_issue_amount` float DEFAULT NULL COMMENT '发行额', `issue_interest_rate` float DEFAULT NULL COMMENT '发行利率', `present_as_special_amount` float DEFAULT NULL COMMENT '专项债作为资本金发行额', `total_issue_amount` float DEFAULT NULL COMMENT '累计发行金额', `revise_log` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '调整记录', `comeintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_project_name` (`project_name`), KEY `project_id` (`project_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin COMMENT ='项目发行明细信息'; ``` #### project_repayment 项目还本付息表 ```mysql CREATE TABLE `zxz_project_repayment` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `project_id` int(11) DEFAULT NULL COMMENT '项目ID', `project_name` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '项目名称', `bond_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '债券名称', `issue_term` int(11) DEFAULT NULL COMMENT '发行期限(年)', `pay_interest_method_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '付息方式', `value_date` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '起息日', `interest_date` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '付息日', `last_interest_date` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '最近付息日', `reminder_repay_days` int(11) DEFAULT NULL COMMENT '提醒还款(天)', `maturity_date` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '到期日', `debt_service` float DEFAULT NULL COMMENT '还本付息(万元)', `redemption_method` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '赎回方式', `cumulative_pay_interest` int(11) DEFAULT NULL COMMENT '累计付息(万元)', `is_early_repay_principal` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '提前还本', `remarks` varchar(500) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备注', `comeintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_project_name` (`project_name`), KEY `project_id` (`project_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin COMMENT ='项目还本付息信息'; ``` #### bond_info 债券-基本信息表 ```mysql CREATE TABLE `zxz_bond_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `bond_name` varchar(255) NOT NULL COMMENT '债券名称', `bond_short_name` varchar(255) DEFAULT NULL COMMENT '债券简称', `bond_no` varchar(100) DEFAULT NULL COMMENT '债券编码', `area` varchar(100) DEFAULT NULL COMMENT '省份', `bond_nature` varchar(255) DEFAULT NULL COMMENT '债券性质', `bond_type` varchar(255) DEFAULT NULL COMMENT '债券类型', `official_project_type` varchar(255) DEFAULT NULL COMMENT '官方项目类型', `total_amount` float DEFAULT NULL COMMENT '发行金额(万元)', `issue_date` datetime DEFAULT NULL COMMENT '发行日期', `issue_place` varchar(255) DEFAULT NULL COMMENT '发行场所', `issue_term` int(11) DEFAULT NULL COMMENT '发行期限(年)', `issue_interest_rate` varchar(50) DEFAULT NULL COMMENT '发行利率(%)', `issue_phase` varchar(50) DEFAULT NULL COMMENT '发行期数', `way_of_pay_interest` varchar(255) DEFAULT NULL COMMENT '付息方式', `new_bond_amount` float DEFAULT NULL COMMENT '新增债券(亿元)', `counter_bond_amount` float DEFAULT NULL COMMENT '置换债券(亿元)', `refinancing_bond_amount` float DEFAULT NULL COMMENT '再融资债券(亿元)', `redemption_method` varchar(255) DEFAULT NULL COMMENT '赎回方式', `value_date` varchar(50) DEFAULT NULL COMMENT '起息日', `expiry_date` varchar(50) DEFAULT NULL COMMENT '到息日', `pay_interest_date` varchar(50) DEFAULT NULL COMMENT '付息日', `late_pay_interest_date` varchar(50) DEFAULT NULL COMMENT '最近付息日', `remind_pay_days` int(11) DEFAULT NULL COMMENT '提醒还款(天)', `last_pay_interest` float DEFAULT NULL COMMENT '上期已付息(亿元)', `is_early_repay_prinipal` varchar(50) DEFAULT NULL COMMENT '提前还本', `cumulative_pay_interest` float DEFAULT NULL COMMENT '累计付息(亿元)', `is_counter_bond` varchar(50) DEFAULT NULL COMMENT '柜台债', `comeintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_bond_name` (`bond_name`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='债券基本信息'; ``` #### bond_change_log 债券-修改记录表 ```mysql CREATE TABLE `zxz_bond_change_log` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `bond_name` varchar(255) NOT NULL COMMENT '债券名称', `change_reason` varchar(500) DEFAULT NULL COMMENT '变更原因', `change_detail` varchar(1000) DEFAULT NULL COMMENT '变更内容', `comeintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间', `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_bondName` (`bond_name`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='债券-修改记录表'; ``` #### project_bond_relation ```mysql CREATE TABLE `zxz_project_bond_relation` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增', `project_id` int(11) DEFAULT NULL COMMENT '项目ID', `bond_id` int(11) DEFAULT NULL COMMENT '债券ID', PRIMARY KEY (`id`), KEY (`project_id`), KEY (`bond_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='债券-项目关系表'; ```