[CLAUDE] Infra: WorkItems chi giu dung 71 ma PMH cong ty gui (chi Tra Sol chot) - go seed 15 demo + wipe prod 86->71
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m31s

- DbInitializer: XOA block seed 15 WorkItems demo (Phan tho/Hoan thien/Co dien/Khac
  - DAO-MONG, SON-NUOC, TRAT-TUONG... "ma anh tu de ra") -> nguon duy nhat =
  SeedRealMasterDataAsync 71 ma PMH (VT-01..16 + TP-01..30 + MEP-01..09 + TB-01..16).
- scripts/s59-wipe-demo-workitems.sql DA CHAY prod + LocalDB Dev: 86 -> 71,
  demo categories bien mat, doi chieu 71/71 khop bang PMH cong ty gui tung dong.
- An toan: PE=0 (Run #273 wipe) -> khong phieu nao tro WorkItemId demo.
This commit is contained in:
pqhuy1987
2026-06-11 16:56:46 +07:00
parent 0eafcd36e7
commit bbd1554f74
2 changed files with 35 additions and 26 deletions

View File

@ -0,0 +1,30 @@
-- ============================================================================
-- S59 đợt 2 (2026-06-11) — Xóa 15 WorkItems DEMO khỏi prod (chị Trà Sol chốt:
-- "xóa cái đám phần thô phần hoàn thiện … MÀ ANH TỰ ĐẺ RA" — hạng mục công việc
-- CHỈ dùng đúng 71 mã PMH công ty gửi, "không đẻ thêm mã của công ty khác vô").
-- 86 hiện tại = 71 real (VT-01..16 + TP-01..30 + MEP-01..09 + TB-01..16, S55
-- import — ĐÃ ĐỐI CHIẾU 71/71 khớp bảng PMH) + 15 demo seed cũ (block demo đã
-- GỠ khỏi DbInitializer.cs cùng commit → DB mới không sinh lại).
-- An toàn: PE = 0 (vừa wipe Run #273) → không phiếu nào trỏ WorkItemId demo.
-- Run: sqlcmd -S .\SQLEXPRESS -d SolutionErp -i s59-wipe-demo-workitems.sql
-- ============================================================================
SET QUOTED_IDENTIFIER ON;
SET NOCOUNT ON;
PRINT '=== BEFORE (expect 86 total, demo categories presents) ===';
SELECT Category, COUNT(*) AS C FROM WorkItems GROUP BY Category ORDER BY Category;
SELECT 'TOTAL' AS T, COUNT(*) AS C FROM WorkItems;
BEGIN TRANSACTION;
DELETE FROM WorkItems WHERE Code IN (
'DAO-MONG','DO-BTONG','LAP-COT-THEP','LAP-COPPHA','XAY-TUONG',
'TRAT-TUONG','LAT-GACH-NEN','OP-GACH-TUONG','SON-NUOC','LAP-CUA',
'LAP-DIEN','LAP-NUOC','LAP-DIEU-HOA','THAM-CHONG','VC-PHE-THAI');
PRINT '=== AFTER (expect 71 total = VatTu 16 + ThauPhu 30 + MEP 9 + ThietBi 16) ===';
SELECT Category, COUNT(*) AS C FROM WorkItems GROUP BY Category ORDER BY Category;
SELECT 'TOTAL' AS T, COUNT(*) AS C FROM WorkItems;
COMMIT TRANSACTION;
PRINT 'S59 demo workitems wipe COMMITTED.';

View File

@ -579,32 +579,11 @@ public static class DbInitializer
logger.LogInformation("Seed {Count} ServiceItems", services.Length); logger.LogInformation("Seed {Count} ServiceItems", services.Length);
} }
// 4. WorkItems (~15 demo) // 4. WorkItems — KHÔNG seed demo (S59, chị Trà Sol chốt 2026-06-11: hạng mục
if (!await db.WorkItems.AnyAsync()) // công việc CHỈ dùng đúng 71 mã PMH công ty gửi — VT-01..16 + TP-01..30 +
{ // MEP-01..09 + TB-01..16, "không đẻ thêm mã của công ty khác vô").
var works = new[] // Nguồn duy nhất = SeedRealMasterDataAsync (per-code idempotent, ungated).
{ // 15 mã demo cũ (Phần thô/Hoàn thiện/Cơ điện/Khác) đã DELETE prod S59.
("DAO-MONG", "Đào móng công trình", "Phần thô", "m3"),
("DO-BTONG", "Đổ bê tông móng/cột/dầm", "Phần thô", "m3"),
("LAP-COT-THEP", "Lắp dựng cốt thép", "Phần thô", "kg"),
("LAP-COPPHA", "Lắp dựng cốp pha", "Phần thô", "m2"),
("XAY-TUONG", "Xây tường gạch", "Phần thô", "m3"),
("TRAT-TUONG", "Trát tường", "Hoàn thiện", "m2"),
("LAT-GACH-NEN", "Lát gạch nền", "Hoàn thiện", "m2"),
("OP-GACH-TUONG", "Ốp gạch tường", "Hoàn thiện", "m2"),
("SON-NUOC", "Sơn nước", "Hoàn thiện", "m2"),
("LAP-CUA", "Lắp cửa", "Hoàn thiện", "cai"),
("LAP-DIEN", "Lắp đặt hệ thống điện", "Cơ điện", "goi"),
("LAP-NUOC", "Lắp đặt hệ thống cấp thoát nước", "Cơ điện", "goi"),
("LAP-DIEU-HOA", "Lắp điều hòa", "Cơ điện", "cai"),
("THAM-CHONG", "Thấm chống thấm", "Hoàn thiện", "m2"),
("VC-PHE-THAI", "Vận chuyển phế thải", "Khác", "m3"),
};
foreach (var (code, name, cat, unit) in works)
db.WorkItems.Add(new WorkItem { Code = code, Name = name, Category = cat, DefaultUnit = unit });
await db.SaveChangesAsync();
logger.LogInformation("Seed {Count} WorkItems", works.Length);
}
} }
// Backfill: re-assign supplier + project cho [DEMO] HĐ existing → đa dạng // Backfill: re-assign supplier + project cho [DEMO] HĐ existing → đa dạng