[CLAUDE] PurchaseEvaluation: rename 71 WorkItems theo format PMH anh Kiet FDC chot (MAT-n/SUB-n/MEP-SUB-n/MEP-EQU-n + ten "STT nhom ten") + FE sort numeric
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m33s

- anh Kiet 16:59: "MA CV gom chu MEP-SUB-1 roi ten 1 MEP Sub MEP (Full) - dung kieu vay".
- DbInitializer seed tuples 71 ma moi (VT->MAT, TP->SUB, MEP-0n->MEP-SUB-n, TB->MEP-EQU-n).
- scripts/s59-rename-workitems-pmh.sql DA CHAY prod + LocalDB Dev TRUOC push (UPDATE giu Id,
  71/71, OLD-CODES=0, verify JSON qua API prod tieng Viet nguyen ven).
- FE x2 app (SHA256 mirror): PeWorkspaceCreateView + PeHeaderForm sort numeric-aware
  (ma khong pad -> string-sort loan "10"<"2") + tree Panel 1 workItemName numeric:true.
- scripts/master-import-data.generated.md sync 71 dong W| + note mapping.
This commit is contained in:
pqhuy1987
2026-06-11 17:14:06 +07:00
parent bbd1554f74
commit c869d2617d
9 changed files with 286 additions and 148 deletions

View File

