Files
taojianmin a3b4092a30 v1.1.1: 升级 AI 续聘建议为 LLM + Playwright RPA 采集 SmartCampus 平台材料
新增:

- scripts/service/platform_collector.py:Playwright RPA(持久化 browser profile 复用登录态),抓合同表(姓名/单位/到期日/剩余天数/预警/建议),逐行点"续聘材料包"按钮下载 PDF/Word 到 data/materials/

- scripts/service/material_parser.py:PDF/Word 文本提取(pypdf → pdf2image + pytesseract OCR 扫描件兜底;python-docx 抽 docx;antiword 兜底 .doc)

- scripts/service/llm_decision.py:AI 决策统一入口(优先调宿主 jiangchang_skill_core.llm_manager.call_llm_json;本地降级到规则版;输出 decision_source ∈ {llm, rules, rules_no_materials})

- scripts/db/migrations.py:idempotent ALTER/CREATE,建 materials_content 表 + renewal_tasks 加 decision_source / materials_summary 列

修改:

- scripts/db/connection.py:init_db() 自动调 apply_all() 应用 v1.1.1 迁移

- scripts/db/repository.py:加 insert_material / list_materials_for_contract / list_pending_materials / summarize_materials / get_task_full

- scripts/service/task_generator.py:AI 决策统一改为调 llm_decision.decide_suggestion(materials_summary=...);reason 文案加「已结合材料包(X 份文件,Y 字 / 待解析)综合判断:...」

- scripts/service/html_renderer.py:ctx 加 DECISION_SOURCE(LLM 推理 / 本地规则 / 本地规则(无材料))+ MATERIALS_COUNT

- scripts/templates/task.html.j2:footer 加 "AI 建议来源:{{DECISION_SOURCE}} · 已审阅材料 {{MATERIALS_COUNT}} 份"

- scripts/cli/app.py:新增 2 个 CLI(collect-from-platform / parse-materials);现有 9 个不动

- requirements.txt:playwright / pypdf / python-docx / pdf2image / pytesseract / Pillow

- .env.example:SMARTCAMPUS_BASE_URL / SMARTCAMPUS_PROFILE_DIR / MATERIALS_DOWNLOAD_DIR / OCR_LANG / LLM_MODEL_NAME / LLM_API_BASE_URL / LLM_API_TOKEN

- SKILL.md:version 1.1.0 → 1.1.1;用户意图路由表加 2 行;新增「数据来源」段(三层来源 + AI 决策透明化)

- README.md:使用前要准备 → 加 playwright install chromium 步骤

- CHANGELOG.md:v1.1.1 条目

- scripts/util/constants.py:SKILL_VERSION 1.1.0 → 1.1.1

本地验证:11 个 CLI 全部 exit 0;decision_source=rules;reason 含「已结合材料包(6 份文件,待解析)」;HTML footer 含决策来源。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-14 15:01:24 +08:00

4.4 KiB
Raw Permalink Blame History

description
description
每日凌晨扫描全校教职工合同电子台账,对距离到期日 90/60/30 天的合同分级预警,自动生成个人版续聘任务书和单位版本月到期清单。

合同到期智能预警与续聘辅助

每日凌晨自动扫描全校教职工合同电子台账,对距离到期日 90 天 / 60 天 / 30 天的合同分别给黄 / 橙 / 红三级预警,自动生成《续聘准备任务书》推给教师本人,把《本月合同到期人员清单及续聘建议》推给二级单位人事秘书,把劳动纠纷和年终突击签合同彻底挡在门外。


这个技能能帮你做什么

  • 每日凌晨自动扫描:无需人工介入,按合同到期日距今 90/60/30 天分别给出黄/橙/红三级预警
  • 自动预填续聘考核表:根据该教师近 3 年年度考核结果和师德师风考评,自动生成「近三年工作业绩摘要」
  • AI 建议续聘意见:依据考核结果(优秀/称职/基本称职/不称职),给出续聘 / 续聘观察 / 不续聘的建议,并附理由(如「连续两年考核排名后 10%」)
  • 双轨派发:个人版《续聘准备任务书》发给教师本人;单位版《本月合同到期人员清单》发给二级单位人事秘书
  • 红头预警自动抄送:30 天红色紧急提醒自动抄送分管校领导

适合什么场景

  • 人事处合同管理员想从「年底集中突击签合同」转向「全年前置预警」
  • 二级单位人事秘书每月初就想知道本月谁需要办续聘、还差什么材料
  • 教师本人提前 90 天就知道合同什么时候到期、需要准备什么材料
  • 分管校领导 30 天内必须知道谁有合同逾期风险

使用前需要准备什么

  • 合同电子台账数据已与人事系统同步(合同类型、起止日期、聘任岗位、试用期)
  • 该教师近 3 年年度考核结果可由党委教师工作部系统接口获取
  • 师德师风考评记录可由党委教师工作部系统接口获取
  • 二级单位人事秘书通讯录已登记到本技能 .env
  • (v1.1.1)首次启用 SmartCampus HR 平台采集:运行 playwright install chromium 下载浏览器;用 python scripts/main.py collect-from-platform --show-browser 弹出浏览器手工登录一次保存 cookie

怎么使用

本技能支持数据管理(合同台账表上点工具栏按钮)、对话任务(自然语言让 Agent 完成)、定时任务(每日凌晨 02:00 自动扫描)。三种入口触发同一套业务能力。

逐步操作与排障,请查看技能市场「使用教程」Tab。


执行后你会得到什么

  • 个人版《续聘准备任务书》:发给教师本人,含合同基本信息、近三年业绩摘要、续聘建议、所需材料清单、截止时间
  • 单位版《本月合同到期人员清单及续聘建议》:发给二级单位人事秘书,含本月全部到期 / 即将到期人员名单、AI 续聘建议、任务派发状态
  • 预警提醒:90 天黄色 / 60 天橙色 / 30 天红色,三档分级
  • 任务派发日志:每一条预警的派发状态、接收人、是否已读

注意事项

  • 本技能不替代人事处终审,续聘 / 不续聘的最终决定权仍由人事处与分管校领导行使
  • 涉及劳动合同解除 / 不续聘的处分性决定仍须走线下流程,技能仅给出 AI 建议
  • 考核结果、师德师风数据延迟同步可能导致预警等级失真,建议每日扫描完成后人工核对一次
  • 30 天红色预警触发后,系统将自动抄送分管校领导,请勿手动屏蔽通知

常见问题

这个技能适合我吗?

如果你的工作包含「管理全校教职工劳动合同 + 每月办理续签」,本技能可以接管日常预警与材料预填。

教师本人能看到 AI 建议的续聘意见吗?

个人版《续聘准备任务书》默认不展示 AI 续聘建议,仅展示业绩摘要与所需材料;单位版《清单》才展示 AI 建议,避免给教师造成预判压力。

数据来源(考核、师德)延迟怎么办?

技能每日凌晨扫描时若发现考核数据缺失,会将该合同标记为「数据待补」并跳过预警;考核数据补齐后会自动重新触发。

试用期合同也在扫描范围内吗?

是。试用期合同同样按到期日距今 90/60/30 天分级预警;试用期考核不通过的处理建议由人事处另行判定。