User Story: Thay đổi vị trí đơn vị trong cây phân cấp¶
1. Description¶
Là Admin, tôi muốn thay đổi vị trí của một đơn vị trong cây phân cấp (di chuyển sang đơn vị cha khác), để phản ánh đúng cấu trúc tổ chức thực tế khi có sắp xếp lại các Sở/Ban/Ngành/Phòng.
2. Acceptance Criteria¶
2.1 Happy Path¶
AC-001: Di chuyển đơn vị sang đơn vị cha mới hợp lệ - GIVEN Admin đang ở màn hình Quản lý cây tổ chức (SCR-SYS-30) và chọn một đơn vị cấp BAN (VD: "Ban Quản lý dự án") hiện thuộc "Sở Xây dựng" - WHEN Admin thay đổi đơn vị cha từ "Sở Xây dựng" sang "Sở Giao thông Vận tải" (cũng cấp SO) và xác nhận - THEN Hệ thống cập nhật vị trí đơn vị trong cây, "Ban Quản lý dự án" hiển thị dưới "Sở Giao thông Vận tải" và thông báo "Di chuyển đơn vị thành công"
AC-002: Di chuyển đơn vị cùng toàn bộ đơn vị con - GIVEN Đơn vị "Ban Kỹ thuật" có 2 đơn vị con (Phòng A, Phòng B) - WHEN Admin di chuyển "Ban Kỹ thuật" sang đơn vị cha mới - THEN Hệ thống di chuyển "Ban Kỹ thuật" cùng toàn bộ đơn vị con (Phòng A, Phòng B) sang vị trí mới, giữ nguyên cấu trúc phân cấp bên trong
2.2 Alternative Paths¶
AC-003: Hủy thao tác di chuyển - GIVEN Admin đang thực hiện thao tác thay đổi vị trí đơn vị - WHEN Admin nhấn nút "Hủy" - THEN Hệ thống không thay đổi vị trí đơn vị, cây tổ chức giữ nguyên trạng thái trước đó
2.3 Error Cases¶
AC-004: Di chuyển gây vòng lặp trong cây phân cấp - GIVEN Đơn vị "Sở Tài nguyên" có đơn vị con "Ban Môi trường", và "Ban Môi trường" có đơn vị con "Phòng Kiểm soát" - WHEN Admin cố di chuyển "Sở Tài nguyên" thành đơn vị con của "Phòng Kiểm soát" (tức đơn vị con trở thành cha của tổ tiên) - THEN Hệ thống hiển thị lỗi "Không thể di chuyển đơn vị vào chính nhánh con của nó vì sẽ tạo vòng lặp trong cây phân cấp"
AC-005: Di chuyển đơn vị sang vị trí vi phạm cấp tổ chức - GIVEN Đơn vị "Phòng Hành chính" có cấp tổ chức PHONG - WHEN Admin cố di chuyển "Phòng Hành chính" trở thành đơn vị con trực tiếp của đơn vị cấp TINH (bỏ qua cấp SO và BAN) - THEN Hệ thống cho phép di chuyển nếu cấp tổ chức đơn vị con thấp hơn hoặc bằng đơn vị cha (PHONG < TINH: hợp lệ), nhưng cảnh báo Admin nếu có sự nhảy cấp bất thường
AC-006: Di chuyển đơn vị thành đơn vị con của chính nó - GIVEN Admin chọn đơn vị "Sở Kế hoạch và Đầu tư" - WHEN Admin cố đặt đơn vị cha mới chính là "Sở Kế hoạch và Đầu tư" (di chuyển vào chính mình) - THEN Hệ thống hiển thị lỗi "Đơn vị không thể là cha của chính mình"
3. Business Rules¶
- Không thể tạo vòng lặp trong cây phân cấp: đơn vị con không thể trở thành cha của chính mình hoặc tổ tiên
- 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
- Khi di chuyển đơn vị, toàn bộ nhánh con (subtree) được di chuyển theo
- Hệ thống cần hiển thị hộp thoại xác nhận trước khi thực hiện di chuyển do tác động lớn đến cấu trúc tổ chức
- Đơn vị cấp TINH không thể được di chuyển thành đơn vị con của đơn vị khác (nếu chỉ có 1 đơn vị cấp TINH)
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¶
- Kéo thả (drag & drop) đơn vị trên giao diện cây tổ chức
- Lịch sử thay đổi cấu trúc tổ chức theo thời gian (versioning)
- Di chuyển hàng loạt nhiều đơn vị cùng lúc