166 Commits

Author SHA1 Message Date
selfrelease fa6cacb824 style: 平台管理端改为浅色主题,与企业端配色一致 2026-07-29 12:16:44 +08:00
selfrelease 0c6cb8d6cb feat: 平台登录页+企业登录页添加记住账号密码功能 2026-07-29 12:06:10 +08:00
selfrelease b7e617cd0d fix: 企业登录拒绝 SUPER_ADMIN + authMiddleware 校验 orgId 非空,修复 500 错误 2026-07-29 12:01:14 +08:00
selfrelease b1d2d5715d fix: 登录/登出时清除 React Query 缓存,修复切换用户页面不刷新 2026-07-29 11:56:24 +08:00
selfrelease b2248b9afc feat: 平台管理员创建企业客户功能 + deploy.sh 跳过 tsc 2026-07-29 11:54:23 +08:00
selfrelease 987a4678f7 feat: 平台管理员端 — SUPER_ADMIN 角色 + 企业租户管理 + 用户管理 + 数据总览 2026-07-29 11:49:48 +08:00
freedakgmail fb36b10402 feat: 工作日历/考勤管理重构/AI人力报告/工作台员工分布/筛选优化/导入导出增强
- 新增工作日历页面(月历视图、事件管理、自定义事件)
- 考勤管理重构为6 Tab模块(班次/排班/每日出勤/月度报表/休假记录)
- AI顾问新增人力报告Tab,支持流式生成+Word导出
- 工作台总览新增员工分布统计(性别/年龄/学历/司龄饼图)+部门成本拆分
- 花名册/合同/解聘补偿新增部门和状态筛选
- 薪税管理新增工资表导入模板下载、银行代发CSV导出
- 社保公积金支持多公积金账户类型显示
- 数据导出新增花名册/解聘记录导出,中文文件名编码修复
- 数据导入新增模板下载(员工/增减员/工资表)+错误日志导出
- 移除工作台日历卡片(已迁移至独立工作日历页面)
- 新增20260728/20260729更新测试指导文档
2026-07-29 08:35:29 +08:00
selfrelease d020d04a8a docs: 添加20260728优化方案文档 2026-07-28 17:14:55 +08:00
selfrelease 3ae1ea4c6d feat: 设置页数据导出新增问卷结果分析导出,生成MD文档 2026-07-28 15:34:11 +08:00
selfrelease 5aa7af9a46 fix: 审计日志补充关键操作详情,前端改为可读格式显示 2026-07-28 15:28:03 +08:00
selfrelease 7716de63f1 feat: 问卷支持暂存功能,打开时自动恢复上次填写内容 2026-07-28 14:49:18 +08:00
selfrelease f31c9e159a feat: 问卷和文档添加菜单路径及Tab信息,方便用户定位功能位置 2026-07-28 14:45:06 +08:00
selfrelease 1c45056083 feat: 添加功能调查问卷,218项功能可在线打分 2026-07-28 14:39:13 +08:00
freedakgmail 97c6ca9bab docs: 补全前端页面功能分析,覆盖全部41个页面218项功能 2026-07-28 07:49:48 +08:00
freedakgmail 7ab6200d1a fix: 修复员工门户规章制度页面报错,新增更新说明文档 2026-07-28 07:33:44 +08:00
freedakgmail 5e22a82163 feat: 社保AI建议、合同附件多文件上传预览、删除合同、扩展上传格式 2026-07-27 23:45:22 +08:00
selfrelease 71d7ab2de5 feat: 专项附加扣除只显示当月社保在保人员 2026-07-27 19:58:55 +08:00
selfrelease 67ebb2b26f feat: 专项附加扣除改为批量复制上月所有人的数据 2026-07-27 19:53:19 +08:00
selfrelease 0394164cfe feat: 专项附加扣除编辑增加「复制上月」按钮 2026-07-27 19:50:29 +08:00
selfrelease 22424489d2 fix: 专项附加扣除Tab隐藏社保配置和试算区域 2026-07-27 19:44:22 +08:00
selfrelease ab677eb5d9 fix: extraInsurances TS类型断言 + trust proxy设置,部署到on.hr8ai.top 2026-07-27 19:34:04 +08:00
selfrelease 255af519d2 feat: Phase 1-3 优化全部完成
Phase 1 紧急修复(8项):
- 社保城市选择改为可输入
- 社保上下限拆分(三险/医保独立基数)
- 公积金试算结果展示修复
- 花名册合同保存修复(日期ISO格式)
- 薪酬批次创建失败修复(城市过滤+错误处理)
- 证据链查看修复
- 个税计算修复(blank_employees读取基本工资)
- 加班费倍率读取配置

Phase 2 功能完善(3项):
- 批量导入per-row异常捕获+导入按钮
- 单人发薪UI入口优化
- 解除协议模板补充(员工提出离职版)

Phase 3 后期规划(4项):
- 工资表导入功能(POST /import/payroll + 前端入口)
- 大病险/长护险附加险种(extraInsurances JSON + 计算适配)
- 专项附加扣除按月录入(SpecialDeductionRecord模型 + 前端Tab)
- 预置河北省社保政策(seed数据)
2026-07-27 18:55:08 +08:00
selfrelease 034fcc4111 feat: 员工门户UI优化 - PortalLayout/Logo组件/QR扫码登录/合同与政策页面重构 2026-07-27 14:59:01 +08:00
selfrelease 3f39c56f4b feat: 部署到服务器+移动端适配+帮助系统RAG集成+网页图标
- 部署脚本 deploy.sh:一键部署到 154.8.162.18,端口3400,Nginx conf.d
- 应用名改为「企业用工专家」(登录/注册/侧边栏/员工端等6处)
- 移动端适配修复:Attendance/Dashboard/Settings/Contracts 6处grid响应式
- 帮助系统:HelpModal 组件 + TopNav 帮助图标 + RAG语义搜索集成
  - 后端 rag.service.ts 新增23条帮助种子数据 + searchHelp()
  - 前端搜索调用 /ai/rag/help-search,RAG不可用时回退关键词匹配
- 网页图标 favicon.svg(indigo主色+建筑人形图案)
- index.html 标题改为「企业用工专家」
2026-07-27 10:10:07 +08:00
selfrelease 71e2bb2412 feat: AI判赔预测表单UI优化 - 卡片布局/左右分栏/Word导出
- 结构化判赔预测表单改为卡片式布局(员工信息/争议事实/制度合规)
- 左右分栏:左栏表单(2/5),右栏AI结果(3/5),结果区固定高度可滚动
- 系统带出字段用Database图标替代文字标注
- 移除违纪记录摘要重复内容
- 三期信息整合到员工信息卡片内
- 新增AI分析结果导出Word文档功能(docx库)
- 后端roster API返回三期字段,修复特殊状态拼接逻辑
- 修复markdown渲染样式冲突(移除index.css中h1/h2/h3覆盖)
2026-07-26 23:03:25 +08:00
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