# Requirements Document ## Introduction 本规范旨在修复员工薪资修改功能中的数据更新问题,并增强薪资类型的显示功能。当前系统存在前端修改员工薪资时后端能接收到数据但未正确更新到数据库的问题,同时需要在详情页面清晰显示薪资类型(时薪、日薪、月薪)。 ## Glossary - **Employee_Management_System**: 员工管理系统,负责员工信息的增删改查 - **Salary_Update_Service**: 薪资更新服务,处理员工薪资信息的修改 - **Frontend_Form**: 前端表单,用户输入员工薪资信息的界面 - **Backend_API**: 后端API,接收前端请求并处理业务逻辑 - **Database**: 数据库,存储员工薪资信息 - **Salary_Type**: 薪资类型,包括时薪(hourly)、日薪(daily)、月薪(monthly) - **Employee_Detail_View**: 员工详情页面,显示员工完整信息包括薪资详情 - **Employee_Library_View**: 员工库页面,显示员工库中的员工列表及其薪资信息 ## Requirements ### Requirement 1: 薪资数据更新修复 **User Story:** 作为系统管理员,我希望修改员工薪资信息时能正确保存到数据库,以便薪资数据能够准确维护。 #### Acceptance Criteria 1. WHEN 用户在前端修改员工薪资信息并提交 THEN THE Backend_API SHALL 正确接收薪资数据并更新到Database 2. WHEN 薪资更新请求包含有效的薪资类型和金额 THEN THE Salary_Update_Service SHALL 将对应的薪资字段更新到数据库 3. WHEN 薪资更新完成后 THEN THE Employee_Management_System SHALL 返回更新成功的响应给前端 4. WHEN 薪资数据更新失败 THEN THE Backend_API SHALL 返回详细的错误信息 ### Requirement 2: 薪资类型显示增强 **User Story:** 作为用户,我希望在员工详情页面和员工库列表页面都能清楚看到薪资的具体类型和金额,以便了解员工的薪资结构。 #### Acceptance Criteria 1. WHEN 用户查看员工详情 THEN THE Employee_Detail_View SHALL 显示具体的薪资类型标签(时薪、日薪、月薪) 2. WHEN 员工设置了月薪 THEN THE Employee_Detail_View SHALL 显示"月薪: XXX元"的标签 3. WHEN 员工设置了日薪 THEN THE Employee_Detail_View SHALL 显示"日薪: XXX元"的标签 4. WHEN 员工设置了时薪 THEN THE Employee_Detail_View SHALL 显示"时薪: XXX元"的标签 5. WHEN 员工未设置任何薪资 THEN THE Employee_Detail_View SHALL 显示"未设置"的提示 6. WHEN 用户查看员工库中的员工列表 THEN THE Employee_Library_View SHALL 显示每个员工的薪资信息 7. WHEN 在员工库列表中显示薪资 THEN THE Employee_Library_View SHALL 使用相同的薪资类型标签格式 ### Requirement 3: 数据转换一致性 **User Story:** 作为开发人员,我希望前后端的数据字段映射保持一致,以便数据能够正确传输和处理。 #### Acceptance Criteria 1. WHEN Frontend_Form 提交薪资数据 THEN THE Backend_API SHALL 正确映射前端字段名到后端实体字段名 2. WHEN 后端返回员工数据 THEN THE Backend_API SHALL 正确映射后端实体字段名到前端DTO字段名 3. WHEN 薪资类型为monthly且金额有效 THEN THE Salary_Update_Service SHALL 更新monthlySalary字段并清空其他薪资字段 4. WHEN 薪资类型为daily且金额有效 THEN THE Salary_Update_Service SHALL 更新dailySalary字段并清空其他薪资字段 5. WHEN 薪资类型为hourly且金额有效 THEN THE Salary_Update_Service SHALL 更新hourlySalary字段并清空其他薪资字段 ### Requirement 4: 薪资数据验证和员工工号管理 **User Story:** 作为系统管理员,我希望系统能验证薪资数据的有效性并确保员工工号的唯一性,以便确保数据质量和避免重复工号错误。 #### Acceptance Criteria 1. WHEN 用户输入薪资金额 THEN THE Frontend_Form SHALL 验证金额为正数且格式正确 2. WHEN 用户选择薪资类型但未输入金额 THEN THE Frontend_Form SHALL 提示用户输入薪资金额 3. WHEN 后端接收到薪资更新请求 THEN THE Backend_API SHALL 验证薪资类型和金额的有效性 4. WHEN 薪资数据验证失败 THEN THE Backend_API SHALL 返回具体的验证错误信息 5. WHEN 用户输入员工工号 THEN THE Frontend_Form SHALL 验证工号是否已存在 6. WHEN 员工工号重复 THEN THE Frontend_Form SHALL 显示"员工工号已存在"的错误提示 7. WHEN 用户新增员工但未输入工号 THEN THE Employee_Management_System SHALL 自动生成唯一的员工工号 8. WHEN 系统生成员工工号 THEN THE Backend_API SHALL 确保生成的工号在该员工库中唯一 ### Requirement 5: 薪资历史记录 **User Story:** 作为系统管理员,我希望能够追踪员工薪资的修改历史,以便进行审计和管理。 #### Acceptance Criteria 1. WHEN 员工薪资被修改 THEN THE Employee_Management_System SHALL 记录修改时间和修改人 2. WHEN 查询员工信息 THEN THE Backend_API SHALL 返回最后更新时间信息 3. WHEN 薪资更新操作执行 THEN THE Salary_Update_Service SHALL 在日志中记录详细的更新信息