Files
solution-erp/docs/PROJECT-MAP.md
pqhuy1987 25dad7f36f [CLAUDE] Scaffold: khoi tao SOLUTION_ERP Phase 0
- .NET 10 Clean Architecture: Domain/Application/Infrastructure/Api (4 project)
- 2 React + Vite + TS app: fe-admin (:8082), fe-user (:8080) voi proxy /api
- Node engines >=20, .nvmrc = 20 cho CI (bai hoc NamGroup)
- SQL Server 2022 qua docker-compose (dev)
- Parse 8 FORM -> docs/forms-spec.md (catalog + ma HD format RG-001)
- Parse QUY_TRINH -> docs/workflow-contract.md (9 phase state machine + role matrix)
- docs: CLAUDE.md, STATUS.md, PROJECT-MAP.md, migration-todos.md (roadmap 5 phase)
- .claude/skills: 3 placeholder (contract-workflow, form-engine, permission-matrix)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 10:37:34 +07:00

6.9 KiB
Raw Blame History

PROJECT-MAP — Bản đồ toàn cảnh

Đọc file này nếu cần deep context (~15 phút). Nếu chỉ cần snapshot → đọc STATUS.md.

Module map

┌─────────────────────────────────────────────────────────────────┐
│                      SOLUTION_ERP                                │
└─────────────────────────────────────────────────────────────────┘

 ╔════════════════╗   ╔════════════════╗   ╔════════════════╗
 ║  IDENTITY      ║   ║  DANH MỤC      ║   ║  QUẢN LÝ HĐ    ║
 ║  (Phase 1)     ║   ║  (Phase 1)     ║   ║  (Phase 1-3)   ║
 ╠════════════════╣   ╠════════════════╣   ╠════════════════╣
 ║ User           ║   ║ Supplier       ║   ║ Contract       ║
 ║ Role           ║   ║ Project        ║   ║ ContractType   ║
 ║ Permission     ║   ║ Department     ║   ║ ContractForm   ║
 ║ MenuKey        ║   ║ ContractClause ║   ║ Approval       ║
 ║ AuditLog       ║   ║ (điều kiện     ║   ║ Comment        ║
 ║                ║   ║  chung - 002.04)║   ║ Attachment     ║
 ╚════════════════╝   ╚════════════════╝   ║ AuditTrail     ║
                                           ╚════════════════╝

 ╔════════════════╗   ╔════════════════╗   ╔════════════════╗
 ║  FORM ENGINE   ║   ║  WORKFLOW      ║   ║  BÁO CÁO       ║
 ║  (Phase 2)     ║   ║  (Phase 3)     ║   ║  (Phase 4)     ║
 ╠════════════════╣   ╠════════════════╣   ╠════════════════╣
 ║ Template       ║   ║ StateMachine   ║   ║ Dashboard      ║
 ║ Renderer       ║   ║ Transition     ║   ║ ExcelExport    ║
 ║ (DOCX/XLSX)    ║   ║ SlaTimer       ║   ║ FilterQuery    ║
 ║ Field mapping  ║   ║ Notification   ║   ║                ║
 ║ PO gen (F.07)  ║   ║ CodeGenerator  ║   ║                ║
 ║                ║   ║ (RG-001)       ║   ║                ║
 ╚════════════════╝   ╚════════════════╝   ╚════════════════╝

Domain entities chính (dự kiến)

User ────< Role ────< Permission (Role × MenuKey × CRUD)
User ────< AuditLog

Supplier (NCC)
Project (Dự án)
Department (Phòng ban)

Contract
  ├── Type: HĐTP | HĐGK | NCC | HĐDV | HĐ Mua bán | ...
  ├── Phase (9 state — xem workflow-contract.md)
  ├── Supplier, Project, Drafter
  ├── MaHopDong (gen theo RG-001)
  ├── Approvals[] (audit ai ký phase nào)
  ├── Comments[] (thread góp ý Phase 3 của workflow)
  ├── Attachments[] (scan bản gốc, file export)
  └── TemplateData (JSON — field đã điền khi render form)

