anxin-ruoyi/.kiro/specs/employee-api-alignment/requirements.md
2025-12-23 18:33:17 +08:00

6.1 KiB

Requirements Document

Introduction

This specification addresses the missing MyBatis XML mapper files for the Employee Management API. The system currently has Java mapper interfaces defined but lacks the corresponding XML mapping files, causing "Invalid bound statement (not found)" errors when the API endpoints are called.

Glossary

  • Mapper_Interface: Java interface that defines database operation methods for MyBatis
  • XML_Mapper: MyBatis XML configuration file that contains SQL statements mapped to interface methods
  • Employee_Library: A container that holds employee information for a specific company
  • Employee_Info: Detailed information about individual employees
  • Employee_Group: A logical grouping of employees within a library
  • Employee_Group_Member: The relationship between an employee and a group

Requirements

Requirement 1: Employee Library Mapper Implementation

User Story: As a backend developer, I want complete MyBatis mapper implementations for Employee Library operations, so that the employee library API endpoints function correctly.

Acceptance Criteria

  1. WHEN the system queries employee libraries, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeLibraryList
  2. WHEN the system queries a single employee library by ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeLibraryByLibraryId
  3. WHEN the system queries an employee library by company ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeLibraryByCompanyId
  4. WHEN the system inserts a new employee library, THE XML_Mapper SHALL provide SQL implementation for insertEmployeeLibrary
  5. WHEN the system updates an employee library, THE XML_Mapper SHALL provide SQL implementation for updateEmployeeLibrary
  6. WHEN the system deletes an employee library, THE XML_Mapper SHALL provide SQL implementation for deleteEmployeeLibraryByLibraryId
  7. WHEN the system batch deletes employee libraries, THE XML_Mapper SHALL provide SQL implementation for deleteEmployeeLibraryByLibraryIds
  8. WHEN the system updates employee count, THE XML_Mapper SHALL provide SQL implementation for updateEmployeeCount

Requirement 2: Employee Info Mapper Implementation

User Story: As a backend developer, I want complete MyBatis mapper implementations for Employee Info operations, so that employee information can be properly stored and retrieved.

Acceptance Criteria

  1. WHEN the system queries employee information, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeInfoList
  2. WHEN the system queries a single employee by ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeInfoByEmployeeId
  3. WHEN the system queries employees by library ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeInfosByLibraryId
  4. WHEN the system queries employees by position, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeInfosByPosition
  5. WHEN the system inserts new employee information, THE XML_Mapper SHALL provide SQL implementation for insertEmployeeInfo
  6. WHEN the system updates employee information, THE XML_Mapper SHALL provide SQL implementation for updateEmployeeInfo
  7. WHEN the system deletes employee information, THE XML_Mapper SHALL provide SQL implementation for deleteEmployeeInfoByEmployeeId
  8. WHEN the system counts employees by library ID, THE XML_Mapper SHALL provide SQL implementation for countEmployeesByLibraryId

Requirement 3: Employee Group Mapper Implementation

User Story: As a backend developer, I want complete MyBatis mapper implementations for Employee Group operations, so that employee groups can be managed effectively.

Acceptance Criteria

  1. WHEN the system queries employee groups, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeGroupList
  2. WHEN the system queries a single employee group by ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeGroupByGroupId
  3. WHEN the system queries employee groups by library ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeGroupsByLibraryId
  4. WHEN the system inserts a new employee group, THE XML_Mapper SHALL provide SQL implementation for insertEmployeeGroup
  5. WHEN the system updates an employee group, THE XML_Mapper SHALL provide SQL implementation for updateEmployeeGroup
  6. WHEN the system deletes an employee group, THE XML_Mapper SHALL provide SQL implementation for deleteEmployeeGroupByGroupId

Requirement 4: Employee Group Member Mapper Implementation

User Story: As a backend developer, I want complete MyBatis mapper implementations for Employee Group Member operations, so that employee-group relationships can be maintained.

Acceptance Criteria

  1. WHEN the system queries group members by group ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeGroupMembersByGroupId
  2. WHEN the system queries group members by employee ID, THE XML_Mapper SHALL provide SQL implementation for selectEmployeeGroupMembersByEmployeeId
  3. WHEN the system inserts a new group member relationship, THE XML_Mapper SHALL provide SQL implementation for insertEmployeeGroupMember
  4. WHEN the system deletes a group member relationship, THE XML_Mapper SHALL provide SQL implementation for deleteEmployeeGroupMember
  5. WHEN the system batch inserts group member relationships, THE XML_Mapper SHALL provide SQL implementation for batchInsertEmployeeGroupMembers

Requirement 5: Mapper File Organization

User Story: As a backend developer, I want MyBatis mapper XML files organized consistently, so that they are easy to maintain and follow project conventions.

Acceptance Criteria

  1. THE System SHALL place all employee-related mapper XML files in the ruoyi-credit/src/main/resources/mapper/credit directory
  2. WHEN a mapper XML file is created, THE System SHALL use the naming convention {MapperInterfaceName}.xml
  3. WHEN a mapper XML file is created, THE System SHALL include proper namespace declaration matching the Java interface
  4. WHEN a mapper XML file is created, THE System SHALL include resultMap definitions for complex object mappings
  5. THE System SHALL ensure all SQL statements use parameterized queries to prevent SQL injection