-- =============================================
-- 安全评价系统二期建表脚本
-- 日期: 2026-07-17
-- 表数量: 30
-- 规范: utf8mb4 / utf8mb4_0900_ai_ci；禁止物理外键；逻辑关联由业务层保证
-- 一期已有表不在本脚本重建
-- 站内消息复用 GBS jjb-saas-message，本库不建消息表
-- 执行: mysql -u<user> -p <db> < init-phase2.sql
-- =============================================

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）
-- =============================================

drop table if exists `eval_report`;
create table `eval_report` (
  `id` bigint not null comment '主键',
  `org_id` bigint not null comment '机构id',
  `project_id` bigint default null comment '关联项目id(可空,历史报告)',
  `customer_id` bigint default null comment '客户id',
  `report_no` varchar(64) default null comment '报告编号',
  `report_name` varchar(200) not null comment '报告名称',
  `report_year` int default 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 '业务范围',
  `file_url` varchar(500) default null comment '主文件地址',
  `file_name` varchar(200) default null comment '主文件名',
  `public_flag` tinyint default 2 comment '是否公开(1是2否)',
  `complete_flag` tinyint default null comment '资料是否完整(1是2否)',
  `report_status_code` int default null comment '报告状态编码(1已入库2抽查中3待整改4已复核)',
  `report_status_name` varchar(50) default null comment '报告状态名称',
  `archive_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_report_org` (`org_id`),
  key `idx_eval_report_project` (`project_id`),
  key `idx_eval_report_year` (`report_year`),
  key `idx_eval_report_no` (`report_no`)
) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评报告库主表';

drop table if exists `eval_report_spotcheck`;
create table `eval_report_spotcheck` (
  `id` bigint not null comment '主键',
  `org_id` bigint not null comment '机构id',
  `report_id` bigint not null comment '报告id',
  `check_result_code` int default null comment '抽查结果编码(1合格2不合格)',
  `check_result_name` varchar(50) default null comment '抽查结果名称',
  `check_opinion` varchar(2000) default null comment '抽查意见',
  `rectify_require` varchar(2000) default null comment '整改要求',
  `rectify_feedback` varchar(2000) default null comment '整改反馈',
  `review_result_code` int default null comment '复核结果编码(1通过2不通过)',
  `review_result_name` varchar(50) default null comment '复核结果名称',
  `checker_id` bigint default null comment '抽查人账号id',
  `checker_name` varchar(50) 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_eval_report_spotcheck_rid` (`report_id`)
) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='安评报告抽查表';

drop table if exists `org_profile_score`;
create table `org_profile_score` (
  `id` bigint not null comment '主键',
  `org_id` bigint not null comment '机构id',
  `score_period` varchar(32) default null comment '评分周期(如2026Q3)',
  `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 '未闭环预警数',
  `insp_count` int default null comment '监督检查次数',
  `total_score` decimal(8,2) default null comment '综合得分',
  `level_code` varchar(32) default null comment '等级编码',
  `level_name` varchar(50) default null comment '等级名称',
  `metric_json` varchar(4000) default null comment '分项指标JSON快照',
  `calc_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_org_profile_score_org` (`org_id`),
  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 '主键',
  `org_id` bigint not null comment '被检机构id',
  `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_name` varchar(50) default null comment '来源方式名称',
  `source_warning_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 '检查组长',
  `notice_content` varchar(2000) default null comment '告知内容',
  `status_code` int default null comment '状态编码(1已下发2已确认3已反馈4已办结)',
  `status_name` varchar(50) default null comment '状态名称',
  `confirm_flag` tinyint default 2 comment '机构是否确认(1是2否)',
  `confirm_time` datetime default null comment '确认时间',
  `send_time` datetime default null comment '下发时间',
  `result_code` int default null comment '检查结果编码(1合格2不合格3限期整改)',
  `result_name` varchar(50) default null comment '检查结果名称',
  `result_content` varchar(2000) default null comment '结果说明',
  `result_urls` varchar(2000) default null comment '结果附件',
  `result_recorder_id` bigint default null comment '结果登记人账号id',
  `result_recorder_name` varchar(50) default null comment '结果登记人姓名',
  `result_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_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`)
) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='监督检查告知表';

drop table if exists `insp_notice_material`;
create table `insp_notice_material` (
  `id` bigint not null comment '主键',
  `org_id` bigint not null comment '机构id',
  `notice_id` bigint not null comment '告知id',
  `material_name` varchar(200) default null comment '材料名称',
  `required_flag` tinyint default 1 comment '是否必需(1是2否)',
  `upload_status_code` int default null comment '上传状态编码(1待上传2已上传)',
  `upload_status_name` varchar(50) default null comment '上传状态名称',
  `file_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_insp_notice_material_nid` (`notice_id`)
) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='监督检查材料反馈表';

-- =============================================
-- 8. 默认节点定义种子
-- =============================================

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());

set foreign_key_checks = 1;

-- =============================================
-- end of init-phase2.sql
-- =============================================
