From 7ab6200d1a0cc336797ee0bf7716d5a9f635e8a6 Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Tue, 28 Jul 2026 07:33:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E9=97=A8=E6=88=B7=E8=A7=84=E7=AB=A0=E5=88=B6=E5=BA=A6=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=8A=A5=E9=94=99=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/20260727-更新说明.md | 261 +++++++++++++++++++++++ frontend/src/pages/portal/MyPolicies.tsx | 4 +- 2 files changed, 263 insertions(+), 2 deletions(-) create mode 100644 docs/20260727-更新说明.md diff --git a/docs/20260727-更新说明.md b/docs/20260727-更新说明.md new file mode 100644 index 0000000..48679ea --- /dev/null +++ b/docs/20260727-更新说明.md @@ -0,0 +1,261 @@ +# TurboHR 更新说明(2026-07-27) + +访问地址:**https://on.hr8ai.top/** + +--- + +## 一、社保管理 + +### 1. 社保城市选择改下拉框 +- 社保配置页面的城市选择从手动输入改为下拉框,可选择已有城市或添加新城市。 + +### 2. AI 社保政策建议 +- 新增「AI 建议」功能,点击后系统自动获取指定城市和年份的最新社保/公积金政策参数(基数范围、各项比例),一键填充到配置表单中。 + +### 3. 社保上下限拆分(三险/医保独立基数) +- 养老/失业/工伤保险使用 `baseMin/baseMax` 基数上下限。 +- 医疗/生育保险使用独立的 `medicalBaseMin/medicalBaseMax` 基数上下限(为 0 时自动 fallback 到三险基数)。 +- 适配河北省等地区三险与医保基数不同的政策。 + +### 4. 附加险种模块(大病险/长护险等) +- 社保配置新增附加险种动态配置区,支持添加/删除险种行。 +- 每个附加险种支持三种计算方式:按养老基数比例、按医保基数比例、固定金额。 +- 试算结果中显示附加险种明细。 +- 预置河北省大病医疗(固定 5 元)和长期护理险(0.1%)。 + +### 5. 公积金试算结果展示修复 +- 修复公积金试算结果复用社保 `items.map()` 导致报错的问题。 +- 公积金试算结果改为单独渲染(企业/个人缴纳金额、合计)。 + +### 6. 预置河北省社保政策 +- 系统预置河北省石家庄市社保配置(养老 16%/8%、医疗 8%/2%、失业 0.7%/0.3%、工伤 0.3%、生育 0.5%,基数 3920~19602)。 +- 预置公积金配置(12%/12%)。 + +### 7. 附加险种显示优化 +- 社保配置展示中新增附加险种显示,统一附加险种格式。 + +--- + +## 二、专项附加扣除 + +### 1. 按月分项录入 +- 新增专项附加扣除按月录入功能,支持五项分项:子女教育、赡养老人、住房贷款、继续教育、婴幼儿照护。 +- 每月可独立编辑各项扣除金额,系统自动计算合计并同步到员工档案。 +- 个税计算时使用按月实际扣除额,替代之前固定金额 × 月份的方式。 + +### 2. 「复制上月」功能 +- 专项附加扣除编辑页新增「复制上月」按钮,可一键批量复制上月所有人的专项附加扣除数据,无需逐人填写。 + +### 3. 仅显示在保人员 +- 专项附加扣除列表只显示当月社保在保人员,避免展示无关人员。 + +### 4. 界面优化 +- 专项附加扣除 Tab 页隐藏社保配置和试算区域,界面更简洁。 + +--- + +## 三、合同附件 + +### 1. 多文件上传 +- 合同附件支持一次上传多个文件,可多次追加上传。 +- 上传后显示文件名列表,每个文件可单独删除。 + +### 2. 支持格式扩展 +- 支持的格式:PDF、JPG、PNG、HEIC、GIF、BMP、WebP、TIFF、Word(.doc/.docx)、Excel(.xls/.xlsx)。 +- 每个文件最大 10MB。 + +### 3. 附件在线预览 +- 点击文件名弹出预览窗口: + - **图片**:直接在弹窗中显示。 + - **PDF**:在弹窗中内嵌预览。 + - **Word/Excel 等其他格式**:提示不支持在线预览,可点击下载查看。 +- 弹窗顶部提供下载按钮。 + +### 4. 标签更名 +- 「合同扫描件」统一改为「合同附件」。 +- 附件管理中「合同扫描件」类型也改为「合同附件」。 + +### 5. 修复附件保存问题 +- 修复了之前上传附件后保存合同时附件数据丢失的问题(后端 Schema 字段缺失导致)。 + +### 6. 修复合同保存失败 +- 修复了花名册中添加劳动合同信息无法正常保存的问题。 +- 根因:前端提交日期为 `YYYY-MM-DD` 格式,后端 Zod 校验要求 ISO datetime 格式。 +- 修复:前端提交前将日期转为 ISO 格式。 + +### 7. 删除合同 +- 每个合同卡片右侧新增删除按钮,点击后确认即可删除该合同记录。 + +--- + +## 四、薪资批次管理 + +### 1. 多批次发薪 +- 一个月份支持创建多个发薪批次(如常规发薪、离职结算、年终奖、补偿金),每个批次独立计算,归档后汇总生成一张工资条。 +- 当月存在未归档(草稿)批次时,不允许创建新批次,确保个税按批次累计计算正确。 + +### 2. 四种批次类型 + +| 类型 | 说明 | 社保公积金 | 个税方式 | +|------|------|-----------|---------| +| 常规发薪 | 日常工资发放 | 正常扣缴 | 累计预扣法 | +| 离职结算 | 离职员工末月结算 | 正常扣缴 | 累计预扣法 | +| 年终奖/奖金 | 奖金发放 | 不扣 | 单独计税 | +| 补偿金 | 经济补偿金 | 不扣 | 累计预扣法 | + +### 3. 四种初始化模式 +- **复制上月数据**:拉入在职员工,从上月工资条复制基本工资/津贴/扣款。 +- **本月空白(拉入员工)**:拉入在职员工,金额为0,仅取员工档案基本工资。 +- **空批次**:不拉入员工,后续手动添加。 +- **复制已有批次**:从指定已归档批次复制员工和薪资数据。 + +### 4. 社保公积金按员工个人扣缴 +- 按员工个人维度计算,同月多批次时自动扣减已归档批次已扣金额。 +- 第1批扣全额,第2批补扣差额或扣0(已足额)。 +- 奖金/补偿金批次不扣社保。 + +### 5. 个税计算 +- **常规/离职/补偿金**:累计预扣法,查询当年所有已归档批次累计计算。 +- **年终奖**:单独计税,按月均奖金查税率表。 + +### 6. 批次操作 +- **创建**:选择类型和初始化模式,自动拉入员工并计算。 +- **编辑**:可修改各金额项,保存后自动重算社保/个税/实发。 +- **添加/删除员工**:支持手动添加或移除批次中的员工。 +- **归档**:锁定批次不可编辑,归档后可生成工资条。 +- **取消归档**:只能取消最后一个归档批次,自动更新工资条。 +- **生成工资条**:汇总当月所有归档批次,按员工合并生成一张工资条。 + +### 7. 薪税管理入口 +- 左侧菜单「薪税管理」→「发薪批次」Tab,可管理所有批次。 +- 支持按月份、状态、类型筛选批次列表。 + +### 8. 工资表批量导入 +- 在批次详情中支持上传 Excel 工资表,批量更新批次条目的薪酬输入项(基本工资、加班费、津贴、扣款、奖金)。 +- 导入后自动重算社保/个税/实发工资。 + +### 9. 修复批次创建失败 +- 修复创建发薪批次总提示创建失败的问题。 +- 根因:`calcBatchEntry` 查询社保/公积金配置时缺少 `city` 过滤,可能取到错误城市配置。 +- 修复:查询配置时加入员工城市过滤;单员工计算失败时 try-catch 跳过并记录,不阻塞整批;返回 `failedEmployees` 详情。 + +### 10. 修复个税计算为零 +- 修复使用「本月空白」模式创建批次后个税为零的问题。 +- 根因:空白模式下 `baseSalary = 0`,导致 `totalPay = 0` → 个税 = 0。 +- 修复:空白模式下从员工档案获取基本工资,避免薪资为零。 + +### 11. 单人发薪入口 +- 花名册员工操作列新增「发薪」按钮(钱包图标),点击后跳转薪税管理页面。 +- 无需全员生成再删除,可直接在批次中添加单个员工发薪。 + +### 12. 加班费倍率自定义 +- 加班费计算从硬编码 1.5/2.0/3.0 改为读取 `OvertimeConfig` 配置。 +- 支持自定义工作日/周末/法定节假日加班倍率、月计薪天数、日工时。 +- 未配置时 fallback 到法定标准 1.5/2.0/3.0。 + +--- + +## 五、批量导入 + +### 1. 员工批量导入 +- 花名册页面点击「批量导入」按钮,上传 Excel 文件。 +- **预览功能**:上传后先预览数据,确认无误再正式导入。 +- **支持导入字段**:姓名、身份证号、手机号、部门、岗位、入职日期、基本工资、合同信息等。 +- **错误处理**:导入失败行会生成错误日志 Excel 供下载,身份证号重复自动跳过。 +- **模板下载**:支持下载标准导入模板。 + +### 2. 月度数据导入 +- 支持按月份批量导入:考勤记录、加班记录、薪资调整、社保变更、公积金变更。 +- 一个月度 Excel 文件可包含多个 Sheet,一次导入多类数据。 +- 支持下载月度导入模板。 + +### 3. 工资表导入 +- 在发薪批次详情页,上传 Excel 工资表批量更新条目金额。 +- 导入后自动调用计算引擎重算社保、个税、实发。 + +### 4. 批量续签/批量解聘 +- 花名册支持勾选多名员工后批量续签合同或批量解聘。 +- 批量续签支持预检合规性(如应签无固定期限提示)。 + +--- + +## 六、证据链 + +### 1. 证据链查看修复 +- 修复员工档案中证据链 Tab 无法查看的问题。 +- 根因:`TAB_GROUPS` 中缺少证据链 Tab 定义。 +- 修复:添加证据链 Tab,渲染 `EvidenceChain` 组件。 + +### 2. 空数据友好提示 +- 新员工无合同/工资条/考勤等关联数据时,显示「暂无证据记录,员工产生合同/工资/考勤等数据后自动生成」。 +- 证据链包含:劳动关系、薪酬发放、考勤记录、违纪处理、培训签收、绩效考核、解聘记录。 +- 自动风险检测:未签合同、合同到期、工资异常、无考勤记录等。 + +--- + +## 七、文档模板 + +### 1. 新增「员工主动离职」解除协议模板 +- 新增 `tpl_termination_agreement_employee` 模板(员工主动提出离职版)。 +- 包含条款:员工主动辞职、无经济补偿金、工作交接、社保公积金截止月份、竞业限制延续等。 +- 变量:公司名称、员工姓名、身份证号、离职日期、最后工作日、社保截止月、公积金截止月、离职原因。 +- 原有「协商解除协议」模板描述更新为「用人单位提出」。 + +--- + +## 八、员工门户 + +### 1. UI 全面优化 +- 新增 PortalLayout 布局组件和 Logo 组件,门户页面风格统一。 + +### 2. QR 扫码登录 +- 新增二维码扫码登录功能,员工可通过手机扫码快速登录门户。 + +### 3. 合同与政策页面重构 +- 员工门户中的「我的合同」和「公司政策」页面重新设计,信息展示更清晰。 + +### 4. 工资条页面优化 +- 工资条页面重构,展示更直观。 + +--- + +## 九、帮助系统 + +### 1. RAG 智能帮助 +- 集成 RAG(检索增强生成)帮助系统,点击帮助按钮可智能问答,获取系统使用指导。 + +### 2. 网页图标 +- 添加网站 favicon,浏览器标签页显示品牌图标。 + +--- + +## 测试建议 + +| 功能 | 测试路径 | 预期结果 | +|------|---------|---------| +| 社保 AI 建议 | 社保管理 → 选择城市 → 点击 AI 建议 | 自动填充社保参数 | +| 专项附加扣除复制 | 社保管理 → 专项附加扣除 → 复制上月 | 批量填充上月数据 | +| 合同多附件上传 | 员工档案 → 劳动合同 → 新增合同 → 上传附件 | 可选多个文件,显示文件列表 | +| 附件预览 | 点击合同附件文件名 | 弹窗预览图片/PDF,其他格式提示下载 | +| 删除合同 | 点击合同卡片右侧删除按钮 | 确认后删除合同 | +| 社保上下限拆分 | 社保管理 → 新建版本 → 填写医保独立基数 | 三险和医保使用不同基数计算 | +| 附加险种配置 | 社保管理 → 新建版本 → 添加附加险种 | 支持按比例/固定金额方式 | +| 公积金试算 | 社保管理 → 公积金试算 | 显示企业/个人缴纳金额,不报错 | +| 专项附加扣除按月录入 | 社保管理 → 专项附加扣除 → 按月编辑 | 五项分项录入,自动合计 | +| 合同保存 | 员工档案 → 劳动合同 → 新增合同 → 保存 | 保存成功,不再报日期格式错误 | +| 证据链查看 | 员工档案 → 证据链 Tab | 显示证据列表和风险提醒 | +| 单人发薪 | 花名册 → 员工操作列 → 发薪按钮 | 跳转薪税管理页面 | +| 加班费倍率 | 薪税管理 → 加班费计算 → 配置倍率 | 使用自定义倍率计算 | +| 解除协议模板 | 离职管理 → 生成文档 → 选择模板 | 包含员工主动离职版解除协议 | +| 薪资批次创建 | 薪税管理 → 发薪批次 → 创建发薪批次 | 选择类型和模式后自动拉入员工并计算 | +| 批次编辑重算 | 进入批次详情 → 修改金额 → 保存 | 自动重算社保/个税/实发 | +| 批次归档 | 批次详情 → 归档 | 批次锁定不可编辑 | +| 生成工资条 | 归档后 → 工资条管理 → 生成 | 汇总当月所有归档批次生成工资条 | +| 员工批量导入 | 花名册 → 批量导入 → 上传Excel → 预览 → 确认导入 | 导入成功,重复身份证自动跳过 | +| 月度数据导入 | 设置 → 月度导入 → 上传Excel | 考勤/加班/调薪/社保/公积金批量导入 | +| 工资表导入 | 发薪批次详情 → 导入工资表 → 上传Excel | 批量更新条目金额并自动重算 | +| 批量续签 | 花名册 → 勾选员工 → 批量续签 | 预检合规后批量续签合同 | +| 批量解聘 | 花名册 → 勾选员工 → 批量解聘 | 批量创建解聘记录 | +| 员工门户 QR 登录 | 员工门户登录页 | 显示二维码可扫码登录 | +| 规章制度 | 员工门户 → 规章制度 | 显示已公示制度列表,可签收确认 | +| 帮助系统 | 点击右上角帮助按钮 | 弹出智能问答窗口 | diff --git a/frontend/src/pages/portal/MyPolicies.tsx b/frontend/src/pages/portal/MyPolicies.tsx index 7ad32a2..d5c2ae3 100644 --- a/frontend/src/pages/portal/MyPolicies.tsx +++ b/frontend/src/pages/portal/MyPolicies.tsx @@ -27,7 +27,7 @@ export default function MyPolicies() { queryKey: ['portal-policies'], queryFn: async () => { const res = await portalApi.get('/policies') as any - return res.data ?? [] + return res.data?.data ?? res.data ?? [] }, }) @@ -37,7 +37,7 @@ export default function MyPolicies() { queryFn: async () => { if (!selectedId) return null const res = await portalApi.get(`/policies/${selectedId}`) as any - return res.data ?? null + return res.data?.data ?? res.data ?? null }, enabled: !!selectedId, })