- 新增审核可选择审核重点(字典驱动,合同/简历各一套)并填写附加要求自由文本, 两者合并为 requirements 随请求提交,后端追加进系统提示词,让模型按需聚焦 - 审核项存字典 oa_ai_review_item_contract / oa_ai_review_item_resume, 用户可在系统管理→字典管理自行增删审核项(无需改代码),各预置10项 - oa_ai_review 增加 requirements 列(已应用到生产库),落库留痕;详情页展示 - 前后端贯通:analyze / analyzeStream 均新增 requirements 参数 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
93 lines
7.8 KiB
SQL
93 lines
7.8 KiB
SQL
-- =====================================================
|
||
-- AI 智能审核(合同 / 简历)
|
||
-- - 使用小米 MiMo 多模态大模型(mimo-v2.5)
|
||
-- - 合同:站在“我方”立场审查,找出不利条款 + 利好我方的修改建议
|
||
-- - 简历:评估候选人与目标岗位匹配度
|
||
-- 本脚本可重复执行(幂等)。
|
||
-- 注意:sys_menu 主键为雪花ID(非自增),必须显式指定。
|
||
-- =====================================================
|
||
|
||
-- ---------------- 审核记录表 ----------------
|
||
CREATE TABLE IF NOT EXISTS `oa_ai_review` (
|
||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`review_type` varchar(20) NOT NULL COMMENT '类型 contract合同 / resume简历',
|
||
`file_name` varchar(255) DEFAULT NULL COMMENT '原始文件名',
|
||
`oss_id` bigint(20) DEFAULT NULL COMMENT 'OSS文件ID(原件留存)',
|
||
`file_url` varchar(500) DEFAULT NULL COMMENT 'OSS文件地址',
|
||
`position` varchar(255) DEFAULT NULL COMMENT '简历目标岗位',
|
||
`requirements` varchar(1000) DEFAULT NULL COMMENT '本次审核的附加要求/审核重点',
|
||
`match_score` int(11) DEFAULT NULL COMMENT '简历匹配度评分 0-100',
|
||
`risk_level` varchar(10) DEFAULT NULL COMMENT '合同风险评级 高/中/低',
|
||
`summary` varchar(500) DEFAULT NULL COMMENT 'AI审核结论摘要(列表展示)',
|
||
`result_md` longtext COMMENT 'AI 审核结果(Markdown)',
|
||
`model` varchar(50) DEFAULT NULL COMMENT '使用的模型',
|
||
`tokens` int(11) DEFAULT NULL COMMENT '消耗 token',
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志:0正常 2删除(mybatis-plus logicDeleteValue=2)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_type` (`review_type`),
|
||
KEY `idx_create_time` (`create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 审核记录(合同/简历)';
|
||
|
||
-- 若表已存在(旧版本),补加列(MySQL 不支持 ADD COLUMN IF NOT EXISTS,已存在则报错可忽略):
|
||
-- ALTER TABLE `oa_ai_review` ADD COLUMN `summary` varchar(500) DEFAULT NULL COMMENT 'AI审核结论摘要(列表展示)' AFTER `risk_level`;
|
||
-- ALTER TABLE `oa_ai_review` ADD COLUMN `requirements` varchar(1000) DEFAULT NULL COMMENT '本次审核的附加要求/审核重点' AFTER `position`;
|
||
|
||
-- ---------------- 字典:可选审核重点(合同 / 简历),用户可在字典管理增删 ----------------
|
||
INSERT IGNORE INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
|
||
VALUES (2063920000000000001, 'AI合同审核项', 'oa_ai_review_item_contract', '0', 'admin', NOW(), 'AI合同审核可选审核重点'),
|
||
(2063920000000000002, 'AI简历审核项', 'oa_ai_review_item_resume', '0', 'admin', NOW(), 'AI简历审核可选审核重点');
|
||
|
||
INSERT IGNORE INTO `sys_dict_data`
|
||
(`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
|
||
VALUES
|
||
(2063920000000000010, 1, '付款条款与节点', '付款条款与节点', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000011, 2, '违约责任与赔偿', '违约责任与赔偿', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000012, 3, '知识产权归属', '知识产权归属', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000013, 4, '保密义务', '保密义务', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000014, 5, '交付与验收标准', '交付与验收标准', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000015, 6, '质保与售后', '质保与售后', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000016, 7, '价格与税费', '价格与税费', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000017, 8, '争议解决与管辖', '争议解决与管辖', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000018, 9, '不可抗力', '不可抗力', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000019, 10,'合同解除条件', '合同解除条件', 'oa_ai_review_item_contract', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000040, 1, '技术能力匹配', '技术能力匹配', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000041, 2, '项目经验深度', '项目经验深度', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000042, 3, '工作稳定性', '工作稳定性', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000043, 4, '团队协作与管理', '团队协作与管理', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000044, 5, '学历与专业背景', '学历与专业背景', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000045, 6, '行业相关经验', '行业相关经验', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000046, 7, '薪资期望匹配', '薪资期望匹配', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000047, 8, '成长潜力', '成长潜力', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000048, 9, '离职风险', '离职风险', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), ''),
|
||
(2063920000000000049, 10,'外语能力', '外语能力', 'oa_ai_review_item_resume', '', 'default', 'N', '0', 'admin', NOW(), '');
|
||
|
||
-- ---------------- 菜单:信息 > AI审核 ----------------
|
||
-- 父菜单 1774989374680858626 = 「信息」
|
||
INSERT IGNORE INTO `sys_menu`
|
||
(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`)
|
||
VALUES
|
||
(2063910000000000001, 'AI审核', 1774989374680858626, 4,
|
||
'aiReview', 'oa/aiReview/index', 'C', '0', '0',
|
||
NULL, 'eye-open', 'admin', NOW());
|
||
|
||
-- ---------------- 角色授权(与「信息」下兄弟菜单一致的角色集) ----------------
|
||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||
VALUES
|
||
(1743186990678077442, 2063910000000000001), -- 总经理
|
||
(1743204526291349506, 2063910000000000001), -- 技术总监
|
||
(1743205028123045890, 2063910000000000001), -- 信息化部
|
||
(1852970465740505090, 2063910000000000001), -- 普通员工
|
||
(1859257980152692738, 2063910000000000001), -- 职工
|
||
(1859548445766717441, 2063910000000000001), -- 后勤
|
||
(1893987128812761089, 2063910000000000001), -- 新员工临时身份
|
||
(1914212623781187585, 2063910000000000001), -- 技术总工
|
||
(1914213026883162113, 2063910000000000001), -- 设计主任
|
||
(1925062159919448065, 2063910000000000001); -- 外贸专责
|
||
|
||
-- ---------------- 校验 ----------------
|
||
SELECT menu_id, menu_name, path, component, icon FROM sys_menu WHERE menu_id = 2063910000000000001;
|