feat: 北京解聘合规增强 — 政策法规库+地区过滤+工会回执证据链
1. 政策法规库(RAG知识库): - 新增6条北京地区单方解除劳动合同工作指引种子数据 - 涵盖通知工会程序、函件内容要求、回执要求、监督提示函、仲裁审查等 - 企业用户通过AI问答可检索到北京地区工会通知规定 2. 地区差异化合规检查: - getChecklistForReason 增加 orgCity 参数 - 工会通知检查项仅北京地区显示(FAULT/NONFAULT/LAYOFF) - 前端解聘方式说明中北京工会提示仅北京地区动态显示 - 非北京地区不显示工会通知检查项,避免误导 3. 工会回执上传+证据链留存: - 后端新增3个接口:上传回执文件、保存回执信息、获取回执信息 - 回执信息保存到草稿 checklistOverrides - 自动追加到证据链(appendEvidence),作为劳动仲裁举证材料 - 前端合规检查步骤增加工会回执上传区域 - 确认提交步骤展示回执文件链接 - 新增 uploads 静态文件服务 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -16,7 +16,9 @@ export interface ChecklistItem {
|
||||
suggestionType?: 'info' | 'warning' | 'required'
|
||||
}
|
||||
|
||||
export function getChecklistForReason(reason: string, employee?: any): ChecklistItem[] {
|
||||
export function getChecklistForReason(reason: string, employee?: any, orgCity?: string): ChecklistItem[] {
|
||||
// 北京地区单方解除须通知工会(依据《规范用人单位单方解除劳动合同工作指引》)
|
||||
const isBeijing = !orgCity || orgCity === '北京' || orgCity === '北京市' || orgCity?.includes('北京')
|
||||
switch (reason) {
|
||||
case 'NEGOTIATED':
|
||||
return [
|
||||
@@ -33,14 +35,14 @@ export function getChecklistForReason(reason: string, employee?: any): Checklist
|
||||
return [
|
||||
{ key: 'has_rules', label: '是否有规章制度依据', autoChecked: null },
|
||||
{ key: 'has_evidence', label: '是否有违纪证据', autoChecked: null },
|
||||
{
|
||||
...(isBeijing ? [{
|
||||
key: 'notify_union',
|
||||
label: '是否提前5个工作日书面通知工会',
|
||||
autoChecked: null,
|
||||
autoChecked: null as any,
|
||||
suggestion: '北京地区要求:单方解除劳动合同须提前5个工作日将理由书面通知本单位工会;未建立工会的通知上一级工会(用人单位实际经营地的乡镇/街道/园区/开发区总工会)。可在「文本模板库」中使用《拟解除劳动合同通知工会函》模板。',
|
||||
suggestionType: 'required',
|
||||
},
|
||||
{ key: 'union_receipt', label: '是否收到工会书面回执', autoChecked: null },
|
||||
suggestionType: 'required' as const,
|
||||
}] : []),
|
||||
...(isBeijing ? [{ key: 'union_receipt', label: '是否收到工会书面回执', autoChecked: null as any }] : []),
|
||||
{ key: 'written_notice', label: '是否出具书面解除通知', autoChecked: null },
|
||||
]
|
||||
case 'NONFAULT': {
|
||||
@@ -94,18 +96,20 @@ export function getChecklistForReason(reason: string, employee?: any): Checklist
|
||||
})
|
||||
|
||||
// 通知工会 — 北京地区单方解除必经程序
|
||||
items.push({
|
||||
key: 'notify_union',
|
||||
label: '是否提前5个工作日书面通知工会',
|
||||
autoChecked: null,
|
||||
suggestion: '北京地区要求:单方解除须提前5个工作日将理由书面通知本单位工会;未建立工会的通知上一级工会。可在「文本模板库」中使用《拟解除劳动合同通知工会函》模板。',
|
||||
suggestionType: 'required',
|
||||
})
|
||||
items.push({
|
||||
key: 'union_receipt',
|
||||
label: '是否收到工会书面回执',
|
||||
autoChecked: null,
|
||||
})
|
||||
if (isBeijing) {
|
||||
items.push({
|
||||
key: 'notify_union',
|
||||
label: '是否提前5个工作日书面通知工会',
|
||||
autoChecked: null,
|
||||
suggestion: '北京地区要求:单方解除须提前5个工作日将理由书面通知本单位工会;未建立工会的通知上一级工会。可在「文本模板库」中使用《拟解除劳动合同通知工会函》模板。',
|
||||
suggestionType: 'required',
|
||||
})
|
||||
items.push({
|
||||
key: 'union_receipt',
|
||||
label: '是否收到工会书面回执',
|
||||
autoChecked: null,
|
||||
})
|
||||
}
|
||||
|
||||
return items
|
||||
}
|
||||
@@ -113,7 +117,7 @@ export function getChecklistForReason(reason: string, employee?: any): Checklist
|
||||
return [
|
||||
{ key: 'advance_notice_30', label: '是否提前30天向工会或全体职工说明', autoChecked: null },
|
||||
{ key: 'listen_opinions', label: '是否听取工会或职工意见', autoChecked: null },
|
||||
{ key: 'union_receipt', label: '是否收到工会书面回执', autoChecked: null },
|
||||
...(isBeijing ? [{ key: 'union_receipt', label: '是否收到工会书面回执', autoChecked: null as any }] : []),
|
||||
{ key: 'report_labor_dept', label: '是否向劳动行政部门报告', autoChecked: null },
|
||||
{
|
||||
key: 'compensation_paid', label: '是否支付经济补偿金',
|
||||
|
||||
Reference in New Issue
Block a user