All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m26s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Real-data master import via UNGATED DbInitializer seed (S55)
When: nạp real company master data (Excel → bảng có sẵn Project/Supplier/WorkItem). User sẽ làm tiếp (full NCC list, thêm dự án).
Mechanism = idempotent DbInitializer seed (KHÔNG API loop — no bulk endpoint tồn tại; KHÔNG manual SQL).
- KEY ungated:
SeedDemoMasterDataAsync(Supplier/Project) +SeedCatalogsAsync(WorkItem) gọi NGOÀI gateif(!demoSeedDisabled)(DbInitializer ~line 108/115) → master/catalog seed reaches prod by design (DbInitializer:75 comment "GIỮ … SeedDemoMasterData/Catalogs" kể cả DemoSeed:Disabled=true). Prodappsettings.jsonDemoSeed:Disabled=true CHỈ gate transactional demo (contracts/PE/workflows). - Mirror: NEW
SeedRealMasterDataAsync= 3 tuple-loop per-code idempotent (existingCodes.Contains(code)→continue; else Add, pattern dòng ~2185), wired ungated sau SeedCatalogsAsync → real data tự lên prod khi deploy, coexist demo, re-run safe (expand-over-time). WorkItemmaster ĐÃ tồn tại (Code/Name/Category/IsActive) → Hạng mục categories fit, NO new table. Thêm field Project = migration AddColumn (no new table).
Discipline real-data accuracy:
- Extract Excel → clean generated-spec file (
scripts/*.generated.md) — chống brief-truncation khi nhồi 100+ rows vào agent brief; implementer Read file → convert C# inline arrays. - Đọc cấu trúc Excel THẬT trước map (merged col, divider row — vd MEP col gộp MEP-Sub + "THIẾT BỊ" divider → split đúng, đừng lùa divider thành item).
- Runtime Dev proof TRƯỚC prod: chạy API trên Dev (DbInitializer seed) → sqlcmd spot-check real codes + N-literal cho unicode field (
WHERE Investor=N'...', sqlcmd console mangle dấu ≠ data corruption) → bắt maxlength-overflow/dup-crash trước. - cicd sqlcmd spot-check prod sau deploy.
Collision (real code == demo code, vd FLOCK01): per-code skip → demo thắng. Acceptable (real code+year-only); note cho manual fix qua UI.
S55 proof: 62 Projects + 71 WorkItems + 3 Suppliers, Mig 48 AddProjectMasterFields, commit 69cb393 Run #377, prod-verified all spot-checks.