selfrelease
|
d79e3baa34
|
feat: 系统优化Phase2 - 面包屑导航/侧边栏间距/制度公示阅读签收/模板变量中文化/通知类型补全
- 面包屑导航组件,集成至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
|
2026-07-26 20:32:38 +08:00 |
|
selfrelease
|
9cb0d1f63b
|
feat: 工作台概览优化 - 人力成本展示、解聘记录完善、数据准确性修复
- 解聘列表显示所有状态记录(含已撤销/已完成)
- 月度解聘人数排除CANCELLED和DRAFT状态
- 工作台新增当月人力成本和年度累计成本卡片
- 年度累计成本包含当前月未归档数据
- 企业总成本公式加入加班费
- 统计卡片月加班费改为工资条数量,避免与动态区重复
- 本月工作动态与风险分布改为左右两列布局
- 人力成本区域优化:2列网格+突出总成本
|
2026-07-25 23:11:38 +08:00 |
|
selfrelease
|
f74b2808a3
|
feat: 城市变更功能完善及跨页面缓存刷新修复
- 城市变更使用CITY_CHANGE类型替代ADJUST,月度办理显示减员/新增(城市变更)
- 在保人员查询排除本月已关闭记录(gte→gt)和本月新增记录(lte→lt)
- 社保/公积金减员查询包含CITY_CHANGE类型
- 缴纳记录表格添加城市列显示
- 后端profile API从快照提取city字段
- 修复旧快照缺失city字段的数据
- 修复旧记录changeType为CITY_CHANGE,endMonth与新记录startMonth一致
- 城市变更必填原因,写入备注和审计日志
- 员工详情页添加变更历史Tab
- 移除薪酬社保Tab下重复的参保城市变更子Tab
- 全局修复跨页面mutation缓存刷新:调薪/调部门/离职/重新入职/批量续签/批量解聘/社保公积金调基/月度办理/撤销解聘均刷新roster-profile
|
2026-07-25 22:40:39 +08:00 |
|
selfrelease
|
7ca2ada0d4
|
fix: 修复已撤销解聘记录(CANCELLED)在各模块中未正确过滤的问题
- 花名册API新增latestTerminationStatus字段,前端列表/操作按钮/离职日期列过滤CANCELLED/COMPLETED
- 证据链后端过滤CANCELLED状态的解聘记录,不再产生无效证据和风险提醒
- 重新入职判断增加status=COMPLETED条件,避免已撤销记录被误判为已离职
- 薪酬警告过滤CANCELLED状态,不再对已撤销记录触发结算提醒
- 风险扫描查询条件增加status=COMPLETED,避免已撤销记录导致员工被跳过
- 解聘向导canProceed和警告提示过滤CANCELLED/COMPLETED状态
- 档案解聘记录列表过滤CANCELLED状态,新增流程状态标签
- 重新生成Prisma Client以同步femaleWorkerType字段
|
2026-07-25 20:10:42 +08:00 |
|
freedakgmail
|
41a2c665ed
|
feat: 优化退休提醒功能 - 个性化退休年龄计算
- 添加 FemaleWorkerType enum (CADRE/WORKER) 和 Employee.femaleWorkerType 字段
- 新增 calcIndividualRetireAge: 按个人出生日期逐人计算退休年龄
- 重写 calcRetirementDaysLeft: 基于个人出生日期+性别+岗位类型
- updateEmployeesRetirementDays 使用 femaleWorkerType 区分女干部/女工人
- 前端新增/编辑员工表单添加女性岗位类型选择器
- 前端政策展示改为改革规则卡片(基准→目标年龄)
- 前端距退休天数改为退休日期显示(XXXX年XX月XX日)
- 移除AI退休政策计算相关代码和手动刷新路由
- 导入支持女性岗位类型列
|
2026-07-25 09:27:45 +08:00 |
|
freedakgmail
|
b892df1d52
|
feat: 退休提醒功能 - 身份证提取出生日期、渐进式退休年龄计算、AI流式获取政策、用户确认生效
|
2026-07-25 01:21:07 +08:00 |
|
freedakgmail
|
169a0e1117
|
feat: AI历史记录、企业信息seed、员工状态自动刷新、风险预测数据准确性优化
- 智能问答/风险预测/合同审查/案例匹配 均支持历史记录保存、加载、删除
- 后端 predict/predict-stream 补充离职记录详情和预计算工龄/天数,避免AI计算错误
- Organization 增加 contactName/contactPhone 字段,seed 企业信息
- Settings 页面修复 orgData/usersData 取值路径错误
- Roster/Termination/Contracts mutation 增加 roster cache invalidation
- 员工档案页面 tab 固定、内容区域滚动到窗口底部
- 解聘证据链显示逻辑修复(协商一致离职 vs 员工主动离职)
|
2026-07-25 00:33:51 +08:00 |
|
freedakgmail
|
bb25e1731c
|
fix: 修复当天入职员工被误判为预入职的时区问题;数据导出独立为设置Tab
|
2026-07-24 23:37:11 +08:00 |
|
freedakgmail
|
5c12f28ac7
|
fix: 全面优化安全、性能和代码质量
P0: 环境变量校验/事务保护/RBAC权限
P1: 花名册分页/密码重置验证码/ErrorBoundary/N+1查询优化
P2: 导出限制/自定义错误类/body大小限制/代码去重
P3: 自定义确认弹窗替换window.confirm
|
2026-07-24 22:28:58 +08:00 |
|
selfrelease
|
9ec21fedea
|
chore: 移除本地 TypeScript 构建缓存
|
2026-07-24 17:32:56 +08:00 |
|
selfrelease
|
90a8a8169e
|
chore: 忽略本地构建缓存和数据库备份
|
2026-07-24 17:32:38 +08:00 |
|
selfrelease
|
a28b065ab8
|
feat: 统一页面布局与字体样式
|
2026-07-24 17:30:36 +08:00 |
|
selfrelease
|
4ae24990a7
|
merge: 合并远程分支,保留本地最新版本
|
2026-07-24 13:54:18 +08:00 |
|
selfrelease
|
0df8aa77d9
|
feat: AIHR 智能人力资源管理系统初始提交
- 员工花名册管理(加密存储、导入导出)
- 薪酬管理(发薪批次、薪酬模版、加班费计算、工资条)
- 社保公积金(多城市配置、版本管理、基数调整)
- 解聘管理(6步流程、证据链、工作交接)
- AI 助手(合同审查、风险预测、RAG 知识库)
- Dashboard 仪表盘
- 设置与通知
|
2026-07-24 13:53:11 +08:00 |
|
freedakgmail
|
951a3abac5
|
fix: 修复前后端编译警告 — 移除未使用变量/导入/函数
前端:
- 移除未使用导入: FileText, AlertCircle, RefreshCw, Signal, QrCode, Upload, Save, Bell, History, useMemo, Select
- 移除未使用变量/函数: scope, cfg, org, paged, salaryNum, ackColor, resultColor, maxEmployees, compareVersions, showRenewPreview, showEvidence, handleStartDateChange, ResultRow, previewEmployeeId, updateMutation
- 修复 vite.config.ts: 安装 @types/node 并配置 tsconfig.node.json
- 将未使用参数 req/s 改为 _req/_s
后端:
- 移除未使用导入: Request, Response, NextFunction, decrypt, ContractType, ensureDefaultTemplate
- 移除未使用变量/常量: scope, cfg, org, orgId(preview), monthNum, TAX_BRACKETS, months, daysBetween
- 将未使用参数 req 改为 _req
|
2026-07-24 08:25:31 +08:00 |
|
freedakgmail
|
e01bad4815
|
feat: 完成优化1-6全部功能 — Portal安全/AI增强/Settings导入导出/社保公积金版本化
- 优化-1: 社保公积金独立配置+版本化缴费记录+多城市支持+迁移脚本
- 优化-2: AI流式输出/RAG集成/风险角标/审计日志/二维码/批量续签/忘记密码/语音输入/PDF导出/速率限制/套餐人数上限
- 优化-3: 批次重命名/费用实时预览/模拟版本管理/续签合规预检/社保重置/搜索分页/批量解聘/到期预警/税率试算
- 优化-4: 会话历史/待办批量/结果关联档案/风险下钻/预测上下文/附件校验/Tab级联/薪税导出
- 优化-5: 表单回填/用户编辑禁用/导入预览/选择性导出/通知测试/错误日志导出/脱敏导出/gzip压缩
- 优化-6: 工资条确认通知HR/AI上下文增强/电子签名/用量限制修复/入职文件上传/RAG管理/工资趋势/用量事务/验证码加固/审查结构化/链接撤回/超时机制/确认重发/案例转待办
|
2026-07-24 07:58:25 +08:00 |
|
freedakgmail
|
f1c72f3eb0
|
feat: 完成优化-4全部任务 + 多城市社保 + pgvector修复
- AIAssistant: 会话历史保存/加载/删除,风险预测支持范围筛选,审查结果保存到员工档案
- Dashboard: 待办批量操作,风险分布可下钻,刷新按钮Tab级联,薪税tab导出Excel
- SocialInsurance: 多城市社保/公积金配置支持,城市选择器
- Roster: 新增参保城市字段
- risk.service: 修复风险项去重逻辑(用employeeId:type:actionUrl替代含动态天数的title)
- payroll.routes: 修复OvertimeRecord/Payslip字段名错误
- pgvector: 从源码编译安装x86_64版本兼容postgresql@15
- 优化-4文档: 全部8项标记为已完成
|
2026-07-24 07:04:08 +08:00 |
|
freedakgmail
|
559a567b9b
|
feat: idCardHash匹配、Roster分页过滤、社保基数调整修复、Modal size支持、Termination版本对比、UI优化
|
2026-07-23 23:26:10 +08:00 |
|
freedakgmail
|
32a57873cf
|
feat: 月度增减员改为月度办理,增加正常在保人员展示
|
2026-07-23 20:29:08 +08:00 |
|
freedakgmail
|
4f125d309b
|
feat: 社保公积金独立配置+版本化缴费记录+月度增减员+补偿金批次
- Schema: 拆分社保/公积金配置,新增EmployeeSocialInsRecord/EmployeeHousingFundRecord/DepartmentRecord模型,扩展SalaryChangeRecord,增加SEVERANCE批次类型
- 后端: createEmployee/rehireEmployee接收社保公积金字段并创建缴费记录版本;createTermination/createResignation接收截止年月并关闭缴费记录;调薪/调部门API+版本记录;月度增减员API;公积金独立CRUD/计算/调基;SEVERANCE批次calcBatchEntry
- 前端: AddEmployeeModal/RehireModal增加社保公积金输入;ResignModal/Termination增加截止年月+日期不一致提醒;花名册增加调薪/调部门弹窗;SocialInsurance.tsx Tab拆分(社保/公积金/月度增减员)+CSV导出;Money.tsx增加补偿金批次类型
- 修复: seed.ts移除housingOrg/housingEmp;risk.service.ts从HousingFundConfig获取公积金费率
|
2026-07-23 20:02:59 +08:00 |
|
freedakgmail
|
ad6800b63c
|
feat: 预入职状态+入职手续待办
1. 花名册动态状态:hireDate > today 显示「预入职」(蓝色标签)
2. RiskType 增加 ONBOARDING 枚举
3. 新增 detectOnboardingRisks:入职日期到但未签合同→生成待办
4. detectContractRisks 排除预入职员工(未到入职日期不检查合同)
5. Dashboard 风险提醒 tab 支持 ONBOARDING 待办类型
6. 前端类型定义同步更新
|
2026-07-23 18:45:59 +08:00 |
|
freedakgmail
|
c439097319
|
优化: 重新入职提示文字精简为一行
|
2026-07-23 18:40:22 +08:00 |
|
freedakgmail
|
5b1953176f
|
优化: 重新入职部门可修改
|
2026-07-23 18:36:12 +08:00 |
|
freedakgmail
|
eb58bc4b09
|
优化: 合同开始日期随入职日期自动同步
1. 添加员工和重新入职:入职日期变更时自动同步合同开始日期和结束日期
2. 合同开始日期改为只读显示(始终等于入职日期)
3. 花名册列表增加离职日期列:已离职显示日期,待离职显示预计日期
4. 重新入职弹窗对齐添加员工:移除孕期/医疗期/工伤,合同双向计算,试用期校验
5. 后端 rehireEmployee 重置特殊状态为 false
|
2026-07-23 18:34:12 +08:00 |
|
freedakgmail
|
dad43931cf
|
优化: 重新入职弹窗对齐+花名册增加离职日期列
1. 重新入职弹窗:移除孕期/医疗期/工伤,缺省日期=今天,合同双向计算,试用期校验
2. 花名册列表增加「离职日期」列:已离职显示日期,待离职显示预计日期(amber)
3. 后端 rehireEmployee 重置特殊状态为 false
|
2026-07-23 18:30:21 +08:00 |
|
freedakgmail
|
0dd5a26afa
|
优化: 重新入职弹窗对齐添加员工
1. 移除孕期/医疗期/工伤复选框(重新入职自动重置为false)
2. 缺省入职日期和合同开始日期为今天,默认3年合同结束日期
3. 签约时长与合同结束日期双向自动计算
4. 试用期长度按劳动合同法校验+试用期工资必填及80%校验
5. 试用期工资校验使用员工已有月工资作为基准
|
2026-07-23 18:29:31 +08:00 |
|
freedakgmail
|
8283b538e5
|
优化: 添加员工弹窗-身份证号必填+性别自动识别
1. 身份证号必填(18位),后端加密存储
2. 性别由身份证号第17位自动计算(奇数=男,偶数=女),无需手动选择
3. 移除添加员工时的孕期/医疗期/工伤复选框(这些状态后续在员工档案中维护)
|
2026-07-23 18:25:37 +08:00 |
|
freedakgmail
|
43186d3dd8
|
优化: 添加员工弹窗合同和试用期智能计算
1. 缺省入职日期和合同开始日期为今天,签订日期默认空(留空表示尚未签订)
2. 签约时长与合同结束日期双向自动计算:改年限→算结束日期,改结束日期→算年限
3. 开始日期变更时自动重算结束日期
4. 试用期长度按劳动合同法第19条校验(3月以下不得约定,1年以下≤1月,3年以下≤2月,3年以上≤6月)
5. 有试用期时试用期工资必填,且不得低于转正工资80%(劳动合同法第20条)
6. 校验不通过时禁止保存并显示错误提示
|
2026-07-23 18:22:29 +08:00 |
|
freedakgmail
|
1eeca663a0
|
feat: 已离职/解聘员工可重新入职
1. 后端新增 rehireEmployee 函数和 POST /employees/:id/rehire 接口
2. 校验:仅已离职员工可重新入职,新入职日期须晚于上次离职日期
3. 复用员工已有基本信息,只需填写新入职日期和劳动合同
4. 前端花名册已离职员工显示「重新入职」按钮+弹窗(RehireModal)
|
2026-07-23 18:11:01 +08:00 |
|
freedakgmail
|
2896ba77aa
|
feat: 区分待解聘/待离职+撤回功能
1. 花名册列表区分「待解聘」(amber)和「待离职」(blue)
2. 未到日期的解聘/离职记录可撤回,撤回后删除记录并恢复在职状态
3. 后端新增 DELETE /termination/:id/revoke 接口
4. 花名册列表返回 latestTerminationType 和 latestTerminationId
|
2026-07-23 18:07:37 +08:00 |
|
freedakgmail
|
29ba3a98bc
|
feat: 离职/解聘完整功能
1. 已有离职/解聘记录的员工不能再次解聘(后端校验+前端提示)
2. 员工主动离职功能:花名册列表增加「离职」操作按钮和弹窗
3. 离职也按离职日期动态判断在职/离职状态,支持提前办理
4. 员工档案「解聘记录」tab改为「离职/解聘记录」,区分类型显示
5. Schema: TerminationRecord 增加 type、resignationReason 字段
6. 后端新增 POST /termination/resignation 接口
7. 花名册列表返回 hasTermination 标记
|
2026-07-23 17:31:27 +08:00 |
|
freedakgmail
|
e6b5ac5989
|
fix: 在职/离职状态改为根据解聘日期动态计算
- 花名册列表 API: include terminations,根据解聘日期<=今天判断RESIGNED
- 员工详情 API: 同样动态计算 status
- 证据链 API: 同样动态计算 status
- 不再依赖数据库中静态的 status 字段
- 吴芳等解聘日期在未来的员工将正确显示为在职
|
2026-07-23 17:14:37 +08:00 |
|
freedakgmail
|
9a4e8da0a0
|
fix: 解聘保存后根据解聘日期判断在职/离职状态
- 解聘日期<=今天:员工状态设为RESIGNED(离职)
- 解聘日期>今天:员工状态保持ACTIVE(在职,未到解聘日)
|
2026-07-23 17:11:57 +08:00 |
|
freedakgmail
|
b95676cb46
|
feat: 解聘补偿增加「模拟计算」按钮 — 只计算不实际保存
- Step 4 费用结算增加「模拟计算」按钮
- 点击后计算补偿金并暂存到右侧列表,重置向导
- 不调用保存接口,不创建解聘记录
- 「确认保存」仍走原有流程保存到后端
|
2026-07-23 17:08:09 +08:00 |
|
freedakgmail
|
64cfb2f464
|
feat: 解聘补偿左右分栏 — 左侧向导计算,右侧暂存多人补偿合计
- 左侧保持原有5步向导不变
- 右侧暂存列表:保存成功后自动添加,显示每人补偿金/代通知金/双倍工资/合计
- 底部汇总:多人补偿金/代通知金/双倍工资/总计
- 支持单条删除和清空全部
- 移动端隐藏右侧(hidden md:block)
|
2026-07-23 17:06:13 +08:00 |
|
freedakgmail
|
e4dae72411
|
refactor: 「解聘」改为「解聘补偿」
|
2026-07-23 16:59:23 +08:00 |
|
freedakgmail
|
1b05facc92
|
feat: 解聘Step3合规检查增强 — 系统自动预填+建议
后端:
- getChecklistForReason 接收 employee 数据,支持自动检查
- 医疗期是否届满:根据 isInMedicalPeriod 自动判断
- 是否经过培训/调岗:根据 trainingRecords 自动判断
- 经济补偿金/代通知金:系统给建议(suggestion + suggestionType)
- checklist 接口改为 async,获取员工 profile 传入
前端:
- checklist 查询传入 employeeId
- useEffect 自动预填系统判断结果到 checklist state
- Step 3 UI 重写:显示系统判断标签、来源说明、建议提示
- 建议按类型显示不同颜色(warning/required/info)
|
2026-07-23 16:56:28 +08:00 |
|
freedakgmail
|
fa7aa01c48
|
refactor: 社保公积金从薪税tab移至顶层导航,放在薪税和解聘之间
- 新建 SocialInsurance.tsx 独立页面
- App.tsx 添加 /social 路由
- TopNav/MobileTabBar 添加社保公积金导航项
- Money.tsx 移除 social tab 和 SocialInsuranceCalculator 函数
|
2026-07-23 16:48:10 +08:00 |
|
freedakgmail
|
c618710a52
|
feat: 社保公积金版本管理 + 员工基数调整 + 加班费计算优化 + UI组件改进
- SocialInsuranceConfig 版本化(effectiveFrom/effectiveTo/isCurrent/adjustmentDone)
- 社保配置版本管理接口(列表/新建/按月获取/当前版本)
- 员工基数调整:预览全部在职员工、上年月均工资计算建议基数、可编辑表格、确认后批量保存
- payroll.service 按批次月份匹配对应版本社保配置
- risk.service / seed.ts 同步更新
- 前端社保tab重构为版本管理+调整+试算
- 加班费计算三步流程、CSV导入、批次导入
- UI组件、Dashboard、合同、薪酬等页面优化
|
2026-07-23 16:32:46 +08:00 |
|
freedakgmail
|
2a09d31ccc
|
feat: 分页组件、Dashboard待办图标、归档与工资条解耦、总览数据优化
- 新增公用 Pagination 组件,Roster/Money/Dashboard 列表加分页
- Dashboard 待办按类型显示不同图标(合同/薪资/解聘/月度)
- 待办分为「风险提醒」「月度任务」两个顶层 tab
- 归档与工资条生成解耦:归档只锁定批次,工资条单独生成
- 工资条管理新增「从批次汇总生成」按钮
- Dashboard 总览优先从已归档批次 BatchEntry 汇总数据
- 新增工资条生成待办提醒,生成后自动标记完成
- 修复高风险统计只含 CONTRACT/TERMINATION 类型
- 修复月度任务去重逻辑覆盖 SALARY 类型
|
2026-07-23 13:42:28 +08:00 |
|
freedakgmail
|
820579e98d
|
init: AI HR Compliance Assistant
|
2026-07-23 12:34:43 +08:00 |
|