d79e3baa34
- 面包屑导航组件,集成至TopNav header - 侧边栏菜单分组间距增大,分组间分隔线 - 制度公示员工阅读签收:PolicyReadRecord模型、portal路由、管理端阅读统计 - 修复Policies.tsx民主程序推进bug(字段名/API路径/参数) - 用工文本模板变量名英文转中文显示 - 通知类型TYPE_LABELS补全(RISK_ALERT/SOCIAL_INS/OVERTIME_ALERT/PAYSLIP_READY) - 通知示例数据补充 - h2标题统一为text-sm font-medium - 新增run.md
228 lines
11 KiB
TypeScript
228 lines
11 KiB
TypeScript
/**
|
|
* 补充规章制度示例数据
|
|
* 运行: npx tsx scripts/seed-policies.ts
|
|
*/
|
|
|
|
import prisma from '../src/lib/prisma'
|
|
|
|
async function main() {
|
|
const orgId = 'cmry97x7l0000trrp5f9jgng5'
|
|
const userId = 'system-seed'
|
|
|
|
const policies = [
|
|
{
|
|
id: 'pol_seed_1',
|
|
title: '考勤与加班管理制度',
|
|
content: `第一章 总则
|
|
第一条 为规范公司考勤管理,维护正常工作秩序,根据《劳动法》《劳动合同法》及相关法规,制定本制度。
|
|
第二条 本制度适用于公司全体员工。
|
|
|
|
第二章 工作时间
|
|
第三条 公司实行标准工时制,每日工作时间不超过8小时,每周不超过40小时。
|
|
第四条 工作时间为周一至周五 9:00-18:00,午休时间 12:00-13:00。
|
|
|
|
第三章 加班管理
|
|
第五条 加班需经部门负责人书面审批,未经审批的自行延长工作时间不视为加班。
|
|
第六条 工作日加班按不低于工资的150%支付加班费;休息日加班按不低于工资的200%支付加班费;法定节假日加班按不低于工资的300%支付加班费。
|
|
第七条 每月加班时间不得超过36小时,怀孕女职工及哺乳期女职工不得安排加班。
|
|
|
|
第四章 考勤记录
|
|
第八条 公司采用指纹打卡方式记录考勤,员工应按时上下班打卡。
|
|
第九条 迟到、早退每次扣罚50元;当月累计迟到早退超过5次,按旷工一天处理。
|
|
|
|
第五章 请假制度
|
|
第十条 员工请假需提前填写请假单,经主管审批后交人事部备案。
|
|
第十一条 病假需提供医院证明,按国家规定支付病假工资。
|
|
|
|
第六章 附则
|
|
第十二条 本制度经职工代表大会讨论通过后公示执行。
|
|
第十三条 本制度自公示之日起施行。`,
|
|
type: 'RULES',
|
|
status: 'PUBLISHED',
|
|
currentStep: 4,
|
|
steps: [
|
|
{ step: 1, name: '起草制度', description: 'HR 起草规章制度文本', status: 'COMPLETED', date: '2026-06-01', note: '完成初稿' },
|
|
{ step: 2, name: '职工讨论', description: '提交职工代表大会或全体职工讨论', status: 'COMPLETED', date: '2026-06-10', note: '职工代表大会讨论通过' },
|
|
{ step: 3, name: '平等协商', description: '与工会或职工代表平等协商确定', status: 'COMPLETED', date: '2026-06-15', note: '与工会代表协商一致' },
|
|
{ step: 4, name: '公示', description: '向全体员工公示', status: 'COMPLETED', date: '2026-06-20', note: '全员邮件公示并签收' },
|
|
],
|
|
publishedAt: new Date('2026-06-20'),
|
|
createdAt: new Date('2026-06-01'),
|
|
},
|
|
{
|
|
id: 'pol_seed_2',
|
|
title: '员工奖惩管理制度',
|
|
content: `第一章 总则
|
|
第一条 为维护公司正常经营管理秩序,激励员工遵纪守法,制定本制度。
|
|
第二条 本制度适用于公司全体员工。
|
|
|
|
第二章 奖励
|
|
第三条 奖励分为:通报表扬、嘉奖、记功、记大功四种。
|
|
第四条 有下列情形之一的,给予奖励:
|
|
(一)在工作中有重大创新,为公司创造显著经济效益的;
|
|
(二)为公司挽回重大经济损失的;
|
|
(三)见义勇为,保护公司财产和员工安全的;
|
|
(四)连续年度考核优秀的。
|
|
|
|
第三章 惩戒
|
|
第五条 违纪行为分为:轻微违纪、一般违纪、严重违纪。
|
|
第六条 严重违纪包括但不限于:
|
|
(一)旷工连续3天以上或年内累计5天以上的;
|
|
(二)严重违反工作纪律,影响生产经营的;
|
|
(三)泄露公司商业秘密的;
|
|
(四)在工作场所打架斗殴的;
|
|
(五)利用职务便利索取、收受贿赂的。
|
|
第七条 严重违纪可以解除劳动合同,且无需支付经济补偿。
|
|
|
|
第四章 程序
|
|
第八条 对员工的奖惩应当事实清楚、证据确凿,并告知员工本人。
|
|
第九条 员工对惩戒决定有异议的,可以自收到通知之日起5个工作日内向人事部申诉。
|
|
|
|
第五章 附则
|
|
第十条 本制度经民主程序制定并公示后执行。`,
|
|
type: 'RULES',
|
|
status: 'PUBLISHED',
|
|
currentStep: 4,
|
|
steps: [
|
|
{ step: 1, name: '起草制度', description: 'HR 起草规章制度文本', status: 'COMPLETED', date: '2026-06-05', note: '完成初稿' },
|
|
{ step: 2, name: '职工讨论', description: '提交职工代表大会或全体职工讨论', status: 'COMPLETED', date: '2026-06-12', note: '职工讨论收集意见' },
|
|
{ step: 3, name: '平等协商', description: '与工会或职工代表平等协商确定', status: 'COMPLETED', date: '2026-06-18', note: '协商修改后定稿' },
|
|
{ step: 4, name: '公示', description: '向全体员工公示', status: 'COMPLETED', date: '2026-06-22', note: '公告栏及邮件公示' },
|
|
],
|
|
publishedAt: new Date('2026-06-22'),
|
|
createdAt: new Date('2026-06-05'),
|
|
},
|
|
{
|
|
id: 'pol_seed_3',
|
|
title: '薪酬与绩效考核制度',
|
|
content: `第一章 总则
|
|
第一条 为建立公平、公正、公开的薪酬体系,激励员工提升绩效,制定本制度。
|
|
第二条 薪酬结构包括:基本工资、岗位工资、绩效奖金、津贴补贴。
|
|
|
|
第二章 薪酬构成
|
|
第三条 基本工资不低于当地最低工资标准。
|
|
第四条 岗位工资根据岗位等级确定,具体标准见附件。
|
|
第五条 绩效奖金根据月度/季度/年度考核结果发放,考核等级分为A(优秀)、B(良好)、C(合格)、D(不合格)四档。
|
|
|
|
第三章 绩效考核
|
|
第六条 考核周期分为月度考核、季度考核和年度考核。
|
|
第七条 月度考核于次月5日前完成,季度考核于次季首月10日前完成,年度考核于次年1月15日前完成。
|
|
第八条 考核结果作为晋升、调薪、奖金发放的依据。
|
|
第九条 连续两次年度考核为D的,公司可以调整其岗位或依法解除劳动合同。
|
|
|
|
第四章 薪酬调整
|
|
第十条 公司每年根据经营状况和市场水平进行薪酬回顾,适时调整薪酬标准。
|
|
第十一条 员工岗位变动时,薪酬自变动次月起相应调整。
|
|
|
|
第五章 附则
|
|
第十二条 本制度经民主程序制定并公示后执行。`,
|
|
type: 'RULES',
|
|
status: 'CONSULTING',
|
|
currentStep: 3,
|
|
steps: [
|
|
{ step: 1, name: '起草制度', description: 'HR 起草规章制度文本', status: 'COMPLETED', date: '2026-07-01', note: '完成初稿' },
|
|
{ step: 2, name: '职工讨论', description: '提交职工代表大会或全体职工讨论', status: 'COMPLETED', date: '2026-07-08', note: '收集到15条修改建议' },
|
|
{ step: 3, name: '平等协商', description: '与工会或职工代表平等协商确定', status: 'IN_PROGRESS', date: '2026-07-15', note: '正在与工会代表协商中' },
|
|
{ step: 4, name: '公示', description: '向全体员工公示', status: 'PENDING', date: null, note: null },
|
|
],
|
|
publishedAt: null,
|
|
createdAt: new Date('2026-07-01'),
|
|
},
|
|
{
|
|
id: 'pol_seed_4',
|
|
title: '员工出差与费用报销制度',
|
|
content: `第一章 总则
|
|
第一条 为规范出差管理和费用报销流程,制定本制度。
|
|
|
|
第二章 出差审批
|
|
第二条 员工出差需提前填写出差申请单,经部门负责人审批。
|
|
第三条 出差天数3天以上的需分管副总审批,7天以上的需总经理审批。
|
|
|
|
第三章 费用标准
|
|
第四条 交通费标准:
|
|
(一)飞机:总监及以上职级可乘坐商务舱,其他职级乘坐经济舱;
|
|
(二)火车:总监及以上职级可乘坐一等座,其他职级乘坐二等座;
|
|
(三)市内交通:实报实销,每日不超过100元。
|
|
第五条 住宿费标准(元/天):
|
|
(一)一线城市:总监级800元,经理级500元,员工级350元;
|
|
(二)其他城市:总监级600元,经理级400元,员工级300元。
|
|
第六条 餐费补贴:出差期间每人每天补贴80元,不再另行报销餐费。
|
|
|
|
第四章 报销流程
|
|
第七条 出差结束后5个工作日内提交报销单据,逾期不予报销。
|
|
第八条 报销单据需附发票原件,经部门负责人和财务部审核后支付。
|
|
|
|
第五章 附则
|
|
第九条 本制度经民主程序制定并公示后执行。`,
|
|
type: 'RULES',
|
|
status: 'DISCUSSING',
|
|
currentStep: 2,
|
|
steps: [
|
|
{ step: 1, name: '起草制度', description: 'HR 起草规章制度文本', status: 'COMPLETED', date: '2026-07-10', note: '完成初稿' },
|
|
{ step: 2, name: '职工讨论', description: '提交职工代表大会或全体职工讨论', status: 'IN_PROGRESS', date: '2026-07-18', note: '正在征求各部门意见' },
|
|
{ step: 3, name: '平等协商', description: '与工会或职工代表平等协商确定', status: 'PENDING', date: null, note: null },
|
|
{ step: 4, name: '公示', description: '向全体员工公示', status: 'PENDING', date: null, note: null },
|
|
],
|
|
publishedAt: null,
|
|
createdAt: new Date('2026-07-10'),
|
|
},
|
|
{
|
|
id: 'pol_seed_5',
|
|
title: '保密与竞业限制制度',
|
|
content: `第一章 总则
|
|
第一条 为保护公司商业秘密和知识产权,制定本制度。
|
|
第二条 商业秘密包括:客户名单、技术方案、财务数据、经营策略、薪酬信息等。
|
|
|
|
第二章 保密义务
|
|
第三条 员工在职期间及离职后均负有保密义务,不得泄露、使用或允许他人使用公司商业秘密。
|
|
第四条 员工应妥善保管涉密文件,离开工作岗位时应将涉密材料锁好或交还相关部门。
|
|
第五条 违反保密义务的,公司可以解除劳动合同并要求赔偿损失。
|
|
|
|
第三章 竞业限制
|
|
第六条 对负有保密义务的高级管理人员、高级技术人员和其他知悉商业秘密的员工,可以约定竞业限制条款。
|
|
第七条 竞业限制期限不超过两年,竞业限制期间公司按月支付竞业限制补偿金,标准为离职前12个月平均工资的30%。
|
|
第八条 违反竞业限制的,应向公司支付竞业限制违约金,并继续履行竞业限制义务。
|
|
|
|
第四章 附则
|
|
第九条 本制度经民主程序制定并公示后执行。`,
|
|
type: 'RULES',
|
|
status: 'DRAFT',
|
|
currentStep: 1,
|
|
steps: [
|
|
{ step: 1, name: '起草制度', description: 'HR 起草规章制度文本', status: 'IN_PROGRESS', date: '2026-07-20', note: '初稿起草中' },
|
|
{ step: 2, name: '职工讨论', description: '提交职工代表大会或全体职工讨论', status: 'PENDING', date: null, note: null },
|
|
{ step: 3, name: '平等协商', description: '与工会或职工代表平等协商确定', status: 'PENDING', date: null, note: null },
|
|
{ step: 4, name: '公示', description: '向全体员工公示', status: 'PENDING', date: null, note: null },
|
|
],
|
|
publishedAt: null,
|
|
createdAt: new Date('2026-07-20'),
|
|
},
|
|
]
|
|
|
|
for (const p of policies) {
|
|
await prisma.policyDocument.upsert({
|
|
where: { id: p.id },
|
|
create: {
|
|
id: p.id,
|
|
orgId,
|
|
title: p.title,
|
|
content: p.content,
|
|
type: p.type,
|
|
status: p.status,
|
|
democracyProgress: { currentStep: p.currentStep, steps: p.steps } as any,
|
|
publishedAt: p.publishedAt,
|
|
createdBy: userId,
|
|
createdAt: p.createdAt,
|
|
},
|
|
update: {},
|
|
})
|
|
console.log(`Inserted: ${p.title} (${p.status})`)
|
|
}
|
|
|
|
const total = await prisma.policyDocument.count()
|
|
console.log(`\n总计 ${total} 条规章制度`)
|
|
await prisma.$disconnect()
|
|
}
|
|
|
|
main().catch(console.error)
|