Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Nguồn yêu cầu: Nghiệm thu mối hàn 28-10-26 R1.docx, tại C:\Users\acer\Downloads\Nghiệm thu mối hàn 28-10-26 R1.docx.
Ngày lập: 28/10/2026. Trạng thái: đã triển khai mã giai đoạn 1–2; hai migration đã áp dụng lên Supabase thật. Giao diện kiểm tra chất lượng đã được thêm vào Nhật ký hàn; hiện cần cấu hình Basic Auth trên server để bật đọc/ghi chất lượng. Các giai đoạn 3 trở đi chưa triển khai.
Kế hoạch được lập sau khi đọc toàn bộ nội dung chữ, bảng tiêu chí và xem cả 4 hình trong tài liệu: bảng dung sai PQ, vị trí menu Biên bản mối hàn, danh sách tình trạng thí nghiệm hiện tại và Dashboard. Các mục dẫn nguồn bên dưới dùng tên đề mục/nội dung trong Word; không gán số trang khi chưa kiểm chứng phân trang.
Ứng dụng cần sửa là quan-ly-nhan-su, nơi hiện chứa nhật ký hàn, biên bản và Dashboard. Thư mục thanhphatquanlyhanray là ứng dụng riêng; không triển khai trùng chức năng vào đó. Hướng dẫn cài đặt và vận hành hiện có nằm trong README của ứng dụng.
Đã thêm các phần sau vào mã nguồn:
anon/authenticated; chỉ service_role dùng được. Giai đoạn 2 đã thêm endpoint HTTP có xác thực trước khi gọi lớp này.lich_su_moi_han bao phủ cả RPC mới/cũ, Excel, Autolisp và insert trực tiếp. Không cần sửa từng nhánh fallback của weldReportData.ts; lỗi khởi tạo sẽ làm insert thất bại trong cùng transaction. Mối mới chưa nhập kiểm tra vẫn xoá được; mối đã ghi nhận chất lượng được bảo vệ khỏi xoá nhầm.moi_han_can_bo_sung_chat_luong liệt kê mối chưa đủ căn cứ; NDT Đạt cũ không tự trở thành Nghiệm thu đạt.Không tự quyết thay nghiệp vụ: chưa tạo tiêu chí PQ cho dự án thật. Muốn áp dụng phải khai báo đủ bốn giới hạn, biên mở/đóng, yêu cầu NDT, NDT trước/sau RFI và người xác nhận. Miễn NDT bắt buộc có căn cứ. Tiêu chí đã dùng không được sửa nội dung; tạo phiên bản mới. Mối đã nghiệm thu bị chặn sửa phép kiểm tra cho tới khi có quy trình bản sửa đổi ở giai đoạn sau.
Đã triển khai trên DB thật: theo yêu cầu của người dùng, migration được chạy qua SQL Editor của dự án chamdiemnhansu — ssgwccxdcpejyytmfarc lúc 15:00:59 ngày 28/10/2026 (UTC+7). Đã kiểm tra cột/kiểu dữ liệu, chạy thử toàn bộ migration trong transaction rồi ROLLBACK thành công trên schema thật, sau đó chạy bản chính thức và COMMIT. Không chạy lại migration lịch sử hoặc drop_all.sql.
Đối soát trước/sau triển khai:
| Kiểm tra | Kết quả |
|---|---|
Số bản ghi lich_su_moi_han | 13.515 → 13.515 |
| Dấu kiểm tra toàn bộ nội dung nhật ký, sắp theo ID | 8dcfdbe332f10d57a4cb35c22049f798 trước/sau giống nhau |
| Số dự án | 7 → 7 |
| Bảng chất lượng mới / bảng đã bật RLS | 7 / 7 |
| View chất lượng / RPC nghiệp vụ | 2 / 3 |
Bảng/RPC mới truy cập trực tiếp được bởi anon hoặc authenticated | 0 / 0 |
| Số dòng view chất lượng | 13.515 |
| Dữ liệu kiểm tra / mối đã nghiệm thu / cấu hình tiêu chí tự tạo | 0 / 0 / 0 |
| Trigger mới trên nhật ký đang bật | 2 |
Không mất hoặc sửa nội dung nhật ký cũ, không tự gán nghiệm thu đạt và không áp dụng dung sai PQ cho dự án thật. Lần chạy trên schema thật có hoàn tác không phải bản sao DB đầy đủ hoặc kiểm thử nhiều phiên đồng thời. Kết quả kiểm tra cuối được giữ trong SQL Editor.
Kiểm thử đã đạt: test-weld-quality.mjs, test-weld-quality-db.mjs (PostgreSQL WASM/PGlite cài ở thư mục tạm, không thêm dependency vào ứng dụng), và ba bài hồi quy test-journal-pagination.mjs, test-overview-report.mjs, test-lunch-break.mjs. DB thử nghiệm dùng schema nguồn tối thiểu, kiểm tra chạy lại migration cả trước/sau có hồ sơ, bảo toàn dữ liệu cũ, quyền, giới hạn/phiên bản, RFI trùng, nghiệm thu từng phần, thử lại, lỗi lưu hồ sơ và dữ liệu chốt. Chưa phải thử trên bản sao đầy đủ của DB thật hoặc mô phỏng đồng thời nhiều kết nối.
pnpm build đạt, bao gồm bước kiểm tra TypeScript và tạo 47 trang. pnpm exec tsc --noEmit --incremental false chạy riêng sau build đạt. Lint riêng bốn file TypeScript/script mới đạt. pnpm lint toàn ứng dụng báo 28 lỗi, 30 cảnh báo ở các file cũ, gồm script CommonJS và các component báo cáo/nhật ký; chưa sửa ngoài phạm vi giai đoạn này. Lần kiểm tra TypeScript ban đầu chạy cùng build gặp file .next/types bị tạo lại; đã chạy lại thành công sau build.
Đã triển khai trong mã nguồn:
/api/weld-quality kiểm tra Basic Auth tại route, chặn yêu cầu ghi từ website khác, kiểm tra JSON/ngày/UUID/phương pháp/số đo/phiên bản. Không dùng currentViewer để cấp quyền và không đưa service_role ra trình duyệt. Thiếu cấu hình đăng nhập trả 503; nhật ký cũ vẫn mở được nhưng không cho chọn/lưu kiểm tra.DB thật: migration giai đoạn 2 đã chạy thử rồi hoàn tác, sau đó commit trên dự án ssgwccxdcpejyytmfarc lúc 15:34:58 ngày 28/10/2026 (UTC+7). Đã tạo view nhat_ky_han_chat_luong chỉ server đọc, trigger đồng bộ NDT và trigger chặn ghi đè kết quả NDT qua màn hình/import cũ. Đối soát sau commit: 13.515 bản ghi gốc và 13.515 dòng view; dấu kiểm tra dữ liệu gốc vẫn 8dcfdbe332f10d57a4cb35c22049f798; cả hai trigger bật; anon/authenticated không đọc được view, service_role đọc được. Dữ liệu kiểm tra và tiêu chí vẫn bằng 0, không có dữ liệu thử ghi vào DB thật.
Kiểm thử: sáu script test-weld-quality.mjs, test-weld-quality-db.mjs, test-weld-quality-journal.mjs, test-journal-pagination.mjs, test-overview-report.mjs, test-lunch-break.mjs đã đạt. Test DB chạy lại cả hai migration và kiểm tra đồng bộ/bảo vệ NDT. Test API kiểm tra auth/origin/người ghi nhận, lọc trước phân trang, lấy hơn 1.000 dòng, lỗi từng mối, phiên bản cũ, giới hạn xử lý đồng thời và Excel Việt/Anh. TypeScript và build production đã đạt; lint riêng các file mới và hook đã sửa đạt. File WeldingJournalList.tsx vẫn có hai lỗi React memoization từ trước; chưa sửa logic gợi ý mã ngoài phạm vi.
Điều kiện còn thiếu để vận hành: server hiện chưa có APP_BASIC_AUTH_USER và APP_BASIC_AUTH_PASSWORD, nên chưa bật được thao tác ghi kiểm tra trên ứng dụng thật. Cấu hình cả hai trong quan-ly-nhan-su/.env.local hoặc môi trường triển khai, khởi động lại server, rồi đăng nhập qua hộp thoại của trình duyệt. Basic Auth bảo vệ toàn ứng dụng theo cơ chế sẵn có. Không ghi mật khẩu vào README/Git và không tự tạo tài khoản thay người dùng. Xem hướng dẫn giai đoạn 2.
Đã kiểm tra trang Nhật ký thực tế hiển thị danh sách/nút/bộ lọc/cảnh báo khi thiếu đăng nhập. Chưa hoàn tất kiểm thử nhập–lưu bằng trình duyệt và chưa thử ghi kiểm tra trên DB thật; trang thử riêng bị Chrome chặn, máy chủ thử đã dừng. Chưa thay đổi Dashboard sang KPI nghiệm thu (thuộc giai đoạn 7), chưa tạo RFI hoặc bộ bản in mới.
Thực hiện theo "phương án đề xuất" ở mục 3.1 (mài + trực quan + hình học đạt [+ NDT nếu tiêu chí ndt_truoc_rfi] → phát RFI → nghiệm thu một phần → hồ sơ). Các quyết định mục 3 chưa được người phụ trách xác nhận; mẫu in là mẫu tạm.
nhan_luc.vnr, không cần migration; in kèm cột Công nhân, không tính trùng), dòng Nghiệm thu trong ngày (đếm mối Đạt theo ngày nghiệm thu, tách khỏi ngày hàn; hiện ở bản in, cần đăng nhập), và In nhiều ngày (chọn khoảng ngày trong danh sách, tối đa 31 phiếu, mỗi ngày một trang, đọc từ dữ liệu đã lưu; thời tiết/nhiệt độ để trống cho tay điền). Mô tả ATW giữ như danh mục hiện có vì Word chưa nêu nội dung riêng.src/lib/weldAcceptance.ts; server: src/lib/server/weldAcceptanceServer.ts; API: các action rfi-* của /api/weld-quality (cùng Basic Auth).dashboard-quality) nên số thẻ luôn bằng danh sách mở ra, áp dụng đúng bộ lọc hiện tại và tự làm mới khi lưu kiểm tra/nghiệm thu. Chưa đăng nhập hoặc chưa cấu hình Basic Auth → thẻ hiện "—". "Ngày gần nhất" không nhận ngày tương lai. QualityReportDashboard/ đã rà: không có chỉ số "nghiệm thu" nên không nhầm với NDT đạt. / không cần đổi cho hai thẻ mới.Đăng nhập (thay Basic Auth cho phần nghiệm thu): API /api/weld-quality nhận token Supabase Auth (header X-Supabase-Token) và chỉ cho email có trong bảng nguoi_dung_nghiem_thu (migration, đã chạy trên DB thật ngày 28/10/2026, bảng có 1 email). Gặp 401 thì ứng dụng hiện hộp đăng nhập (QualityLoginDialog). Trang /login (Supabase Auth) khóa giao diện: chưa đăng nhập thì chuyển về /login (kiểm tra ở src/proxy.ts; API và file tĩnh không bị chặn ở đây). Basic Auth cũ vẫn dùng được nếu có đặt biến. Tài khoản phải tạo ở Authentication → Users.
Kiểm thử trên DB thật (28/10/2026, hoàn tác toàn bộ): chạy một khối SQL trên schema thật tạo 4 mối thử, tiêu chí, RFI, nghiệm thu một phần và bản sửa đổi, rồi cố ý báo lỗi cuối khối để giao dịch tự hoàn tác. 24/24 bước đạt (mối thiếu số đo = Chờ mài; ngoài dung sai = Không đạt; RFI chặn mối lỗi/thiếu số đo/trùng RFI; gửi lại không tạo trùng; chấp nhận 1 + chưa nghiệm thu 1 → chỉ 1 mối Nghiệm thu đạt, đủ 3 hồ sơ, RFI vẫn mở; mối đã nghiệm thu bị khóa sửa; bản sửa đổi chỉ thêm). Đối soát sau đó: số dòng 10 bảng chất lượng/nhật ký giống hệt trước khi chạy (13.515 mối), không còn bản ghi ZZTEST/ZZ-RFI. Chưa kiểm thử được qua giao diện trình duyệt.
Kiểm thử bổ sung: test-weld-quality-login.mjs (token Supabase, danh sách email 401/403, origin, Basic Auth cũ) và test-weld-quality-extras-db.mjs (PGlite: bản sửa đổi chỉ thêm, danh sách email/bảng chỉ service_role, chạy lại migration). pnpm build và tsc đạt; lỗi lint còn lại đều có từ trước.
Kiểm thử: test-weld-acceptance.mjs (lọc tên/ngày/km, mối thiếu lý trình, thứ tự tự nhiên, mặc định nghiệm thu) và các bài test-weld-quality*.mjs, test-journal-pagination, test-overview-report, test-lunch-break, test-daily-report-rails đạt; tsc và ESLint các file mới đạt. RPC phát RFI/hoàn thành đã được test DB ở giai đoạn 1 (không đổi). Chưa: thử bằng trình duyệt, đăng nhập thật, giai đoạn 0 (mẫu/quy định), giai đoạn 8 (thí điểm, bản sao DB, quay lui). Chưa tạo tiêu chí PQ cho dự án thật nên chưa mối nào đủ điều kiện RFI cho tới khi xác nhận tiêu chí.
Đưa chức năng “Biên bản mối hàn” thành quy trình quản lý chất lượng liên kết với từng mối hàn thực tế:
Hàn → Mài và kiểm tra nội bộ → Phát yêu cầu nghiệm thu/thí nghiệm → Thí nghiệm không phá huỷ → Nghiệm thu hiện trường → Hoàn thành, lưu hồ sơ → Ký biên bản và in lại.
Thứ tự phát yêu cầu và thí nghiệm ở trên là phương án đề xuất theo phần TÓM TẮT LẠI MODULE NÀY NHƯ SAU; tài liệu có chỗ diễn đạt khác, cần chốt tại giai đoạn 0.
Các nhóm việc bắt buộc:
Không mở rộng sang thay đổi cách đánh mã mối, thuật toán GPS, tính công, giải toả ứng suất hay xây hệ thống ký số. “Hàn: không thay đổi” được giữ về thao tác và dữ liệu sản xuất; chỉ bổ sung giá trị khởi tạo tình trạng chất lượng theo yêu cầu.
Các đường dẫn ở bảng này tính từ thư mục quan-ly-nhan-su/, trừ khi ghi rõ supabase/ ở gốc kho mã.
| Thành phần | Hiện trạng quan sát được | Hướng xử lý |
|---|---|---|
src/components/WeldAcceptanceReport.tsx | Biểu mẫu nghiệm thu nhiệt nhôm nhập tay, dữ liệu trong React state, có window.print(), chưa lấy danh sách mối từ nhật ký trong component này | Dùng lại phần trình bày/in phù hợp; bổ sung dữ liệu thực, lưu hồ sơ và quy trình RFI/nghiệm thu |
src/components/WeldingJournalList.tsx | Có thêm/sửa, import/export, lọc và xem mối; tình trạng đang có Chờ thí nghiệm/Đạt/Không đạt/Không thí nghiệm | Thêm kiểm tra sau mài, NDT, tình trạng tiến trình; cập nhật cả bảng, mobile, bộ lọc, chi tiết, import/export |
src/lib/weldReportData.ts | Khai báo WeldTestStatus, đọc/ghi nhật ký, resolveWeldTestStatus, hàm tổng hợp và cache; thêm nhật ký có các nhánh RPC dự phòng | Giữ ý nghĩa trạng thái thí nghiệm cũ; thêm dữ liệu chất lượng, quy tắc tiến trình và đồng bộ cache |
src/lib/parseWeldJournalExcel.ts | Định dạng import và file mẫu có cột tinh_trang_thi_nghiem | Không khiến Excel cũ tự thành nghiệm thu đạt; mở rộng mẫu nếu nghiệp vụ cần nhập kiểm tra qua Excel |
src/lib/weldingHistoryDb.ts | Có đường đọc lịch sử và suy luận kết quả riêng; một số fallback trả “Đạt” | Rà soát để kết quả lịch sử không bị dùng làm bằng chứng hoàn thành nghiệm thu |
src/components/OverviewDashboard.tsx | KPI “Đạt” đang theo mối sản xuất đã thí nghiệm; có đường dữ liệu chi tiết, tổng hợp nhanh và rollup; đã có tính ngày dữ liệu gần nhất | Đổi nguồn tính KPI nghiệm thu; kiểm tra lỗi ngày qua cả ba đường dữ liệu, không mặc định viết lại toàn bộ |
src/lib/overviewAggregates.ts, src/lib/weldDailyStats.ts | Thống kê nhanh đang dựa vào kết quả thí nghiệm và các cột so_dat, so_cho_tn | Bổ sung thống kê nghiệm thu/chờ mài; không đổi nghĩa âm thầm của các cột cũ |
src/components/DailyWorkReport.tsx, DailyWorkReportPrint.tsx, src/lib/dailyReportDb.ts | Đã có báo cáo ngày, nhân lực, thiết bị và bản in | Tái sử dụng dữ liệu/phần in phù hợp; kiểm tra độ phù hợp với mẫu nhật ký thi công trước khi dùng chung |
src/lib/mapPointsDb.ts | Có lý trình và liên kết GPS với ID nhật ký hàn |
Đây là kết quả đọc mã nguồn cục bộ, chưa xác nhận schema, dữ liệu hay hành vi trên môi trường đang vận hành.
Tài liệu dùng cả ba cách viết. Đề xuất thống nhất tên hiển thị “Phiếu yêu cầu nghiệm thu (RFI)” và chốt mã biểu mẫu chính thức với người phụ trách.
Phần đầu nói chỉ phát phiếu khi xong mài, xong siêu âm; phần tóm tắt nói chỉ cần trực quan, độ phẳng đạt và phiếu bao gồm thí nghiệm không phá huỷ. Cần xác nhận một trong hai luồng:
Chưa chốt thì chưa cố định điều kiện phát hành RFI. Có thể làm trước phần dữ liệu và nhập kiểm tra. Không mặc định phát RFI hàng ngày chỉ vì có sản xuất.
Hình bảng PQ trong Word thể hiện:
| Chỉ tiêu | Giá trị đọc từ tài liệu | Cách biểu diễn đề xuất, chờ xác nhận biên |
|---|---|---|
| Theo chiều dọc trên mặt lăn | +0,40 / -0,10 mm | Khoảng hai phía bất đối xứng: -0,10 đến +0,40 |
| Theo chiều ngang trên nấm ray | ±0,40 mm | Khoảng -0,40 đến +0,40 |
| Theo chiều ngang trên các đầu chân ray | ±2,0 mm | Khoảng -2,0 đến +2,0 |
| Độ phẳng mặt lăn trên chiều dài khu vực mài | 0,20 mm | Giới hạn trên 0,20; cách xử lý dấu và miền đo cần xác nhận |
Đây là ví dụ PQ trong tài liệu, không tự áp dụng cho mọi dự án/công nghệ hàn. Không dùng một phép giá trị < sai số cho cả bốn chỉ tiêu: sẽ sai với ngưỡng âm và ngưỡng bất đối xứng.
Cần chốt: có nhận giá trị đúng bằng giới hạn không; làm tròn bao nhiêu chữ số; dấu đo theo hướng nào; chiều dài/thước đo áp dụng. Ghi chú trong hình: dung sai ngang dương làm tăng khổ đường, nên phải giữ dấu khi nhập và in.
Tài liệu yêu cầu Thử nghiệm/Chấp thuận tự chọn Chờ thí nghiệm, một số loại tự chọn Không thí nghiệm. Mã hiện tại có Đào tạo, Thử nghiệm, Chấp thuận, Sản xuất, Tần suất; chưa đủ căn cứ để gán mọi loại còn lại là Không thí nghiệm.
Cần một bảng quy tắc chính thức theo dự án/loại mối: có mài không, có đo hình học không, có NDT không, có tham gia nghiệm thu công việc không. Với mối miễn NDT, phải có căn cứ miễn; không đổi “Không thí nghiệm” thành “NDT đạt”.
Tài liệu ghi rõ “Mẫu các loại biên bản và giải thích (Trinh bổ sung)”. Cần nhận đủ mẫu theo dự án và FBW/ATW, trường bắt buộc, quy tắc số phiếu, các bên tham dự, người ký và căn cứ nghiệm thu.
Cần chốt thêm: nhật ký thi công có phải mẫu báo cáo ngày hiện tại không; số công nhân VNR lấy từ đâu; khối lượng nghiệm thu trong ngày có bắt buộc thể hiện không; một RFI có được nghiệm thu nhiều đợt không; phiếu giai đoạn lập mỗi lần hay theo mốc giai đoạn; cách lưu tình trạng ký. Chưa xác nhận quy định hợp đồng/pháp lý từ câu hỏi “Check quy định” trong Word; không coi nội dung này là kết luận pháp lý.
Đề xuất giữ “tất cả module open để chỉnh sửa” bằng cách cho sửa nháp và tạo bản sửa đổi khi hồ sơ đã phát hành. Việc sửa thông tin in không được tự thay kết quả đo hoặc làm hồ sơ đã ký đổi nội dung mà không có dấu vết. Cơ chế này cần thống nhất cùng người phụ trách hồ sơ.
Kiểm tra nội bộ từng mối: trực quan; bốn giá trị đo và kết luận hình học; phương pháp NDT mặc định Siêu âm, có Từ tính/Thẩm thấu; kết quả NDT; thời điểm và người ghi nhận. Giá trị chưa nhập là “Chưa kiểm tra”, không phải 0 hoặc Đạt.
Tình trạng tiến trình: Chờ mài, Chờ thí nghiệm, Không đạt, Nghiệm thu đạt; thêm cách hiển thị rõ “NDT đạt, chờ nghiệm thu” và “Không thí nghiệm” để người dùng không nhầm đã hoàn tất. Các nhãn bổ sung là đề xuất làm rõ khoảng trống trong tài liệu; chốt ở giai đoạn 0.
Hồ sơ nghiệm thu: RFI, danh sách mối trong RFI, đợt nghiệm thu, mối tham gia/loại trừ, bộ hồ sơ được sinh, phiên bản và tình trạng ký. Trạng thái hồ sơ khác với kết quả chất lượng của mối.
Không đổi tên hàng loạt giá trị Đạt trong tinh_trang_thi_nghiem thành Nghiệm thu đạt. Dữ liệu cũ chỉ chứng minh kết quả thí nghiệm, không chứng minh đã có nghiệm thu các bên.
| Sự kiện/điều kiện | Kết quả mong muốn |
|---|---|
| Tạo mối sản xuất mới | Chờ mài, chưa có kết luận trực quan/hình học/NDT |
| Mối Thử nghiệm hoặc Chấp thuận | Tự Chờ thí nghiệm theo yêu cầu; điều kiện mài/hình học trước RFI vẫn phải chốt riêng |
| Loại được miễn NDT theo quy tắc đã chốt | Không thí nghiệm, lưu căn cứ miễn; không tự nghiệm thu đạt |
| Đã mài, trực quan đạt, đủ bốn phép đo và trong dung sai | Chờ thí nghiệm nếu thuộc diện phải NDT |
| Trực quan hoặc hình học hoặc NDT không đạt | Không đạt, nêu tiêu chí lỗi và hướng xử lý |
| NDT đạt, chưa hoàn thành nghiệm thu | Giữ kết quả NDT đạt, hiển thị đang chờ nghiệm thu |
| Bỏ chọn vì chưa nghiệm thu trong đợt | Không xuất hiện trong khối lượng hoàn thành; không tự coi là lỗi chất lượng |
| Bỏ chọn vì không đạt | Loại khỏi danh sách được chấp nhận, ghi lý do và liên kết xử lý sửa chữa/hàn lại |
| Đủ tiêu chí, được chọn và bấm Hoàn thành nghiệm thu thành công | Nghiệm thu đạt, có liên kết đợt/hồ sơ đã lưu |
| Sửa phép đo/kết quả của mối đã nghiệm thu | Không giữ kết luận cũ âm thầm; yêu cầu xử lý bản sửa đổi và đánh giá lại phần bị ảnh hưởng |
Tên bên dưới là tên đề xuất, chưa phải bảng/cột hiện hữu. Chốt tên theo quy ước dự án khi viết migration.
kiem_tra_moi_han: liên kết ID lich_su_moi_han, trực quan, bốn số đo mm, phương pháp/kết quả NDT, thời gian mài/kiểm tra, người ghi nhận, ghi chú và phiên bản tiêu chí dùng để xét.phieu_yeu_cau_nghiem_thu + bảng chi tiết: dự án, số phiếu, ngày phát hành, ngày mời, phạm vi, các bên, trạng thái và các ID mối cụ thể.dot_nghiem_thu + bảng chi tiết: tham chiếu RFI, ngày/địa điểm/thành phần, mối hoàn thành, mối loại trừ và lý do. Nếu cho nghiệm thu nhiều đợt, chỉ lấy phần RFI còn lại.ho_so_nghiem_thu: loại biểu mẫu, phiên bản mẫu, tham chiếu đợt, dữ liệu đã chốt tại thời điểm phát hành, tình trạng ký và nơi lưu bản hồ sơ. Có thể lưu ba tài liệu trong một bộ hồ sơ nếu cách này đủ cho mẫu thực tế.Liên kết bằng ID ổn định; không chỉ bằng tên/mã mối có thể được đồng bộ lại. Hồ sơ đã phát hành phải lưu tên/mã, số đo, dung sai, người tham gia và khối lượng tại thời điểm phát hành để in lại không bị thay theo dữ liệu nguồn mới.
Các ô dưới đây theo dõi công việc triển khai. Dấu hoàn thành của giai đoạn 1 phản ánh mã và kiểm thử cục bộ; điều kiện chạy trên bản sao DB thật vẫn cần được kiểm chứng trước triển khai. Mỗi giai đoạn chỉ kết thúc vận hành khi đạt tiêu chí đầu ra.
Mục tiêu: giải quyết những chỗ chưa rõ của Word trước khi cố định quy tắc hệ thống.
Đầu ra: bảng quy tắc đã chốt, bộ mẫu có phiên bản, bảng nguồn dữ liệu và bộ tình huống nghiệm thu. Có thể tiếp tục phần không phụ thuộc mẫu; chưa công bố bản in chính thức khi chưa nhận mẫu.
Phụ thuộc: quy tắc cốt lõi giai đoạn 0. Phạm vi: migration mới trong supabase/, weldReportData.ts, lớp dữ liệu chất lượng và các view/RPC liên quan.
service_role qua lớp server-only; không mở HTTP endpoint hoặc cấp quyền từ người dùng giả lập trên UI.anon và thao tác xoá mối trống.Tiêu chí hoàn thành: migration chạy được trên bản sao dữ liệu; dữ liệu sản xuất và các liên kết cũ giữ nguyên; giới hạn âm/dương được xét đúng; ghi hồ sơ lỗi giữa chừng không để mối ở trạng thái đã nghiệm thu.
Phụ thuộc: giai đoạn 1. Phạm vi: WeldingJournalList.tsx, lớp dữ liệu nhật ký, mẫu/import/export Excel, các đường tạo hàng loạt.
Tiêu chí hoàn thành: tạo mối → mài → nhập kiểm tra → NDT chạy đúng theo loại; tải lại trang vẫn còn dữ liệu; nhập một chỉ tiêu ngoài giới hạn là Không đạt; chưa đo không trở thành Đạt; kiểm tra hàng loạt không ghi nhầm mối.
Phụ thuộc: bảng ánh xạ/mẫu ở giai đoạn 0 và nền dữ liệu giai đoạn 1; có thể triển khai độc lập với giao diện NDT sau khi ổn định dữ liệu.
Tiêu chí hoàn thành: khối lượng đối chiếu khớp nhật ký hàn; nhân lực VNR không bị bỏ sót; thông tin sửa tay tồn tại sau tải lại; bản in nhiều ngày không lẫn dự án/ngày.
Phụ thuộc: giai đoạn 1–2 và quyết định thứ tự RFI/NDT ở giai đoạn 0. Phạm vi: phần RFI trong tab hiện có, lớp dữ liệu, truy vấn lý trình và mẫu phiếu.
Tiêu chí hoàn thành: phiếu chỉ chứa mối đúng dự án, đúng tập chọn và đủ điều kiện; không tự phát theo ngày sản xuất; tải lại/in lại đúng khối lượng đã phát hành.
Phụ thuộc: giai đoạn 4 và dữ liệu NDT giai đoạn 2. Phạm vi: phần nghiệm thu, RPC/API hoàn thành, đồng bộ tình trạng và lỗi/hàn lại.
Tiêu chí hoàn thành: với RFI 10 mối, chấp nhận 8 và loại 2 thì biên bản, trạng thái và KPI chỉ tăng 8; bấm lại không tạo thêm đợt/hồ sơ; hai người cùng hoàn thành không ghi nhận trùng; lỗi lưu không tạo trạng thái nghiệm thu đạt giả.
Phụ thuộc: mẫu chính thức giai đoạn 0, dữ liệu từ giai đoạn 3–5. Phần dựng mẫu có thể làm trước, nhưng phải kiểm thử với dữ liệu thật của quy trình.
| Loại biểu mẫu theo Word | Thời điểm hình thành | Dữ liệu chính |
|---|---|---|
| Nhật ký thi công | Theo ngày sản xuất | Dự án/ngày, nhân lực gồm VNR, thiết bị, công việc, khối lượng |
| Phiếu yêu cầu nghiệm thu | Khi phát RFI | Phạm vi, danh sách mối, các bên, lịch mời và nội dung kiểm tra |
| Phiếu nghiệm thu hoàn thành công việc xây dựng | Khi hoàn thành nghiệm thu | Kết quả thực tế, khối lượng được chấp nhận, căn cứ và thành phần |
| Phụ lục nghiệm thu công việc xây dựng | Cùng đợt nghiệm thu | Danh sách mối được chấp nhận và dữ liệu chi tiết theo mẫu |
| Phiếu nghiệm thu giai đoạn xây dựng | Theo yêu cầu sinh hồ sơ của Word; cần chốt mốc áp dụng | Thông tin giai đoạn/phạm vi và khối lượng đã được chấp nhận |
Tiêu chí hoàn thành: một đợt tạo được đúng bộ ba hồ sơ theo mẫu đã chốt, còn hai mẫu trước đó liên kết đầy đủ; tổng mối giữa RFI/biên bản/phụ lục đối chiếu được; tải lại và in lại vẫn đúng phiên bản; chưa có mẫu thì không ghi “đã hoàn thiện mẫu chính thức”.
Phụ thuộc: quy tắc trạng thái giai đoạn 1 và hoàn thành nghiệm thu giai đoạn 5.
latestDailyPoint, ngày thật, chuỗi biểu đồ và rollup; mã hiện tại đã có tính ngày gần nhất nên cần tái hiện lỗi trước khi sửa.overviewAggregates.ts và weldDailyStats.ts; bổ sung cột thống kê/trigger/view tương ứng thay vì chỉ đổi tên thẻ.QualityReportDashboard.tsx, YearlyWeldReport.tsx, lịch sử hàn, thống kê lỗi và LWR/GPS để tiếp tục phân biệt NDT Đạt với Nghiệm thu đạt; không đổi nghĩa các chỉ số thí nghiệm mà không có yêu cầu.Tiêu chí hoàn thành: KPI khớp danh sách bấm xem ở mọi nguồn dữ liệu; ngày không có sản xuất hiển thị Hôm nay = 0 và Ngày gần nhất = ngày có dữ liệu thực; NDT đạt nhưng chưa nghiệm thu không được đếm Nghiệm thu đạt.
Phụ thuộc: giai đoạn 1–7; việc kiểm thử đơn vị phải thực hiện ngay trong mỗi giai đoạn, không dồn hết về cuối.
quan-ly-nhan-su; thực hiện test hồi quy nhật ký/phân trang/Autolisp/GPS/báo cáo liên quan. Ghi lệnh và kết quả thực tế khi triển khai.Tiêu chí hoàn thành: người phụ trách chất lượng xác nhận đúng quy trình/mẫu; số liệu trước/sau đối chiếu được; không mất dữ liệu; có hướng dẫn và phương án quay lui đã thử.
Không phải mọi file đều cần sửa. Các nơi sau phải được kiểm tra vì đang tạo, đọc hoặc suy luận dữ liệu có liên quan:
WeldingJournalList.tsx, BulkAutolispWeldDialog.tsx, bulkCreateWeldsFromAutolisp.ts, parseWeldJournalExcel.ts, weldingHistoryDb.ts, các RPC thêm nhật ký trong supabase/.weldReportData.ts, weldDailyStats.ts, overviewAggregates.ts, useWeldReportData.ts, useWeldDailyRollup.ts, useOverviewAggregates.ts và logic xoá cache.WeldAcceptanceReport.tsx, DailyWorkReport.tsx, DailyWorkReportPrint.tsx, dailyReportDb.ts, AppShell.tsx, navigation.ts, tabModules.ts, các nhãn dịch cần thiết trong src/i18n/.WeldingHistoryList.tsx, QualityReportDashboard.tsx, YearlyWeldReport.tsx, ErrorLibrary.tsx, MachineAssignmentList.tsx, machineRunSchedulesDb.ts, src/features/lwr/lib/weld-journal.ts và src/features/lwr/types/weld.ts.projectsDb.ts, projectMetadataClient.ts, qualityMetadataClient.ts, mapPointsDb.ts, các API tương ứng và nguồn lý trình toa_do.lich_su_moi_han, view bao_cao_moi_han_theo_du_an, lịch sử hàn, bảng/view/trigger thong_ke_moi_han_theo_ngay, RPC thêm nhật ký và các bảng mới. Tạo migration mới; không sửa migration lịch sử để giả định môi trường đã được cập nhật.scripts/; rà soát test-journal-pagination.mjs, test-overview-report.mjs và các test LWR/nhập dữ liệu có dùng trạng thái. Bộ fixture mới cần cả dữ liệu thiếu, lỗi, đạt, miễn NDT và nghiệm thu một phần.| Mã | Tình huống | Kết quả phải đạt |
|---|---|---|
| KT-01 | Trực quan đạt, một hoặc nhiều số đo còn trống | Chưa đủ hình học, không được phát RFI theo điều kiện đề xuất |
| KT-02 | Nhập 0, số âm, dấu phẩy thập phân, giá trị không phải số | Số hợp lệ giữ đúng giá trị/dấu; dữ liệu không hợp lệ bị chặn và báo trường lỗi |
| KT-03 | Dọc mặt lăn: -0,11; -0,10; 0; +0,40; +0,41 | Hai giá trị ngoài khoảng không đạt; hai giá trị biên theo quyết định ở giai đoạn 0 |
| KT-04 | Ngang nấm/chân ray và độ phẳng tại biên, sát trong, sát ngoài | Kết quả đúng từng giới hạn; không dùng trị tuyệt đối cho khoảng bất đối xứng |
| KT-05 | Trực quan lỗi hoặc hình học lỗi dù NDT đạt | Không đạt; không được hoàn thành nghiệm thu |
| KT-06 | “Đạt tất” khi có phân trang, đổi lọc hoặc mối đang ẩn | Chỉ đúng tập ID người dùng đã chọn, không sửa ngoài phạm vi |
| KT-07 | Mối cũ có NDT Đạt và không có biên bản | Không tự thành Nghiệm thu đạt |
| KT-08 | Mối miễn NDT, mối Thử nghiệm/Chấp thuận và loại Đào tạo | Khởi tạo và điều kiện tham gia hồ sơ đúng bảng quy tắc; không mặc định miễn NDT là đạt |
| KT-09 | RFI lọc khoảng tên mối/ngày/km, dữ liệu hơn một trang | Danh sách đủ và đúng, không mất mối do phân trang; thiếu lý trình được chỉ rõ |
| KT-10 | Phát RFI khi chưa đủ điều kiện hoặc cùng mối đang thuộc phiếu hiệu lực khác | Chặn đúng ở server/DB, trả lý do rõ ràng |
| KT-11 | RFI 10 mối, chấp nhận 8, 1 chưa nghiệm thu, 1 lỗi | Hồ sơ hoàn thành chỉ có 8; mối chưa nghiệm thu không bị coi lỗi; mối lỗi còn lịch sử xử lý |
| KT-12 | Bấm Hoàn thành hai lần, hai người đồng thời, dữ liệu đổi trong lúc mở màn hình | Không trùng khối lượng/hồ sơ; dữ liệu cũ bị từ chối hoặc yêu cầu tải lại |
| KT-13 | Lỗi giữa transaction hoặc lỗi tạo PDF sau khi lưu | Không có hồ sơ nghiệp vụ dở dang; tạo/in file lại được mà không nghiệm thu trùng |
| KT-14 | Sửa dung sai, tên mối, nhân lực nguồn sau phát hành | Bản in cũ giữ đúng dữ liệu chốt; bản sửa đổi truy vết được |
| KT-15 | Nhật ký nhiều ngày, có FBW/ATW và nhân lực VNR | Đúng mẫu, đúng mô tả FBW, số người/máy/khối lượng không bị đếm trùng |
Ước lượng dưới đây là ngày công phát triển và kiểm thử, chưa phải lịch cam kết; chưa tính thời gian chờ biểu mẫu, xác nhận nghiệp vụ, quyền môi trường hoặc làm sạch dữ liệu lịch sử.
| Giai đoạn | Ưu tiên | Dự trù | Điều kiện bắt đầu |
|---|---|---|---|
| 0. Chốt nghiệp vụ/mẫu | P0 | 1–2 ngày | Có người phụ trách chất lượng và đầu mối biểu mẫu |
| 1. Dữ liệu/quy tắc | P0 | 2–3 ngày | Chốt quy tắc cốt lõi và có DB thử nghiệm |
| 2. Nhật ký/kiểm tra | P0 | 2–3 ngày | Nền dữ liệu giai đoạn 1 |
| 3. Nhật ký thi công | P1 | 1–2 ngày | Có mẫu và ánh xạ dữ liệu |
| 4. RFI | P0 | 2–3 ngày | Kiểm tra nội bộ và điều kiện phát phiếu |
| 5. Nghiệm thu/hoàn thành | P0 | 2–3 ngày | RFI và kết quả NDT |
| 6. Biểu mẫu/lưu/in | P0 | 2–4 ngày | Đủ mẫu và dữ liệu hồ sơ |
| 7. Dashboard/báo cáo | P1 | 1–2 ngày | Nguồn trạng thái nghiệm thu ổn định |
| 8. Tích hợp/bàn giao | P0 | 2–3 ngày | Các luồng và biểu mẫu đã hoàn thiện |
Tổng dự trù khi thực hiện tuần tự: 15–25 ngày công. Nếu mẫu hoặc quy tắc thay đổi, cập nhật dự trù sau giai đoạn 0. Không tách giao diện và DB thành hai đợt đưa lên thật khi chưa tương thích.
Các mốc bàn giao có thể kiểm chứng:
| Nội dung gốc | Nơi xử lý |
|---|---|
| Chọn mối theo tên/ngày; Hoàn thành tự điền/lưu/in | Giai đoạn 4–6 |
| Bảng Tiêu chí nghiệm thu: trực quan, bốn chỉ tiêu thẳng/phẳng, NDT | Giai đoạn 0–2 |
| Số hoá đầu vào; mặc định Siêu âm, thêm Từ tính/Thẩm thấu | Giai đoạn 1–2 |
| Hàn không thay đổi; sau mài nhập kiểm tra; sau siêu âm tick Đạt/Lỗi | Giai đoạn 2 |
| Mẫu theo dự án/loại hàn; Trinh bổ sung | Giai đoạn 0 và 6 |
| Nhật ký thi công: VNR, mô tả FBW, máy, khối lượng | Giai đoạn 3 |
| Nhật ký tự lưu theo ngày, in một/nhiều ngày | Giai đoạn 3 và 6 |
| RFI chỉ phát khi đủ điều kiện, chọn dự án/mối/ngày/km | Giai đoạn 0 và 4 |
| Nghiệm thu theo phiếu, mặc định khối lượng trong phiếu | Giai đoạn 5 |
| Loại mối chưa hoàn thành/không đạt để khắc phục hoặc hàn lại | Giai đoạn 5 |
| Hoàn thành sinh ba hồ sơ, lưu trữ và in | Giai đoạn 5–6 |
| Tất cả module cho chỉnh sửa | Giai đoạn 0, 3–6; sửa bản đã phát hành có lịch sử |
| Tình trạng Chờ mài/Chờ thí nghiệm/Nghiệm thu đạt/Không đạt/Không thí nghiệm | Giai đoạn 0–2 và 7 |
| Đạt tất cho trực quan/NDT, hình học tự xét dung sai | Giai đoạn 2 |
| Dashboard: Nghiệm thu đạt, Chờ mài, Ngày gần nhất | Giai đoạn 7 |
| Ký biên bản | Giai đoạn 0 và 6; không mặc định triển khai ký số |
Giới hạn: mã và schema giai đoạn 1–2 đã triển khai như mục Tiến độ; nội dung nhật ký cũ không bị sửa khi chạy migration. Chưa cấu hình đăng nhập để bật luồng kiểm tra thực tế, chưa hoàn tất kiểm thử nhập–lưu bằng trình duyệt, chưa thử nhiều kết nối DB thật, chưa kiểm chứng phân trang toàn bộ Word và chưa xác nhận mẫu/quy định dự án. Các giai đoạn 3 trở đi và triển khai giao diện lên hosting chưa thực hiện. Không sửa Word gốc hoặc tạo dữ liệu thử trong DB thật. Các quyết định ở mục 3 vẫn cần xác nhận khi triển khai tiếp.
YearlyWeldReportoverviewAggregates.tsweldDailyStats.ts| Dùng làm nguồn lọc km; mối thiếu lý trình phải được hiển thị rõ |
src/lib/qualityMetadataClient.ts, src/app/api/quality-metadata/route.ts | Có quản lý tiêu chuẩn/chứng chỉ chất lượng | Tận dụng danh mục tiêu chuẩn phù hợp; chưa thấy cấu hình số cho bốn dung sai trong các phần đã đọc |
supabase/migration_20260906_tinh_trang_thi_nghiem_nhat_ky_han.sql | Ràng buộc DB chỉ cho bốn trạng thái thí nghiệm hiện hành | Không chỉ thêm nhãn trên giao diện rồi ghi trực tiếp vào cột cũ |
supabase/migration_20260922_fix_thong_ke_moi_han_so_moi.sql và các migration tổng hợp | Có trigger/bảng/view tổng hợp theo ngày | Viết migration mới; bảo đảm thống kê thay đổi khi kiểm tra/nghiệm thu thay đổi |
src/components/AppShell.tsx, src/data/navigation.ts, src/lib/tabModules.ts | Tab bien-ban-moi-han đã được gắn vào ứng dụng | Giữ đường vào hiện tại, tổ chức các phần nhật ký thi công/RFI/nghiệm thu/hồ sơ bên trong |
| KT-16 |
| Hôm nay không sản xuất, ngày cuối có sản xuất là hôm trước |
| Hôm nay = 0; Ngày gần nhất và danh sách chi tiết đúng quyết định nghiệp vụ |
| KT-17 | Dashboard dùng nguồn chi tiết, tổng hợp nhanh hoặc rollup | Cùng bộ lọc cho cùng KPI và danh sách, đặc biệt Chờ mài/Nghiệm thu đạt |
| KT-18 | Tải lại, chuyển thiết bị, mở lại RFI/hồ sơ | Dữ liệu đã lưu đầy đủ; không phụ thuộc state của một phiên trình duyệt |
| KT-19 | In bộ nhiều trang, tên dài, nhiều mối, chưa ký/đã ký | Không cắt cột/chữ ký; đủ trang và đúng phiên bản mẫu; không tự gắn Đã ký |
| KT-20 | Import Excel cũ, thêm hàng loạt Autolisp và sửa nhật ký đang có GPS | Không mất tương thích/liên kết; không tự sinh kết luận nghiệm thu |
| KT-21 | Người không có quyền gửi yêu cầu phát hành/hoàn thành trực tiếp | Bị chặn ở phía server/DB theo cơ chế quyền đã thống nhất |