diff --git a/docs/db/phase2/init-phase2.sql b/docs/db/phase2/init-phase2.sql index 669255e..eb33381 100644 --- a/docs/db/phase2/init-phase2.sql +++ b/docs/db/phase2/init-phase2.sql @@ -1,10 +1,10 @@ -- ============================================= -- 安全评价系统二期建表脚本 --- 日期: 2026-07-17 --- 表数量: 30 +-- 日期: 2026-07-20 +-- 表数量: 23 -- 规范: utf8mb4 / utf8mb4_0900_ai_ci;禁止物理外键;逻辑关联由业务层保证 --- 一期已有表不在本脚本重建 --- 站内消息复用 GBS jjb-saas-message,本库不建消息表 +-- 一期已有表不在本脚本重建;站内消息复用 GBS,本库不建消息表 +-- 安评项目按原型8节点专表设计,无节点流程引擎表 -- 执行: mysql -u -p < init-phase2.sql -- ============================================= @@ -12,820 +12,7 @@ set names utf8mb4; set foreign_key_checks = 0; -- ============================================= --- 1. 资质审核(5) --- ============================================= - -drop table if exists `qual_review_task`; -create table `qual_review_task` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id(逻辑关联org_info.id)', - `filing_id` bigint not null comment '备案申请id(逻辑关联qual_filing.id)', - `task_no` varchar(64) default null comment '审核任务编号', - `stage_code` int default null comment '当前阶段编码(1初审2专家核验3现场审查4会审5许可审批6已办结)', - `stage_name` varchar(50) default null comment '当前阶段名称', - `result_code` int default null comment '任务结果编码(1通过2打回3进行中)', - `result_name` varchar(50) default null comment '任务结果名称', - `handler_id` bigint default null comment '当前办理人账号id', - `handler_name` varchar(50) default null comment '当前办理人姓名', - `start_time` datetime default null comment '任务开始时间', - `finish_time` datetime default null comment '任务办结时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_review_task_org` (`org_id`), - key `idx_qual_review_task_filing` (`filing_id`), - key `idx_qual_review_task_stage` (`stage_code`), - key `idx_qual_review_task_no` (`task_no`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质审核任务表'; - -drop table if exists `qual_review_action`; -create table `qual_review_action` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `task_id` bigint default null comment '审核任务id', - `filing_id` bigint not null comment '备案申请id', - `notice_id` bigint default null comment '现场审查通知id(可选)', - `action_type_code` int default null comment '动作类型编码(1审核意见2专家核验3下发通知4机构确认5材料反馈6会审7许可)', - `action_type_name` varchar(50) default null comment '动作类型名称', - `stage_code` int default null comment '所属阶段编码', - `stage_name` varchar(50) default null comment '所属阶段名称', - `result_code` int default null comment '结果编码(1通过2打回3补充材料4已确认)', - `result_name` varchar(50) default null comment '结果名称', - `action_content` varchar(2000) default null comment '动作内容/意见', - `attachment_urls` varchar(2000) default null comment '附件地址(逗号分隔)', - `operator_id` bigint default null comment '操作人账号id', - `operator_name` varchar(50) default null comment '操作人姓名', - `action_time` datetime default null comment '动作时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_review_action_task` (`task_id`), - key `idx_qual_review_action_filing` (`filing_id`), - key `idx_qual_review_action_notice` (`notice_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质审核动作流水表'; - -drop table if exists `qual_review_expert_assign`; -create table `qual_review_expert_assign` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `task_id` bigint not null comment '审核任务id', - `filing_id` bigint not null comment '备案申请id', - `expert_id` bigint not null comment '专家id(逻辑关联qual_filing_expert.id)', - `expert_name` varchar(50) default null comment '专家姓名', - `assign_status_code` int default null comment '指派状态编码(1已指派2已核验3已退回)', - `assign_status_name` varchar(50) default null comment '指派状态名称', - `verify_result_code` int default null comment '核验结果编码(1通过2不通过)', - `verify_result_name` varchar(50) default null comment '核验结果名称', - `verify_opinion` varchar(2000) default null comment '核验意见', - `verify_time` datetime default null comment '核验时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_review_expert_task` (`task_id`), - key `idx_qual_review_expert_id` (`expert_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质审核专家指派表'; - -drop table if exists `qual_site_review_notice`; -create table `qual_site_review_notice` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `filing_id` bigint not null comment '备案申请id', - `task_id` bigint default null comment '审核任务id', - `notice_no` varchar(64) default null comment '通知编号', - `apply_item_name` varchar(200) default null comment '申请事项', - `review_org_name` varchar(200) default null comment '审查组织单位', - `plan_review_time` datetime default null comment '计划审查时间', - `review_place` varchar(500) default null comment '审查地点', - `reviewer_names` varchar(500) default null comment '审查人员名单', - `material_require` varchar(2000) default null comment '材料准备要求', - `notice_status_code` int default null comment '通知状态编码(1待确认2已确认3已完成4已取消)', - `notice_status_name` varchar(50) default null comment '通知状态名称', - `confirm_flag` tinyint default 2 comment '机构是否确认(1是2否)', - `confirm_time` datetime default null comment '确认时间', - `confirm_user_id` bigint default null comment '确认人账号id', - `confirm_user_name` varchar(50) default null comment '确认人姓名', - `feedback_content` varchar(2000) default null comment '机构反馈说明', - `feedback_urls` varchar(2000) default null comment '反馈材料地址', - `send_time` datetime default null comment '下发时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_site_notice_org` (`org_id`), - key `idx_qual_site_notice_filing` (`filing_id`), - key `idx_qual_site_notice_no` (`notice_no`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质现场审查通知表'; - -drop table if exists `qual_publicity`; -create table `qual_publicity` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `filing_id` bigint not null comment '备案申请id', - `task_id` bigint default null comment '审核任务id', - `publicity_no` varchar(64) default null comment '公示编号', - `publicity_title` varchar(200) default null comment '公示标题', - `publicity_content` varchar(4000) default null comment '公示内容', - `start_date` date default null comment '公示开始日期', - `end_date` date default null comment '公示结束日期', - `publicity_status_code` int default null comment '公示状态编码(1未发布2公示中3已结束4已撤销)', - `publicity_status_name` varchar(50) default null comment '公示状态名称', - `publish_time` datetime default null comment '发布时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_publicity_org` (`org_id`), - key `idx_qual_publicity_filing` (`filing_id`), - key `idx_qual_publicity_status` (`publicity_status_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质备案公示表'; - --- ============================================= --- 2. 规则 / 保持 / 预警(5) --- ============================================= - -drop table if exists `biz_rule`; -create table `biz_rule` ( - `id` bigint not null comment '主键', - `domain_code` varchar(32) not null comment '规则域编码(KEEP保持/WARNING预警)', - `domain_name` varchar(50) default null comment '规则域名称', - `rule_code` varchar(64) not null comment '规则编码', - `rule_name` varchar(100) not null comment '规则名称', - `category_code` int default null comment '大类编码(预警域用:1人员2机构资质3项目风险4资质临期)', - `category_name` varchar(50) default null comment '大类名称', - `subtype_code` varchar(64) default null comment '子类/条件编码', - `subtype_name` varchar(100) default null comment '子类/条件名称', - `source_fields` varchar(1000) default null comment '来源字段标签', - `threshold_desc` varchar(500) default null comment '阈值口径说明', - `enable_flag` tinyint default 1 comment '是否启用(1是2否)', - `sort_order` int default 0 comment '排序序号', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `org_id` bigint default null comment '单位id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - unique key `uk_biz_rule_domain_code` (`domain_code`, `rule_code`), - key `idx_biz_rule_domain` (`domain_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='业务规则配置表(保持/预警)'; - -drop table if exists `qual_keep_check`; -create table `qual_keep_check` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `filing_id` bigint default null comment '关联备案id', - `business_scope` varchar(500) default null comment '业务范围', - `keep_status_code` int default null comment '保持状态编码(1保持正常2人员比例预警3重点关注4属地待核验)', - `keep_status_name` varchar(50) default null comment '保持状态名称', - `pass_item_count` int default null comment '通过条件数', - `fail_item_count` int default null comment '异常条件数', - `check_time` datetime default null comment '最近校验时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_keep_check_org` (`org_id`), - key `idx_qual_keep_check_status` (`keep_status_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质保持校验表'; - -drop table if exists `qual_keep_check_item`; -create table `qual_keep_check_item` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `check_id` bigint not null comment '保持校验id', - `rule_id` bigint default null comment '规则id(逻辑关联biz_rule.id)', - `rule_code` varchar(64) default null comment '规则编码', - `condition_name` varchar(100) default null comment '条件名称', - `item_result_code` int default null comment '分项结果编码(1通过2异常3待核验)', - `item_result_name` varchar(50) default null comment '分项结果名称', - `source_snapshot` varchar(2000) default null comment '来源字段快照', - `result_desc` varchar(1000) default null comment '结论说明', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_qual_keep_item_check` (`check_id`), - key `idx_qual_keep_item_org` (`org_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='资质保持校验分项表'; - -drop table if exists `risk_warning`; -create table `risk_warning` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `warning_no` varchar(64) not null comment '预警编号', - `category_code` int default null comment '预警大类编码(1人员2机构资质3项目风险4资质临期)', - `category_name` varchar(50) default null comment '预警大类名称', - `subtype_code` varchar(64) default null comment '预警子类编码', - `subtype_name` varchar(100) default null comment '预警子类名称', - `risk_object_name` varchar(200) default null comment '风险对象名称(机构或项目)', - `project_id` bigint default null comment '关联项目id', - `personnel_id` bigint default null comment '关联人员id', - `qualification_id` bigint default null comment '关联资质证书id', - `cert_id` bigint default null comment '关联人员证书id', - `keep_check_id` bigint default null comment '关联保持校验id', - `rule_id` bigint default null comment '触发规则id', - `source_fields` varchar(1000) default null comment '来源字段标签', - `warning_content` varchar(2000) default null comment '触发内容', - `handle_stage_code` int default null comment '处理阶段编码(1未处理2已发机构3待复核4已闭环)', - `handle_stage_name` varchar(50) default null comment '处理阶段名称', - `org_feedback_code` int default null comment '机构端状态编码', - `org_feedback_name` varchar(50) default null comment '机构端状态名称', - `send_time` datetime default null comment '发机构时间', - `close_time` datetime default null comment '闭环时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - unique key `uk_risk_warning_no` (`warning_no`), - key `idx_risk_warning_org` (`org_id`), - key `idx_risk_warning_stage` (`handle_stage_code`), - key `idx_risk_warning_category` (`category_code`), - key `idx_risk_warning_project` (`project_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='风险预警主表'; - -drop table if exists `risk_warning_action`; -create table `risk_warning_action` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `warning_id` bigint not null comment '预警id', - `action_type_code` int default null comment '动作类型编码(1发函2机构反馈3监管复核4闭环)', - `action_type_name` varchar(50) default null comment '动作类型名称', - `action_content` varchar(2000) default null comment '动作内容', - `attachment_urls` varchar(2000) default null comment '附件地址', - `operator_id` bigint default null comment '操作人id', - `operator_name` varchar(50) default null comment '操作人姓名', - `action_time` datetime default null comment '动作时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_risk_warning_action_wid` (`warning_id`), - key `idx_risk_warning_action_org` (`org_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='风险预警处置流水表'; - --- ============================================= --- 3. 安评客户 / 项目 / 资料(5) --- ============================================= - -drop table if exists `eval_customer`; -create table `eval_customer` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '评价机构id', - `customer_name` varchar(200) not null comment '客户(被评价企业)名称', - `credit_code` varchar(18) default null comment '统一社会信用代码', - `district_code` varchar(32) default null comment '所属区县编码', - `district_name` varchar(50) default null comment '所属区县名称', - `address` varchar(500) default null comment '地址', - `contact_name` varchar(50) default null comment '联系人', - `contact_phone` varchar(20) default null comment '联系电话', - `industry_code` varchar(32) default null comment '行业编码', - `industry_name` varchar(100) default null comment '行业名称', - `eval_expire_date` date default null comment '评价到期日(供预警)', - `customer_status_code` int default null comment '客户状态编码(1正常2停用)', - `customer_status_name` varchar(50) default null comment '客户状态名称', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_customer_org` (`org_id`), - key `idx_eval_customer_credit` (`credit_code`), - key `idx_eval_customer_name` (`customer_name`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评客户表'; - -drop table if exists `eval_project`; -create table `eval_project` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '评价机构id', - `customer_id` bigint not null comment '客户id', - `project_no` varchar(64) not null comment '项目编号', - `project_name` varchar(200) not null comment '项目名称', - `eval_type_code` varchar(32) default null comment '评价类型编码', - `eval_type_name` varchar(50) default null comment '评价类型名称', - `business_scope` varchar(500) default null comment '业务范围', - `plan_start_date` date default null comment '计划开始日期', - `plan_end_date` date default null comment '计划结束日期', - `actual_start_date` date default null comment '实际开始日期', - `actual_end_date` date default null comment '实际结束日期', - `current_node_code` varchar(32) default null comment '当前节点编码(逻辑关联eval_node_def.node_code)', - `current_node_name` varchar(50) default null comment '当前节点名称', - `status_code` int default null comment '项目状态编码(1草稿2进行中3已归档4已作废)', - `status_name` varchar(50) default null comment '项目状态名称', - `leader_personnel_id` bigint default null comment '项目负责人人员id', - `leader_name` varchar(50) default null comment '项目负责人姓名', - `cancel_reason` varchar(500) default null comment '作废原因', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - unique key `uk_eval_project_no` (`project_no`), - key `idx_eval_project_org` (`org_id`), - key `idx_eval_project_customer` (`customer_id`), - key `idx_eval_project_status` (`status_code`), - key `idx_eval_project_node` (`current_node_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目主表'; - -drop table if exists `eval_project_member`; -create table `eval_project_member` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `personnel_id` bigint not null comment '人员id(逻辑关联org_personnel.id)', - `personnel_name` varchar(50) default null comment '人员姓名', - `role_code` varchar(32) default null comment '项目角色编码', - `role_name` varchar(50) default null comment '项目角色名称', - `leader_flag` tinyint default 2 comment '是否负责人(1是2否)', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_project_member_pid` (`project_id`), - key `idx_eval_project_member_person` (`personnel_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目成员表'; - -drop table if exists `eval_project_doc`; -create table `eval_project_doc` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `doc_name` varchar(200) not null comment '资料名称', - `doc_type_code` varchar(32) default null comment '资料类型编码', - `doc_type_name` varchar(50) default null comment '资料类型名称', - `latest_version_no` int default 1 comment '最新版本号', - `latest_file_url` varchar(500) default null comment '最新文件地址', - `confirm_status_code` int default null comment '确认状态编码(1待确认2已确认3已退回)', - `confirm_status_name` varchar(50) default null comment '确认状态名称', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_project_doc_pid` (`project_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目资料表'; - -drop table if exists `eval_project_doc_ver`; -create table `eval_project_doc_ver` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `doc_id` bigint not null comment '资料id', - `version_no` int not null comment '版本号', - `file_url` varchar(500) not null comment '文件地址', - `file_name` varchar(200) default null comment '文件名', - `upload_user_id` bigint default null comment '上传人id', - `upload_user_name` varchar(50) default null comment '上传人姓名', - `confirm_flag` tinyint default 2 comment '是否双方确认(1是2否)', - `reject_reason` varchar(500) default null comment '退回原因', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_project_doc_ver_doc` (`doc_id`), - key `idx_eval_project_doc_ver_pid` (`project_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目资料版本表'; - --- ============================================= --- 4. 节点引擎(可伸缩,替代一节点一表)(5) --- ============================================= - -drop table if exists `eval_node_def`; -create table `eval_node_def` ( - `id` bigint not null comment '主键', - `node_code` varchar(32) not null comment '节点编码(如RISK/CONTRACT/TEAM/SURVEY/REPORT/INTERNAL/TECH/PROCESS)', - `node_name` varchar(50) not null comment '节点名称', - `sort_order` int default 0 comment '默认排序', - `eval_type_code` varchar(32) default null comment '评价类型编码(空=通用)', - `eval_type_name` varchar(50) default null comment '评价类型名称', - `required_flag` tinyint default 1 comment '是否必做(1是2否)', - `form_schema_code` varchar(64) default null comment '前端表单模板编码', - `special_handler` varchar(32) default null comment '特殊处理器(空=通用表单;SURVEY/REPORT_EDITOR/SIGN)', - `enable_flag` tinyint default 1 comment '是否启用(1是2否)', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `org_id` bigint default null comment '单位id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - unique key `uk_eval_node_def_code_type` (`node_code`, `eval_type_code`), - key `idx_eval_node_def_enable` (`enable_flag`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目节点定义表'; - -drop table if exists `eval_node_inst`; -create table `eval_node_inst` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `node_def_id` bigint default null comment '节点定义id', - `node_code` varchar(32) not null comment '节点编码', - `node_name` varchar(50) default null comment '节点名称', - `sort_order` int default 0 comment '项目内排序', - `node_status_code` int default null comment '节点状态编码(1未开始2进行中3已完成4退回)', - `node_status_name` varchar(50) default null comment '节点状态名称', - `plan_finish_time` datetime default null comment '计划完成时间', - `actual_finish_time` datetime default null comment '实际完成时间', - `handler_personnel_id` bigint default null comment '当前办理人人员id', - `handler_name` varchar(50) default null comment '当前办理人姓名', - `form_id` bigint default null comment '关联通用表单id', - `special_ref_id` bigint default null comment '专表业务id(踏勘/报告稿等)', - `overdue_flag` tinyint default 2 comment '是否超期(1是2否)', - `required_flag` tinyint default 1 comment '是否必做(1是2否)', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - unique key `uk_eval_node_inst_proj_node` (`project_id`, `node_code`), - key `idx_eval_node_inst_org` (`org_id`), - key `idx_eval_node_inst_status` (`node_status_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目节点实例表'; - -drop table if exists `eval_node_form`; -create table `eval_node_form` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `node_inst_id` bigint not null comment '节点实例id', - `node_code` varchar(32) not null comment '节点编码', - `form_title` varchar(200) default null comment '表单标题', - `result_code` int default null comment '办理结果编码(1通过2退回3已提交)', - `result_name` varchar(50) default null comment '办理结果名称', - `opinion_content` varchar(2000) default null comment '意见/说明', - `summary_content` varchar(4000) default null comment '正文摘要', - `biz_no` varchar(64) default null comment '业务编号(如合同号)', - `amount_fen` bigint default null comment '金额(分,合同等场景)', - `biz_date` date default null comment '业务日期', - `ext_json` varchar(4000) default null comment '扩展字段JSON(低频异构属性)', - `status_code` int default null comment '表单状态编码(1草稿2已提交3已完成)', - `status_name` varchar(50) default null comment '表单状态名称', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_node_form_inst` (`node_inst_id`), - key `idx_eval_node_form_pid` (`project_id`), - key `idx_eval_node_form_code` (`node_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目节点通用表单表'; - -drop table if exists `eval_node_form_item`; -create table `eval_node_form_item` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `form_id` bigint not null comment '表单id', - `item_type_code` varchar(32) default null comment '行类型编码(PARTICIPANT/CHECK/OPINION/KV)', - `item_type_name` varchar(50) default null comment '行类型名称', - `item_code` varchar(64) default null comment '分项编码', - `item_name` varchar(200) default null comment '分项名称', - `item_value` varchar(2000) default null comment '分项值', - `personnel_id` bigint default null comment '关联人员id(参与人场景)', - `personnel_name` varchar(50) default null comment '关联人员姓名', - `sort_order` int default 0 comment '排序序号', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_node_form_item_fid` (`form_id`), - key `idx_eval_node_form_item_pid` (`project_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目节点表单分项表'; - -drop table if exists `eval_node_file`; -create table `eval_node_file` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `node_inst_id` bigint default null comment '节点实例id', - `form_id` bigint default null comment '表单id', - `file_biz_code` varchar(32) default null comment '文件业务编码(NOTICE/CHECKLIST/RECTIFY/SCAN/OTHER)', - `file_biz_name` varchar(50) default null comment '文件业务名称', - `file_name` varchar(200) default null comment '文件名', - `file_url` varchar(500) not null comment '文件地址', - `sort_order` int default 0 comment '排序序号', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_node_file_inst` (`node_inst_id`), - key `idx_eval_node_file_form` (`form_id`), - key `idx_eval_node_file_pid` (`project_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目节点附件表'; - --- ============================================= --- 5. 节点专表:踏勘 / 报告编辑 / 签字(5) --- ============================================= - -drop table if exists `eval_survey`; -create table `eval_survey` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `node_inst_id` bigint default null comment '节点实例id', - `plan_survey_date` date default null comment '计划踏勘日期', - `survey_place` varchar(500) default null comment '踏勘地点', - `survey_status_code` int default null comment '踏勘总状态编码(1未开始2进行中3已完成)', - `survey_status_name` varchar(50) default null comment '踏勘总状态名称', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_survey_pid` (`project_id`), - key `idx_eval_survey_inst` (`node_inst_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目现场踏勘主表'; - -drop table if exists `eval_survey_checkin`; -create table `eval_survey_checkin` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `survey_id` bigint not null comment '踏勘id', - `personnel_id` bigint default null comment '打卡人员id', - `personnel_name` varchar(50) default null comment '打卡人员姓名', - `task_status_code` int default null comment 'APP任务状态编码(1待执行2已完成3已取消)', - `task_status_name` varchar(50) default null comment 'APP任务状态名称', - `plan_time` datetime default null comment '计划执行时间', - `checkin_type_code` int default null comment '打卡类型编码(1签到2签退)', - `checkin_type_name` varchar(50) default null comment '打卡类型名称', - `checkin_time` datetime default null comment '打卡时间', - `longitude` decimal(10,6) default null comment '经度', - `latitude` decimal(10,6) default null comment '纬度', - `address` varchar(500) default null comment '打卡地址', - `face_pass_flag` tinyint default null comment '人脸校验是否通过(1是2否)', - `photo_urls` varchar(2000) default null comment '现场照片地址', - `sign_image_url` varchar(500) default null comment '现场签字图片地址', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_survey_checkin_sid` (`survey_id`), - key `idx_eval_survey_checkin_pid` (`project_id`), - key `idx_eval_survey_checkin_person` (`personnel_id`), - key `idx_eval_survey_checkin_task` (`task_status_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目现场踏勘打卡表(含APP任务)'; - -drop table if exists `eval_report_draft`; -create table `eval_report_draft` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `node_inst_id` bigint default null comment '节点实例id', - `draft_version_no` int default 1 comment '稿件版本号', - `template_code` varchar(64) default null comment '模板编码', - `template_name` varchar(100) default null comment '模板名称', - `content_url` varchar(500) default null comment '报告正文存储地址', - `hint_content` varchar(2000) default null comment '编写提示摘要', - `status_code` int default null comment '状态编码(1编辑中2已提交)', - `status_name` varchar(50) default null comment '状态名称', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_report_draft_pid` (`project_id`), - key `idx_eval_report_draft_inst` (`node_inst_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目报告编制稿表'; - -drop table if exists `eval_sign_task`; -create table `eval_sign_task` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `node_code` varchar(32) default null comment '所属节点编码', - `node_name` varchar(50) default null comment '所属节点名称', - `node_inst_id` bigint default null comment '节点实例id', - `biz_type_code` varchar(32) default null comment '业务类型编码', - `biz_type_name` varchar(50) default null comment '业务类型名称', - `biz_ref_id` bigint default null comment '业务单据id', - `signer_personnel_id` bigint default null comment '待签人员id', - `signer_name` varchar(50) default null comment '待签人员姓名', - `task_title` varchar(200) default null comment '签字任务标题', - `task_status_code` int default null comment '任务状态编码(1待签2已签3已作废)', - `task_status_name` varchar(50) default null comment '任务状态名称', - `expire_time` datetime default null comment '截止时间', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_sign_task_pid` (`project_id`), - key `idx_eval_sign_task_signer` (`signer_personnel_id`), - key `idx_eval_sign_task_status` (`task_status_code`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目签字任务表'; - -drop table if exists `eval_sign_record`; -create table `eval_sign_record` ( - `id` bigint not null comment '主键', - `org_id` bigint not null comment '机构id', - `project_id` bigint not null comment '项目id', - `sign_task_id` bigint not null comment '签字任务id', - `signer_personnel_id` bigint default null comment '签署人人员id', - `signer_name` varchar(50) default null comment '签署人姓名', - `sign_image_url` varchar(500) default null comment '手写签字图片地址', - `sign_time` datetime default null comment '签署时间', - `client_type_code` int default null comment '客户端类型编码(1PC2APP)', - `client_type_name` varchar(50) default null comment '客户端类型名称', - `delete_enum` varchar(32) default null comment '删除标识true false', - `remarks` varchar(255) default null comment '备注', - `create_name` varchar(50) default null comment '创建人姓名', - `update_name` varchar(50) default null comment '更新人姓名', - `tenant_id` bigint default null comment '租户id', - `version` int default null comment '版本', - `create_time` datetime default null comment '创建时间', - `update_time` datetime default null comment '修改时间', - `create_id` bigint default null comment '创建人id', - `update_id` bigint default null comment '修改人id', - `env` varchar(50) default null comment '环境', - primary key (`id`), - key `idx_eval_sign_record_task` (`sign_task_id`) -) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目签字记录表'; - --- ============================================= --- 6. 报告库 / 画像(3) +-- 1. 报告库 / 画像 / 监督检查(5) -- ============================================= drop table if exists `eval_report`; @@ -903,7 +90,7 @@ create table `org_profile_score` ( `finish_project_count` int default null comment '完成项目数', `on_time_rate` decimal(8,4) default null comment '按期完成率', `spotcheck_pass_rate` decimal(8,4) default null comment '报告抽查合格率', - `open_warning_count` int default null comment '未闭环预警数', + `open_issue_count` int default null comment '未闭环问题数', `insp_count` int default null comment '监督检查次数', `total_score` decimal(8,2) default null comment '综合得分', `level_code` varchar(32) default null comment '等级编码', @@ -926,10 +113,6 @@ create table `org_profile_score` ( key `idx_org_profile_score_period` (`score_period`) ) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='机构画像得分表'; --- ============================================= --- 7. 监督检查(2) --- ============================================= - drop table if exists `insp_notice`; create table `insp_notice` ( `id` bigint not null comment '主键', @@ -937,9 +120,9 @@ create table `insp_notice` ( `notice_no` varchar(64) not null comment '告知编号', `insp_type_code` varchar(32) default null comment '检查类型编码', `insp_type_name` varchar(50) default null comment '检查类型名称', - `source_type_code` int default null comment '来源方式编码(1风险预警2年度计划3专项安排)', + `source_type_code` int default null comment '来源方式编码(1年度计划2专项安排3其他)', `source_type_name` varchar(50) default null comment '来源方式名称', - `source_warning_id` bigint default null comment '来源预警id', + `source_ref_id` bigint default null comment '来源业务id(可选)', `project_id` bigint default null comment '关联项目id', `plan_insp_time` datetime default null comment '计划检查时间', `leader_name` varchar(50) default null comment '检查组长', @@ -971,7 +154,7 @@ create table `insp_notice` ( unique key `uk_insp_notice_no` (`notice_no`), key `idx_insp_notice_org` (`org_id`), key `idx_insp_notice_status` (`status_code`), - key `idx_insp_notice_warning` (`source_warning_id`) + key `idx_insp_notice_source` (`source_ref_id`) ) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='监督检查告知表'; drop table if exists `insp_notice_material`; @@ -999,21 +182,595 @@ create table `insp_notice_material` ( key `idx_insp_notice_material_nid` (`notice_id`) ) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='监督检查材料反馈表'; + -- ============================================= --- 8. 默认节点定义种子 +-- 2. 安评项目与八节点专表(18) -- ============================================= -insert into `eval_node_def` -(`id`,`node_code`,`node_name`,`sort_order`,`eval_type_code`,`eval_type_name`,`required_flag`,`form_schema_code`,`special_handler`,`enable_flag`,`delete_enum`,`create_time`,`update_time`) -values -(1,'RISK','风险分析',10,null,null,1,'schema_risk',null,1,'false',now(),now()), -(2,'CONTRACT','业务合同',20,null,null,1,'schema_contract',null,1,'false',now(),now()), -(3,'TEAM','项目组成立',30,null,null,1,'schema_team',null,1,'false',now(),now()), -(4,'SURVEY','现场踏勘',40,null,null,1,'schema_survey','SURVEY',1,'false',now(),now()), -(5,'REPORT','报告编制',50,null,null,1,'schema_report','REPORT_EDITOR',1,'false',now(),now()), -(6,'INTERNAL','内部审核',60,null,null,1,'schema_internal',null,1,'false',now(),now()), -(7,'TECH','技术审核',70,null,null,1,'schema_tech',null,1,'false',now(),now()), -(8,'PROCESS','过程控制',80,null,null,1,'schema_process',null,1,'false',now(),now()); +drop table if exists `eval_customer`; +create table `eval_customer` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '评价机构id', + `customer_name` varchar(200) not null comment '客户(被评价企业)名称', + `credit_code` varchar(18) default null comment '统一社会信用代码', + `district_code` varchar(32) default null comment '所属区县编码', + `district_name` varchar(50) default null comment '所属区县名称', + `address` varchar(500) default null comment '地址', + `contact_name` varchar(50) default null comment '联系人', + `contact_phone` varchar(20) default null comment '联系电话', + `industry_code` varchar(32) default null comment '行业编码', + `industry_name` varchar(100) default null comment '行业名称', + `eval_expire_date` date default null comment '评价到期日(供预警)', + `customer_status_code` int default null comment '客户状态编码(1正常2停用)', + `customer_status_name` varchar(50) default null comment '客户状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_customer_org` (`org_id`), + key `idx_eval_customer_credit` (`credit_code`), + key `idx_eval_customer_name` (`customer_name`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评客户表'; + +drop table if exists `eval_project`; +create table `eval_project` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '评价机构id', + `customer_id` bigint not null comment '客户id', + `project_no` varchar(64) not null comment '项目编号', + `project_name` varchar(200) not null comment '项目名称', + `eval_type_code` varchar(32) default null comment '评价类型编码', + `eval_type_name` varchar(50) default null comment '评价类型名称', + `business_scope` varchar(500) default null comment '业务范围', + `plan_start_date` date default null comment '计划开始日期', + `plan_end_date` date default null comment '计划结束日期', + `actual_start_date` date default null comment '实际开始日期', + `actual_end_date` date default null comment '实际结束日期', + `current_stage_code` varchar(32) default null comment '当前展示阶段编码(业务展示用)', + `current_stage_name` varchar(50) default null comment '当前展示阶段名称', + `status_code` int default null comment '项目状态编码(1草稿2进行中3已归档4已作废)', + `status_name` varchar(50) default null comment '项目状态名称', + `leader_personnel_id` bigint default null comment '项目负责人人员id', + `leader_name` varchar(50) default null comment '项目负责人姓名', + `cancel_reason` varchar(500) default null comment '作废原因', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_project_no` (`project_no`), + key `idx_eval_project_org` (`org_id`), + key `idx_eval_project_customer` (`customer_id`), + key `idx_eval_project_status` (`status_code`), + key `idx_eval_project_stage` (`current_stage_code`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目主表'; + +drop table if exists `eval_project_member`; +create table `eval_project_member` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `personnel_id` bigint not null comment '人员id(逻辑关联org_personnel.id)', + `personnel_name` varchar(50) default null comment '人员姓名', + `role_code` varchar(32) default null comment '项目角色编码', + `role_name` varchar(50) default null comment '项目角色名称', + `leader_flag` tinyint default 2 comment '是否负责人(1是2否)', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_project_member_pid` (`project_id`), + key `idx_eval_project_member_person` (`personnel_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目成员表'; + +drop table if exists `eval_project_doc`; +create table `eval_project_doc` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `doc_name` varchar(200) not null comment '资料名称', + `doc_type_code` varchar(32) default null comment '资料类型编码', + `doc_type_name` varchar(50) default null comment '资料类型名称', + `latest_version_no` int default 1 comment '最新版本号', + `latest_file_url` varchar(500) default null comment '最新文件地址', + `confirm_status_code` int default null comment '确认状态编码(1待确认2已确认3已退回)', + `confirm_status_name` varchar(50) default null comment '确认状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_project_doc_pid` (`project_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评项目资料表'; + +drop table if exists `eval_risk_analysis`; +create table `eval_risk_analysis` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `analysis_date` date default null comment '风险分析时间', + `eval_type_code` varchar(32) default null comment '评价类别编码', + `eval_type_name` varchar(50) default null comment '评价类别名称', + `industry_code` varchar(32) default null comment '所属行业编码', + `industry_name` varchar(100) default null comment '所属行业名称', + `eval_scope` varchar(1000) default null comment '评价范围', + `in_biz_scope_flag` tinyint default null comment '是否在资质业务范围内(1是2否)', + `unit_overview` varchar(2000) default null comment '被评价单位基本概况', + `industry_risk_desc` varchar(2000) default null comment '项目行业风险特性分析', + `staff_match_code` int default null comment '人员专业构成是否满足(1满足2不满足)', + `need_expert_code` int default null comment '是否需要聘请专家(1需要2不需要)', + `capability_code` int default null comment '是否有能力承担评价风险(1是2否)', + `feasible_code` int default null comment '项目可行性(1可行2不可行)', + `economic_code` int default null comment '经济性(1有经济效益2无利润)', + `risk_level_code` int default null comment '风险程度(1低度2中度3高度)', + `risk_level_name` varchar(50) default null comment '风险程度名称', + `sign_contract_code` int default null comment '合同签订结论(1签合同2不签合同)', + `conclusion_content` varchar(2000) default null comment '风险分析结论', + `approver_name` varchar(50) default null comment '批准人', + `approval_opinion_code` int default null comment '批准意见(1同意2退回补充3不同意承接)', + `approval_opinion_name` varchar(50) default null comment '批准意见名称', + `approval_date` date default null comment '批准日期', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_risk_project` (`project_id`), + key `idx_eval_risk_org` (`org_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='01风险分析记录表'; + +drop table if exists `eval_risk_participant`; +create table `eval_risk_participant` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `risk_id` bigint not null comment '风险分析id', + `personnel_id` bigint default null comment '人员id', + `personnel_name` varchar(50) default null comment '人员姓名', + `dept_name` varchar(100) default null comment '部门/岗位', + `sign_status_code` int default null comment '签字状态(1待签2已签)', + `sign_status_name` varchar(50) default null comment '签字状态名称', + `sign_file_url` varchar(500) default null comment '签字图片地址', + `sort_order` int default 0 comment '排序', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_risk_part_rid` (`risk_id`), + key `idx_eval_risk_part_pid` (`project_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='01风险分析参与人签字表'; + +drop table if exists `eval_contract`; +create table `eval_contract` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `org_name` varchar(200) default null comment '机构名称', + `contract_no` varchar(64) default null comment '合同编号', + `project_name` varchar(200) default null comment '项目名称', + `project_intro` varchar(2000) default null comment '项目简介', + `amount_fen` bigint default null comment '合同金额(分)', + `project_type_code` varchar(32) default null comment '项目类型编码', + `project_type_name` varchar(50) default null comment '项目类型名称', + `risk_summary` varchar(500) default null comment '项目风险分析摘要', + `project_region` varchar(100) default null comment '项目所在地', + `project_address` varchar(500) default null comment '项目详细地址', + `contract_start_date` date default null comment '合同开始时间', + `contract_end_date` date default null comment '合同结束时间', + `eval_type_code` varchar(32) default null comment '评价类型编码', + `eval_type_name` varchar(50) default null comment '评价类型名称', + `toxic_flag` tinyint default 2 comment '是否生产剧毒化学品(1是2否)', + `precursor_flag` tinyint default 2 comment '是否生产易制毒化学品(1是2否)', + `cross_province_flag` tinyint default 2 comment '是否跨省建设项目(1是2否)', + `business_scope` varchar(500) default null comment '项目业务范围', + `enterprise_name` varchar(200) default null comment '企业名称', + `industry_category` varchar(100) default null comment '国民经济行业类别', + `office_address` varchar(500) default null comment '办公地址', + `credit_code` varchar(18) default null comment '统一社会信用代码', + `post_code` varchar(20) default null comment '邮政编码', + `enterprise_phone` varchar(50) default null comment '企业电话', + `fax` varchar(50) default null comment '传真', + `legal_person` varchar(50) default null comment '法人代表', + `contact_name` varchar(50) default null comment '联系人', + `staff_count` int default null comment '职工人数', + `scan_file_url` varchar(500) default null comment '合同扫描件PDF地址', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_contract_project` (`project_id`), + key `idx_eval_contract_org` (`org_id`), + key `idx_eval_contract_no` (`contract_no`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='02业务合同表'; + +drop table if exists `eval_team`; +create table `eval_team` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `leader_personnel_id` bigint default null comment '项目负责人人员id', + `leader_name` varchar(50) default null comment '项目负责人姓名', + `control_personnel_id` bigint default null comment '过程控制负责人人员id', + `control_name` varchar(50) default null comment '过程控制负责人姓名', + `member_count` int default null comment '成员人数', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `finish_time` datetime default null comment '成立完成时间', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_team_project` (`project_id`), + key `idx_eval_team_org` (`org_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='03项目组成立表'; + +drop table if exists `eval_survey`; +create table `eval_survey` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `plan_survey_date` date default null comment '计划踏勘日期', + `survey_place` varchar(500) default null comment '踏勘地点', + `notice_done_flag` tinyint default 2 comment '从业告知是否完成(1是2否)', + `inspect_done_flag` tinyint default 2 comment '现场勘查是否完成(1是2否)', + `rectify_done_flag` tinyint default 2 comment '整改通知是否完成(1是2否)', + `enterprise_done_flag` tinyint default 2 comment '企业整改报告是否完成(1是2否)', + `review_done_flag` tinyint default 2 comment '整改复查是否完成(1是2否)', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_survey_project` (`project_id`), + key `idx_eval_survey_org` (`org_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='04现场踏勘主表'; + +drop table if exists `eval_survey_notice`; +create table `eval_survey_notice` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `survey_id` bigint not null comment '踏勘id', + `notice_content` varchar(4000) default null comment '告知书填写内容摘要/正文', + `member_snapshot` varchar(2000) default null comment '告知人员及分工快照', + `stamp_file_url` varchar(500) default null comment '盖章件地址', + `status_code` int default null comment '状态(1草稿2已填写3已上传盖章4已完成)', + `status_name` varchar(50) default null comment '状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_survey_notice_sid` (`survey_id`), + key `idx_eval_survey_notice_pid` (`project_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='04从业告知表'; + +drop table if exists `eval_survey_checkin`; +create table `eval_survey_checkin` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `survey_id` bigint not null comment '踏勘id', + `personnel_id` bigint default null comment '打卡人员id', + `personnel_name` varchar(50) default null comment '打卡人员姓名', + `task_status_code` int default null comment 'APP任务状态编码(1待执行2已完成3已取消)', + `task_status_name` varchar(50) default null comment 'APP任务状态名称', + `plan_time` datetime default null comment '计划执行时间', + `checkin_type_code` int default null comment '打卡类型编码(1签到2签退)', + `checkin_type_name` varchar(50) default null comment '打卡类型名称', + `checkin_time` datetime default null comment '打卡时间', + `longitude` decimal(10,6) default null comment '经度', + `latitude` decimal(10,6) default null comment '纬度', + `address` varchar(500) default null comment '打卡地址', + `face_pass_flag` tinyint default null comment '人脸校验是否通过(1是2否)', + `photo_urls` varchar(2000) default null comment '现场照片地址', + `sign_image_url` varchar(500) default null comment '现场签字图片地址', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_survey_checkin_sid` (`survey_id`), + key `idx_eval_survey_checkin_pid` (`project_id`), + key `idx_eval_survey_checkin_person` (`personnel_id`), + key `idx_eval_survey_checkin_task` (`task_status_code`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目现场踏勘打卡表(含APP任务)'; + +drop table if exists `eval_survey_attach`; +create table `eval_survey_attach` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `survey_id` bigint not null comment '踏勘id', + `attach_type_code` varchar(32) not null comment '附件类型(CHECKLIST检查表/RECTIFY整改通知/ENTERPRISE企业整改报告/REVIEW复查单/OTHER)', + `attach_type_name` varchar(50) default null comment '附件类型名称', + `file_name` varchar(200) default null comment '文件名', + `file_url` varchar(500) not null comment '文件地址', + `review_result_code` int default null comment '复查结论编码(复查单用)', + `review_result_name` varchar(50) default null comment '复查结论名称', + `review_content` varchar(2000) default null comment '复查说明', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_survey_attach_sid` (`survey_id`), + key `idx_eval_survey_attach_type` (`attach_type_code`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='04踏勘附件表(检查表/整改/复查等)'; + +drop table if exists `eval_report_draft`; +create table `eval_report_draft` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `draft_version_no` int default 1 comment '稿件版本号', + `template_code` varchar(64) default null comment '模板编码', + `template_name` varchar(100) default null comment '模板名称', + `content_url` varchar(500) default null comment '报告正文存储地址', + `hint_content` varchar(2000) default null comment '编写提示摘要', + `status_code` int default null comment '状态编码(1编辑中2已提交)', + `status_name` varchar(50) default null comment '状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_report_draft_pid` (`project_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='05报告编制稿表'; + +drop table if exists `eval_internal_review`; +create table `eval_internal_review` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `draft_id` bigint default null comment '关联报告稿id', + `reviewer_personnel_id` bigint default null comment '内审人人员id', + `reviewer_name` varchar(50) default null comment '内审人姓名', + `result_code` int default null comment '审核结果(1通过2退回修改)', + `result_name` varchar(50) default null comment '审核结果名称', + `opinion_content` varchar(2000) default null comment '审核意见', + `review_time` datetime default null comment '审核时间', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_internal_project` (`project_id`), + key `idx_eval_internal_org` (`org_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='06内部审核表'; + +drop table if exists `eval_tech_review`; +create table `eval_tech_review` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `draft_id` bigint default null comment '关联报告稿id', + `reviewer_personnel_id` bigint default null comment '技审人人员id', + `reviewer_name` varchar(50) default null comment '技审人姓名', + `result_code` int default null comment '审核结果(1通过2退回修改)', + `result_name` varchar(50) default null comment '审核结果名称', + `opinion_content` varchar(2000) default null comment '审核意见', + `review_time` datetime default null comment '审核时间', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_tech_project` (`project_id`), + key `idx_eval_tech_org` (`org_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='07技术审核表'; + +drop table if exists `eval_process_control`; +create table `eval_process_control` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `controller_personnel_id` bigint default null comment '过程控制负责人人员id', + `controller_name` varchar(50) default null comment '过程控制负责人姓名', + `precheck_pass_flag` tinyint default 2 comment '前7节点是否全部完成(1是2否)', + `result_code` int default null comment '过程控制结论(1通过2退回)', + `result_name` varchar(50) default null comment '结论名称', + `opinion_content` varchar(2000) default null comment '过程控制意见', + `archive_flag` tinyint default 2 comment '是否归档(1是2否)', + `control_time` datetime default null comment '办理时间', + `status_code` int default null comment '节点状态(1未开始2进行中3已完成4退回)', + `status_name` varchar(50) default null comment '节点状态名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + unique key `uk_eval_process_project` (`project_id`), + key `idx_eval_process_org` (`org_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='08过程控制表'; + +drop table if exists `eval_sign_task`; +create table `eval_sign_task` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `node_code` varchar(32) default null comment '所属节点编码', + `node_name` varchar(50) default null comment '所属节点名称', + `biz_type_code` varchar(32) default null comment '业务类型编码', + `biz_type_name` varchar(50) default null comment '业务类型名称', + `biz_ref_id` bigint default null comment '业务单据id', + `signer_personnel_id` bigint default null comment '待签人员id', + `signer_name` varchar(50) default null comment '待签人员姓名', + `task_title` varchar(200) default null comment '签字任务标题', + `task_status_code` int default null comment '任务状态编码(1待签2已签3已作废)', + `task_status_name` varchar(50) default null comment '任务状态名称', + `expire_time` datetime default null comment '截止时间', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_sign_task_pid` (`project_id`), + key `idx_eval_sign_task_signer` (`signer_personnel_id`), + key `idx_eval_sign_task_status` (`task_status_code`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目签字任务表'; + +drop table if exists `eval_sign_record`; +create table `eval_sign_record` ( + `id` bigint not null comment '主键', + `org_id` bigint not null comment '机构id', + `project_id` bigint not null comment '项目id', + `sign_task_id` bigint not null comment '签字任务id', + `signer_personnel_id` bigint default null comment '签署人人员id', + `signer_name` varchar(50) default null comment '签署人姓名', + `sign_image_url` varchar(500) default null comment '手写签字图片地址', + `sign_time` datetime default null comment '签署时间', + `client_type_code` int default null comment '客户端类型编码(1PC2APP)', + `client_type_name` varchar(50) default null comment '客户端类型名称', + `delete_enum` varchar(32) default null comment '删除标识true false', + `remarks` varchar(255) default null comment '备注', + `create_name` varchar(50) default null comment '创建人姓名', + `update_name` varchar(50) default null comment '更新人姓名', + `tenant_id` bigint default null comment '租户id', + `version` int default null comment '版本', + `create_time` datetime default null comment '创建时间', + `update_time` datetime default null comment '修改时间', + `create_id` bigint default null comment '创建人id', + `update_id` bigint default null comment '修改人id', + `env` varchar(50) default null comment '环境', + primary key (`id`), + key `idx_eval_sign_record_task` (`sign_task_id`) +) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='项目签字记录表'; + set foreign_key_checks = 1; diff --git a/docs/db/phase2/数据库设计文档-二期.md b/docs/db/phase2/数据库设计文档-二期.md index 4d0e52b..b252687 100644 --- a/docs/db/phase2/数据库设计文档-二期.md +++ b/docs/db/phase2/数据库设计文档-二期.md @@ -2,10 +2,9 @@ | 日期 | 版本 | 说明 | |------|------|------| -| 2026.07.17 | v1.0.0 | 二期建表设计 | +| 2026.07.20 | v1.0.0 | 二期建表(八节点专表,无流程引擎) | -脚本:`docs/db/phase2/init-phase2.sql` -节点引擎专项:`docs/db/phase2/节点引擎设计与使用说明.md` +脚本:`docs/db/phase2/init-phase2.sql` --- @@ -14,148 +13,234 @@ | 项 | 约定 | |----|------| | 字符集 | utf8mb4 / utf8mb4_0900_ai_ci | -| 命名 | 库表字段小写 + 下划线,表名 ≤32 字符 | +| 命名 | 小写 + 下划线,表名 ≤32 字符 | | 外键 | 禁止物理外键;逻辑关联由业务层维护 | -| 标识字段 | `xxx_flag`,tinyint(1=是,2=否) | -| 字典字段 | `xxx_code` + `xxx_name` | -| 金额 | 单位:分,类型 bigint | -| 文件 | 仅存 URL / 文件服务地址 | -| 逻辑删除 | `delete_enum`:`true` / `false` | -| 业务主表公共字段 | delete_enum、remarks、create_name、update_name、tenant_id、org_id、version、create_time、update_time、create_id、update_id、env | -| 站内消息 | 复用 GBS `jjb-saas-message`(站内信 / 待办 / 催办 / 短信),本库不建消息表 | - -本脚本仅新增二期表,不改建一期已有表与业务代码。 +| 标识 | `xxx_flag`:1是 / 2否 | +| 金额 | 单位:分,bigint | +| 文件 | 仅存 URL | +| 逻辑删除 | `delete_enum`:true / false | +| 公共字段 | delete_enum、remarks、create_name、update_name、tenant_id、org_id(视表)、version、create_time、update_time、create_id、update_id、env | +| 消息 | 复用 GBS,本库不建消息表 | +| 项目节点 | 按原型 8 个法定节点各建专表;**无**节点定义/实例/通用表单引擎表 | --- ## 二、一期复用表 -| 表 | 用途 | -|----|------| -| org_info | 机构主数据 | -| org_qualification | 资质证照 | -| org_department / org_position | 部门岗位 | -| org_personnel / org_personnel_cert | 人员与证书 | -| org_equipment | 装备 | -| org_personnel_change / org_resign_apply | 人员变更、离职 | -| qual_filing 及材料/承诺/人员/装备/变更子表 | 资质申请、备案、变更 | -| qual_filing_expert | 专家库 | -| account | 账号 | +| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 | +|------|------|--------|----------|----------| +| org_* / account | 机构主数据与账号 | 监管 / 机构 | 基础信息管理 / 企业信息管理 | 机构账号、已备案机构、评价师、机构/资质/人员/装备等 | +| qual_filing* / qual_filing_expert | 资质申请备案变更专家 | 监管 / 机构 | 资质审核 / 资质申请和备案告知 | 资质备案审核、确认、专家核验、公示、变更;资质申请、已有资质备案、现场审查通知 | --- -## 三、二期新建表(30) +## 三、二期新建表(23)— 表名、作用与原型菜单 -| 序号 | 表名 | 域 | 作用 | -|------|------|----|------| -| 1 | qual_review_task | 资质审核 | 多阶段审核任务 | -| 2 | qual_review_action | 资质审核 | 审核/确认/反馈动作流水 | -| 3 | qual_review_expert_assign | 资质审核 | 专家指派与核验 | -| 4 | qual_site_review_notice | 资质审核 | 现场审查通知(含机构确认与反馈) | -| 5 | qual_publicity | 资质审核 | 备案公示 | -| 6 | biz_rule | 规则 | 资质保持 / 风险预警规则(domain_code 区分) | -| 7 | qual_keep_check | 资质保持 | 机构维度校验结果头 | -| 8 | qual_keep_check_item | 资质保持 | 分项结论与来源快照 | -| 9 | risk_warning | 风险预警 | 预警主单 | -| 10 | risk_warning_action | 风险预警 | 处置流水 | -| 11 | eval_customer | 安评业务 | 安评客户 | -| 12 | eval_project | 安评业务 | 安评项目主表 | -| 13 | eval_project_member | 安评业务 | 项目成员 | -| 14 | eval_project_doc | 安评业务 | 项目资料协同 | -| 15 | eval_project_doc_ver | 安评业务 | 资料版本 | -| 16 | eval_node_def | 节点引擎 | 节点定义(可配置增删) | -| 17 | eval_node_inst | 节点引擎 | 项目节点实例 | -| 18 | eval_node_form | 节点引擎 | 通用节点表单 | -| 19 | eval_node_form_item | 节点引擎 | 表单分项 / 参与人 | -| 20 | eval_node_file | 节点引擎 | 节点附件 | -| 21 | eval_survey | 踏勘专表 | 现场踏勘主单 | -| 22 | eval_survey_checkin | 踏勘专表 | 现场打卡(含 APP 任务状态) | -| 23 | eval_report_draft | 报告专表 | 报告编制稿 | -| 24 | eval_sign_task | 签字 | 签字任务 | -| 25 | eval_sign_record | 签字 | 签字记录 | -| 26 | eval_report | 报告库 | 报告主表 | -| 27 | eval_report_spotcheck | 报告库 | 抽查与整改复核 | -| 28 | org_profile_score | 画像 | 机构画像得分(含 metric_json) | -| 29 | insp_notice | 监督检查 | 告知主单(含检查结果) | -| 30 | insp_notice_material | 监督检查 | 材料清单与反馈 | +### 1. 监管支撑(5) + +| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 | +|------|------|--------|----------|----------| +| eval_report | 报告库主表 | 监管 / 机构 | 安评机构监督管理 / 安评报告库管理 | 安评报告数据库;报告库 | +| eval_report_spotcheck | 报告抽查整改 | 监管 | 安评机构监督管理 | 安评报告数据库 | +| org_profile_score | 安全评价画像得分 | 监管 | 安评机构监督管理 | 安全评价画像 | +| insp_notice | 监督检查告知 | 监管 / 机构 | — / 监督检查通知管理 | 监督检查告知;监督检查通知 | +| insp_notice_material | 检查材料反馈 | 监管 / 机构 | — / 监督检查通知管理 | 监督检查告知;监督检查通知 | + +### 2. 安评项目与八节点(18) + +| 表名 | 作用 | 原型端 | 一级菜单 | 二级菜单 / 页面 | +|------|------|--------|----------|-----------------| +| eval_customer | 安评客户 | 机构 | 安评业务管理 | 安评客户管理 | +| eval_project | 项目主表 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 安评项目管理、我的项目、项目进度管理;安评项目实时监控 | +| eval_project_member | 项目成员 | 机构 | 安评业务管理 | 安评项目管理、我的项目(03 项目组成立) | +| eval_project_doc | 项目资料协同 | 机构 | 安评业务管理 | 项目资料协同库 | +| eval_risk_analysis | 01 风险分析 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 01 风险分析;项目实时监控(查看) | +| eval_risk_participant | 01 参与人签字 | 机构 | 安评业务管理 | 我的项目 → 01 风险分析 | +| eval_contract | 02 业务合同 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 02 业务合同;项目实时监控 | +| eval_team | 03 项目组成立 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 03 项目组成立;项目实时监控 | +| eval_survey | 04 现场踏勘主表 | 机构 / 监管 / APP | 安评业务管理 / 安评项目管理 | 我的项目 → 04 现场踏勘;项目踏勘监管;APP 现场踏勘 | +| eval_survey_notice | 04 从业告知 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 04;项目踏勘监管 | +| eval_survey_checkin | 04 现场打卡 | 机构 / 监管 / APP | 安评业务管理 / 安评项目管理 | 我的项目 → 04;项目踏勘监管;APP 现场踏勘 | +| eval_survey_attach | 04 踏勘附件 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 04(检查表/整改/复查等) | +| eval_report_draft | 05 报告编制稿 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 05 报告编制;项目实时监控 | +| eval_internal_review | 06 内部审核 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 06 内部审核 | +| eval_tech_review | 07 技术审核 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 07 技术审核 | +| eval_process_control | 08 过程控制 | 机构 / 监管 | 安评业务管理 / 安评项目管理 | 我的项目 → 08 过程控制 | +| eval_sign_task | 签字任务 | 机构 / APP | 安评业务管理 | 我的项目(报告/审核签字);APP 签字管理 | +| eval_sign_record | 签字记录 | 机构 / APP | 安评业务管理 | 同上 | + +培训、风险预警中心、资质保持监控、机构端风险预警管理不在二期库表范围。 --- -## 四、逻辑关联 +## 四、ER 图一:监管支撑(第 1 组) -``` -org_info - ├── qual_filing ── qual_review_task ──┬── qual_review_action - │ ├── qual_review_expert_assign - │ ├── qual_site_review_notice - │ └── qual_publicity - ├── biz_rule(KEEP) ── qual_keep_check ── qual_keep_check_item - ├── biz_rule(WARNING) ── risk_warning ── risk_warning_action - ├── eval_customer ── eval_project ──┬── eval_project_member - │ ├── eval_project_doc ── eval_project_doc_ver - │ ├── eval_node_inst ← eval_node_def - │ │ ├── eval_node_form ── item / file - │ │ ├── eval_survey ── eval_survey_checkin - │ │ ├── eval_report_draft - │ │ └── eval_sign_task ── eval_sign_record - │ └── eval_report ── eval_report_spotcheck - ├── org_profile_score - └── insp_notice ── insp_notice_material +```mermaid +erDiagram + insp_notice ||--o{ insp_notice_material : "notice_id" + eval_report ||--o{ eval_report_spotcheck : "report_id" + org_info ||--o{ org_profile_score : "org_id" + org_info ||--o{ insp_notice : "org_id" + org_info ||--o{ eval_report : "org_id" + + eval_report { + bigint id PK + bigint org_id + bigint project_id + } + eval_report_spotcheck { + bigint id PK + bigint report_id + } + org_profile_score { + bigint id PK + bigint org_id + string score_period + } + insp_notice { + bigint id PK + bigint org_id + bigint source_ref_id + } + insp_notice_material { + bigint id PK + bigint notice_id + } ``` -| 逻辑字段 | 指向 | -|----------|------| -| org_id | org_info.id | -| filing_id | qual_filing.id | -| expert_id | qual_filing_expert.id | -| customer_id | eval_customer.id | -| project_id | eval_project.id | -| node_def_id / node_code | eval_node_def | -| node_inst_id | eval_node_inst.id | -| form_id | eval_node_form.id | -| survey_id | eval_survey.id | -| warning_id / source_warning_id | risk_warning.id | -| sign_task_id | eval_sign_task.id | -| report_id | eval_report.id | -| rule_id | biz_rule.id | -| personnel_id | org_personnel.id | -| account_id | account.id | +--- + +## 五、ER 图二:安评项目与八节点(第 2 组) + +```mermaid +erDiagram + eval_customer ||--o{ eval_project : "customer_id" + eval_project ||--o{ eval_project_member : "project_id" + eval_project ||--o{ eval_project_doc : "project_id" + eval_project ||--o| eval_risk_analysis : "project_id" + eval_risk_analysis ||--o{ eval_risk_participant : "risk_id" + eval_project ||--o| eval_contract : "project_id" + eval_project ||--o| eval_team : "project_id" + eval_project ||--o| eval_survey : "project_id" + eval_survey ||--o| eval_survey_notice : "survey_id" + eval_survey ||--o{ eval_survey_checkin : "survey_id" + eval_survey ||--o{ eval_survey_attach : "survey_id" + eval_project ||--o{ eval_report_draft : "project_id" + eval_project ||--o| eval_internal_review : "project_id" + eval_project ||--o| eval_tech_review : "project_id" + eval_project ||--o| eval_process_control : "project_id" + eval_report_draft ||--o| eval_internal_review : "draft_id" + eval_report_draft ||--o| eval_tech_review : "draft_id" + eval_project ||--o{ eval_sign_task : "project_id" + eval_sign_task ||--o{ eval_sign_record : "sign_task_id" + eval_project ||--o{ eval_report : "project_id" + + eval_customer { + bigint id PK + string customer_name + } + eval_project { + bigint id PK + bigint customer_id + string project_no + int status_code + } + eval_project_member { + bigint id PK + bigint project_id + bigint personnel_id + string role_code + } + eval_project_doc { + bigint id PK + bigint project_id + string latest_file_url + } + eval_risk_analysis { + bigint id PK + bigint project_id + int risk_level_code + int status_code + } + eval_risk_participant { + bigint id PK + bigint risk_id + bigint personnel_id + } + eval_contract { + bigint id PK + bigint project_id + string contract_no + bigint amount_fen + } + eval_team { + bigint id PK + bigint project_id + bigint leader_personnel_id + } + eval_survey { + bigint id PK + bigint project_id + int status_code + } + eval_survey_notice { + bigint id PK + bigint survey_id + } + eval_survey_checkin { + bigint id PK + bigint survey_id + } + eval_survey_attach { + bigint id PK + bigint survey_id + string attach_type_code + } + eval_report_draft { + bigint id PK + bigint project_id + int draft_version_no + } + eval_internal_review { + bigint id PK + bigint project_id + } + eval_tech_review { + bigint id PK + bigint project_id + } + eval_process_control { + bigint id PK + bigint project_id + tinyint precheck_pass_flag + } + eval_sign_task { + bigint id PK + bigint project_id + string biz_node_code + } + eval_sign_record { + bigint id PK + bigint sign_task_id + } +``` --- -## 五、业务数据流 +## 六、我的项目八节点 ↔ 表 -### 5.1 资质审核与保持预警 +入口:机构端 · 安评业务管理 · **我的项目**(监管端 · 安评项目管理 · **安评项目实时监控 / 项目踏勘监管** 只读查看)。 -机构填报 `qual_filing` → 生成 `qual_review_task` → 审核动作 / 专家核验 / 现场审查通知 → 公示 `qual_publicity` → 按 `biz_rule(KEEP)` 校验写入 `qual_keep_check*` → 异常生成 `risk_warning` → `risk_warning_action` 闭环。 - -### 5.2 安评项目 - -维护 `eval_customer` → 创建 `eval_project` 及成员、资料 → 按 `eval_node_def` 生成 `eval_node_inst` → 通用节点办理表单;踏勘 / 报告编辑 / 签字走专表 → 归档生成 `eval_report` → 抽查与画像计分。 - -### 5.3 监督检查 - -创建 `insp_notice`(可关联预警或项目)→ 机构确认与材料反馈 → 结果回写告知主表。 - -### 5.4 消息通知 - -业务状态变更后调用 GBS `MessageFacade` 发送站内信 / 待办 / 短信;本库不落消息实体。 - ---- - -## 六、状态字典 - -| 对象 | 字段 | 取值 | -|------|------|------| -| 审核任务 | stage_code | 1初审 2专家核验 3现场审查 4会审 5许可审批 6已办结 | -| 审核任务 | result_code | 1通过 2打回 3进行中 | -| 预警 | category_code | 1人员 2机构资质 3项目风险 4资质临期 | -| 预警 | handle_stage_code | 1未处理 2已发机构 3待复核 4已闭环 | -| 项目 | status_code | 1草稿 2进行中 3已归档 4已作废 | -| 节点实例 | node_status_code | 1未开始 2进行中 3已完成 4退回 | -| 监督检查 | status_code | 1已下发 2已确认 3已反馈 4已办结 | - -默认项目节点编码见《节点引擎设计与使用说明》。 +| 节点 | 原型页面要点 | 表 | +|------|--------------|-----| +| 01 风险分析 | 风险分析记录表、符合性、结论、参与人签字、批准 | eval_risk_analysis、eval_risk_participant | +| 02 业务合同 | 合同与企业信息、金额、扫描件 PDF | eval_contract | +| 03 项目组成立 | 多角色选人;负责人/过程控制负责人各 1 人 | eval_team、eval_project_member | +| 04 现场踏勘 | 从业告知→勘查打卡→整改→企业报告→复查 | eval_survey、eval_survey_notice、eval_survey_checkin、eval_survey_attach | +| 05 报告编制 | 编辑器、模板、版本、责任页签字 | eval_report_draft、eval_sign_task、eval_sign_record | +| 06 内部审核 | 审核意见与结论 | eval_internal_review | +| 07 技术审核 | 审核意见与结论 | eval_tech_review | +| 08 过程控制 | 前 7 节点完成后办理、归档 | eval_process_control → eval_report | --- @@ -165,4 +250,4 @@ org_info mysql -u -p < docs/db/phase2/init-phase2.sql ``` -在测试库验证后再用于正式环境;勿对一期生产表做破坏性变更。 +测试库验证后再用于正式环境。