diff --git a/manager/src/main/java/org/jiayunet/service/JobCleanService.java b/manager/src/main/java/org/jiayunet/service/JobCleanService.java index 566d537..9edd7eb 100644 --- a/manager/src/main/java/org/jiayunet/service/JobCleanService.java +++ b/manager/src/main/java/org/jiayunet/service/JobCleanService.java @@ -72,7 +72,7 @@ public class JobCleanService { * 定时任务A:岗位清洗(每5分钟) *

1. 批量锁定待清洗数据 2. 多线程并发调用AI清洗 3. 写入业务表

*/ - @Scheduled(cron = "0 */5 * * * ?") + @Scheduled(cron = "0 */1 * * * ?") public void cleanJob() { List dataList = jobCleanTransactionService.lockBatch(batchSize); if (dataList.isEmpty()) { @@ -255,21 +255,23 @@ public class JobCleanService { 返回JSON数组格式,如:["java", "spring boot", "mysql", "redis"] 规则: 1. 统一使用小写字母 - 2. 尽量简短,使用业界通用缩写(如 js 而非 javascript,k8s 而非 kubernetes) - 3. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等 - 4. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动) - 5. 如果岗位完全没有专业能力要求(纯看态度和素质),返回空数组 [] - 6. 最多15个,按重要性排序 - 7. 只返回JSON数组,不要其他内容 + 2. 只保留核心词,去掉多余修饰(如"plc编程"→"plc","c语言"→"c","cad制图"→"cad") + 3. 同一技能只保留最具体的表述,不要同时出现上位词和下位词(如有"机械设计"就不要再出"机械") + 4. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等 + 5. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动) + 6. 不提取过于宽泛的标签(如"办公软件"、"windows") + 7. 如果岗位完全没有专业能力要求(纯看态度和素质),返回空数组 [] + 8. 最多15个,按重要性排序 + 9. 只返回JSON数组,不要其他内容 示例1(技术岗): - 输入:需要熟悉Java、Spring Boot框架,了解MySQL数据库和Redis缓存 - 输出:["java", "spring boot", "mysql", "redis"] + 输入:需要熟悉Java、Spring Boot框架,了解MySQL数据库和Redis缓存,会PLC编程 + 输出:["java", "spring boot", "mysql", "redis", "plc"] 示例2(财务岗): 输入:负责费用管理与审核,月度经营利润分析,要求财务管理、会计学相关专业 - 输出:["财务管理", "会计核算", "经营分析", "费用审核"] - 示例3(科研岗): - 输入:开展生物合成等相关专业研究,啤酒生物发酵工程方向 - 输出:["生物合成", "发酵工程"] + 输出:["财务管理", "会计", "经营分析"] + 示例3(制造岗): + 输入:负责模具开发,熟悉CAD制图,了解注塑成型工艺,有SolidWorks经验 + 输出:["模具", "cad", "注塑", "solidworks"] 示例4(纯素质岗): 输入:具备较强的沟通能力和创新意识,积极主动,专业不限 输出:[] @@ -314,7 +316,7 @@ public class JobCleanService { */ private Long findOrCreateSkillTag(String name) { // 先尝试插入(忽略重复),ID 由 IdWorker 生成 - skillTagMapper.insertIgnore(IdWorker.getId(), name, Instant.now()); + skillTagMapper.insertIgnore(IdWorker.getId(), name); // 再查询拿ID SkillTag tag = skillTagMapper.selectOne(new LambdaQueryWrapper().eq(SkillTag::getName, name).last("LIMIT 1")); diff --git a/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java b/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java index b9ca616..f095d4e 100644 --- a/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java +++ b/manager/src/main/java/org/jiayunet/service/UserProfileAnalyzeService.java @@ -228,21 +228,23 @@ public class UserProfileAnalyzeService { 返回JSON数组格式,如:["java", "spring boot", "mysql", "redis"] 规则: 1. 统一使用小写字母 - 2. 尽量简短,使用业界通用缩写(如 js 而非 javascript,k8s 而非 kubernetes) - 3. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等 - 4. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动) - 5. 如果简历中完全没有专业能力体现,返回空数组 [] - 6. 最多15个,按熟练度排序 - 7. 只返回JSON数组,不要其他内容 + 2. 只保留核心词,去掉多余修饰(如"plc编程"→"plc","c语言"→"c","cad制图"→"cad") + 3. 同一技能只保留最具体的表述,不要同时出现上位词和下位词(如有"机械设计"就不要再出"机械") + 4. 提取范围包括:技术栈、专业领域知识、行业工具、专业资质能力等 + 5. 不提取纯软技能(如沟通能力、团队协作、学习能力、积极主动) + 6. 不提取过于宽泛的标签(如"办公软件"、"windows") + 7. 如果简历中完全没有专业能力体现,返回空数组 [] + 8. 最多15个,按熟练度排序 + 9. 只返回JSON数组,不要其他内容 示例1(技术岗): - 输入:3年Java开发经验,熟悉Spring Boot、MySQL、Redis - 输出:["java", "spring boot", "mysql", "redis"] + 输入:3年Java开发经验,熟悉Spring Boot、MySQL、Redis,会PLC编程 + 输出:["java", "spring boot", "mysql", "redis", "plc"] 示例2(财务岗): 输入:负责费用管理与审核,月度经营利润分析,会计学专业 - 输出:["财务管理", "会计核算", "经营分析", "费用审核"] - 示例3(科研岗): - 输入:开展生物合成相关研究,发酵工程方向博士 - 输出:["生物合成", "发酵工程"] + 输出:["财务管理", "会计", "经营分析"] + 示例3(制造岗): + 输入:从事模具开发,熟悉CAD制图,了解注塑成型工艺 + 输出:["模具", "cad", "注塑"] 示例4(无专业能力): 输入:具备较强的沟通能力和创新意识,积极主动 输出:[]