人脸识别
parent
4a512c35f9
commit
094b1ab5ad
|
|
@ -0,0 +1,822 @@
|
|||
-- =====================================================================
|
||||
-- 线上数据库结构同步脚本 - 第一部分:新增缺失表(26张)
|
||||
-- 生成时间: 2026-07-29
|
||||
-- 来源: 本地库 192.168.20.100:33080/safety-eval-service
|
||||
-- 目标: 线上库 nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068/safety-eval-service
|
||||
-- 说明: 全部使用 CREATE TABLE IF NOT EXISTS,幂等、纯新增,不影响已有数据。
|
||||
-- 执行前请人工确认。本脚本不包含任何 DROP/删除操作。
|
||||
-- =====================================================================
|
||||
|
||||
-- 1. 安评客户表
|
||||
CREATE TABLE IF NOT EXISTS `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 '属地编码(重庆市区级,见 ChongqingDistrictEnum)',
|
||||
`industry_code` varchar(64) DEFAULT NULL COMMENT '所属行业编码(见 IndustryEnum)',
|
||||
`business_address` varchar(500) DEFAULT NULL COMMENT '经营地址',
|
||||
`longitude` varchar(64) DEFAULT NULL COMMENT '经度(定位)',
|
||||
`latitude` varchar(64) DEFAULT NULL COMMENT '纬度(定位)',
|
||||
`enterprise_status_code` int DEFAULT NULL COMMENT '企业状态编码(见 EnterpriseStatusEnum)',
|
||||
`principal_name` varchar(50) DEFAULT NULL COMMENT '主要负责人',
|
||||
`principal_phone` varchar(20) DEFAULT NULL COMMENT '负责人电话',
|
||||
`legal_representative` varchar(50) DEFAULT NULL COMMENT '法定代表人',
|
||||
`legal_representative_phone` varchar(20) DEFAULT NULL COMMENT '法人电话',
|
||||
`enterprise_scale_code` varchar(32) DEFAULT NULL COMMENT '企业规模编码(见 EnterpriseScaleEnum)',
|
||||
`eval_expire_date` date DEFAULT NULL COMMENT '评价到期日',
|
||||
`customer_status_code` int DEFAULT '1' COMMENT '客户状态编码(见 CustomerStatusEnum,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_customer_org` (`org_id`),
|
||||
KEY `idx_eval_customer_credit` (`credit_code`),
|
||||
KEY `idx_eval_customer_name` (`customer_name`),
|
||||
KEY `idx_eval_customer_district` (`district_code`),
|
||||
KEY `idx_eval_customer_industry` (`industry_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='安评客户表';
|
||||
|
||||
-- 2. 安评项目主表
|
||||
CREATE TABLE IF NOT EXISTS `eval_project` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`org_id` bigint NOT NULL COMMENT '评价机构id',
|
||||
`customer_id` bigint NOT NULL COMMENT '被评价客户id(eval_customer.id)',
|
||||
`project_no` varchar(64) NOT NULL COMMENT '项目编号(系统生成)',
|
||||
`project_name` varchar(200) NOT NULL COMMENT '项目名称',
|
||||
`eval_type_code` varchar(32) DEFAULT NULL COMMENT '评价类型编码(见EvalTypeEnum:PRE/ACCEPT/STATUS)',
|
||||
`customer_contact_name` varchar(50) DEFAULT NULL COMMENT '客户负责人(手填)',
|
||||
`customer_contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话(手填)',
|
||||
`is_statutory` tinyint NOT NULL DEFAULT '0' COMMENT '是否法定项目 1是 0否',
|
||||
`clock_in_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NOT_CLOCKED_IN' COMMENT '人员打卡状态 : 未打卡 → NOT_CLOCKED_IN,人员未到齐 → NOT_ALL_PRESENT,正常 → NORMAL',
|
||||
`district_code` varchar(32) DEFAULT NULL COMMENT '项目所在地编码(见ChongqingDistrictEnum)',
|
||||
`plan_start_date` date DEFAULT NULL COMMENT '项目开始时间',
|
||||
`plan_end_date` date DEFAULT NULL COMMENT '项目完成时间',
|
||||
`customer_address` varchar(500) DEFAULT NULL COMMENT '客户所在地(手填)',
|
||||
`longitude` varchar(32) DEFAULT NULL COMMENT '经度(手填)',
|
||||
`latitude` varchar(32) DEFAULT NULL COMMENT '纬度(手填)',
|
||||
`checkin_radius_meters` int DEFAULT NULL COMMENT '打卡有效范围(米,手填)',
|
||||
`participants_json` json DEFAULT NULL COMMENT '参与人员JSON:[{"name":"名称","id":1}]',
|
||||
`project_leader_name` varchar(50) DEFAULT NULL COMMENT '项目负责人(手填)',
|
||||
`archive_flag` int NOT NULL DEFAULT '0' COMMENT '项目归档(1归档0未归档)',
|
||||
`archive_date` datetime DEFAULT NULL COMMENT '项目归档时间',
|
||||
`archive_transferor_name` varchar(255) DEFAULT NULL COMMENT '项目归档移交人',
|
||||
`archive_archivist_name` varchar(255) 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 '环境',
|
||||
`project_node` varchar(600) NOT NULL DEFAULT '[{"type":"RISK_ANALYSIS","state":0},{"type":"BUSINESS_CONTRACT","state":0},{"type":"PROJECT_GROUP","state":0},{"type":"SITE_SURVEY","state":0},{"type":"REPORT_PREPARATION","state":0},{"type":"INTERNAL_REVIEW","state":0},{"type":"TECHNICAL_REVIEW","state":0},{"type":"PROCESS_CONTROL","state":0}]' COMMENT '项目节点完成进度',
|
||||
`industry_code` varchar(64) DEFAULT NULL COMMENT '所属行业编码(见 IndustryEnum)',
|
||||
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_plan_start` (`plan_start_date`),
|
||||
KEY `idx_eval_project_plan_end` (`plan_end_date`),
|
||||
KEY `idx_eval_project_district` (`district_code`),
|
||||
KEY `idx_eval_project_archive` (`archive_flag`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='安评项目主表';
|
||||
|
||||
-- 3. 01风险分析记录表
|
||||
CREATE TABLE IF NOT EXISTS `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 '风险分析时间',
|
||||
`controlled_no` varchar(64) DEFAULT NULL COMMENT '受控编号',
|
||||
`project_name` varchar(200) DEFAULT NULL COMMENT '评价项目名称',
|
||||
`eval_type_code` varchar(32) DEFAULT NULL COMMENT '评价类别编码(PRE/ACCEPT/STATUS)',
|
||||
`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不需要)',
|
||||
`expert_specialty` varchar(200) DEFAULT NULL COMMENT '需要专业(手填)',
|
||||
`capability_code` int DEFAULT NULL COMMENT '是否有能力承担评价风险(1是2否)',
|
||||
`capability_remark` varchar(500) DEFAULT NULL COMMENT '能力备注',
|
||||
`feasible_code` int DEFAULT NULL COMMENT '项目可行性(1可行2不可行)',
|
||||
`feasible_remark` varchar(500) DEFAULT NULL COMMENT '可行性备注',
|
||||
`economic_code` int DEFAULT NULL COMMENT '经济性(1有经济效益2无经济效益)',
|
||||
`risk_level_code` int DEFAULT NULL COMMENT '风险程度(1低度2中度3高度)',
|
||||
`sign_contract_code` int DEFAULT NULL COMMENT '合同签订结论(1签合同2不签合同)',
|
||||
`status_code` int DEFAULT NULL 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 '环境',
|
||||
`risk_file_url` text 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风险分析记录表';
|
||||
|
||||
-- 4. 01风险分析参与人表
|
||||
CREATE TABLE IF NOT EXISTS `eval_risk_participant` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`risk_id` bigint NOT NULL COMMENT '风险分析id(eval_risk_analysis.id)',
|
||||
`project_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 '部门/岗位',
|
||||
`opinion` varchar(500) DEFAULT NULL COMMENT '分析意见',
|
||||
`sign_status_code` int DEFAULT NULL COMMENT '签字状态(1待签2已签)',
|
||||
`sign_file_url` varchar(500) DEFAULT NULL COMMENT '签字图片地址',
|
||||
`sort_order` int DEFAULT '0' 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风险分析参与人表';
|
||||
|
||||
-- 5. 02业务合同表
|
||||
CREATE TABLE IF NOT EXISTS `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(500) DEFAULT NULL COMMENT '项目简介',
|
||||
`amount` varchar(64) DEFAULT NULL COMMENT '合同金额(万元,字符串)',
|
||||
`project_type_code` varchar(32) DEFAULT NULL COMMENT '项目类型编码(NEW新建 RENEW续评 CHANGE变更)',
|
||||
`risk_summary` varchar(500) DEFAULT NULL COMMENT '项目风险分析摘要',
|
||||
`project_region` varchar(500) 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 '评价类型编码(PRE/ACCEPT/STATUS)',
|
||||
`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(200) 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 '联系人',
|
||||
`contact_phone` varchar(50) DEFAULT NULL COMMENT '联系人电话',
|
||||
`staff_count` int DEFAULT NULL COMMENT '职工人数',
|
||||
`scan_file_url` text COMMENT '合同扫描件(URL文本,可多条由前端约定分隔/JSON)',
|
||||
`status_code` int DEFAULT NULL 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_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业务合同表';
|
||||
|
||||
-- 6. 03项目组成立表
|
||||
CREATE TABLE IF NOT EXISTS `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项目组成立表';
|
||||
|
||||
-- 7. 安评项目成员表
|
||||
CREATE TABLE IF NOT EXISTS `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 '人员姓名',
|
||||
`dept_name` varchar(32) DEFAULT NULL COMMENT '部门名称',
|
||||
`pos_name` varchar(32) DEFAULT NULL COMMENT '岗位',
|
||||
`capacity` varchar(200) DEFAULT NULL COMMENT '人员能力',
|
||||
`responsibility` varchar(600) DEFAULT NULL COMMENT '职责',
|
||||
`role` text 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 '环境',
|
||||
`msg_send_state` int NOT NULL DEFAULT '0' COMMENT '0:未发送 1:已发',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_eval_project_member_person` (`personnel_id`),
|
||||
KEY `idx_eval_project_member_pid` (`project_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='安评项目成员表';
|
||||
|
||||
-- 8. 安评项目资料表
|
||||
CREATE TABLE IF NOT EXISTS `eval_project_doc` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`org_id` bigint NOT NULL COMMENT '机构id',
|
||||
`project_id` bigint NOT NULL COMMENT '项目id',
|
||||
`project_no` varchar(64) NOT NULL COMMENT '项目编号(eval_project.project_no)',
|
||||
`project_name` varchar(200) NOT NULL COMMENT '项目名称(eval_project.project_name)',
|
||||
`customer_name` varchar(200) NOT NULL COMMENT '被评价客户企业名称(eval_customer.customer_name)',
|
||||
`eval_type_code` varchar(32) DEFAULT NULL COMMENT '评价类型编码(eval_project.eval_type_code)',
|
||||
`project_doc_url` json 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='安评项目资料表';
|
||||
|
||||
-- 9. 项目预警-归档前预警
|
||||
CREATE TABLE IF NOT EXISTS `eval_project_process_waring` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`org_id` bigint DEFAULT NULL COMMENT '评价机构id',
|
||||
`project_id` bigint NOT NULL COMMENT '项目id',
|
||||
`waring_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'normal' COMMENT '预警状态 normal:正常;abnormal 异常',
|
||||
`process_waring_status` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'normal' COMMENT '人员预警异常 normal:正常;abnormal 异常',
|
||||
`process_waring_msg` text,
|
||||
`personnel_waring_status` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'normal' COMMENT '人员预警 normal:正常;abnormal 异常',
|
||||
`personnel_waring_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,
|
||||
`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_project_id` (`project_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='项目预警-归档前预警';
|
||||
|
||||
-- 10. 项目预警-归档后预警
|
||||
CREATE TABLE IF NOT EXISTS `eval_project_waring` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`org_id` bigint DEFAULT NULL COMMENT '评价机构id',
|
||||
`project_id` bigint NOT NULL COMMENT '项目id',
|
||||
`archive_date` datetime NOT NULL COMMENT '项目归档时间',
|
||||
`project_complete_time` datetime DEFAULT NULL COMMENT '项目完成时间',
|
||||
`waring_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'non_warn' COMMENT '项目 预警 状态: non_warn 暂时不预警,first_waring 首次预警,second_waring 二次预警,emergency_waring 紧急预警,overdue_warning 逾期预警 ,end_warning 结束预警',
|
||||
`waring_start_time` datetime NOT NULL COMMENT '预警开始时间',
|
||||
`reassessment_date` datetime NOT NULL COMMENT '重新评估时间',
|
||||
`cycle_date` tinyint NOT 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 '环境',
|
||||
`project_node` varchar(600) NOT NULL DEFAULT '[{"type":"RISK_ANALYSIS","state":1},{"type":"BUSINESS_CONTRACT","state":1},{"type":"PROJECT_GROUP","state":1},{"type":"SITE_SURVEY","state":1},{"type":"REPORT_PREPARATION","state":1},{"type":"INTERNAL_REVIEW","state":1},{"type":"TECHNICAL_REVIEW","state":1},{"type":"PROCESS_CONTROL","state":1}]' COMMENT '项目节点完成进度',
|
||||
`industry_code` varchar(64) DEFAULT NULL COMMENT '所属行业编码(见 IndustryEnum)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_project_id` (`project_id`),
|
||||
KEY `idx_waring_start_time` (`waring_start_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='项目预警-归档后预警';
|
||||
|
||||
-- 11. 现场踏勘主表
|
||||
CREATE TABLE IF NOT EXISTS `eval_survey` (
|
||||
`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 '人员姓名',
|
||||
`dept_name` varchar(32) DEFAULT NULL COMMENT '部门名称',
|
||||
`pos_name` varchar(32) DEFAULT NULL COMMENT '岗位',
|
||||
`capacity` varchar(200) DEFAULT NULL COMMENT '人员能力',
|
||||
`role` text COMMENT '角色(数组[1,2])',
|
||||
`face_state` int NOT NULL DEFAULT '0' COMMENT '人脸识别, 0-未通过, 1-通过',
|
||||
`gps_state` int NOT NULL DEFAULT '0' COMMENT 'gps定位, 0-未通过, 1-通过',
|
||||
`sing_in_time` datetime DEFAULT NULL COMMENT '签到时间',
|
||||
`sign_out_time` datetime DEFAULT NULL COMMENT '签退时间',
|
||||
`scene_url` varchar(1000) DEFAULT NULL COMMENT '现场图片',
|
||||
`signature_url` 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 '环境',
|
||||
`longitude` varchar(64) DEFAULT NULL COMMENT '经度',
|
||||
`latitude` varchar(64) DEFAULT NULL COMMENT '维度',
|
||||
`content` varchar(500) DEFAULT NULL COMMENT '初勘内容',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_eval_survey_org` (`org_id`),
|
||||
KEY `idx_project_id` (`project_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='现场踏勘主表';
|
||||
|
||||
-- 12. 踏勘附件表
|
||||
CREATE TABLE IF NOT EXISTS `eval_survey_attach` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`project_id` bigint NOT NULL COMMENT '项目id',
|
||||
`attach_type_code` varchar(32) NOT NULL COMMENT '附件类型(从业告知,整改通知,企业整改,整改复查,现场检查表)',
|
||||
`file_url` varchar(500) NOT NULL COMMENT '文件地址',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_project_id` (`project_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='踏勘附件表';
|
||||
|
||||
-- 13. 05报告编制稿表
|
||||
CREATE TABLE IF NOT EXISTS `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报告编制稿表';
|
||||
|
||||
-- 14. 06内部审核表
|
||||
CREATE TABLE IF NOT EXISTS `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` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'not_passed' COMMENT '审核结果 passed 通过,not_passed 未通过',
|
||||
`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 '节点状态名称',
|
||||
`reviewer_signature_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '内审人独立签字',
|
||||
`reviewer_signature_task_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'non_dispatched' COMMENT '审核签字任务状态 dispatched 下发,non_dispatched 未下发 , completed 已完成',
|
||||
`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内部审核表';
|
||||
|
||||
-- 15. 07技术审核表
|
||||
CREATE TABLE IF NOT EXISTS `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 '技审人姓名',
|
||||
`reviewer_signature_url` varchar(512) DEFAULT NULL COMMENT '技审人独立签字',
|
||||
`reviewer_signature_task_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'non_dispatched' COMMENT '审核签字任务状态 dispatched 下发,non_dispatched 未下发,completed 已完成',
|
||||
`result_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '审核结果 passed 通过,not_passed 未通过',
|
||||
`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技术审核表';
|
||||
|
||||
-- 16. 08过程控制表
|
||||
CREATE TABLE IF NOT EXISTS `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 '过程控制负责人姓名',
|
||||
`reviewer_signature_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '内审人独立签字',
|
||||
`reviewer_signature_task_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'non_dispatched' COMMENT '审核签字任务状态 dispatched 下发,non_dispatched 未下发 , completed 已完成',
|
||||
`precheck_pass_flag` tinyint DEFAULT '2' COMMENT '前7节点是否全部完成(1是2否)',
|
||||
`result_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT 'not_passed' COMMENT '审核结果 passed 通过,not_passed 未通过',
|
||||
`result_name` varchar(50) DEFAULT NULL COMMENT '结论名称',
|
||||
`opinion_content` varchar(2000) DEFAULT NULL COMMENT '过程控制意见',
|
||||
`archive_flag` tinyint DEFAULT '2' COMMENT '是否归档(1是2否)',
|
||||
`handover_form_url` varchar(500) DEFAULT NULL COMMENT '归档交接单URL',
|
||||
`handover_form_status` varchar(32) DEFAULT 'not_create' COMMENT '归档交接单状态(not_create未生成,created已生成)',
|
||||
`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过程控制表';
|
||||
|
||||
-- 17. 审核项表信息
|
||||
CREATE TABLE IF NOT EXISTS `eval_review_item` (
|
||||
`id` bigint NOT NULL,
|
||||
`biz_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务类型 : 内审->eval_internal_review ; 技审->eval_tech_review;过程控制 eval_process_control',
|
||||
`biz_id` bigint NOT NULL COMMENT '业务id',
|
||||
`review_dimension_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核维度code',
|
||||
`review_dimension_name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核维度 名称',
|
||||
`review_focus` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核重点',
|
||||
`review_conclusion` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '结论 ,conform_to 符合,not_conform_to 不符合',
|
||||
`review_opinion` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '审核意见',
|
||||
`org_id` bigint NOT NULL COMMENT '机构id',
|
||||
`delete_enum` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '删除标识true false',
|
||||
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`update_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci 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) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '环境',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_biz_id` (`biz_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='审核项表信息';
|
||||
|
||||
-- 18. 项目签字表
|
||||
CREATE TABLE IF NOT EXISTS `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 '所属节点编码',
|
||||
`biz_ref_id` bigint DEFAULT NULL COMMENT '业务单据id',
|
||||
`signer_personnel_id` bigint DEFAULT NULL COMMENT '待签人员id',
|
||||
`task_title` varchar(200) DEFAULT NULL COMMENT '签字任务标题',
|
||||
`task_status_code` int DEFAULT '1' COMMENT '任务状态(1待签2已签3已作废)',
|
||||
`issue_time` datetime DEFAULT NULL COMMENT '下发时间',
|
||||
`signer_url` varchar(200) 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`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='项目签字表';
|
||||
|
||||
-- 19. 安评报告库主表
|
||||
CREATE TABLE IF NOT EXISTS `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',
|
||||
`evaluated_unit_name` varchar(200) DEFAULT NULL COMMENT '被评价单位名称',
|
||||
`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 '评价类型名称',
|
||||
`industry_code` varchar(32) DEFAULT NULL COMMENT '所属行业编码',
|
||||
`industry_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否)',
|
||||
`submit_flag` tinyint DEFAULT '2' 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 '入库时间',
|
||||
`issue_date` date DEFAULT NULL COMMENT '报告签发日期',
|
||||
`page_count` int DEFAULT NULL COMMENT '报告页数',
|
||||
`secret_level_code` varchar(32) DEFAULT NULL COMMENT '保密属性编码(NORMAL/TRADE_SECRET/PRIVACY/CLASSIFIED)',
|
||||
`secret_level_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_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='安评报告库主表';
|
||||
|
||||
-- 20. 安评报告抽查表
|
||||
CREATE TABLE IF NOT EXISTS `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='安评报告抽查表';
|
||||
|
||||
-- 21. 监督检查告知表
|
||||
CREATE TABLE IF NOT EXISTS `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其他4风险预警)',
|
||||
`source_type_name` varchar(50) DEFAULT NULL COMMENT '来源方式名称',
|
||||
`source_ref_id` bigint DEFAULT NULL COMMENT '来源业务id(可选)',
|
||||
`source_ref_no` varchar(64) DEFAULT NULL COMMENT '来源预警/业务编号(如W-PROJ-2026-009)',
|
||||
`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 '告知内容',
|
||||
`notice_urls` varchar(2000) DEFAULT NULL COMMENT '告知附件URL,逗号分隔',
|
||||
`status_code` int DEFAULT NULL COMMENT '状态编码(0待下发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_source` (`source_ref_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='监督检查告知表';
|
||||
|
||||
-- 22. 监督检查材料反馈表
|
||||
CREATE TABLE IF NOT EXISTS `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='监督检查材料反馈表';
|
||||
|
||||
-- 23. 机构画像得分表
|
||||
CREATE TABLE IF NOT EXISTS `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_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 '等级编码',
|
||||
`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='机构画像得分表';
|
||||
|
||||
-- 24. 资质现场核查
|
||||
CREATE TABLE IF NOT EXISTS `qual_on_site_review` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
|
||||
`biz_type` varchar(64) DEFAULT NULL COMMENT '资质类型:add 新增 ,change:变更',
|
||||
`biz_id` bigint DEFAULT NULL COMMENT '业务id',
|
||||
`org_id` bigint NOT NULL COMMENT '受审查机构ID (关联机构表)',
|
||||
`review_date_start` datetime NOT NULL COMMENT '现场审查开始时间',
|
||||
`review_location` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '审查地点',
|
||||
`review_members` varchar(512) DEFAULT NULL COMMENT '审查组成员名单',
|
||||
`review_leader` varchar(64) DEFAULT NULL COMMENT '审查组长',
|
||||
`material_requirements` text COMMENT '材料准备要求',
|
||||
`supervisor_contact` varchar(64) DEFAULT NULL COMMENT '监管联系人姓名',
|
||||
`contact_phone` varchar(32) DEFAULT NULL COMMENT '监管联系电话',
|
||||
`status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)',
|
||||
`review_opinion` varchar(256) DEFAULT NULL COMMENT '核查意见',
|
||||
`delete_enum` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '删除标识true false',
|
||||
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`update_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci 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) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '环境',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_review_date_start` (`review_date_start`),
|
||||
KEY `idx_org_id` (`org_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2079776581237084163 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='资质现场核查';
|
||||
|
||||
-- 25. 资质现场核查-文件信息
|
||||
CREATE TABLE IF NOT EXISTS `qual_on_site_review_file` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
|
||||
`qual_on_site_review_id` bigint NOT NULL COMMENT '资质现场核查id',
|
||||
`name` varchar(128) NOT NULL COMMENT '文件名称',
|
||||
`url` varchar(1024) NOT NULL COMMENT '文件url',
|
||||
`org_id` bigint DEFAULT NULL COMMENT 'orgId',
|
||||
`delete_enum` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '删除标识true false',
|
||||
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`update_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci 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) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '环境',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_qual_on_site_review_id` (`qual_on_site_review_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2079842245578588163 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='资质现场核查-文件信息';
|
||||
|
||||
-- 26. 消息中心
|
||||
CREATE TABLE IF NOT EXISTS `safety_message` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`send_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发送者姓名',
|
||||
`send_id` bigint DEFAULT NULL COMMENT '发送者id',
|
||||
`send_type` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发送类型 ',
|
||||
`send_content` text COLLATE utf8mb4_general_ci COMMENT '发送内容: json格式',
|
||||
`receive_id` bigint DEFAULT NULL COMMENT '接收人id',
|
||||
`send_state` tinyint(1) NOT NULL DEFAULT '0' COMMENT '发送状态 0-未读, 1-已读',
|
||||
`delete_enum` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '删除标识true false',
|
||||
`remarks` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
|
||||
`create_name` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`update_name` varchar(50) COLLATE utf8mb4_general_ci 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) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '环境',
|
||||
`org_id` bigint NOT NULL COMMENT '机构id',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_receive_id` (`receive_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='消息中心';
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
-- =====================================================================
|
||||
-- 线上数据库结构同步脚本 - 第二部分:共有表字段差异修正
|
||||
-- 生成时间: 2026-07-29
|
||||
-- 来源: 本地库 192.168.20.100:33080/safety-eval-service
|
||||
-- 目标: 线上库 nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068/safety-eval-service
|
||||
-- 说明:
|
||||
-- [A区] 纯新增字段,安全,可直接执行(MySQL 8.0 不支持 ADD COLUMN IF NOT EXISTS,请勿重复执行)。
|
||||
-- [B区] 字段类型/长度收窄项,存在数据截断风险,已全部注释,需人工确认后再放开执行。
|
||||
-- [C区] 线上独有的表/字段,按规则禁止删除,仅记录,不生成 DROP 语句。
|
||||
-- =====================================================================
|
||||
|
||||
-- =====================================================================
|
||||
-- A区:安全新增字段(本地有、线上无)
|
||||
-- =====================================================================
|
||||
|
||||
-- A1. org_position 新增 GBS 角色关联字段(3个)
|
||||
ALTER TABLE `org_position`
|
||||
ADD COLUMN `gbs_role_id` bigint NULL COMMENT '关联GBS角色ID' AFTER `duty_desc`,
|
||||
ADD COLUMN `gbs_role_code` varchar(64) NULL COMMENT '关联GBS角色编码' AFTER `gbs_role_id`,
|
||||
ADD COLUMN `gbs_role_name` varchar(100) NULL COMMENT '关联GBS角色名称' AFTER `gbs_role_code`;
|
||||
|
||||
-- A2. org_personnel_cert 新增证书等级字段
|
||||
ALTER TABLE `org_personnel_cert`
|
||||
ADD COLUMN `cert_level` varchar(50) NULL COMMENT '证书等级(CertLevelEnum:SENIOR高级/MIDDLE中级/JUNIOR初级)' AFTER `cert_type_code`;
|
||||
|
||||
-- A3. qual_filing_personnel_cert 新增证书等级字段
|
||||
ALTER TABLE `qual_filing_personnel_cert`
|
||||
ADD COLUMN `cert_level` varchar(50) NULL COMMENT '证书等级(CertLevelEnum:SENIOR高级/MIDDLE中级/JUNIOR初级)' AFTER `cert_type_code`;
|
||||
|
||||
-- A4. qual_filing_personnel_cert_change 新增证书等级字段
|
||||
ALTER TABLE `qual_filing_personnel_cert_change`
|
||||
ADD COLUMN `cert_level` varchar(128) NULL COMMENT '证书等级(CertLevelEnum:SENIOR高级/MIDDLE中级/JUNIOR初级)' AFTER `cert_type_code`;
|
||||
|
||||
-- A5. wps_doc 新增项目id字段
|
||||
ALTER TABLE `wps_doc`
|
||||
ADD COLUMN `project_id` bigint NULL AFTER `pending_size`;
|
||||
|
||||
-- A6. wps_doc_version 新增项目id字段
|
||||
ALTER TABLE `wps_doc_version`
|
||||
ADD COLUMN `project_id` bigint NULL AFTER `update_time`;
|
||||
|
||||
-- =====================================================================
|
||||
-- B区:类型/长度收窄项(高风险,可能截断数据,默认注释,人工确认后执行)
|
||||
-- 执行前请先用对应的检查 SQL 确认无超长数据!
|
||||
-- =====================================================================
|
||||
|
||||
-- B1. org_equipment.industry_code 线上 varchar(100) → 本地 varchar(32)
|
||||
-- 检查: SELECT COUNT(*) FROM org_equipment WHERE CHAR_LENGTH(industry_code) > 32;
|
||||
-- ALTER TABLE `org_equipment` MODIFY COLUMN `industry_code` varchar(32) NULL COMMENT '所属行业编码';
|
||||
|
||||
-- B2. org_info.safety_industry_category_code 线上 varchar(1024) → 本地 varchar(32)
|
||||
-- 检查: SELECT COUNT(*) FROM org_info WHERE CHAR_LENGTH(safety_industry_category_code) > 32;
|
||||
-- ALTER TABLE `org_info` MODIFY COLUMN `safety_industry_category_code` varchar(32) NULL COMMENT '安全评价行业分类编码';
|
||||
|
||||
-- B3. org_personnel.proof_material_url 线上 varchar(5000) → 本地 varchar(2000)
|
||||
-- 检查: SELECT COUNT(*) FROM org_personnel WHERE CHAR_LENGTH(proof_material_url) > 2000;
|
||||
-- ALTER TABLE `org_personnel` MODIFY COLUMN `proof_material_url` varchar(2000) NULL COMMENT '证明材料地址';
|
||||
|
||||
-- B4. org_position.duty_desc 线上 varchar(600) → 本地 varchar(500)
|
||||
-- 检查: SELECT COUNT(*) FROM org_position WHERE CHAR_LENGTH(duty_desc) > 500;
|
||||
-- ALTER TABLE `org_position` MODIFY COLUMN `duty_desc` varchar(500) NULL COMMENT '岗位职责';
|
||||
|
||||
-- B5. org_position.remarks 线上 varchar(600) → 本地 varchar(255)
|
||||
-- 检查: SELECT COUNT(*) FROM org_position WHERE CHAR_LENGTH(remarks) > 255;
|
||||
-- ALTER TABLE `org_position` MODIFY COLUMN `remarks` varchar(255) NULL COMMENT '备注';
|
||||
|
||||
-- B6. qual_filing.business_scope 线上 varchar(1024) → 本地 varchar(1000)
|
||||
-- 检查: SELECT COUNT(*) FROM qual_filing WHERE CHAR_LENGTH(business_scope) > 1000;
|
||||
-- ALTER TABLE `qual_filing` MODIFY COLUMN `business_scope` varchar(1000) NULL COMMENT '业务范围';
|
||||
|
||||
-- B7. qual_filing.attachment_url 线上 text → 本地 varchar(500)
|
||||
-- 检查: SELECT COUNT(*) FROM qual_filing WHERE CHAR_LENGTH(attachment_url) > 500;
|
||||
-- ALTER TABLE `qual_filing` MODIFY COLUMN `attachment_url` varchar(500) NULL COMMENT '附件地址';
|
||||
|
||||
-- B8. qual_filing_change.business_scope 线上 varchar(1024) → 本地 varchar(1000)
|
||||
-- 检查: SELECT COUNT(*) FROM qual_filing_change WHERE CHAR_LENGTH(business_scope) > 1000;
|
||||
-- ALTER TABLE `qual_filing_change` MODIFY COLUMN `business_scope` varchar(1000) NULL COMMENT '业务范围';
|
||||
|
||||
-- B9. qual_filing_expert.certificate 线上 text → 本地 varchar(500)
|
||||
-- 检查: SELECT COUNT(*) FROM qual_filing_expert WHERE CHAR_LENGTH(certificate) > 500;
|
||||
-- ALTER TABLE `qual_filing_expert` MODIFY COLUMN `certificate` varchar(500) NULL COMMENT '证书';
|
||||
|
||||
-- =====================================================================
|
||||
-- C区:线上独有的表/字段(按规则禁止删除,仅记录备查,不提供 DROP 语句)
|
||||
-- =====================================================================
|
||||
-- C1. 表 qual_discipline_basic_majors :仅线上存在,本地无此表。
|
||||
-- C2. org_equipment.instrument_type_code varchar(32) :仅线上存在(本地已移除)。
|
||||
-- C3. org_personnel_cert.cert_type_name varchar(50) :仅线上存在(本地已改用 cert_level)。
|
||||
-- C4. qual_filing_personnel_cert.cert_type_name varchar(50) :仅线上存在(本地已改用 cert_level)。
|
||||
-- C5. qual_filing_personnel_cert_change.cert_type_name varchar(50) :仅线上存在(本地已改用 cert_level)。
|
||||
-- 说明: cert_type_name 与新字段 cert_level 语义不同(类型名称 vs 等级),不建议自动迁移数据;
|
||||
-- 如业务确认历史 cert_type_name 中存的是等级值,可人工执行迁移后再评估是否停用旧字段。
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
# 本地库与线上库结构差异分析报告
|
||||
|
||||
- 生成时间:2026-07-29
|
||||
- 本地库(基准):`192.168.20.100:33080` / `safety-eval-service`(60 张表)
|
||||
- 线上库(目标):`nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068` / `safety-eval-service`(35 张表)
|
||||
- 对比方式:MySQL MCP 直连两库,基于 `information_schema.COLUMNS` 逐表逐字段比对(字段名/类型/长度/可空/默认值)
|
||||
|
||||
## 一、表级差异
|
||||
|
||||
### 1.1 本地有、线上缺失的表(26 张)→ 需在线上新建
|
||||
|
||||
| 分类 | 表名 |
|
||||
|---|---|
|
||||
| 安评项目(20张) | `eval_customer`、`eval_project`、`eval_risk_analysis`、`eval_risk_participant`、`eval_contract`、`eval_team`、`eval_project_member`、`eval_project_doc`、`eval_project_process_waring`、`eval_project_waring`、`eval_survey`、`eval_survey_attach`、`eval_report_draft`、`eval_internal_review`、`eval_tech_review`、`eval_process_control`、`eval_review_item`、`eval_sign_task`、`eval_report`、`eval_report_spotcheck` |
|
||||
| 监督检查(2张) | `insp_notice`、`insp_notice_material` |
|
||||
| 机构画像(1张) | `org_profile_score` |
|
||||
| 资质现场核查(2张) | `qual_on_site_review`、`qual_on_site_review_file` |
|
||||
| 消息中心(1张) | `safety_message` |
|
||||
|
||||
### 1.2 线上有、本地没有的表(1 张)→ 按规则不删除,仅记录
|
||||
|
||||
- `qual_discipline_basic_majors`(本地对应表疑为 `basic_discipline_major`,请人工确认是否为改名迁移)
|
||||
|
||||
### 1.3 两边都存在且结构完全一致的表(25 张)
|
||||
|
||||
`account`、`basic_discipline_major`、`filestorage`、`gen_table`、`gen_table_column`、`industry_professional_standards`、`new_flyway_schema_history`、`org_business_scope_device_ref`、`org_department`、`org_personnel_change`、`org_qualification`、`org_resign_apply`、`qual_filing_change_detail`、`qual_filing_commitment`、`qual_filing_commitment_change`、`qual_filing_equipment`、`qual_filing_equipment_change`、`qual_filing_material`、`qual_filing_material_change`、`qual_filing_review`、`qual_filing_personnel`、`qual_filing_personnel_change` 等(其中 `qual_filing_personnel`、`qual_filing_personnel_change` 经逐字段复核确认一致)。
|
||||
|
||||
## 二、共有表的字段差异(12 张有差异)
|
||||
|
||||
### 2.1 本地新增字段(线上缺失,需 ADD COLUMN,安全)
|
||||
|
||||
| 表 | 字段 | 类型 | 说明 |
|
||||
|---|---|---|---|
|
||||
| `org_position` | `gbs_role_id` | bigint | 关联GBS角色ID |
|
||||
| `org_position` | `gbs_role_code` | varchar(64) | 关联GBS角色编码 |
|
||||
| `org_position` | `gbs_role_name` | varchar(100) | 关联GBS角色名称 |
|
||||
| `org_personnel_cert` | `cert_level` | varchar(50) | 证书等级 |
|
||||
| `qual_filing_personnel_cert` | `cert_level` | varchar(50) | 证书等级 |
|
||||
| `qual_filing_personnel_cert_change` | `cert_level` | varchar(128) | 证书等级 |
|
||||
| `wps_doc` | `project_id` | bigint | 项目id |
|
||||
| `wps_doc_version` | `project_id` | bigint | 项目id |
|
||||
|
||||
### 2.2 字段类型/长度不一致(线上比本地"宽",改窄有截断风险,脚本中已注释)
|
||||
|
||||
| 表 | 字段 | 线上 | 本地 | 风险 |
|
||||
|---|---|---|---|---|
|
||||
| `org_equipment` | `industry_code` | varchar(100) | varchar(32) | 收窄截断 |
|
||||
| `org_info` | `safety_industry_category_code` | varchar(1024) | varchar(32) | 收窄截断 |
|
||||
| `org_personnel` | `proof_material_url` | varchar(5000) | varchar(2000) | 收窄截断 |
|
||||
| `org_position` | `duty_desc` | varchar(600) | varchar(500) | 收窄截断 |
|
||||
| `org_position` | `remarks` | varchar(600) | varchar(255) | 收窄截断 |
|
||||
| `qual_filing` | `business_scope` | varchar(1024) | varchar(1000) | 收窄截断 |
|
||||
| `qual_filing` | `attachment_url` | text | varchar(500) | 收窄截断 |
|
||||
| `qual_filing_change` | `business_scope` | varchar(1024) | varchar(1000) | 收窄截断 |
|
||||
| `qual_filing_expert` | `certificate` | text | varchar(500) | 收窄截断 |
|
||||
|
||||
### 2.3 线上独有字段(本地已移除/改名,按规则不删除,仅记录)
|
||||
|
||||
| 表 | 线上独有字段 | 说明 |
|
||||
|---|---|---|
|
||||
| `org_equipment` | `instrument_type_code` varchar(32) | 本地已移除 |
|
||||
| `org_personnel_cert` | `cert_type_name` varchar(50) | 本地改用 `cert_level` |
|
||||
| `qual_filing_personnel_cert` | `cert_type_name` varchar(50) | 本地改用 `cert_level` |
|
||||
| `qual_filing_personnel_cert_change` | `cert_type_name` varchar(50) | 本地改用 `cert_level` |
|
||||
|
||||
## 三、更新脚本文件(需人工确认后执行)
|
||||
|
||||
| 文件 | 内容 | 风险 |
|
||||
|---|---|---|
|
||||
| `20260729_prod_update_part1_create_tables.sql` | 新建 26 张缺失表(`CREATE TABLE IF NOT EXISTS`,幂等) | 无(纯新增) |
|
||||
| `20260729_prod_update_part2_alter_tables.sql` A区 | 8 个安全新增字段 | 低(纯新增,勿重复执行) |
|
||||
| `20260729_prod_update_part2_alter_tables.sql` B区 | 9 个长度收窄 MODIFY(已全部注释) | 高(截断风险,附检查SQL) |
|
||||
| `20260729_prod_update_part2_alter_tables.sql` C区 | 线上独有表/字段记录 | 不执行任何 DROP |
|
||||
|
||||
## 四、执行建议
|
||||
|
||||
1. 先备份线上库:`mysqldump --no-data`(结构)+ 涉及表的数据备份。
|
||||
2. 执行 part1(建表,幂等可重跑)。
|
||||
3. 执行 part2 A区(新增字段,只执行一次)。
|
||||
4. B区逐条先跑注释中的检查 SQL,确认 `COUNT(*)=0` 再放开对应 MODIFY;任何一条有数据超长则不要执行该条。
|
||||
5. C区不执行任何操作;`qual_discipline_basic_majors` 是否废弃请业务侧确认。
|
||||
6. 全程未包含任何 `DROP TABLE` / `DROP COLUMN` / `DELETE` 语句。
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
数据库
|
||||
库名:safety-eval-service
|
||||
|
||||
本地:
|
||||
host: 192.168.20.100
|
||||
port: 33080
|
||||
username: root
|
||||
password: Mysql@zcloud33080
|
||||
|
||||
秦安安全线上:
|
||||
nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com
|
||||
33068
|
||||
root
|
||||
5tS3owZ7w8Uk1egv
|
||||
|
|
@ -0,0 +1,212 @@
|
|||
openapi: 3.0.3
|
||||
info:
|
||||
title: 人员信息-人脸接口 API
|
||||
description: |
|
||||
基于 `OrgPersonnel` 的人脸相关接口,包含:
|
||||
|
||||
- **更新人员原始人像地址**:保存人脸比对基准图 URL。
|
||||
- **人脸比对**:传入待比对图片 base64,服务端从人员「原始人像地址」下载并转 base64,再调用底层人脸比对能力,返回相似度。
|
||||
|
||||
## 接口一览
|
||||
| 接口 | 说明 |
|
||||
|------|------|
|
||||
| `POST /safetyEval/org-personnel/update-origin-face` | 更新人员原始人像地址(基准图) |
|
||||
| `POST /safetyEval/org-personnel/compare-face` | 人脸比对,传入图片 base64 与原始人像比对,返回相似度 |
|
||||
|
||||
## 错误码
|
||||
| 错误码 | 说明 |
|
||||
|--------|------|
|
||||
| 01-05-004 | 原始人像地址为空(比对时人员未设置 originFaceUrl) |
|
||||
| 01-05-005 | 待比对图片 base64 为空 |
|
||||
| 01-05-006 | 人脸比对失败(底层调用异常) |
|
||||
|
||||
**Apifox 导入**:项目设置 → 导入数据 → OpenAPI → 选择本文件。
|
||||
|
||||
统一前缀:`/safetyEval/org-personnel`
|
||||
成功:`success=true` 且 `code="0"`
|
||||
version: 1.0.0
|
||||
contact:
|
||||
name: safety-eval-service
|
||||
|
||||
servers:
|
||||
- url: http://localhost:8095
|
||||
description: 本地开发
|
||||
- url: http://192.168.20.100:30140
|
||||
description: 测试网关(100)
|
||||
|
||||
tags:
|
||||
- name: 人员信息-人脸接口
|
||||
description: 原始人像地址维护与人脸比对
|
||||
|
||||
paths:
|
||||
/safetyEval/org-personnel/update-origin-face:
|
||||
post:
|
||||
tags: [人员信息-人脸接口]
|
||||
summary: 更新人员原始人像地址
|
||||
description: |
|
||||
保存人员的「原始人像地址(originFaceUrl)」,作为后续人脸比对的基准图。
|
||||
仅更新该字段,不影响其他人员信息。
|
||||
operationId: orgPersonnelUpdateOriginFace
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/OrgPersonnelUpdateOriginFaceCmd'
|
||||
example:
|
||||
id: 10001
|
||||
originFaceUrl: "https://oss.example.com/face/10001.jpg"
|
||||
responses:
|
||||
'200':
|
||||
description: 成功(返回更新后的人员信息)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SingleResponseOrgPersonnelCO'
|
||||
example:
|
||||
success: true
|
||||
code: "0"
|
||||
message: "success"
|
||||
errMessage: null
|
||||
data:
|
||||
id: 10001
|
||||
userName: "张三"
|
||||
originFaceUrl: "https://oss.example.com/face/10001.jpg"
|
||||
|
||||
/safetyEval/org-personnel/compare-face:
|
||||
post:
|
||||
tags: [人员信息-人脸接口]
|
||||
summary: 人脸比对
|
||||
description: |
|
||||
传入待比对图片 base64(imageBase64)与人员 ID(personnelId)。
|
||||
服务端从人员「原始人像地址(originFaceUrl)」下载并转为 base64,
|
||||
再调用底层人脸比对能力,返回两张人脸的相似度(0~1,越大越相似)。
|
||||
operationId: orgPersonnelCompareFace
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/OrgPersonnelCompareFaceCmd'
|
||||
example:
|
||||
personnelId: 10001
|
||||
imageBase64: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAABAAEBAREA/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAD8AfwD/2Q=="
|
||||
responses:
|
||||
'200':
|
||||
description: 成功(返回相似度,0~1)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/SingleResponseBigDecimal'
|
||||
example:
|
||||
success: true
|
||||
code: "0"
|
||||
message: "success"
|
||||
errMessage: null
|
||||
data: 0.92
|
||||
|
||||
components:
|
||||
schemas:
|
||||
SingleResponseBase:
|
||||
type: object
|
||||
properties:
|
||||
success: { type: boolean, example: true }
|
||||
code: { type: string, example: "0" }
|
||||
message: { type: string }
|
||||
errMessage: { type: string }
|
||||
|
||||
OrgPersonnelUpdateOriginFaceCmd:
|
||||
type: object
|
||||
required: [id]
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
format: int64
|
||||
description: 人员ID
|
||||
example: 10001
|
||||
originFaceUrl:
|
||||
type: string
|
||||
description: 原始人像地址(人脸比对基准图)
|
||||
example: "https://oss.example.com/face/10001.jpg"
|
||||
|
||||
OrgPersonnelCompareFaceCmd:
|
||||
type: object
|
||||
required: [personnelId, imageBase64]
|
||||
properties:
|
||||
personnelId:
|
||||
type: integer
|
||||
format: int64
|
||||
description: 人员ID
|
||||
example: 10001
|
||||
imageBase64:
|
||||
type: string
|
||||
description: 待比对人脸图片 base64
|
||||
example: "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
|
||||
|
||||
OrgPersonnelCO:
|
||||
type: object
|
||||
properties:
|
||||
id: { type: integer, format: int64 }
|
||||
deptId: { type: integer, format: int64 }
|
||||
postId: { type: integer, format: int64 }
|
||||
userName: { type: string }
|
||||
account: { type: string }
|
||||
genderCode: { type: integer, format: int32 }
|
||||
genderName: { type: string }
|
||||
birthDate: { type: string, format: date }
|
||||
joinWorkDate: { type: string, format: date }
|
||||
idCardNo: { type: string }
|
||||
currentAddress: { type: string }
|
||||
officeAddress: { type: string }
|
||||
educationCode: { type: string }
|
||||
educationName: { type: string }
|
||||
graduateSchool: { type: string }
|
||||
major: { type: string }
|
||||
basicDisciplineMajorId: { type: integer, format: int64 }
|
||||
employmentStatusCode: { type: integer, format: int32 }
|
||||
employmentStatusName: { type: string }
|
||||
personTypeCode: { type: string }
|
||||
personTypeName: { type: string }
|
||||
qualScope: { type: string }
|
||||
professionalLevelCode: { type: string }
|
||||
professionalLevelName: { type: string }
|
||||
evaluatorCertNo: { type: string }
|
||||
educationTypeCode: { type: string }
|
||||
educationTypeName: { type: string }
|
||||
educationLevelCode: { type: string }
|
||||
educationLevelName: { type: string }
|
||||
titleCode: { type: string }
|
||||
registerEngineerFlag: { type: integer, format: int32 }
|
||||
publications: { type: string }
|
||||
abilityDeclaration: { type: string }
|
||||
workExperience: { type: string }
|
||||
proofMaterialUrl: { type: string }
|
||||
originFaceUrl: { type: string, description: 原始人像地址(人脸比对基准图) }
|
||||
technicalDirectorFlag: { type: boolean }
|
||||
processControlLeaderFlag: { type: boolean }
|
||||
deptName: { type: string }
|
||||
postName: { type: string }
|
||||
certNames: { type: string }
|
||||
changeCount: { type: integer, format: int32 }
|
||||
resignApplyId: { type: integer, format: int64 }
|
||||
resignAuditStatus: { type: integer, format: int32 }
|
||||
tenantId: { type: integer, format: int64 }
|
||||
|
||||
SingleResponseOrgPersonnelCO:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/SingleResponseBase'
|
||||
- type: object
|
||||
properties:
|
||||
data:
|
||||
$ref: '#/components/schemas/OrgPersonnelCO'
|
||||
|
||||
SingleResponseBigDecimal:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/SingleResponseBase'
|
||||
- type: object
|
||||
properties:
|
||||
data:
|
||||
type: number
|
||||
format: double
|
||||
description: 人脸相似度(0~1,越大越相似)
|
||||
example: 0.92
|
||||
|
|
@ -11,6 +11,7 @@ import org.springframework.validation.annotation.Validated;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 人员信息适配层(Controller)
|
||||
|
|
@ -60,4 +61,16 @@ public class OrgPersonnelController {
|
|||
public SingleResponse<Void> resetPassword(@ApiParam("主键ID") @RequestBody Req<Long> req) {
|
||||
return orgPersonnelApi.resetPassword(req.getData());
|
||||
}
|
||||
|
||||
@ApiOperation("更新人员原始人像地址")
|
||||
@PostMapping("/update-origin-face")
|
||||
public SingleResponse<OrgPersonnelCO> updateOriginFace(@RequestBody OrgPersonnelUpdateOriginFaceCmd cmd) {
|
||||
return orgPersonnelApi.updateOriginFace(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("人脸比对(传入待比对图片base64,与人员原始人像比对)")
|
||||
@PostMapping("/compare-face")
|
||||
public SingleResponse<BigDecimal> compareFace(@RequestBody OrgPersonnelCompareFaceCmd cmd) {
|
||||
return orgPersonnelApi.compareFace(cmd);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity;
|
|||
import org.qinan.safetyeval.domain.entity.OrgPositionEntity;
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||
import org.qinan.safetyeval.domain.gateway.FaceCompareGateway;
|
||||
import org.qinan.safetyeval.domain.gateway.OrgResignApplyGateway;
|
||||
import org.qinan.safetyeval.domain.query.OrgPersonnelQuery;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
|
|
@ -32,6 +33,7 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
|
@ -66,6 +68,9 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
@Autowired(required = false)
|
||||
private OrgPositionDomainService orgPositionDomainService;
|
||||
|
||||
@Autowired(required = false)
|
||||
private FaceCompareGateway faceCompareGateway;
|
||||
|
||||
@Value("${def.password:a123456}")
|
||||
private String defPassword;
|
||||
@Value("${def.publicKey:0402df2195296d4062ac85ad766994d73e871b887e18efb9a9a06b4cebc72372869b7da6c347c129dee2b46a0f279ff066b01c76208c2a052af75977c722a2ccee}")
|
||||
|
|
@ -231,4 +236,27 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
orgPersonnelViewEnricher.enrichPersonnel(co);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<OrgPersonnelCO> updateOriginFace(OrgPersonnelUpdateOriginFaceCmd cmd) {
|
||||
OrgPersonnelEntity existing = orgPersonnelDomainService.get(cmd.getId());
|
||||
if (existing == null) {
|
||||
throw new BizException(ErrorCode.ORG_PERSONNEL_NOT_FOUND);
|
||||
}
|
||||
existing.setOriginFaceUrl(cmd.getOriginFaceUrl());
|
||||
OrgPersonnelEntity result = orgPersonnelDomainService.modify(existing);
|
||||
OrgPersonnelCO co = orgPersonnelConvertor.toCO(result);
|
||||
enrich(co);
|
||||
return SingleResponse.success(co);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<BigDecimal> compareFace(OrgPersonnelCompareFaceCmd cmd) {
|
||||
OrgPersonnelEntity entity = orgPersonnelDomainService.get(cmd.getPersonnelId());
|
||||
if (entity == null) {
|
||||
throw new BizException(ErrorCode.ORG_PERSONNEL_NOT_FOUND);
|
||||
}
|
||||
BigDecimal score = faceCompareGateway.compare(entity.getOriginFaceUrl(), cmd.getImageBase64());
|
||||
return SingleResponse.success(score);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,12 @@ import org.qinan.safetyeval.client.co.OrgPersonnelCO;
|
|||
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.OrgPersonnelAddCmd;
|
||||
import org.qinan.safetyeval.client.dto.OrgPersonnelCompareFaceCmd;
|
||||
import org.qinan.safetyeval.client.dto.OrgPersonnelModifyCmd;
|
||||
import org.qinan.safetyeval.client.dto.OrgPersonnelPageQuery;
|
||||
import org.qinan.safetyeval.client.dto.OrgPersonnelUpdateOriginFaceCmd;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 人员信息接口定义(Client层)
|
||||
|
|
@ -25,4 +29,8 @@ public interface OrgPersonnelApi {
|
|||
PageResponse<OrgPersonnelCO> page(OrgPersonnelPageQuery query);
|
||||
|
||||
SingleResponse<Void> resetPassword(Long id);
|
||||
|
||||
SingleResponse<OrgPersonnelCO> updateOriginFace(OrgPersonnelUpdateOriginFaceCmd cmd);
|
||||
|
||||
SingleResponse<BigDecimal> compareFace(OrgPersonnelCompareFaceCmd cmd);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,6 +117,9 @@ public class OrgPersonnelCO {
|
|||
@ApiModelProperty(value = "证明材料附件地址")
|
||||
private String proofMaterialUrl;
|
||||
|
||||
@ApiModelProperty(value = "原始人像地址(人脸比对基准图)")
|
||||
private String originFaceUrl;
|
||||
|
||||
@ApiModelProperty(value = "是否技术负责人")
|
||||
private Boolean technicalDirectorFlag;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package org.qinan.safetyeval.client.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 人脸比对命令
|
||||
*/
|
||||
@Data
|
||||
public class OrgPersonnelCompareFaceCmd {
|
||||
|
||||
@ApiModelProperty(value = "人员ID", required = true)
|
||||
private Long personnelId;
|
||||
|
||||
@NotBlank(message = "待比对图片base64不能为空")
|
||||
@ApiModelProperty(value = "待比对人脸图片 base64", required = true)
|
||||
private String imageBase64;
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package org.qinan.safetyeval.client.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 更新人员原始人像地址命令
|
||||
*/
|
||||
@Data
|
||||
public class OrgPersonnelUpdateOriginFaceCmd {
|
||||
|
||||
@NotNull(message = "人员ID不能为空")
|
||||
@ApiModelProperty(value = "人员ID", required = true)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "原始人像地址(人脸比对基准图)")
|
||||
private String originFaceUrl;
|
||||
}
|
||||
|
|
@ -120,6 +120,9 @@ public class OrgPersonnelEntity {
|
|||
/** 申报专业能力证明材料(多个逗号分隔) */
|
||||
private String proofMaterialUrl;
|
||||
|
||||
/** 原始人像地址(人脸比对基准图) */
|
||||
private String originFaceUrl;
|
||||
|
||||
/** 是否技术负责人 */
|
||||
private Boolean technicalDirectorFlag;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@ public enum ErrorCode {
|
|||
ORG_PERSONNEL_NOT_FOUND("01-05-001", "人员信息不存在"),
|
||||
ORG_PERSONNEL_ACCOUNT_EXISTS("01-05-002", "账号已存在"),
|
||||
ORG_PERSONNEL_IDCARDNO_EXISTS("01-05-003", "身份证已存在"),
|
||||
// ---- 人员人脸比对 ----
|
||||
ORG_PERSONNEL_FACE_ORIGIN_EMPTY("01-05-004", "人员未配置原始人像,无法比对"),
|
||||
ORG_PERSONNEL_FACE_COMPARE_EMPTY("01-05-005", "待比对图片不能为空"),
|
||||
ORG_PERSONNEL_FACE_COMPARE_FAILED("01-05-006", "人脸比对失败"),
|
||||
|
||||
// ---- 人员证书 ----
|
||||
ORG_PERSONNEL_CERT_NOT_FOUND("01-06-001", "人员证书不存在"),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package org.qinan.safetyeval.domain.gateway;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 人脸比对网关(领域端口)
|
||||
* <p>
|
||||
* 由基础设施层对接阿里云人脸比对能力实现,应用层仅依赖此端口完成编排。
|
||||
* </p>
|
||||
*/
|
||||
public interface FaceCompareGateway {
|
||||
|
||||
/**
|
||||
* 人脸比对
|
||||
*
|
||||
* @param originFaceUrl 原始人像地址(基准图)
|
||||
* @param compareImageBase64 待比对人脸图片 base64
|
||||
* @return 相似度(0~100)
|
||||
*/
|
||||
BigDecimal compare(String originFaceUrl, String compareImageBase64);
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
package org.qinan.safetyeval.infrastructure.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
|
@ -52,6 +54,10 @@ public class OrgPersonnelDO {
|
|||
private String abilityDeclaration;
|
||||
private String workExperience;
|
||||
private String proofMaterialUrl;
|
||||
|
||||
@TableField(value = "origin_face_url", updateStrategy = FieldStrategy.NOT_NULL)
|
||||
private String originFaceUrl;
|
||||
|
||||
private Boolean technicalDirectorFlag;
|
||||
private Boolean processControlLeaderFlag;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package org.qinan.safetyeval.infrastructure.gatewayimpl;
|
||||
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||
import org.qinan.safetyeval.domain.gateway.FaceCompareGateway;
|
||||
import org.qinan.safetyeval.infrastructure.utils.FaceUtil;
|
||||
import org.qinan.safetyeval.infrastructure.utils.ImageBase64Util;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 人脸比对网关实现(基础设施层)
|
||||
* <p>
|
||||
* 将原始人像地址下载为 base64,再调用阿里云人脸比对底层工具 {@link FaceUtil}。
|
||||
* </p>
|
||||
*/
|
||||
@Service
|
||||
public class FaceCompareGatewayImpl implements FaceCompareGateway {
|
||||
|
||||
@Override
|
||||
public BigDecimal compare(String originFaceUrl, String compareImageBase64) {
|
||||
if (originFaceUrl == null || originFaceUrl.trim().isEmpty()) {
|
||||
throw new BizException(ErrorCode.ORG_PERSONNEL_FACE_ORIGIN_EMPTY);
|
||||
}
|
||||
if (compareImageBase64 == null || compareImageBase64.trim().isEmpty()) {
|
||||
throw new BizException(ErrorCode.ORG_PERSONNEL_FACE_COMPARE_EMPTY);
|
||||
}
|
||||
String originBase64 = ImageBase64Util.urlToBase64(originFaceUrl);
|
||||
try {
|
||||
Float confidence = FaceUtil.compareFace(compareImageBase64, originBase64);
|
||||
return BigDecimal.valueOf(confidence == null ? 0f : confidence);
|
||||
} catch (BizException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
throw new BizException(ErrorCode.ORG_PERSONNEL_FACE_COMPARE_FAILED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package org.qinan.safetyeval.infrastructure.utils;
|
||||
|
||||
import com.aliyun.facebody20191230.Client;
|
||||
import com.aliyun.facebody20191230.models.CompareFaceRequest;
|
||||
import com.aliyun.facebody20191230.models.CompareFaceResponse;
|
||||
import com.aliyun.teaopenapi.models.Config;
|
||||
import com.aliyun.teautil.models.RuntimeOptions;
|
||||
|
||||
/**
|
||||
* 阿里云人脸比对底层工具
|
||||
* <p>
|
||||
* 仅封装阿里云人脸比对 SDK 调用,不掺杂业务;业务编排在应用层执行器中进行。
|
||||
* </p>
|
||||
*/
|
||||
public class FaceUtil {
|
||||
|
||||
private static final String ACCESS_KEY_ID = "LTAI5tDrmQvhtSDPHApBSL56";
|
||||
private static final String ACCESS_KEY_SECRET = "Fy68zvuMcBGh9eyNXmWhOZNAOzww40";
|
||||
private static final String ENDPOINT = "facebody.cn-shanghai.aliyuncs.com";
|
||||
|
||||
public static Client createClient() throws Exception {
|
||||
Config config = new Config()
|
||||
.setAccessKeyId(ACCESS_KEY_ID)
|
||||
.setAccessKeySecret(ACCESS_KEY_SECRET);
|
||||
config.endpoint = ENDPOINT;
|
||||
return new Client(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 人脸比对
|
||||
*
|
||||
* @param data1 图片1 base64(待比对人脸)
|
||||
* @param data2 图片2 base64(基准人脸,即原始人像)
|
||||
* @return 相似度(0~100)
|
||||
*/
|
||||
public static Float compareFace(String data1, String data2) throws Exception {
|
||||
Client client = createClient();
|
||||
CompareFaceRequest request = new CompareFaceRequest()
|
||||
.setImageDataA(data1)
|
||||
.setImageDataB(data2);
|
||||
RuntimeOptions runtime = new RuntimeOptions();
|
||||
CompareFaceResponse response = client.compareFaceWithOptions(request, runtime);
|
||||
return response.getBody().getData().getConfidence();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package org.qinan.safetyeval.infrastructure.utils;
|
||||
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.Base64;
|
||||
|
||||
/**
|
||||
* 图片工具:将网络图片地址下载并转换为 base64(不含 data: 前缀)
|
||||
*/
|
||||
public class ImageBase64Util {
|
||||
|
||||
private static final int CONNECT_TIMEOUT_MILLIS = 10000;
|
||||
private static final int READ_TIMEOUT_MILLIS = 10000;
|
||||
private static final int MAX_BYTES = 10 * 1024 * 1024;
|
||||
|
||||
public static String urlToBase64(String imageUrl) {
|
||||
if (imageUrl == null || imageUrl.trim().isEmpty()) {
|
||||
throw new BizException(ErrorCode.ORG_PERSONNEL_FACE_ORIGIN_EMPTY);
|
||||
}
|
||||
HttpURLConnection connection = null;
|
||||
try {
|
||||
URL url = new URL(imageUrl);
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setConnectTimeout(CONNECT_TIMEOUT_MILLIS);
|
||||
connection.setReadTimeout(READ_TIMEOUT_MILLIS);
|
||||
connection.setRequestMethod("GET");
|
||||
connection.setInstanceFollowRedirects(true);
|
||||
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
||||
throw new BizException(ErrorCode.FILE_DOWNLOAD_FAILED);
|
||||
}
|
||||
try (InputStream in = connection.getInputStream();
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream()) {
|
||||
byte[] buffer = new byte[8192];
|
||||
int len;
|
||||
int total = 0;
|
||||
while ((len = in.read(buffer)) != -1) {
|
||||
total += len;
|
||||
if (total > MAX_BYTES) {
|
||||
throw new BizException(ErrorCode.FILE_DOWNLOAD_FAILED);
|
||||
}
|
||||
out.write(buffer, 0, len);
|
||||
}
|
||||
return Base64.getEncoder().encodeToString(out.toByteArray());
|
||||
}
|
||||
} catch (BizException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
throw new BizException(ErrorCode.FILE_DOWNLOAD_FAILED);
|
||||
} finally {
|
||||
if (connection != null) {
|
||||
connection.disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-rspack.2 Frontend_Env[production] Build_Date[2026/7/17 11:48:56] App_Identifier[safetyEval]"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
|
||||
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-rspack.1 Frontend_Env[production] Build_Date[2026/7/29 09:19:40] App_Identifier[safetyEval]"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
|
||||
const APP_ENV = {
|
||||
antd: {
|
||||
'ant-prefix': 'micro-temp',
|
||||
|
|
@ -89,4 +89,4 @@
|
|||
},
|
||||
|
||||
}
|
||||
}</script><script defer="defer" src="/safetyEval/static/js/323.82ddd87cde984d87.js"></script><script defer="defer" src="/safetyEval/static/js/121.ae75e71830bf4ae0.js"></script><script defer="defer" src="/safetyEval/static/js/647.ef28d2f331caf857.js"></script><script defer="defer" src="/safetyEval/static/js/main.947340ae241ce8fb.js"></script><link href="/safetyEval/static/css/main.afb99f19e98f2011.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息 */console.log("%c@cqsjjb/scripts@2.0.0-rspack.2 Frontend_Env[production] Build_Date[2026/7/17 11:48:56] App_Identifier[safetyEval] Frontend_Branch[dev_1.0.1] Backend_Branch[dev]", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>
|
||||
}</script><script defer="defer" src="/safetyEval/static/js/338.1b66d6d63e1b5322.js"></script><script defer="defer" src="/safetyEval/static/js/121.ae75e71830bf4ae0.js"></script><script defer="defer" src="/safetyEval/static/js/289.7986b98192d94918.js"></script><script defer="defer" src="/safetyEval/static/js/main.dd7ecb5f742e3668.js"></script><link href="/safetyEval/static/css/main.fd0f74d150393310.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息 */console.log("%c@cqsjjb/scripts@2.0.0-rspack.1 Frontend_Env[production] Build_Date[2026/7/29 09:19:40] App_Identifier[safetyEval] Frontend_Branch[dev] Backend_Branch[dev]", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -31,6 +31,7 @@
|
|||
"antd": "^5.29.2",
|
||||
"dayjs": "^1.11.7",
|
||||
"echarts": "^6.1.0",
|
||||
"history": "^4.10.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
|
|
|
|||
Loading…
Reference in New Issue