feat: 初始化高校人事请假考勤技能 (process-leave-attendance-default)
All checks were successful
技能自动化发布 / release (push) Successful in 15s

基于 skill-template 脚手架开发,包含:
- 5 张业务表(教职工、请假政策、考勤日历、请假记录、假期余额)
- 请假核算引擎(扣薪计算、审批层级判定、年假抵扣)
- CLI 入口(import-employees / calculate-leave / render-html)
- HTML 审批与扣薪报告生成
- 示例数据与完整测试套件(295 tests passed)
This commit is contained in:
chenfuqiang
2026-09-07 16:59:24 +08:00
commit ee2a4d9e22
206 changed files with 29510 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
{
"policies": [
{
"leave_type": "病假",
"max_days": 180,
"day_basis": "workday",
"paid_days": 30,
"partial_pay_ratio": 0.7,
"unpaid_after_days": 60,
"requires_certificate": 1,
"can_offset_annual": 0,
"approval_threshold_dept": 3,
"approval_threshold_hr": 10,
"notes": "30天全薪;31-60天按70%支付;>60天按当地最低工资"
},
{
"leave_type": "事假",
"max_days": 90,
"day_basis": "workday",
"paid_days": 0,
"partial_pay_ratio": 0,
"unpaid_after_days": 0,
"requires_certificate": 0,
"can_offset_annual": 1,
"approval_threshold_dept": 3,
"approval_threshold_hr": 10,
"notes": "全额扣薪,可用年假抵扣"
},
{
"leave_type": "婚假",
"max_days": 15,
"day_basis": "natural",
"paid_days": 15,
"partial_pay_ratio": 0,
"unpaid_after_days": 15,
"requires_certificate": 1,
"can_offset_annual": 0,
"approval_threshold_dept": 3,
"approval_threshold_hr": 10,
"notes": "国家3天+地方奖励;超期按事假"
},
{
"leave_type": "丧假",
"max_days": 3,
"day_basis": "natural",
"paid_days": 3,
"partial_pay_ratio": 0,
"unpaid_after_days": 3,
"requires_certificate": 1,
"can_offset_annual": 0,
"approval_threshold_dept": 3,
"approval_threshold_hr": 3,
"notes": "直系亲属1-3天带薪"
},
{
"leave_type": "产假",
"max_days": 158,
"day_basis": "natural",
"paid_days": 158,
"partial_pay_ratio": 0,
"unpaid_after_days": 158,
"requires_certificate": 1,
"can_offset_annual": 0,
"approval_threshold_dept": 0,
"approval_threshold_hr": 0,
"notes": "98天国家+地方奖励;需校领导审批"
},
{
"leave_type": "育假",
"max_days": 365,
"day_basis": "natural",
"paid_days": 30,
"partial_pay_ratio": 0.7,
"unpaid_after_days": 365,
"requires_certificate": 1,
"can_offset_annual": 0,
"approval_threshold_dept": 0,
"approval_threshold_hr": 0,
"notes": "可延至子女满周岁;需校领导审批"
},
{
"leave_type": "长期病假",
"max_days": 365,
"day_basis": "workday",
"paid_days": 30,
"partial_pay_ratio": 0.7,
"unpaid_after_days": 60,
"requires_certificate": 1,
"can_offset_annual": 0,
"approval_threshold_dept": 10,
"approval_threshold_hr": 10,
"notes": "30天全薪;31-60天70%;>60天按当地最低工资"
}
],
"holidays": [
{ "holiday_date": "2026-09-12", "holiday_name": "周末", "holiday_type": "周末" },
{ "holiday_date": "2026-09-13", "holiday_name": "周末", "holiday_type": "周末" },
{ "holiday_date": "2026-09-19", "holiday_name": "周末", "holiday_type": "周末" },
{ "holiday_date": "2026-09-20", "holiday_name": "周末", "holiday_type": "周末" },
{ "holiday_date": "2026-09-26", "holiday_name": "周末", "holiday_type": "周末" },
{ "holiday_date": "2026-09-27", "holiday_name": "周末", "holiday_type": "周末" },
{ "holiday_date": "2026-10-01", "holiday_name": "国庆节", "holiday_type": "法定假日" },
{ "holiday_date": "2026-10-02", "holiday_name": "国庆节", "holiday_type": "法定假日" },
{ "holiday_date": "2026-10-03", "holiday_name": "国庆节", "holiday_type": "法定假日" }
]
}

View File

@@ -0,0 +1,49 @@
{
"employees": [
{
"name": "张教授",
"employee_no": "T2015091",
"department": "数学学院",
"position": "副教授",
"position_category": "教师",
"join_date": "2015-09-01",
"monthly_salary": 12000,
"annual_leave_remaining": 5,
"is_active": 1,
"notes": "示例:病假核算(30天内全薪)"
},
{
"name": "李老师",
"employee_no": "T2018102",
"department": "物理学院",
"position": "讲师",
"position_category": "教师",
"join_date": "2018-09-01",
"monthly_salary": 9000,
"annual_leave_remaining": 7,
"is_active": 1
},
{
"name": "王主任",
"employee_no": "A2012033",
"department": "人事处",
"position": "科长",
"position_category": "行政",
"join_date": "2012-07-01",
"monthly_salary": 10000,
"annual_leave_remaining": 10,
"is_active": 1
},
{
"name": "赵研究员",
"employee_no": "R2019044",
"department": "材料所",
"position": "副研究员",
"position_category": "科研",
"join_date": "2019-03-01",
"monthly_salary": 11000,
"annual_leave_remaining": 6,
"is_active": 1
}
]
}