ContractTemplate (ánh xạ Type → File mẫu FO-002.xx)
ContractClause (điều khoản chung FO-002.04 — rich text)
PurchaseOrder (có thể đính với Contract hoặc standalone)

API namespace dự kiến

/api/auth          — login, refresh, logout, register (admin gate)
/api/users         — CRUD user, assign role, reset password
/api/roles         — CRUD role, permission matrix
/api/menus         — menu tree + permission resolution

/api/suppliers     — CRUD NCC
/api/projects      — CRUD dự án
/api/departments   — CRUD phòng ban

/api/contracts     — CRUD + query by phase/project/supplier
/api/contracts/{id}/transitions  — state machine action
/api/contracts/{id}/comments     — thread góp ý
/api/contracts/{id}/attachments  — upload/download

/api/forms         — template catalog
/api/forms/{id}/render — render template → docx/xlsx (Phase 2)

/api/reports/dashboard  — KPI tổng hợp
/api/reports/export     — Excel download

FE screens dự kiến

fe-admin (:8082) — cho Admin + Role quản lý

  • /login
  • /dashboard — KPI system
  • /master/users + /master/roles + /master/permissions
  • /master/suppliers + /master/projects + /master/departments
  • /master/contract-templates + /master/contract-clauses
  • /contracts — danh sách toàn bộ, filter phase/dự án
  • /contracts/{id} — detail + approval panel + audit log
  • /reports + /system/audit-log

fe-user (:8080) — cho Drafter, TBP, PD/PM, BOD, CCM, ...

  • /login
  • /inbox — HĐ đang chờ tôi xử lý (filter theo role × phase)
  • /contracts/new — chọn template + điền form + submit
  • /contracts/{id} — detail, comment, approve/reject
  • /my-contracts — HĐ tôi đã tạo/tham gia

Flow chính (Phase 3 — trình ký HĐ end-to-end)

Drafter (QS/NV.PB)
  ├─ [POST /api/contracts] tạo draft + chọn template
  ├─ [POST /api/forms/{id}/render] fill + preview
  ├─ [POST /api/contracts/{id}/transitions] DangSoanThao → DangGopY
  │
PD/PM/PRO/CCM/FIN/ACT  (song song)
  └─ [POST /api/contracts/{id}/comments] góp ý
  
Drafter
  ├─ [PATCH /api/contracts/{id}] revise
  ├─ [POST /api/contracts/{id}/transitions] DangGopY → DangDamPhan → DangInKy
  │
NTP/NCC/TĐ (external — Drafter update thay)
  └─ upload scan có chữ ký đối tác

Drafter
  └─ [POST /api/contracts/{id}/transitions] → DangKiemTraCCM

CCM
  └─ [POST /api/contracts/{id}/transitions] → DangTrinhKy

BOD/NĐUQ
  └─ [POST /api/contracts/{id}/transitions] → DangDongDau (GEN mã HĐ ở đây!)

HRA
  └─ [POST /api/contracts/{id}/transitions] → DaPhatHanh (upload scan có dấu)

External dependencies

  • SQL Server — chính thức, dev có thể LocalDB hoặc Docker (docker-compose.yml)
  • IIS — deploy target (Windows Server 2019+)
  • Gitea — git remote (URL chờ user cấp)
  • Aspose.Words / DocumentFormat.OpenXml — render .docx (Phase 2, quyết định khi đó)
  • EPPlus hoặc ClosedXML — render .xlsx (Phase 2)

Non-goals (KHÔNG làm)

  • Python AI service (user đã quyết gác vô thời hạn)
  • Mobile app
  • Multi-tenant (1 instance / 1 công ty)
  • Tích hợp e-signature (Phase 6+ nếu có)
  • Tích hợp SAP/Bravo ERP (Phase 6+ nếu có)
  • Public API / external webhooks