@ -2562,79 +2562,84 @@ public static class DbInitializer
if (addedProjects > 0) logger.LogInformation("Seeded {Count} real projects (S55 import)", addedProjects);
// ---------- WORKITEMS (71) — (Code, Category, Name) ----------
// S59 (2026-06-11) anh Kiệt FDC chốt format theo file PMH: Mã CV = nhóm+STT
// không pad (MAT-1 / SUB-1 / MEP-SUB-1 / MEP-EQU-1), Tên CV = "STT nhóm tên"
// ("1 MEP Sub MEP (Full)" — "đúng kiểu vậy"). Đã UPDATE rename prod+Dev cùng
// commit (scripts/s59-rename-workitems-pmh.sql) — giữ nguyên Id rows.
// FE sort client numeric-aware (mã không pad → string-sort loạn "10"<"2").
var workItems = new (string Code, string Category, string Name)[]
{
("VT-01", "Vật tư - Xây dựng", "Bê tông"),
("VT-02", "Vật tư - Xây dựng", "Thép cây, Thép lưới hàn"),
("VT-03", "Vật tư - Xây dựng", "Cọc ly tâm"),
("VT-04", "Vật tư - Xây dựng", "Cống ly tâm"),
("VT-05", "Vật tư - Xây dựng", "Cừ tràm"),
("VT-06", "Vật tư - Xây dựng", "Kim loại ( rọ đầu cọc, V mạ kẽm, Vinox, bản mã…)"),
("VT-07", "Vật tư - Xây dựng", "Nắp gang"),
("VT-08", "Vật tư - Xây dựng", "Gạch xây, Xi măng, cát, đá, gạch trồng cỏ"),
("VT-09", "Vật tư - Xây dựng", "Gạch trồng cỏ, gạch trang trí…"),
("VT-10", "Vật tư - Xây dựng", "Gạch ốp lát"),
("VT-11", "Vật tư - Xây dựng", "Ván khuôn"),
("VT-12", "Vật tư - Xây dựng", "Sơn nước"),
("VT-13", "Vật tư - Xây dựng", "Phụ gia (sika, vinkem, Gps…)"),
("VT-14", "Vật tư - Xây dựng", "PVC, vải địa"),
("VT-15", "Vật tư - Xây dựng", "Nẹp inox, nẹp nhựa"),
("VT-16", "Vật tư - Xây dựng", "Khác"),
("TP-01", "Thầu phụ - Xây dựng", "Thầu phụ cọc ( cơ, robot)"),
("TP-02", "Thầu phụ - Xây dựng", "Thầu phụ cọc Khoan nhồi"),
("TP-03", "Thầu phụ - Xây dựng", "Thầu phụ cọc CDM"),
("TP-04", "Thầu phụ - Xây dựng", "Kết cấu thép"),
("TP-05", "Thầu phụ - Xây dựng", "Cáp dự ứng lực"),
("TP-06", "Thầu phụ - Xây dựng", "Panel"),
("TP-07", "Thầu phụ - Xây dựng", "Nhôm kính, alu"),
("TP-08", "Thầu phụ - Xây dựng", "Cửa thép, Cửa cuốn, sectional door"),
("TP-09", "Thầu phụ - Xây dựng", "Cửa gỗ"),
("TP-10", "Thầu phụ - Xây dựng", "Cơ khí hoàn thiện lan can, cầu thang"),
("TP-11", "Thầu phụ - Xây dựng", "Dây cứu sinh"),
("TP-12", "Thầu phụ - Xây dựng", "Nội thất"),
("TP-13", "Thầu phụ - Xây dựng", "Vách trần thạch cao"),
("TP-14", "Thầu phụ - Xây dựng", "Vách ngăn di động"),
("TP-15", "Thầu phụ - Xây dựng", "Vách ngăn vệ sinh"),
("TP-16", "Thầu phụ - Xây dựng", "Granit"),
("TP-17", "Thầu phụ - Xây dựng", "Hoàn thiện sàn thảm, vinyl"),
("TP-18", "Thầu phụ - Xây dựng", "Chống mối"),
("TP-19", "Thầu phụ - Xây dựng", "Chống thấm"),
("TP-20", "Thầu phụ - Xây dựng", "Sơn PU, Epoxy, liquid"),
("TP-21", "Thầu phụ - Xây dựng", "Dock Leveler."),
("TP-22", "Thầu phụ - Xây dựng", "Cẩu trục"),
("TP-23", "Thầu phụ - Xây dựng", "Trạm cân"),
("TP-24", "Thầu phụ - Xây dựng", "Thang máy, thang hàng, …"),
("TP-25", "Thầu phụ - Xây dựng", "Sàn nâng."),
("TP-26", "Thầu phụ - Xây dựng", "Landscape"),
("TP-27", "Thầu phụ - Xây dựng", "Cổng xếp."),
("TP-28", "Thầu phụ - Xây dựng", "Logo, Bảng hiệu."),
("TP-29", "Thầu phụ - Xây dựng", "TP thi công Màng nhựa"),
("TP-30", "Thầu phụ - Xây dựng", "Khác"),
("MEP-01", "MEP", "MEP (Full)"),
("MEP-02", "MEP", "Hệ thống trung thế"),
("MEP-03", "MEP", "PCCC (Phòng cháy chữa cháy)."),
("MEP-04", "MEP", "Hệ thống điện, điện nhẹ"),
("MEP-05", "MEP", "Hệ thống HVAC, Utility (Thông gió & Điều hòa không khí & Phù trợ)."),
("MEP-06", "MEP", "Hệ thống cấp thoát nước"),
("MEP-07", "MEP", "Hệ thống xử lý nước thải"),
("MEP-08", "MEP", "Hệ thống solar"),
("MEP-09", "MEP", "Khác"),
("TB-01", "Thiết bị", "Máy biến áp"),
("TB-02", "Thiết bị", "Tủ điện"),
("TB-03", "Thiết bị", "Tủ trung thế."),
("TB-04", "Thiết bị", "Busway"),
("TB-05", "Thiết bị", "Cáp điện"),
("TB-06", "Thiết bị", "Thiết bị Utility (Máy nén khí, Hút bụi hút mùi, Boiler,...)"),
("TB-07", "Thiết bị", "Máy lạnh"),
("TB-08", "Thiết bị", "Ống thép, inox"),
("TB-09", "Thiết bị", "Thang máng cáp"),
("TB-10", "Thiết bị", "Ống PVC, HDPE"),
("TB-11", "Thiết bị", "Thiết bị báo cháy"),
("TB-12", "Thiết bị", "Đèn (đèn chiếu sáng, đèn năng lượng, đèn exit….)"),
("TB-13", "Thiết bị", "Thiết bị chữa cháy (Sprinkler, Chữa cháy khí, FM200,…)"),
("TB-14", "Thiết bị", "Bơm (bơm PCCC, Bơm nước…)"),
("TB-15", "Thiết bị", "Bồn nước, Thiết bị vệ sinh"),
("TB-16", "Thiết bị", "Khác"),
("MAT-1", "Vật tư - Xây dựng", "1 Mat Bê tông"),
("MAT-2", "Vật tư - Xây dựng", "2 Mat Thép cây, Thép lưới hàn"),
("MAT-3", "Vật tư - Xây dựng", "3 Mat Cọc ly tâm"),
("MAT-4", "Vật tư - Xây dựng", "4 Mat Cống ly tâm"),
("MAT-5", "Vật tư - Xây dựng", "5 Mat Cừ tràm"),
("MAT-6", "Vật tư - Xây dựng", "6 Mat Kim loại ( rọ đầu cọc, V mạ kẽm, Vinox, bản mã…)"),
("MAT-7", "Vật tư - Xây dựng", "7 Mat Nắp gang"),
("MAT-8", "Vật tư - Xây dựng", "8 Mat Gạch xây, Xi măng, cát, đá, gạch trồng cỏ"),
("MAT-9", "Vật tư - Xây dựng", "9 Mat Gạch trồng cỏ, gạch trang trí…"),
("MAT-10", "Vật tư - Xây dựng", "10 Mat Gạch ốp lát"),
("MAT-11", "Vật tư - Xây dựng", "11 Mat Ván khuôn"),
("MAT-12", "Vật tư - Xây dựng", "12 Mat Sơn nước"),
("MAT-13", "Vật tư - Xây dựng", "13 Mat Phụ gia (sika, vinkem, Gps…)"),
("MAT-14", "Vật tư - Xây dựng", "14 Mat PVC, vải địa"),
("MAT-15", "Vật tư - Xây dựng", "15 Mat Nẹp inox, nẹp nhựa"),
("MAT-16", "Vật tư - Xây dựng", "16 Mat Khác"),
("SUB-1", "Thầu phụ - Xây dựng", "1 Sub Thầu phụ cọc ( cơ, robot)"),
("SUB-2", "Thầu phụ - Xây dựng", "2 Sub Thầu phụ cọc Khoan nhồi"),
("SUB-3", "Thầu phụ - Xây dựng", "3 Sub Thầu phụ cọc CDM"),
("SUB-4", "Thầu phụ - Xây dựng", "4 Sub Kết cấu thép"),
("SUB-5", "Thầu phụ - Xây dựng", "5 Sub Cáp dự ứng lực"),
("SUB-6", "Thầu phụ - Xây dựng", "6 Sub Panel"),
("SUB-7", "Thầu phụ - Xây dựng", "7 Sub Nhôm kính, alu"),
("SUB-8", "Thầu phụ - Xây dựng", "8 Sub Cửa thép, Cửa cuốn, sectional door"),
("SUB-9", "Thầu phụ - Xây dựng", "9 Sub Cửa gỗ"),
("SUB-10", "Thầu phụ - Xây dựng", "10 Sub Cơ khí hoàn thiện lan can, cầu thang"),
("SUB-11", "Thầu phụ - Xây dựng", "11 Sub Dây cứu sinh"),
("SUB-12", "Thầu phụ - Xây dựng", "12 Sub Nội thất"),
("SUB-13", "Thầu phụ - Xây dựng", "13 Sub Vách trần thạch cao"),
("SUB-14", "Thầu phụ - Xây dựng", "14 Sub Vách ngăn di động"),
("SUB-15", "Thầu phụ - Xây dựng", "15 Sub Vách ngăn vệ sinh"),
("SUB-16", "Thầu phụ - Xây dựng", "16 Sub Granit"),
("SUB-17", "Thầu phụ - Xây dựng", "17 Sub Hoàn thiện sàn thảm, vinyl"),
("SUB-18", "Thầu phụ - Xây dựng", "18 Sub Chống mối"),
("SUB-19", "Thầu phụ - Xây dựng", "19 Sub Chống thấm"),
("SUB-20", "Thầu phụ - Xây dựng", "20 Sub Sơn PU, Epoxy, liquid"),
("SUB-21", "Thầu phụ - Xây dựng", "21 Sub Dock Leveler."),
("SUB-22", "Thầu phụ - Xây dựng", "22 Sub Cẩu trục"),
("SUB-23", "Thầu phụ - Xây dựng", "23 Sub Trạm cân"),
("SUB-24", "Thầu phụ - Xây dựng", "24 Sub Thang máy, thang hàng, …"),
("SUB-25", "Thầu phụ - Xây dựng", "25 Sub Sàn nâng."),
("SUB-26", "Thầu phụ - Xây dựng", "26 Sub Landscape"),
("SUB-27", "Thầu phụ - Xây dựng", "27 Sub Cổng xếp."),
("SUB-28", "Thầu phụ - Xây dựng", "28 Sub Logo, Bảng hiệu."),
("SUB-29", "Thầu phụ - Xây dựng", "29 Sub TP thi công Màng nhựa"),
("SUB-30", "Thầu phụ - Xây dựng", "30 Sub Khác"),
("MEP-SUB-1", "MEP", "1 MEP Sub MEP (Full)"),
("MEP-SUB-2", "MEP", "2 MEP Sub Hệ thống trung thế"),
("MEP-SUB-3", "MEP", "3 MEP Sub PCCC (Phòng cháy chữa cháy)."),
("MEP-SUB-4", "MEP", "4 MEP Sub Hệ thống điện, điện nhẹ"),
("MEP-SUB-5", "MEP", "5 MEP Sub Hệ thống HVAC, Utility (Thông gió & Điều hòa không khí & Phù trợ)."),
("MEP-SUB-6", "MEP", "6 MEP Sub Hệ thống cấp thoát nước"),
("MEP-SUB-7", "MEP", "7 MEP Sub Hệ thống xử lý nước thải"),
("MEP-SUB-8", "MEP", "8 MEP Sub Hệ thống solar"),
("MEP-SUB-9", "MEP", "9 MEP Sub Khác"),
("MEP-EQU-1", "Thiết bị", "1 MEP _ Equ Máy biến áp"),
("MEP-EQU-2", "Thiết bị", "2 MEP _ Equ Tủ điện"),
("MEP-EQU-3", "Thiết bị", "3 MEP _ Equ Tủ trung thế."),
("MEP-EQU-4", "Thiết bị", "4 MEP _ Equ Busway"),
("MEP-EQU-5", "Thiết bị", "5 MEP _ Equ Cáp điện"),
("MEP-EQU-6", "Thiết bị", "6 MEP _ Equ Thiết bị Utility (Máy nén khí, Hút bụi hút mùi, Boiler,...)"),
("MEP-EQU-7", "Thiết bị", "7 MEP _ Equ Máy lạnh"),
("MEP-EQU-8", "Thiết bị", "8 MEP _ Equ Ống thép, inox"),
("MEP-EQU-9", "Thiết bị", "9 MEP _ Equ Thang máng cáp"),
("MEP-EQU-10", "Thiết bị", "10 MEP _ Equ Ống PVC, HDPE"),
("MEP-EQU-11", "Thiết bị", "11 MEP _ Equ Thiết bị báo cháy"),
("MEP-EQU-12", "Thiết bị", "12 MEP _ Equ Đèn (đèn chiếu sáng, đèn năng lượng, đèn exit….)"),
("MEP-EQU-13", "Thiết bị", "13 MEP _ Equ Thiết bị chữa cháy (Sprinkler, Chữa cháy khí, FM200,…)"),
("MEP-EQU-14", "Thiết bị", "14 MEP _ Equ Bơm (bơm PCCC, Bơm nước…)"),
("MEP-EQU-15", "Thiết bị", "15 MEP _ Equ Bồn nước, Thiết bị vệ sinh"),
("MEP-EQU-16", "Thiết bị", "16 MEP _ Equ Khác"),
};
var existingWorkItemCodes = await db.WorkItems.Select(w => w.Code).ToListAsync();