新增:
- 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>
83 lines
4.4 KiB
Markdown
83 lines
4.4 KiB
Markdown
---
|
||
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 天分级预警;试用期考核不通过的处理建议由人事处另行判定。
|