fix: 线下签署登记标题英文转中文+完成时间时区+签署记录角标
1. documentTitle 中 contractType 枚举值转中文
(LABOR→劳务协议、FIXED→固定期限劳动合同等)
2. 签署日期解析改为本地时区构造(new Date(y,m-1,d,12)),
避免 new Date('2026-08-16') 被解析为 UTC 00:00 导致
本地 +8 显示为 08:00:00
3. 签署记录 Tab 增加数字角标显示总记录数
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -346,3 +346,54 @@
|
||||
- **修复**:Dashboard 待办列表渲染时,`actionUrl` 为空或 '/' 时不渲染 Link 和"立刻办理"按钮,改为纯展示 div;有有效 URL 时才渲染可跳转链接。问题 10A 已修正三期/医疗期/工伤的反向引导 URL,其余 actionUrl(`/roster?employee=xxx`、`/special-status`、`/money`)均指向有效路由,Roster 已处理 `?employee` 参数自动定位。
|
||||
- **涉及文件**:`frontend/src/pages/Dashboard.tsx`(待办列表渲染 1136-1233 行)
|
||||
|
||||
### ✅ 已完成 13:风险提醒规则优化(问题 10B)
|
||||
|
||||
- **问题**:合同到期提醒仅 30 天预警,HR 反应时间不足;去重后的待办列表未按优先级排序。
|
||||
- **修复**:
|
||||
1. 合同到期预警从 30 天提前到 60 天,分级:≤30 天 HIGH(需立即处理),31-60 天 MEDIUM(提前预警)。
|
||||
2. `dedupedTodos` 按优先级排序(URGENT > HIGH > MEDIUM > LOW),确保最紧急的待办排在最前。
|
||||
- **涉及文件**:`backend/src/services/risk.service.ts`(`detectContractRisks` 216-248 行、`getDashboardData` dedupedTodos 排序 941-952 行)
|
||||
|
||||
### ✅ 已完成 14:提成奖金新模块(问题 12)
|
||||
|
||||
- **问题**:无独立提成奖金管理模块,`BONUS` 批次是年终奖发放,非按月提成奖金管理。
|
||||
- **实现**:
|
||||
1. **数据模型**:新增 `CommissionBonus` 表(`orgId`、`employeeId`、`month` YYYY-MM、`amount` 支持正负值、`remark`、`createdBy`),唯一索引 `(orgId, employeeId, month)`。
|
||||
2. **后端**:新增 `commission-bonus.service.ts` + `commission-bonus.routes.ts`:
|
||||
- `GET /commission-bonus?month=YYYY-MM` 按月列表 + 汇总(总奖金/总扣款/净额)
|
||||
- `POST /commission-bonus` 新增单条(upsert,同员工同月自动覆盖)
|
||||
- `PUT /commission-bonus/:id` 编辑单条
|
||||
- `DELETE /commission-bonus/:id` 删除单条
|
||||
- `POST /commission-bonus/import` 批量导入 Excel(字段:员工姓名/证件号码/金额/备注)
|
||||
- `GET /commission-bonus/template` 下载导入模板
|
||||
3. **前端**:新增 `CommissionBonus.tsx` 页面:
|
||||
- 月份选择器(默认当月)
|
||||
- 汇总卡片(记录数/总奖金/总扣款/净额)
|
||||
- 列表展示(员工/部门/金额/备注),支持搜索、分页
|
||||
- 单条新增/编辑/删除
|
||||
- 批量导入 Excel + 模板下载
|
||||
- 金额支持正负值(正=奖金,负=扣款)
|
||||
4. **菜单**:`SidebarNav.tsx` "团队"分组新增"提成奖金"入口,路由 `/commission-bonus`。
|
||||
5. **DB 同步**:`prisma db push` 已执行,Prisma Client 已重新生成。
|
||||
- **涉及文件**:
|
||||
- `backend/prisma/schema.prisma`(新增 `CommissionBonus` 模型 + Employee/Organization 反向关联)
|
||||
- `backend/src/services/commission-bonus.service.ts`(新增)
|
||||
- `backend/src/routes/commission-bonus.routes.ts`(新增)
|
||||
- `backend/src/app.ts`(路由注册)
|
||||
- `frontend/src/pages/CommissionBonus.tsx`(新增)
|
||||
- `frontend/src/components/layout/SidebarNav.tsx`(菜单项)
|
||||
- `frontend/src/App.tsx`(路由注册)
|
||||
- `frontend/src/lib/api-services.ts`(`commissionBonusApi`)
|
||||
|
||||
### ✅ 已完成 15:获取提成奖金(问题 13)
|
||||
|
||||
- **问题**:薪资批次编辑薪资时无"获取提成奖金"按钮,无法从提成奖金模块按月拉取填充 `bonus` 字段。
|
||||
- **实现**:
|
||||
1. 后端新增 `POST /payroll2/batches/:batchId/fetch-bonus`:按批次月份从 `CommissionBonus` 表拉取,填充到对应 `entries.bonus`,重算批次汇总。
|
||||
2. 前端 `BatchTab.tsx` 编辑薪资步骤新增"获取提成奖金"按钮(在"导入加班费"旁),调用后展示结果摘要(X 人提成奖金已填充,合计 ¥Y)。
|
||||
3. 已归档批次禁用按钮。
|
||||
- **涉及文件**:
|
||||
- `backend/src/routes/payroll2.routes.ts`(`fetch-bonus` 接口 552-628 行)
|
||||
- `frontend/src/lib/api-services.ts`(`fetchBonusToBatch`)
|
||||
- `frontend/src/pages/money/BatchTab.tsx`(`fetchBonusMutation` + 按钮 784-798 行)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user