User Story: Tạo mới đơn vị trong cây tổ chức¶
1. Description¶
Là Admin, tôi muốn tạo mới một đơn vị trong cây tổ chức với đầy đủ thông tin (tên, mã định danh, đơn vị cha, cấp tổ chức, thông tin liên hệ), để bổ sung đơn vị Sở/Ban/Ngành/Phòng vào hệ thống phục vụ phân quyền và quản lý dữ liệu.
2. Acceptance Criteria¶
2.1 Happy Path¶
AC-001: Tạo mới đơn vị cấp Sở trực thuộc Tỉnh/Thành phố - GIVEN Admin đang ở màn hình Quản lý cây tổ chức (SCR-SYS-30) và đã đăng nhập với vai trò Admin - WHEN Admin nhấn nút "Thêm đơn vị", chọn đơn vị cha là đơn vị cấp TINH, nhập tên đơn vị (VD: "Sở Khoa học và Công nghệ"), mã định danh (VD: "SKHCN"), cấp tổ chức "SO", thông tin liên hệ và nhấn "Lưu" - THEN Hệ thống lưu đơn vị mới, hiển thị đơn vị trong cây tổ chức dưới đơn vị cha đã chọn, và thông báo "Tạo đơn vị thành công"
AC-002: Tạo mới đơn vị cấp Phòng trực thuộc Ban/Cục - GIVEN Admin đang mở Popup Thêm đơn vị (SCR-SYS-31) - WHEN Admin chọn đơn vị cha là một đơn vị cấp BAN, nhập tên đơn vị, mã định danh, cấp tổ chức "PHONG" và nhấn "Lưu" - THEN Hệ thống lưu đơn vị mới với cấp PHONG, hiển thị trong cây phân cấp dưới đơn vị BAN đã chọn
AC-003: Tạo đơn vị với trạng thái mặc định - GIVEN Admin tạo mới một đơn vị - WHEN Admin hoàn tất nhập thông tin và nhấn "Lưu" - THEN Đơn vị được tạo với trạng thái is_active = true (đang hoạt động) theo mặc định
2.2 Alternative Paths¶
AC-004: Tạo đơn vị cấp cao nhất (TINH) - GIVEN Admin đang mở Popup Thêm đơn vị (SCR-SYS-31) - WHEN Admin chọn cấp tổ chức "TINH" và không chọn đơn vị cha - THEN Hệ thống cho phép tạo đơn vị cấp TINH với parent_organization_unit_id = null
AC-005: Hủy thao tác tạo đơn vị - GIVEN Admin đang nhập thông tin trong Popup Thêm đơn vị - WHEN Admin nhấn nút "Hủy" hoặc đóng popup - THEN Hệ thống đóng popup, không lưu dữ liệu, cây tổ chức giữ nguyên trạng thái trước đó
2.3 Error Cases¶
AC-006: Mã đơn vị trùng lặp - GIVEN Trong hệ thống đã tồn tại đơn vị có mã "SKHCN" - WHEN Admin nhập mã định danh "SKHCN" cho đơn vị mới và nhấn "Lưu" - THEN Hệ thống hiển thị lỗi "Mã đơn vị đã tồn tại trong hệ thống" và không tạo đơn vị
AC-007: Tên đơn vị không hợp lệ - GIVEN Admin đang nhập thông tin tạo đơn vị - WHEN Admin nhập tên đơn vị dưới 2 ký tự hoặc trên 200 ký tự - THEN Hệ thống hiển thị lỗi "Tên đơn vị phải từ 2 đến 200 ký tự"
AC-008: Cấp tổ chức không phù hợp với đơn vị cha - GIVEN Admin chọn đơn vị cha có cấp tổ chức là PHONG - WHEN Admin chọn cấp tổ chức cho đơn vị con là SO (cấp cao hơn đơn vị cha) - THEN Hệ thống hiển thị lỗi "Cấp tổ chức của đơn vị con phải thấp hơn hoặc bằng đơn vị cha"
AC-009: Thiếu trường bắt buộc - GIVEN Admin đang nhập thông tin tạo đơn vị - WHEN Admin bỏ trống tên đơn vị, mã định danh hoặc cấp tổ chức và nhấn "Lưu" - THEN Hệ thống hiển thị thông báo lỗi chỉ rõ các trường bắt buộc chưa được điền
3. Business Rules¶
- Mã đơn vị (code) phải duy nhất trong toàn hệ thống
- Tên đơn vị từ 2 đến 200 ký tự
- Cây tổ chức phân cấp theo 4 cấp: Tỉnh/Thành phố (TINH) → Sở/Ban/Ngành (SO) → Ban/Cục trực thuộc (BAN) → Phòng (PHONG)
- Đơn vị cấp cao nhất (TINH) không có đơn vị cha (parent_organization_unit_id = null)
- Cấp tổ chức (level) phải phù hợp với vị trí trong cây: đơn vị con phải có cấp thấp hơn hoặc bằng đơn vị cha
- Đơn vị mới được tạo mặc định ở trạng thái hoạt động (is_active = true)
4. Traceability¶
Feature: Quản lý cây tổ chức
Related Use Cases: - UC-SYS-003: Quản lý cây tổ chức
Screens: - SCR-SYS-30: Quản lý cây tổ chức - SCR-SYS-31: Popup Thêm/Sửa đơn vị
Business Entities: - Organization Unit (Đơn vị tổ chức)
Role Matrix: - RM-005: Admin – Quản trị hệ thống
5. Out of Scope¶
- Import hàng loạt đơn vị từ file (CSV/Excel)
- Đồng bộ tự động cây tổ chức từ hệ thống nhân sự bên ngoài
- Quản lý nhân sự thuộc đơn vị