How nhatduy288/tttn-project works
TTTN QL NVL is a Spring Boot/Thymeleaf materials and warehouse-management application. Users sign in under five business roles, maintain warehouses and materials, create purchase orders and warehouse requests, then move requests through approval and inventory-staff processing to physical receipt, issue, or transfer confirmation. Inventory lots and daily snapshots support stock and reporting views; status history provides an audit timeline. The README documents these capabilities and workflow stages; source excerpts confirm selected service interactions, so links for unsampled subsystems are limited to documented flows.
Main entry points: WarehouseRequestService.java Warehouse requests · InventoryLotRepository.java Inventory records · PurchaseOrderService.java Purchase orders · TransactionConfirmationService.java Receipt and issue
Components 20
Identity and audit
- Session and roles
src/main/java/com/tttn/qlnvl/auth/web/AuthController.java - User records
src/main/java/com/tttn/qlnvl/auth/repository/AppUserRepository.java - Status history
src/main/java/com/tttn/qlnvl/shared/audit/StatusHistoryService.java - History records
src/main/java/com/tttn/qlnvl/shared/audit/StatusHistoryRepository.java
Master data
- Materials and groups
src/main/java/com/tttn/qlnvl/material/application/MaterialService.java - Material records
src/main/java/com/tttn/qlnvl/material/repository/MaterialRepository.java - Warehouse registry
src/main/java/com/tttn/qlnvl/warehouse/application/WarehouseService.java - Warehouse records
src/main/java/com/tttn/qlnvl/warehouse/repository/WarehouseRepository.java
Procurement
- Purchase orders
src/main/java/com/tttn/qlnvl/purchaseorder/application/PurchaseOrderService.java - Order records
src/main/java/com/tttn/qlnvl/purchaseorder/repository/PurchaseOrderRepository.java
Warehouse operations
- Warehouse requests
src/main/java/com/tttn/qlnvl/warehouserequest/application/WarehouseRequestService.java - Request approval
src/main/java/com/tttn/qlnvl/warehouserequest/application/RequestApprovalService.java - Receipt and issue
src/main/java/com/tttn/qlnvl/warehousetransaction/application/TransactionConfirmationService.java - Warehouse transfers
src/main/java/com/tttn/qlnvl/warehousetransfer/application/TransferConfirmationService.java
Inventory and reports
- Lots and snapshots
src/main/java/com/tttn/qlnvl/inventory/domain/InventoryLot.java - Inventory records
src/main/java/com/tttn/qlnvl/inventory/repository/InventoryLotRepository.java - Daily stock closing
src/main/java/com/tttn/qlnvl/inventory/application/DailyStockClosingService.java - Stock reports
src/main/java/com/tttn/qlnvl/inventory/application/NxtReportService.java
Other components
- Business user
- PostgreSQL
Connections 26
- Business user → Session and roles: signs in
- Session and roles → User records: loads account
- Business user → Materials and groups: maintains catalog
- Materials and groups → Material records: reads and writes
- Business user → Warehouse registry: maintains sites
- Warehouse registry → Warehouse records: reads and writes
- Business user → Purchase orders: creates orders
- Purchase orders → Material records: validates items
- Purchase orders → Order records: reads and writes
- Business user → Warehouse requests: submits request
- Warehouse requests → Material records: validates materials
- Warehouse requests → Order records: checks PO capacity
- Warehouse requests → Inventory records: checks availability
- Warehouse requests → Request approval: enters approval
- Request approval → Receipt and issue: authorizes processing
- Receipt and issue → Inventory records: confirms stock movement
- Business user → Warehouse transfers: confirms transfer
- Warehouse transfers → Inventory records: moves lot quantities
- Receipt and issue → Status history: records status
- Warehouse transfers → Status history: records status
- Status history → History records: reads and writes
- Business user → Daily stock closing: runs scheduled close
- Daily stock closing → Inventory records: stores snapshots
- Business user → Stock reports: views stock reports
- Stock reports → Inventory records: aggregates movements
- Stock reports → PostgreSQL: queries data