diff --git a/lcbp3.code-workspace b/lcbp3.code-workspace index fe93941..74e4887 100644 --- a/lcbp3.code-workspace +++ b/lcbp3.code-workspace @@ -971,4 +971,7 @@ }, ], }, + "extensions": { + "recommendations": ["jlcodes.antigravity-cockpit"], + }, } diff --git a/specs/03-Data-and-Storage/03-04-legacy-data-migration.md b/specs/03-Data-and-Storage/03-04-legacy-data-migration.md index 8ea32c4..c6f25d6 100644 --- a/specs/03-Data-and-Storage/03-04-legacy-data-migration.md +++ b/specs/03-Data-and-Storage/03-04-legacy-data-migration.md @@ -1,15 +1,19 @@ ---- -description: legacy PDF document migration to system v1.8.0 uses n8n and Ollama -version: 1.8.0 ---- - # 03-04: Legacy Data Migration Plan (PDF 20k Docs) +| description | version | +| ------------------------------------------------------------------ | ------- | +| legacy PDF document migration to system v1.8.0 uses n8n and Ollama | 1.8.0 | + +> **Note:** Category Enum system-driven, Idempotency Contract, Duplicate Handling Clarification, Storage Enforcement, Audit Log Enhancement, Review Queue Integration, Revision Drift Protection, Execution Time, Encoding Normalization, Security Hardening, AI Physical Isolation (ASUSTOR), Folder Standard (/data/dms) + +--- + ## 1. วัตถุประสงค์ (Objectives) -* นำเข้าเอกสาร PDF 20,000 ฉบับ พร้อม Metadata จาก Excel (Legacy system export) เข้าสู่ระบบ LCBP3-DMS -* ใช้ AI (Ollama Local Model) เพื่อตรวจสอบความถูกต้องของลักษณะข้อมูล (Data format, Title consistency) ก่อนการนำเข้า -* รักษาโครงสร้างความสัมพันธ์ (Project / Contract / Ref No.) และระบบการทำ Revision ตาม Business Rules +- นำเข้าเอกสาร PDF 20,000 ฉบับ พร้อม Metadata จาก Excel (Legacy system export) เข้าสู่ระบบ LCBP3-DMS +- ใช้ AI (Ollama Local Model) เพื่อตรวจสอบความถูกต้องของลักษณะข้อมูล (Data format, Title consistency) ก่อนการนำเข้า +- รักษาโครงสร้างความสัมพันธ์ (Project / Contract / Ref No.) และระบบการทำ Revision ตาม Business Rules +- **Checkpoint Support:** รองรับการหยุดและเริ่มงานต่อ (Resume) จากจุดที่ค้างอยู่ได้กรณีเกิดเหตุขัดข้อง > **Note:** เอกสารนี้ขยายความถึงวิธีปฏิบัติ (Implementation) จากการตัดสินใจทางสถาปัตยกรรมใน [ADR-017: Ollama Data Migration Architecture](../06-Decision-Records/ADR-017-ollama-data-migration.md) @@ -17,13 +21,11 @@ version: 1.8.0 ## 2. โครงสร้างพื้นฐาน (Migration Infrastructure) -การนำเข้าข้อมูลชุดใหญ่นี้จะไม่กระทำผ่าน User Interface แต่จะใช้โครงสร้างสถาปัตยกรรมชั่วคราวและ APIs: - -* **Migration Orchestrator:** n8n (รันจาก Docker Container บน QNAP NAS) -* **AI Validator:** Ollama Native (รันบน Windows Desktop - i9 + RTX 2060 SUPER) -* **Target Database:** MariaDB (`correspondences` table) -* **Target Storage:** QNAP File System (Mount volumes เข้า Application) -* **Connection:** ข้อมูลก้อนใหญ่ถูกโยกย้ายผ่าน 2.5G LAN + LACP เพื่อประสิทธิผลสูงสุด +- **Migration Orchestrator:** n8n (รันจาก Docker Container บน ASUSTOR NAS) +- **AI Validator:** Ollama (รันใน Internal Network บน ASUSTOR NAS) +- **Target Database:** MariaDB (`correspondences` table) บน QNAP NAS +- **Target Storage:** QNAP File System — **ผ่าน Backend StorageService API เท่านั้น** (ห้าม move file โดยตรง) +- **Connection:** 2.5G LAN + LACP / Internal VLAN --- @@ -31,71 +33,395 @@ version: 1.8.0 ### Phase 1: การเตรียม Infrastructure และ Storage (สัปดาห์ที่ 1) -1. **File Migration:** - ย้ายไฟล์ PDF ทั้งหมดจากแหล่งเก็บ (Desktop/External Drive) ไปยัง Folder ชั่วคราวบน NAS เพื่อรอการประมวลผล แนะนำใช้ `Robocopy` หรือ `Rsync` - * *Target Path:* `/share/DMS_Storage/migration_temp/` +**File Migration:** +- ย้ายไฟล์ PDF ทั้งหมดจากแหล่งเก็บไปยัง Folder ชั่วคราวบน NAS (QNAP) +- Target Path: `/data/dms/staging_ai/` -2. **Mount Folder:** - ทำการ Bind Mount โฟลเดอร์ `migration_temp/` เข้ากับ Container ของ n8n เพื่อให้ n8n เช็คความมีอยู่ของไฟล์ด้วย Disk I/O speed. +**Mount Folder:** +- Bind Mount `/data/dms/staging_ai/` เข้ากับ n8n Container แบบ **read-only** +- สร้าง `/data/dms/migration_logs/` Volume แยกสำหรับเขียน Log แบบ **read-write** -3. **Ollama Config:** - * ติดตั้ง Ollama แบบ Native บน Desktop - * ตั้งค่า Environment Variable `OLLAMA_HOST=0.0.0.0` - * Fix IP ให้ Desktop เครื่องโฮสต์ และเปิด Port `11434` ที่ระดับ OS Firewall - * รันคำสั่ง `ollama pull llama3.2` (หรือ Model ที่เหมาะสม) +**Ollama Config:** +- ติดตั้ง Ollama บน ASUSTOR NAS +- No DB credentials, Internal network only + +```bash +# แนะนำ: llama3.2:3b (เร็ว, VRAM ~3GB, เหมาะ Classification) +ollama pull llama3.2:3b + +# Fallback: mistral:7b-instruct-q4_K_M (แม่นกว่า, VRAM ~5GB) +# ollama pull mistral:7b-instruct-q4_K_M +``` + +**ทดสอบ Ollama:** +```bash +curl http://:11434/api/generate \ + -d '{"model":"llama3.2:3b","prompt":"reply: ok","stream":false}' +``` + +**Concurrency Configuration:** +- Sequential: Batch Size = 1, Delay ≥ 2 วินาที, ปิด Parallel Execution +- เพิ่ม Health Check Node ก่อนเริ่ม Batch เพื่อป้องกัน Workflow ค้างหาก Desktop Sleep หรือ Overheat + +--- ### Phase 2: การเตรียม Target Database และ API (สัปดาห์ที่ 1) -1. **SQL Indexing:** - เพื่อให้ API ตรวจจับ Duplicate record ได้อย่างรวดเร็ว (สำหรับ 20,000 แถว) ให้กระทำคำสั่ง SQL เพื่อเพิ่ม Index ลงฐานข้อมูล Production ชั่วคราว (หรือถาวร): - ```sql - ALTER TABLE correspondences ADD INDEX idx_doc_number (document_number); - ALTER TABLE correspondences ADD INDEX idx_deleted_at (deleted_at); - ``` +**SQL Indexing:** +```sql +ALTER TABLE correspondences ADD INDEX idx_doc_number (document_number); +ALTER TABLE correspondences ADD INDEX idx_deleted_at (deleted_at); +ALTER TABLE correspondences ADD INDEX idx_created_by (created_by); +``` -2. **API Authentication:** - ระบบ LCBP3-DMS ต้องสร้าง Access Token แบบผูกพันกับ Role ระดับสูง (เช่น `SYSTEM_ADMIN` หรือ `MIGRATION_USER`) ซึ่งมีสิทธิ์ Bypass การ Validation บางประการ (ถ้าได้รับการอนุญาต) ส่งมอบให้ n8n +**Checkpoint Table:** +```sql +CREATE TABLE IF NOT EXISTS migration_progress ( + batch_id VARCHAR(50) PRIMARY KEY, + last_processed_index INT DEFAULT 0, + status ENUM('RUNNING','COMPLETED','FAILED') DEFAULT 'RUNNING', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +); +``` + +**Idempotency Table :** +```sql +CREATE TABLE IF NOT EXISTS import_transactions ( + id INT AUTO_INCREMENT PRIMARY KEY, + idempotency_key VARCHAR(255) UNIQUE NOT NULL, + document_number VARCHAR(100), + batch_id VARCHAR(100), + status_code INT DEFAULT 201, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_idem_key (idempotency_key) +); +``` + +> **Idempotency Logic:** ถ้า `idempotency_key` ซ้ำ → Backend คืน HTTP 200 ทันที (ไม่สร้าง Revision ซ้ำ) ถ้าไม่ซ้ำ → ประมวลผลปกติ + +**API Authentication — Migration Token:** +```sql +INSERT INTO users (username, email, role, is_active) +VALUES ('migration_bot', 'migration@system.internal', 'SYSTEM_ADMIN', true); +``` + +**Scope ของ Migration Token (Patch — คำนิยามชัดเจน):** + +| สิทธิ์ | ปกติ | Migration Token | หมายเหตุ | +| ------------------------------------- | --- | --------------- | --------------------------------- | +| Bypass File Virus Scan | ❌ | ✅ | ไฟล์ผ่าน Scan มาแล้วก่อน Import | +| Bypass Duplicate **Validation Error** | ❌ | ✅ | **Revision Logic ยัง enforce ปกติ** | +| Bypass Created-by User validation | ❌ | ✅ | | +| Overwrite existing revision | ❌ | ❌ | **ห้ามโดยเด็ดขาด** | +| Delete previous revision | ❌ | ❌ | **ห้ามโดยเด็ดขาด** | +| ลบ / แก้ไข Record อื่น | ❌ | ❌ | **ห้ามโดยเด็ดขาด** | + +> ⚠️ **Patch Clarification:** "Bypass Duplicate Number Check" ถูกแทนด้วย "Bypass Duplicate **Validation Error**" — Revision increment logic ยังทำงานตามปกติทุกกรณี + +- **Token Expiry:** ไม่เกิน **7 วัน** ต้อง Revoke ทันทีหลัง Migration เสร็จ +- **IP Whitelist:** ใช้ได้เฉพาะจาก `` เท่านั้น +- **Audit:** ทุก Request บันทึก `created_by = 'SYSTEM_IMPORT'` + +--- ### Phase 3: การออกแบบ n8n Workflow (The Migration Logic) -Workflow ควบคุมการไหลของข้อมูลประกอบด้วย 4 ส่วนการทำงาน: +#### Node 0: Pre-flight Health Check + Fetch System Categories -1. **Data Reader Node:** - อ่านไฟล์ Metadata จาก Excel แล้วแยกส่วน (Batching) เพื่อทยอยดำเนินการทีละ 100 แถว -2. **File Validator Node:** - ตรวจจับว่าเส้นทางนามสกุลไฟล์ เช่น `Iyyccnnnn-[doc_number].pdf` มีอยู่จริงในระบบเก็บข้อมูล NAS (บริเวณโฟลเดอร์ temp) -3. **AI Analysis Node (HTTP Request to Ollama):** - * ส่ง Metadata เช่น (Document Number, Title) ให้ AI ตรวจสอบ - * *System Prompt Example:* "You are a Document Controller. Verify if the document title [Title] matches the numbering pattern [Pattern]. Categorize this into [Category List]. Output in JSON format only." -4. **Data Ingestion Node:** - * ใช้ HTTP Request ยิง POST เวิร์กโหลดเข้าไปที่ Backend API - * Backend API ต้องมีความสามารถในการรองรับ *Idempotency* และจัดการตรวจสอบว่าหาก `document_number` เกิดซ้ำกัน ต้องยกระดับไปสร้างบันทึกใหม่เป็น Version / Revision (+1) ไม่ใช่การทับลง Record เดิม +ตรวจสอบทุก dependency ก่อน Batch: + +1. HTTP GET Ollama `/api/tags` → ต้อง HTTP 200 +2. MariaDB `SELECT 1` → ต้องเชื่อมได้ +3. HTTP GET Backend `/health` → ต้อง HTTP 200 +4. File Mount Check → `staging_ai` มีไฟล์, `migration_logs` เขียนได้ + +**Fetch System Categories (Patch — ห้าม hardcode):** +```http +GET /api/meta/categories +Authorization: Bearer +``` +Response: +```json +{ "categories": ["Correspondence","RFA","Drawing","Transmittal","Report","Other"] } +``` +n8n ต้องเก็บ categories นี้ไว้ใน Workflow Variable (`system_categories`) และ inject เข้า AI Prompt ทุก Request + +#### Node 1: Data Reader & Checkpoint + +- อ่าน Checkpoint จาก **MariaDB Node แยก** (ไม่ใช่ async call ใน Code Node) +- Batch ทีละ **10–20 แถว** ตาม `$env.MIGRATION_BATCH_SIZE` +- ติด `original_index` ทุก Item + +**Encoding Normalization:** +```javascript +// Normalize ข้อมูลจาก Excel เป็น UTF-8 NFC ก่อนประมวลผล +const normalize = (str) => { + if (!str) return ''; + return Buffer.from(str, 'utf8').toString('utf8').normalize('NFC'); +}; + +return items.map(item => ({ + ...item, + json: { + ...item.json, + document_number: normalize(item.json.document_number), + title: normalize(item.json.title) + } +})); +``` + +#### Node 2: File Validator & Sanitizer + +- ตรวจสอบไฟล์ PDF มีอยู่จริงบน NAS +- Normalize ชื่อไฟล์เป็น **UTF-8 NFC** +- Path Traversal Guard: resolved path ต้องอยู่ใน `/data/dms/staging_ai` เท่านั้น +- **Output 0** → valid → Node 3 +- **Output 1** → error → Node 5D (ไม่หายเงียบ) + +#### Node 3: AI Analysis (Sequential เท่านั้น) + +**System Prompt:** +```text +You are a Document Controller for a large construction project. +Your task is to validate document metadata. +You MUST respond ONLY with valid JSON. No explanation, no markdown, no extra text. +If there are no issues, "detected_issues" must be an empty array []. +``` + +**User Prompt (Category List มาจาก Backend ไม่ hardcode):** +```text +Validate this document metadata and respond in JSON: + +Document Number: {{$json.document_number}} +Title: {{$json.title}} +Expected Pattern: [ORG]-[TYPE]-[SEQ] e.g. "TCC-COR-0001" +Category List (MUST match system enum exactly): {{$workflow.variables.system_categories}} + +Respond ONLY with this exact JSON structure: +{ + "is_valid": true | false, + "confidence": 0.0 to 1.0, + "suggested_category": "", + "detected_issues": [""], + "suggested_title": "" +} +``` + +**JSON Validation (ตรวจ Category ตรง Enum):** +```javascript +const systemCategories = $workflow.variables.system_categories; +if (!systemCategories.includes(result.suggested_category)) { + throw new Error(`Category "${result.suggested_category}" not in system enum: ${systemCategories.join(', ')}`); +} +``` + +#### Node 3.5: Fallback Model Manager + +- อัปเดต `migration_fallback_state` ทุกครั้งที่เกิด Parse Error +- Auto-switch ไป `OLLAMA_MODEL_FALLBACK` เมื่อ Error ≥ `FALLBACK_ERROR_THRESHOLD` +- ส่ง Alert Email เมื่อ Fallback ถูก Activate + +#### Node 4: Confidence Router (4 outputs) + +| เงื่อนไข | การดำเนินการ | +| ------------------------------------------ | -------------------------------- | +| `confidence >= 0.85` และ `is_valid = true` | **Output 0** → Auto Ingest | +| `confidence >= 0.60` และ `< 0.85` | **Output 1** → Review Queue | +| `confidence < 0.60` หรือ `is_valid = false` | **Output 2** → Reject Log | +| Parse Error / AI ไม่ตอบ | **Output 3** → Error Log | +| Fallback: Error > 5 ใน 10 Request | สลับ Model / หยุด Workflow + Alert | + +**Revision Drift Protection:** +```javascript +// ถ้า Excel มี revision column — ตรวจสอบก่อน route +if (item.json.excel_revision !== undefined) { + const expectedRevision = (item.json.current_db_revision || 0) + 1; + if (parseInt(item.json.excel_revision) !== expectedRevision) { + item.json.review_reason = `Revision drift: Excel=${item.json.excel_revision}, Expected=${expectedRevision}`; + reviewQueue.push(item); + continue; + } +} +``` + +#### Node 5A: Auto Ingest — Backend API + +> ⚠️ **Storage Enforcement:** n8n ส่งแค่ `source_file_path` — Backend จะ generate UUID, enforce path strategy (`/data/dms/uploads/YYYY/MM/{uuid}.pdf`), และ move file atomically ผ่าน StorageService + +```http +POST /api/correspondences/import +Authorization: Bearer +Idempotency-Key: : +Content-Type: application/json +``` + +Payload: +```json +{ + "document_number": "{{document_number}}", + "title": "{{ai_result.suggested_title || title}}", + "category": "{{ai_result.suggested_category}}", + "source_file_path": "{{file_path}}", + "ai_confidence": "{{ai_result.confidence}}", + "ai_issues": "{{ai_result.detected_issues}}", + "migrated_by": "SYSTEM_IMPORT", + "batch_id": "{{$env.MIGRATION_BATCH_ID}}" +} +``` + +**Audit Log ที่ Backend ต้องสร้าง:** +```json +{ + "action": "IMPORT", + "source": "MIGRATION", + "batch_id": "migration_20260226", + "created_by": "SYSTEM_IMPORT", + "metadata": { + "migration": true, + "batch_id": "migration_20260226", + "ai_confidence": 0.91 + } +} +``` + +**Checkpoint Update (ทุก 10 Records — ผ่าน IF Node + MariaDB Node):** +```sql +INSERT INTO migration_progress (batch_id, last_processed_index, status) +VALUES ('{{$env.MIGRATION_BATCH_ID}}', {{checkpoint_index}}, 'RUNNING') +ON DUPLICATE KEY UPDATE + last_processed_index = {{checkpoint_index}}, + updated_at = NOW(); +``` + +#### Node 5B: Review Queue + +> ⚠️ **`migration_review_queue` เป็น Temporary Table เท่านั้น** — ห้ามสร้าง Correspondence record จนกว่า Admin จะ Approve + +Approval Flow: +``` +Review → Admin Approve → POST /api/correspondences/import (เหมือน Auto Ingest) +Admin Reject → ลบออกจาก queue ไม่สร้าง record +``` + +#### Node 5C: Reject Log → `/data/dms/migration_logs/reject_log.csv` + +#### Node 5D: Error Log → `/data/dms/migration_logs/error_log.csv` + MariaDB + +--- ### Phase 4: แผนการทดสอบ (Testing & QA) -1. **Dry Run:** รันเพียง 1 Batch ข้อมูล (ขนาด ~100 แถว) ทะลวงระบบจากต้นน้ำถึงปลายน้ำ -2. **Integrity Check:** QA เช็คในหน้า UI และในฐานข้อมูล MariaDB ว่า Metadata โอนถ่ายได้ครบถ้วน และไฟล์ Physical file ย้ายไปสู่โฟลเดอร์ Webroot (Permanent Storage) ของเอกสาร -3. **Hardware Tuning:** จับตาดู RAM ของ NAS และ GPU VRAM/Temperatures ของ Desktop ฝั่ง Ollama. ปรับหน่วง Delay ระหว่าง Request ได้ในตัว n8n หากฮาร์ดแวร์ทำงานหนักเกิน +**Dry Run Policy (Mandatory):** +- All migrations MUST run with `--dry-run` +- No DB commit until validation approved + +**Dry Run Validation (20–50 แถว):** +- JSON Parse Success Rate > 95% +- Category ที่ AI ตอบตรงกับ System Enum ทุกรายการ +- รัน Batch เดิมซ้ำ 2 รอบ → ต้องไม่สร้าง Duplicate หรือ Revision ซ้ำ (Idempotency Test) +- Storage Path ตรงตาม Core Storage Spec v1.8.0 +- Revision Drift ถูก route ไป Review Queue + +**Integrity Check:** +```sql +-- ตรวจยอด +SELECT COUNT(*) FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'; + +-- ตรวจ Revision ซ้ำ +SELECT document_number, COUNT(*) as cnt +FROM correspondences WHERE created_by = 'SYSTEM_IMPORT' +GROUP BY document_number HAVING cnt > 1; + +-- ตรวจ Idempotency Key ไม่ซ้ำ +SELECT idempotency_key, COUNT(*) as cnt +FROM import_transactions GROUP BY idempotency_key HAVING cnt > 1; + +-- ตรวจ Audit Log ครบ +SELECT COUNT(*) FROM audit_logs +WHERE created_by = 'SYSTEM_IMPORT' AND action = 'IMPORT'; +``` + +--- ### Phase 5: การรันงานจริง (Execution & Monitoring) -1. **Scheduling:** เปิดตัวรันอัตโนมัติเฉพาะเวลากลางคืน (Offline hours) -2. **Log Monitoring:** เปิด Execution Logs ของ n8n ควบคู่ไปกับ Docker Logs -3. **Post-Migration Audit:** ผู้ดูแลระบบสั่งรัน Query สอบยอดหลังบ้าน: - ```sql - SELECT count(*) FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'; - ``` +- **Scheduling:** รันอัตโนมัติ 22:00–06:00 +- **Expected Runtime:** ~3 วินาที/record (2 sec delay + ~1 sec inference) → 20,000 records ≈ **60,000 วินาที (~16.6 ชั่วโมง)** → ใช้เวลาประมาณ **3–4 คืน** +- **Daily Check:** Admin ตรวจ Review Queue และ Reject Log ทุกเช้าจาก Night Summary Email +- **Progress Tracking:** อัปเดต `migration_progress` ทุก 10 Records --- -## 4. แผนรับมือความเสี่ยง (Risk Management) +## 4. Rollback Plan -| ลำดับที่ | ความเสี่ยง | การจัดการ (Mitigation) | -| ---- | --------------------------------- | -------------------------------------------------------------------------------------------- | -| 1 | AI Node หรือ GPU ค้าง (OOT/Timeout) | กำหนดให้ Node มี Node Retry Mechanism (เช่น รอ 1 นาที ทำซ้ำ 3 รอบ) ประกอบกับการจับ Wait node ไว้ดักทิศทาง | -| 2 | หมายเลขเอกสารซ้ำซ้อนกันใน Excel | Backend ต้องมี Controller Logic รับมือ และส่งออกเลข Revision เพื่อลงฐานข้อมูล | -| 3 | ดิสก์ NAS ทรุด หรือ Database บวมชั่วขณะ | ปิดฟีเจอร์ "Save Successful Executions" ใน Options ของ n8n | +**Step 1:** หยุด n8n และ Disable Token +```sql +UPDATE users SET is_active = false WHERE username = 'migration_bot'; +``` + +**Step 2:** ลบ Records (Transaction) +```sql +START TRANSACTION; +DELETE FROM correspondence_files +WHERE correspondence_id IN (SELECT id FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'); +DELETE FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'; +DELETE FROM import_transactions WHERE batch_id = 'migration_20260226'; +SELECT ROW_COUNT(); +COMMIT; +``` + +**Step 3:** ย้ายไฟล์กลับ `/data/dms/staging_ai/` ผ่าน Script แยก + +**Step 4:** Reset State +```sql +UPDATE migration_progress +SET status = 'FAILED', last_processed_index = 0 +WHERE batch_id = 'migration_20260226'; + +UPDATE migration_fallback_state +SET recent_error_count = 0, is_fallback_active = FALSE +WHERE batch_id = 'migration_20260226'; +``` --- -> **ข้อแนะนำด้าน Physical Storage:** หลังจากนำเข้าข้อมูลเสร็จ ตรวจสอบให้แน่ใจว่าไฟล์ PDF ทั้ง 20,000 ไฟล์ ถูกย้าย (Move) หรือคัดลอก (Copy) ไปเก็บยัง Local Storage Strategy ตามที่ได้ตกลงระบุไว้ใน Specs ฉบับที่เกี่ยวข้องกับ Storage อย่างถูกต้อง ไม่ปล่อยค้างไว้ที่ Temp Folder +## 5. แผนรับมือความเสี่ยง (Risk Management) + +| ลำดับที่ | ความเสี่ยง | การจัดการ (Mitigation) | +| ---- | -------------------------- | -------------------------------------------------- | +| 1 | AI Node หรือ GPU ค้าง | Timeout 30 วินาที, Retry 3 รอบ, Delay 60 วินาที | +| 2 | Ollama ตอบไม่ใช่ JSON | JSON Pre-processor + ส่ง Human Review Queue | +| 3 | Category ไม่ตรง System Enum | Fetch `/api/meta/categories` ก่อน Batch ทุกครั้ง | +| 4 | Idempotency ซ้ำ | `import_transactions` table + Backend คืน HTTP 200 | +| 5 | Revision Drift | ตรวจ Excel revision column → Route ไป Review Queue | +| 6 | Storage bypass | ห้าม move file โดยตรง — ผ่าน Backend API เท่านั้น | +| 7 | GPU VRAM Overflow | ใช้เฉพาะ Quantized Model (q4_K_M) | +| 8 | ดิสก์ NAS เต็ม | ปิด "Save Successful Executions" ใน n8n | +| 9 | Migration Token ถูกขโมย | Token 7 วัน, IP Whitelist `` เท่านั้น | +| 10 | ไฟดับ/ล่มกลางคัน | Checkpoint Table → Resume จากจุดที่ค้าง | + +--- + +## 6. Post-Migration Verification + +```sql +-- 1. ตรวจยอดครบ 20,000 +SELECT COUNT(*) FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'; + +-- 2. ตรวจ Revision ผิดปกติ +SELECT document_number, COUNT(*) FROM correspondences +WHERE created_by = 'SYSTEM_IMPORT' +GROUP BY document_number HAVING COUNT(*) > 5; + +-- 3. ตรวจ Audit Log ครบ +SELECT COUNT(*) FROM audit_logs +WHERE created_by = 'SYSTEM_IMPORT' AND action = 'IMPORT'; + +-- 4. ตรวจ Idempotency ไม่มีซ้ำ +SELECT idempotency_key, COUNT(*) FROM import_transactions +GROUP BY idempotency_key HAVING COUNT(*) > 1; +``` + +--- + +> **ข้อแนะนำด้าน Physical Storage:** ไฟล์ PDF ทั้ง 20,000 ไฟล์จะถูก move โดย Backend StorageService ไปยัง path ที่ถูกต้องโดยอัตโนมัติ ไม่ปล่อยค้างไว้ที่ `/data/dms/staging_ai/` diff --git a/specs/03-Data-and-Storage/03-05-n8n-migration-setup-guide.md b/specs/03-Data-and-Storage/03-05-n8n-migration-setup-guide.md new file mode 100644 index 0000000..c4acbb3 --- /dev/null +++ b/specs/03-Data-and-Storage/03-05-n8n-migration-setup-guide.md @@ -0,0 +1,918 @@ +# 📋 คู่มือการตั้งค่า n8n สำหรับ Legacy Data Migration + +เอกสารนี้จัดทำขึ้นเพื่อรองรับการ Migration เอกสาร PDF 20,000 ฉบับ ตามแผนใน `03-04-legacy-data-migration.md` และ `ADR-017-ollama-data-migration.md` + +> **Note:** Category Enum system-driven, Idempotency-Key Header, Storage Enforcement, Audit Log, Encoding Normalization, Security Hardening, Nginx Rate Limit, Docker Hardening, AI Physical Isolation (ASUSTOR), Folder Standard (/data/dms) + +--- + +## 📌 ส่วนที่ 1: การติดตั้งและตั้งค่าเบื้องต้น + +### 1.1 ติดตั้ง n8n บน ASUSTOR NAS (Docker) + +```bash +mkdir -p /data/dms/n8n +cd /data/dms/n8n + +cat > docker-compose.yml << 'EOF' +version: '3.8' + +services: + n8n: + image: n8nio/n8n:latest + container_name: n8n-migration + restart: unless-stopped + # Docker Hardening (Patch) + mem_limit: 2g + logging: + driver: json-file + options: + max-size: "10m" + max-file: "3" + ports: + - "5678:5678" + environment: + - N8N_HOST=0.0.0.0 + - N8N_PORT=5678 + - N8N_PROTOCOL=http + - NODE_ENV=production + - WEBHOOK_URL=http://:5678/ + - GENERIC_TIMEZONE=Asia/Bangkok + - TZ=Asia/Bangkok + - N8N_SECURE_COOKIE=false + - N8N_USER_FOLDER=/home/node/.n8n + - N8N_PUBLIC_API_DISABLED=true + - N8N_BASIC_AUTH_ACTIVE=true + - N8N_BASIC_AUTH_USER=admin + - N8N_BASIC_AUTH_PASSWORD= + - N8N_PAYLOAD_SIZE_MAX=10485760 + - EXECUTIONS_DATA_PRUNE=true + - EXECUTIONS_DATA_MAX_AGE=168 + - EXECUTIONS_DATA_PRUNE_TIMEOUT=60 + - DB_TYPE=postgresdb + - DB_POSTGRESDB_HOST= + - DB_POSTGRESDB_PORT=5432 + - DB_POSTGRESDB_DATABASE=n8n + - DB_POSTGRESDB_USER=n8n + - DB_POSTGRESDB_PASSWORD= + volumes: + - ./n8n_data:/home/node/.n8n + # read-only: อ่านไฟล์ PDF ต้นฉบับเท่านั้น + - /data/dms/staging_ai:/data/dms/staging_ai:ro + # read-write: เขียน Log และ CSV ทั้งหมด + - /data/dms/migration_logs:/data/dms/migration_logs:rw + networks: + - n8n-network + +networks: + n8n-network: + driver: bridge +EOF + +docker-compose up -d +``` + +> ⚠️ **Volume หมายเหตุ:** `/data/dms/staging_ai` = **read-only** (อ่านไฟล์ต้นฉบับ) และ `/data/dms/migration_logs` = **read-write** (เขียน Log/CSV) — ห้ามเขียน CSV ลง `staging_ai` เพราะจะ Error ทันที + +### 1.2 Nginx Rate Limit + +เพิ่มใน Nginx config สำหรับ Migration API: + +```nginx +# nginx.conf หรือ site config +limit_req_zone $binary_remote_addr zone=migration:10m rate=1r/s; + +location /api/correspondences/import { + limit_req zone=migration burst=5 nodelay; + proxy_pass http://backend:3001; +} +``` + +### 1.3 Environment Variables + +**Settings → Environment Variables ใน n8n UI:** + +| Variable | ค่าที่แนะนำ | คำอธิบาย | +| --------------------------- | ---------------------------- | ------------------------------------ | +| `OLLAMA_HOST` | `http://:11434` | URL ของ Ollama (ใน internal network) | +| `OLLAMA_MODEL_PRIMARY` | `llama3.2:3b` | Model หลัก | +| `OLLAMA_MODEL_FALLBACK` | `mistral:7b-instruct-q4_K_M` | Model สำรอง | +| `MIGRATION_BATCH_SIZE` | `10` | จำนวน Record ต่อ Batch | +| `MIGRATION_DELAY_MS` | `2000` | Delay ระหว่าง Request (ms) | +| `CONFIDENCE_THRESHOLD_HIGH` | `0.85` | Threshold Auto Ingest | +| `CONFIDENCE_THRESHOLD_LOW` | `0.60` | Threshold Review Queue | +| `MAX_RETRY_COUNT` | `3` | จำนวนครั้ง Retry | +| `FALLBACK_ERROR_THRESHOLD` | `5` | Error ที่ trigger Fallback | +| `BACKEND_URL` | `https://` | URL ของ LCBP3 Backend | +| `MIGRATION_BATCH_ID` | `migration_20260226` | ID ของ Batch | + +--- + +## 📌 ส่วนที่ 2: การเตรียม Database + +รัน SQL นี้บน MariaDB **ก่อน** เริ่ม n8n Workflow: + +```sql +-- Checkpoint +CREATE TABLE IF NOT EXISTS migration_progress ( + batch_id VARCHAR(50) PRIMARY KEY, + last_processed_index INT DEFAULT 0, + status ENUM('RUNNING','COMPLETED','FAILED') DEFAULT 'RUNNING', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +); + +-- Review Queue (Temporary — ไม่ใช่ Business Schema) +CREATE TABLE IF NOT EXISTS migration_review_queue ( + id INT AUTO_INCREMENT PRIMARY KEY, + document_number VARCHAR(100) NOT NULL, + title TEXT, + original_title TEXT, + ai_suggested_category VARCHAR(50), + ai_confidence DECIMAL(4,3), + ai_issues JSON, + review_reason VARCHAR(255), + status ENUM('PENDING','APPROVED','REJECTED') DEFAULT 'PENDING', + reviewed_by VARCHAR(100), + reviewed_at TIMESTAMP NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uq_doc_number (document_number) +); + +-- Error Log +CREATE TABLE IF NOT EXISTS migration_errors ( + id INT AUTO_INCREMENT PRIMARY KEY, + batch_id VARCHAR(50), + document_number VARCHAR(100), + error_type ENUM('FILE_NOT_FOUND','AI_PARSE_ERROR','API_ERROR','DB_ERROR','UNKNOWN'), + error_message TEXT, + raw_ai_response TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_batch_id (batch_id), + INDEX idx_error_type (error_type) +); + +-- Fallback State +CREATE TABLE IF NOT EXISTS migration_fallback_state ( + id INT AUTO_INCREMENT PRIMARY KEY, + batch_id VARCHAR(50) UNIQUE, + recent_error_count INT DEFAULT 0, + is_fallback_active BOOLEAN DEFAULT FALSE, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +); + +-- Idempotency (Patch) +CREATE TABLE IF NOT EXISTS import_transactions ( + id INT AUTO_INCREMENT PRIMARY KEY, + idempotency_key VARCHAR(255) UNIQUE NOT NULL, + document_number VARCHAR(100), + batch_id VARCHAR(100), + status_code INT DEFAULT 201, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_idem_key (idempotency_key) +); + +-- Daily Summary +CREATE TABLE IF NOT EXISTS migration_daily_summary ( + id INT AUTO_INCREMENT PRIMARY KEY, + batch_id VARCHAR(50), + summary_date DATE, + total_processed INT DEFAULT 0, + auto_ingested INT DEFAULT 0, + sent_to_review INT DEFAULT 0, + rejected INT DEFAULT 0, + errors INT DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uq_batch_date (batch_id, summary_date) +); +``` + +--- + +## 📌 ส่วนที่ 3: Credentials + +**Credentials → Add New:** + +#### 🔐 Ollama API +| Field | ค่า | +| -------------- | --------------------------- | +| Name | `Ollama Local API` | +| Type | `HTTP Request` | +| Base URL | `http://:11434` | +| Authentication | `None` | + +#### 🔐 LCBP3 Backend API +| Field | ค่า | +| -------------- | --------------------------- | +| Name | `LCBP3 Migration Token` | +| Type | `HTTP Request` | +| Base URL | `https:///api` | +| Authentication | `Header Auth` | +| Header Name | `Authorization` | +| Header Value | `Bearer ` | + +#### 🔐 MariaDB +| Field | ค่า | +| -------- | ------------------ | +| Name | `LCBP3 MariaDB` | +| Type | `MariaDB` | +| Host | `` | +| Port | `3306` | +| Database | `lcbp3_production` | +| User | `migration_bot` | +| Password | `` | + +--- + +## 📌 ส่วนที่ 4: Workflow (Step-by-Step) + +### 4.1 โครงสร้างภาพรวม + +``` +┌──────────────────────────────────────────────────────────────────────┐ +│ MIGRATION WORKFLOW v1.8.0 │ +├──────────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ +│ │ Node 0 │──▶│ Node 1 │──▶│ Node 2 │──▶│ Node 3 │ │ +│ │Pre- │ │ Data │ │ File │ │ AI │ │ +│ │flight + │ │ Reader │ │ Validat.│ │Analysis │ │ +│ │Fetch Cat│ │+Encoding│ │+Sanitize│ │+Enum Chk│ │ +│ └─────────┘ └─────────┘ └──┬──┬───┘ └────┬────┘ │ +│ │ │ │ │ +│ valid │ │ error ┌───▼──────────────┐ │ +│ │ └──────▶ │ Node 3.5 │ │ +│ │ │ Fallback Manager │ │ +│ │ └──────────────────┘ │ +│ ▼ │ │ +│ ┌─────────┐ ┌────▼────┐ │ +│ │ Node 5D │ │ Node 4 │ │ +│ │ Error │ │Confidence│ │ +│ │ Log │ │+Revision │ │ +│ └─────────┘ │ Drift │ │ +│ └┬──┬──┬──┘ │ +│ │ │ │ │ +│ ┌────────────┘ │ └──────┐ │ +│ ▼ ▼ ▼ │ +│ ┌──────────┐ ┌──────────┐ ┌──────┐ │ +│ │ Node 5A │ │ Node 5B │ │ 5C │ │ +│ │ Auto │ │ Review │ │Reject│ │ +│ │ Ingest │ │ Queue │ │ Log │ │ +│ │+Idempot. │ │(Temp only│ └──────┘ │ +│ └────┬─────┘ └──────────┘ │ +│ │ │ +│ ┌────▼──────┐ │ +│ │ Checkpoint│ │ +│ └───────────┘ │ +└──────────────────────────────────────────────────────────────────────┘ +``` + +--- + +### 4.2 Node 0: Pre-flight + Fetch System Categories + +Fetch System Categories ก่อน Batch ทุกครั้ง + +**Sub-flow:** +``` +[Trigger] → [HTTP: Ollama /api/tags] → [MariaDB: SELECT 1] + → [HTTP: Backend /health] → [Code: File Mount Check] + → [HTTP: GET /api/meta/categories] → [Store in Workflow Variable] + → [IF all pass → Node 1] [ELSE → Stop + Alert] +``` + +**HTTP Node — Fetch Categories:** +```json +{ + "method": "GET", + "url": "={{ $env.BACKEND_URL }}/api/meta/categories", + "authentication": "genericCredentialType", + "genericAuthType": "lcbp3MigrationToken" +} +``` + +**Code Node — Store Categories + File Mount Check:** +```javascript +const fs = require('fs'); + +// เก็บ categories ใน Workflow Variable +const categories = $input.first().json.categories; +if (!categories || !Array.isArray(categories) || categories.length === 0) { + throw new Error('Failed to fetch system categories from backend'); +} + +// Set Workflow Variable เพื่อใช้ใน Node 3 +$workflow.variables = $workflow.variables || {}; +$workflow.variables.system_categories = categories; + +// ตรวจ File Mount +try { + const files = fs.readdirSync('/data/dms/staging_ai'); + if (files.length === 0) throw new Error('staging_ai is empty'); + fs.writeFileSync('/data/dms/migration_logs/.preflight_ok', new Date().toISOString()); +} catch (err) { + throw new Error(`File mount check failed: ${err.message}`); +} + +return [{ json: { preflight_ok: true, system_categories: categories } }]; +``` + +--- + +### 4.3 Node 1: Load Checkpoint + Read Excel + Encoding Normalization + +**Step 1 — MariaDB Node (Read Checkpoint):** +```sql +SELECT last_processed_index, status +FROM migration_progress +WHERE batch_id = '{{ $env.MIGRATION_BATCH_ID }}' +LIMIT 1; +``` + +**Step 2 — Spreadsheet File Node:** +```json +{ "operation": "toData", "binaryProperty": "data", "options": { "sheetName": "Sheet1" } } +``` + +**Step 3 — Code Node (Checkpoint + Batch + Encoding):** +```javascript +const checkpointResult = $('Read Checkpoint').first(); +let startIndex = 0; +if (checkpointResult && checkpointResult.json.status === 'RUNNING') { + startIndex = checkpointResult.json.last_processed_index || 0; +} + +const allItems = $('Read Excel').all(); +const remaining = allItems.slice(startIndex); +const batchSize = parseInt($env.MIGRATION_BATCH_SIZE) || 10; +const currentBatch = remaining.slice(0, batchSize); + +// Encoding Normalization: Excel → UTF-8 NFC (Patch) +const normalize = (str) => { + if (!str) return ''; + return Buffer.from(String(str), 'utf8').toString('utf8').normalize('NFC'); +}; + +return currentBatch.map((item, i) => ({ + ...item, + json: { + ...item.json, + document_number: normalize(item.json.document_number), + title: normalize(item.json.title), + original_index: startIndex + i + } +})); +``` + +--- + +### 4.4 Node 2: File Validator & Sanitizer + +**Node Type:** `Code` — **2 Outputs** + +```javascript +const fs = require('fs'); +const path = require('path'); +const items = $input.all(); +const validatedItems = []; +const errorItems = []; + +for (const item of items) { + const docNumber = item.json.document_number; + // Sanitize + Normalize Filename (Patch) + const safeName = path.basename( + String(docNumber).replace(/[^a-zA-Z0-9\-_.]/g, '_') + ).normalize('NFC'); + const filePath = path.resolve('/data/dms/staging_ai', `${safeName}.pdf`); + + if (!filePath.startsWith('/data/dms/staging_ai/')) { + errorItems.push({ ...item, json: { ...item.json, error: 'Path traversal detected', error_type: 'FILE_NOT_FOUND' } }); + continue; + } + + try { + if (fs.existsSync(filePath)) { + const stats = fs.statSync(filePath); + validatedItems.push({ ...item, json: { ...item.json, file_exists: true, file_size: stats.size, file_path: filePath } }); + } else { + errorItems.push({ ...item, json: { ...item.json, error: `File not found: ${filePath}`, error_type: 'FILE_NOT_FOUND', file_exists: false } }); + } + } catch (err) { + errorItems.push({ ...item, json: { ...item.json, error: err.message, error_type: 'FILE_NOT_FOUND', file_exists: false } }); + } +} + +// Output 0 → Node 3 | Output 1 → Node 5D +return [validatedItems, errorItems]; +``` + +--- + +### 4.5 Node 3: Build Prompt + AI Analysis + +**Step 1 — MariaDB (Read Fallback State):** +```sql +SELECT is_fallback_active FROM migration_fallback_state +WHERE batch_id = '{{ $env.MIGRATION_BATCH_ID }}' LIMIT 1; +``` + +**Step 2 — Code Node (Build Prompt: inject system_categories):** +```javascript +const fallbackState = $('Read Fallback State').first(); +const isFallback = fallbackState?.json?.is_fallback_active || false; +const model = isFallback ? $env.OLLAMA_MODEL_FALLBACK : $env.OLLAMA_MODEL_PRIMARY; + +// ใช้ system_categories จาก Workflow Variable (ไม่ hardcode) +const systemCategories = $workflow.variables?.system_categories + || ['Correspondence','RFA','Drawing','Transmittal','Report','Other']; + +const item = $input.first(); + +const systemPrompt = `You are a Document Controller for a large construction project. +Your task is to validate document metadata. +You MUST respond ONLY with valid JSON. No explanation, no markdown, no extra text. +If there are no issues, "detected_issues" must be an empty array [].`; + +const userPrompt = `Validate this document metadata and respond in JSON: + +Document Number: ${item.json.document_number} +Title: ${item.json.title} +Expected Pattern: [ORG]-[TYPE]-[SEQ] e.g. "TCC-COR-0001" +Category List (MUST match system enum exactly): ${JSON.stringify(systemCategories)} + +Respond ONLY with this exact JSON structure: +{ + "is_valid": true | false, + "confidence": 0.0 to 1.0, + "suggested_category": "", + "detected_issues": [""], + "suggested_title": "" +}`; + +return [{ + json: { + ...item.json, + active_model: model, + system_categories: systemCategories, + ollama_payload: { model, prompt: `${systemPrompt}\n\n${userPrompt}`, stream: false, format: 'json' } + } +}]; +``` + +**Step 3 — HTTP Request Node (Ollama):** +```json +{ + "method": "POST", + "url": "={{ $env.OLLAMA_HOST }}/api/generate", + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={{ $json.ollama_payload }}", + "options": { "timeout": 30000, "retry": { "count": 3, "delay": 2000, "backoff": "exponential" } } +} +``` + +**Step 4 — Code Node (Parse + Validate: Enum check):** +```javascript +const items = $input.all(); +const parsed = []; +const parseErrors = []; + +for (const item of items) { + try { + let raw = item.json.response || ''; + raw = raw.replace(/```json/gi, '').replace(/```/g, '').trim(); + const result = JSON.parse(raw); + + // Strict Schema Validation + if (typeof result.is_valid !== 'boolean') + throw new Error('is_valid must be boolean'); + if (typeof result.confidence !== 'number' || result.confidence < 0 || result.confidence > 1) + throw new Error('confidence must be float 0.0–1.0'); + if (!Array.isArray(result.detected_issues)) + throw new Error('detected_issues must be array'); + + // Enum Validation ตรง System Categories (Patch) + const systemCategories = item.json.system_categories || []; + if (!systemCategories.includes(result.suggested_category)) + throw new Error(`Category "${result.suggested_category}" not in system enum: [${systemCategories.join(', ')}]`); + + parsed.push({ ...item, json: { ...item.json, ai_result: result, parse_error: null } }); + } catch (err) { + parseErrors.push({ + ...item, + json: { ...item.json, ai_result: null, parse_error: err.message, raw_ai_response: item.json.response, error_type: 'AI_PARSE_ERROR' } + }); + } +} + +// Output 0 → Node 4 | Output 1 → Node 3.5 + Node 5D +return [parsed, parseErrors]; +``` + +--- + +### 4.6 Node 3.5: Fallback Model Manager + +**MariaDB Node:** +```sql +INSERT INTO migration_fallback_state (batch_id, recent_error_count, is_fallback_active) +VALUES ('{{ $env.MIGRATION_BATCH_ID }}', 1, FALSE) +ON DUPLICATE KEY UPDATE + recent_error_count = recent_error_count + 1, + is_fallback_active = CASE + WHEN recent_error_count + 1 >= {{ $env.FALLBACK_ERROR_THRESHOLD }} THEN TRUE + ELSE is_fallback_active + END, + updated_at = NOW(); +``` + +**Code Node (Alert):** +```javascript +const state = $input.first().json; +if (state.is_fallback_active) { + return [{ json: { + ...state, alert: true, + alert_message: `⚠️ Fallback model (${$env.OLLAMA_MODEL_FALLBACK}) activated after ${state.recent_error_count} errors` + }}]; +} +return [{ json: { ...state, alert: false } }]; +``` + +--- + +### 4.7 Node 4: Confidence Router + Revision Drift Protection + +**Node Type:** `Code` — **4 Outputs** + +```javascript +const items = $input.all(); +const autoIngest = []; +const reviewQueue = []; +const rejectLog = []; +const errorLog = []; + +const HIGH = parseFloat($env.CONFIDENCE_THRESHOLD_HIGH) || 0.85; +const LOW = parseFloat($env.CONFIDENCE_THRESHOLD_LOW) || 0.60; + +for (const item of items) { + if (item.json.parse_error || !item.json.ai_result) { + errorLog.push(item); continue; + } + + // Revision Drift Protection + if (item.json.excel_revision !== undefined) { + const expectedRev = (item.json.current_db_revision || 0) + 1; + if (parseInt(item.json.excel_revision) !== expectedRev) { + reviewQueue.push({ + ...item, + json: { ...item.json, review_reason: `Revision drift: Excel=${item.json.excel_revision}, Expected=${expectedRev}` } + }); + continue; + } + } + + const ai = item.json.ai_result; + if (ai.confidence >= HIGH && ai.is_valid === true) { + autoIngest.push(item); + } else if (ai.confidence >= LOW) { + reviewQueue.push({ ...item, json: { ...item.json, review_reason: `Confidence ${ai.confidence.toFixed(2)} < ${HIGH}` } }); + } else { + rejectLog.push({ + ...item, + json: { ...item.json, reject_reason: ai.is_valid === false ? 'AI marked invalid' : `Confidence ${ai.confidence.toFixed(2)} < ${LOW}` } + }); + } +} + +// Output 0: Auto Ingest | 1: Review Queue | 2: Reject Log | 3: Error Log +return [autoIngest, reviewQueue, rejectLog, errorLog]; +``` + +--- + +### 4.8 Node 5A: Auto Ingest + Idempotency + Checkpoint + +**HTTP Request Node (Patch — Idempotency-Key Header + source_file_path):** +```json +{ + "method": "POST", + "url": "={{ $env.BACKEND_URL }}/api/correspondences/import", + "authentication": "genericCredentialType", + "genericAuthType": "lcbp3MigrationToken", + "sendHeaders": true, + "headers": { + "Idempotency-Key": "={{ $json.document_number }}:{{ $env.MIGRATION_BATCH_ID }}" + }, + "sendBody": true, + "specifyBody": "json", + "jsonBody": { + "document_number": "={{ $json.document_number }}", + "title": "={{ $json.ai_result.suggested_title || $json.title }}", + "category": "={{ $json.ai_result.suggested_category }}", + "source_file_path": "={{ $json.file_path }}", + "ai_confidence": "={{ $json.ai_result.confidence }}", + "ai_issues": "={{ $json.ai_result.detected_issues }}", + "migrated_by": "SYSTEM_IMPORT", + "batch_id": "={{ $env.MIGRATION_BATCH_ID }}" + }, + "options": { "timeout": 30000, "retry": { "count": 3, "delay": 5000 } } +} +``` + +> Backend จะ generate UUID, enforce Storage path `/storage/{project}/{category}/{year}/{month}/{uuid}.pdf`, move file ผ่าน StorageService และบันทึก Audit Log `action=IMPORT, source=MIGRATION` + +**Checkpoint Code Node (ทุก 10 Records):** +```javascript +const item = $input.first(); +return [{ json: { + ...item.json, + should_update_checkpoint: item.json.original_index % 10 === 0, + checkpoint_index: item.json.original_index +}}]; +``` + +**IF Node → MariaDB Checkpoint:** +```sql +INSERT INTO migration_progress (batch_id, last_processed_index, status) +VALUES ('{{ $env.MIGRATION_BATCH_ID }}', {{ $json.checkpoint_index }}, 'RUNNING') +ON DUPLICATE KEY UPDATE last_processed_index = {{ $json.checkpoint_index }}, updated_at = NOW(); +``` + +--- + +### 4.9 Node 5B: Review Queue (Temporary Table) + +> ⚠️ ห้ามสร้าง Correspondence record — รอ Admin Approve แล้วค่อย POST `/api/correspondences/import` + +```sql +INSERT INTO migration_review_queue + (document_number, title, original_title, ai_suggested_category, + ai_confidence, ai_issues, review_reason, status, created_at) +VALUES ( + '{{ $json.document_number }}', + '{{ $json.ai_result.suggested_title || $json.title }}', + '{{ $json.title }}', + '{{ $json.ai_result.suggested_category }}', + {{ $json.ai_result.confidence }}, + '{{ JSON.stringify($json.ai_result.detected_issues) }}', + '{{ $json.review_reason }}', + 'PENDING', NOW() +) +ON DUPLICATE KEY UPDATE status = 'PENDING', review_reason = '{{ $json.review_reason }}'; +``` + +--- + +### 4.10 Node 5C: Reject Log → `/data/migration_logs/` + +```javascript +const fs = require('fs'); +const item = $input.first(); +const csvPath = '/data/dms/migration_logs/reject_log.csv'; +const header = 'timestamp,document_number,title,reject_reason,ai_confidence,ai_issues\n'; +const esc = (s) => `"${String(s||'').replace(/"/g,'""')}"`; + +if (!fs.existsSync(csvPath)) fs.writeFileSync(csvPath, header, 'utf8'); + +const line = [ + new Date().toISOString(), + esc(item.json.document_number), esc(item.json.title), + esc(item.json.reject_reason), + item.json.ai_result?.confidence ?? 'N/A', + esc(JSON.stringify(item.json.ai_result?.detected_issues || [])) +].join(',') + '\n'; + +fs.appendFileSync(csvPath, line, 'utf8'); +return [$input.first()]; +``` + +--- + +### 4.11 Node 5D: Error Log → `/data/migration_logs/` + MariaDB + +```javascript +const fs = require('fs'); +const item = $input.first(); +const csvPath = '/data/dms/migration_logs/error_log.csv'; +const header = 'timestamp,document_number,error_type,error_message,raw_ai_response\n'; +const esc = (s) => `"${String(s||'').replace(/"/g,'""')}"`; + +if (!fs.existsSync(csvPath)) fs.writeFileSync(csvPath, header, 'utf8'); + +const line = [ + new Date().toISOString(), + esc(item.json.document_number), + esc(item.json.error_type || 'UNKNOWN'), + esc(item.json.error || item.json.parse_error), + esc(item.json.raw_ai_response || '') +].join(',') + '\n'; + +fs.appendFileSync(csvPath, line, 'utf8'); +return [$input.first()]; +``` + +**MariaDB Node:** +```sql +INSERT INTO migration_errors + (batch_id, document_number, error_type, error_message, raw_ai_response, created_at) +VALUES ( + '{{ $env.MIGRATION_BATCH_ID }}', '{{ $json.document_number }}', + '{{ $json.error_type || "UNKNOWN" }}', '{{ $json.error || $json.parse_error }}', + '{{ $json.raw_ai_response || "" }}', NOW() +); +``` + +--- + +## 📌 ส่วนที่ 5: Rollback Workflow + +**Workflow: `Migration Rollback`** — Manual Trigger เท่านั้น + +``` +[Manual Trigger: {confirmation: "CONFIRM_ROLLBACK"}] + │ + ▼ +[Code: Guard — ต้องพิมพ์ "CONFIRM_ROLLBACK"] + │ PASS + ▼ +[MariaDB: Disable Token] +UPDATE users SET is_active = false WHERE username = 'migration_bot'; + │ + ▼ +[MariaDB: Delete File Records] +DELETE FROM correspondence_files WHERE correspondence_id IN + (SELECT id FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'); + │ + ▼ +[MariaDB: Delete Correspondence Records] +DELETE FROM correspondences WHERE created_by = 'SYSTEM_IMPORT'; + │ + ▼ +[MariaDB: Clear Idempotency Records] +DELETE FROM import_transactions WHERE batch_id = '{{$env.MIGRATION_BATCH_ID}}'; + │ + ▼ +[MariaDB: Reset Checkpoint + Fallback State] + │ + ▼ +[Email: Rollback Report → Admin] +``` + +**Confirmation Guard:** +```javascript +if ($input.first().json.confirmation !== 'CONFIRM_ROLLBACK') { + throw new Error('Rollback cancelled: type "CONFIRM_ROLLBACK" to proceed.'); +} +return $input.all(); +``` + +--- + +## 📌 ส่วนที่ 6: End-of-Night Summary (06:30 ทุกวัน) + +**MariaDB:** +```sql +SELECT + mp.last_processed_index AS total_progress, + (SELECT COUNT(*) FROM correspondences + WHERE created_by = 'SYSTEM_IMPORT' AND DATE(created_at) = CURDATE()) AS auto_ingested, + (SELECT COUNT(*) FROM migration_review_queue WHERE DATE(created_at) = CURDATE()) AS sent_to_review, + (SELECT COUNT(*) FROM migration_errors + WHERE batch_id = '{{ $env.MIGRATION_BATCH_ID }}' AND DATE(created_at) = CURDATE()) AS errors +FROM migration_progress mp WHERE mp.batch_id = '{{ $env.MIGRATION_BATCH_ID }}'; +``` + +**Code Node (Build Report):** +```javascript +const s = $input.first().json; +const total = 20000; +const pct = ((s.total_progress / total) * 100).toFixed(1); +const nightsLeft = Math.ceil((total - s.total_progress) / (8 * 3600 / 3)); + +const report = ` +📊 Migration Night Summary — ${new Date().toLocaleDateString('th-TH')} +${'─'.repeat(50)} +✅ Auto Ingested : ${s.auto_ingested} +🔍 Sent to Review : ${s.sent_to_review} +❌ Errors : ${s.errors} +───────────────────────────────────────────────── +📈 Progress : ${s.total_progress} / ${total} (${pct}%) +🌙 Est. Nights Left: ~${nightsLeft} คืน +${'─'.repeat(50)} +${s.errors > 50 ? '⚠️ WARNING: High error count — investigate before next run' : '✅ Error rate OK'} +`; +return [{ json: { report, stats: s } }]; +``` + +--- + +## 📌 ส่วนที่ 7: Monitoring (Hourly Alert — เฉพาะเมื่อเกิน Threshold) + +**Code Node (Evaluate):** +```javascript +const s = $input.first().json; +const alerts = []; + +if (s.minutes_since_update > 30) + alerts.push(`⚠️ No progress for ${s.minutes_since_update} min — may be stuck`); +if (s.is_fallback_active) + alerts.push(`⚠️ Fallback model active — errors: ${s.recent_error_count}`); +if (s.recent_error_count >= 20) + alerts.push(`🔴 Critical: ${s.recent_error_count} errors — consider stopping`); + +return [{ json: { ...s, has_alerts: alerts.length > 0, alerts } }]; +``` + +**IF `has_alerts = true` → Email Alert ทันที** + +--- + +## 📌 ส่วนที่ 8: Pre-Production Checklist + +| ลำดับ | รายการทดสอบ | ผลลัพธ์ที่คาดหวัง | ✅/❌ | +| --- | --------------------------------------------- | ---------------------- | --- | +| 1 | Pre-flight ผ่านทุก Check | All green | | +| 2 | `GET /api/meta/categories` สำเร็จ | categories array ไม่ว่าง | | +| 3 | Enum ใน Prompt ไม่ hardcode | ตรงกับ Backend | | +| 4 | Idempotency: รัน Batch ซ้ำ | ไม่สร้าง Revision ซ้ำ | | +| 5 | Storage path ตาม Spec | UUID + /year/month/ | | +| 6 | Audit Log มี `action=IMPORT, source=MIGRATION` | Verified | | +| 7 | Review Queue ไม่สร้าง record อัตโนมัติ | Verified | | +| 8 | Revision drift → Review Queue | Verified | | +| 9 | Error ≥ 5 → Fallback Model สลับ | mistral:7b active | | +| 10 | Reject/Error CSV เขียนลง `migration_logs/` | ไม่ใช่ `staging_ai/` | | +| 11 | Rollback Guard ต้องพิมพ์ CONFIRM_ROLLBACK | Block ทำงาน | | +| 12 | Night Summary 06:30 + Est. nights left | Email ถึง Admin | | +| 13 | Monitoring Alert เฉพาะเกิน Threshold | ไม่ spam ทุกชั่วโมง | | +| 14 | Nginx Rate Limit `burst=5` | Configured | | +| 15 | Docker `mem_limit=2g` + log rotation | Configured | | + +**คำสั่งทดสอบ:** +```bash +# Ollama +docker exec -it n8n-migration curl http://:11434/api/tags + +# RO mount +docker exec -it n8n-migration ls /data/dms/staging_ai | head -5 + +# RW mount +docker exec -it n8n-migration sh -c "echo ok > /data/dms/migration_logs/test.txt && echo '✅ rw OK'" + +# DB +docker exec -it n8n-migration mysql -h -u migration_bot -p -e "SELECT 1" + +# Backend + Category endpoint +curl -H "Authorization: Bearer " https:///api/meta/categories +``` + +--- + +## 📌 ส่วนที่ 9: การรันงานจริง + +### 9.1 Daily Operation + +| เวลา | กิจกรรม | ผู้รับผิดชอบ | +| ----- | ------------------------------ | ------------------- | +| 08:00 | ตรวจสอบ Night Summary Email | Admin | +| 09:00 | Approve/Reject ใน Review Queue | Document Controller | +| 17:00 | ตรวจ Disk Space + GPU Temp | DevOps | +| 22:00 | Workflow เริ่มรันอัตโนมัติ | System | +| 06:30 | Night Summary Report ส่ง Email | System | + +### 9.2 Emergency Stop + +```bash +# 1. หยุด n8n +docker stop n8n-migration + +# 2. Disable Token +mysql -h -u root -p \ + -e "UPDATE users SET is_active = false WHERE username = 'migration_bot';" + +# 3. Progress +mysql -h -u root -p \ + -e "SELECT * FROM migration_progress WHERE batch_id = 'migration_20260226';" + +# 4. Errors +mysql -h -u root -p \ + -e "SELECT * FROM migration_errors ORDER BY created_at DESC LIMIT 20;" + +# 5. Rollback ผ่าน Webhook +curl -X POST http://:5678/webhook/rollback \ + -H "Content-Type: application/json" \ + -d '{"confirmation":"CONFIRM_ROLLBACK"}' +``` + +--- + +## 📞 การติดต่อสนับสนุน + +| ปัญหา | ช่องทางติดต่อ | +| --------------- | ------------------------------------------- | +| Technical Issue | DevOps Team (Slack: #migration-support) | +| Data Issue | Document Controller (Email: dc@lcbp3.local) | +| Security Issue | Security Team (Email: security@lcbp3.local) | + +--- + +**เอกสารฉบับนี้จัดทำขึ้นเพื่อรองรับ Migration ตาม ADR-017 และ 03-04** +**Version:** 1.8.0 | **Last Updated:** 2026-02-27 | **Author:** Development Team diff --git a/specs/03-Data-and-Storage/lcbp3-v1.8.0-schema.sql b/specs/03-Data-and-Storage/lcbp3-v1.8.0-schema.sql new file mode 100644 index 0000000..3302229 --- /dev/null +++ b/specs/03-Data-and-Storage/lcbp3-v1.8.0-schema.sql @@ -0,0 +1,2070 @@ +-- ========================================================== +-- DMS v1.8.0 Document Management System Database +-- Deploy Script Schema +-- Server: Container Station on QNAP TS-473A +-- Database service: MariaDB 11.8 +-- database web ui: phpmyadmin 5-apache +-- database development ui: DBeaver +-- backend service: NestJS +-- frontend service: next.js +-- reverse proxy: jc21/nginx-proxy-manager:latest +-- cron service: n8n +-- ========================================================== +-- [v1.8.0 UPDATE] Prepare migration +-- Update: Upgraded from v1.7.0 +-- Last Updated: 2026-02-27 +-- Major Changes: +-- 1. ปรับปรุง: +-- 1.1 TABLE correspondences +-- - INDEX idx_doc_number (document_number), +-- - INDEX idx_deleted_at (deleted_at), +-- - INDEX idx_created_by (created_by), +-- 2. เพิ่ม: +-- 2.1 TABLE migration_progress +-- 2.2 TABLE import_transactions +-- ========================================================== +SET NAMES utf8mb4; + +SET time_zone = '+07:00'; + +-- ปิดการตรวจสอบ Foreign Key ชั่วคราวเพื่อให้สามารถลบตารางได้ทั้งหมด +SET FOREIGN_KEY_CHECKS = 0; + +DROP VIEW IF EXISTS v_document_statistics; + +DROP VIEW IF EXISTS v_documents_with_attachments; + +DROP VIEW IF EXISTS v_user_all_permissions; + +DROP VIEW IF EXISTS v_audit_log_details; + +DROP VIEW IF EXISTS v_user_tasks; + +DROP VIEW IF EXISTS v_contract_parties_all; + +DROP VIEW IF EXISTS v_current_rfas; + +DROP VIEW IF EXISTS v_current_correspondences; + +-- DROP PROCEDURE IF EXISTS sp_get_next_document_number; +-- 🗑️ DROP TABLE SCRIPT: LCBP3-DMS v1.4.2 +-- คำเตือน: ข้อมูลทั้งหมดจะหายไป กรุณา Backup ก่อนรันบน Production +SET FOREIGN_KEY_CHECKS = 0; +DROP TABLE IF EXISTS migration_progress; +DROP TABLE IF EXISTS import_transactions; +-- ============================================================ +-- ส่วนที่ 1: ตาราง System, Logs & Preferences (ตารางปลายทาง/ส่วนเสริม) +-- ============================================================ +DROP TABLE IF EXISTS backup_logs; + +DROP TABLE IF EXISTS search_indices; + +DROP TABLE IF EXISTS notifications; + +DROP TABLE IF EXISTS audit_logs; + +-- [NEW v1.4.2] ตารางการตั้งค่าส่วนตัวของผู้ใช้ (FK -> users) +DROP TABLE IF EXISTS user_preferences; + +-- [NEW v1.4.2] ตารางเก็บ Schema สำหรับ Validate JSON (Stand-alone) +DROP TABLE IF EXISTS json_schemas; + +-- [v1.5.1 NEW] ตาราง Audit และ Error Log สำหรับ Document Numbering +DROP TABLE IF EXISTS document_number_errors; + +DROP TABLE IF EXISTS document_number_audit; + +DROP TABLE IF EXISTS document_number_reservations; + +-- ============================================================ +-- ส่วนที่ 2: ตาราง Junction (เชื่อมโยงข้อมูล M:N) +-- ============================================================ +DROP TABLE IF EXISTS correspondence_tags; + +DROP TABLE IF EXISTS asbuilt_revision_shop_revisions_refs; + +DROP TABLE IF EXISTS shop_drawing_revision_contract_refs; + +DROP TABLE IF EXISTS contract_drawing_subcat_cat_maps; + +-- ============================================================ +-- ส่วนที่ 3: ตารางไฟล์แนบและการเชื่อมโยง (Attachments) +-- ============================================================ +DROP TABLE IF EXISTS contract_drawing_attachments; + +DROP TABLE IF EXISTS circulation_attachments; + +DROP TABLE IF EXISTS shop_drawing_revision_attachments; + +DROP TABLE IF EXISTS asbuilt_drawing_revision_attachments; + +DROP TABLE IF EXISTS correspondence_attachments; + +DROP TABLE IF EXISTS attachments; + +-- ตารางหลักเก็บ path ไฟล์ +-- ============================================================ +-- ส่วนที่ 4: ตาราง Workflow & Routing (Process Logic) +-- ============================================================ +-- Correspondence Workflow +-- ============================================================ +-- ส่วนที่ 5: ตาราง Mapping สิทธิ์และโครงสร้าง (Access Control) +-- ============================================================ +DROP TABLE IF EXISTS role_permissions; + +DROP TABLE IF EXISTS user_assignments; + +DROP TABLE IF EXISTS contract_organizations; + +DROP TABLE IF EXISTS project_organizations; + +-- ============================================================ +-- ส่วนที่ 6: ตารางรายละเอียดของเอกสาร (Revisions & Items) +-- ============================================================ +DROP TABLE IF EXISTS transmittal_items; + +DROP TABLE IF EXISTS shop_drawing_revisions; + +DROP TABLE IF EXISTS asbuilt_drawing_revisions; + +DROP TABLE IF EXISTS rfa_items; + +DROP TABLE IF EXISTS rfa_revisions; + +DROP TABLE IF EXISTS correspondence_references; + +DROP TABLE IF EXISTS correspondence_recipients; + +DROP TABLE IF EXISTS correspondence_revisions; + +-- [Modified v1.4.2] มี Virtual Columns +-- ============================================================ +-- ส่วนที่ 7: ตารางเอกสารหลัก (Core Documents) +-- ============================================================ +DROP TABLE IF EXISTS circulations; + +DROP TABLE IF EXISTS transmittals; + +DROP TABLE IF EXISTS contract_drawings; + +DROP TABLE IF EXISTS shop_drawings; + +DROP TABLE IF EXISTS asbuilt_drawings; + +DROP TABLE IF EXISTS rfas; + +DROP TABLE IF EXISTS correspondences; + +-- ============================================================ +-- ส่วนที่ 8: ตารางหมวดหมู่และข้อมูลหลัก (Master Data) +-- ============================================================ +-- [NEW 6B] ลบตารางใหม่ที่เพิ่มเข้ามาเพื่อป้องกัน Error เวลา Re-deploy +DROP TABLE IF EXISTS correspondence_sub_types; + +DROP TABLE IF EXISTS disciplines; + +DROP TABLE IF EXISTS shop_drawing_sub_categories; + +DROP TABLE IF EXISTS shop_drawing_main_categories; + +DROP TABLE IF EXISTS contract_drawing_sub_cats; + +DROP TABLE IF EXISTS contract_drawing_cats; + +DROP TABLE IF EXISTS contract_drawing_volumes; + +DROP TABLE IF EXISTS circulation_status_codes; + +DROP TABLE IF EXISTS rfa_approve_codes; + +DROP TABLE IF EXISTS rfa_status_codes; + +DROP TABLE IF EXISTS rfa_types; + +DROP TABLE IF EXISTS correspondence_status; + +DROP TABLE IF EXISTS correspondence_types; + +DROP TABLE IF EXISTS document_number_counters; + +-- [Modified v1.4.2] มี version column +DROP TABLE IF EXISTS document_number_formats; + +DROP TABLE IF EXISTS tags; + +-- ============================================================ +-- ส่วนที่ 9: ตารางผู้ใช้ บทบาท และโครงสร้างรากฐาน (Root Tables) +-- ============================================================ +DROP TABLE IF EXISTS organization_roles; + +DROP TABLE IF EXISTS roles; + +DROP TABLE IF EXISTS permissions; + +DROP TABLE IF EXISTS contracts; + +DROP TABLE IF EXISTS projects; + +DROP TABLE IF EXISTS refresh_tokens; + +DROP TABLE IF EXISTS users; + +-- Referenced by user_preferences, audit_logs, etc. +DROP TABLE IF EXISTS organizations; + +-- Referenced by users, projects, etc. +-- ===================================================== +-- 1. 🏢 Core & Master Data (องค์กร, โครงการ, สัญญา) +-- ===================================================== +-- ตาราง Master เก็บประเภทบทบาทขององค์กร +CREATE TABLE organization_roles ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + role_name VARCHAR(20) NOT NULL UNIQUE COMMENT 'ชื่อบทบาท (OWNER, DESIGNER, CONSULTANT, CONTRACTOR, THIRD PARTY)', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บประเภทบทบาทขององค์กร'; + +-- ตาราง Master เก็บข้อมูลองค์กรทั้งหมดที่เกี่ยวข้องในระบบ +CREATE TABLE organizations ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + organization_code VARCHAR(20) NOT NULL UNIQUE COMMENT 'รหัสองค์กร', + organization_name VARCHAR(255) NOT NULL COMMENT 'ชื่อองค์กร', + role_id INT COMMENT 'บทบาทขององค์กร', + is_active BOOLEAN DEFAULT TRUE COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)', + FOREIGN KEY (role_id) REFERENCES organization_roles (id) ON DELETE + SET NULL +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูลองค์กรทั้งหมดที่เกี่ยวข้องในระบบ'; + +-- ตาราง Master เก็บข้อมูลโครงการ +CREATE TABLE projects ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสโครงการ', + project_name VARCHAR(255) NOT NULL COMMENT 'ชื่อโครงการ', + -- parent_project_id INT COMMENT 'รหัสโครงการหลัก (ถ้ามี)', + -- contractor_organization_id INT COMMENT 'รหัสองค์กรผู้รับเหมา (ถ้ามี)', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + -- FOREIGN KEY (parent_project_id) REFERENCES projects(id) ON DELETE SET NULL, + -- FOREIGN KEY (contractor_organization_id) REFERENCES organizations(id) ON DELETE SET NULL + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูลโครงการ'; + +-- ตาราง Master เก็บข้อมูลสัญญา +CREATE TABLE contracts ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL, + contract_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสสัญญา', + contract_name VARCHAR(255) NOT NULL COMMENT 'ชื่อสัญญา', + description TEXT COMMENT 'คำอธิบายสัญญา', + start_date DATE COMMENT 'วันที่เริ่มสัญญา', + end_date DATE COMMENT 'วันที่สิ้นสุดสัญญา', + is_active BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)', + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูลสัญญา'; + +-- ===================================================== +-- 2. 👥 Users & RBAC (ผู้ใช้, สิทธิ์, บทบาท) +-- ===================================================== +-- ตาราง Master เก็บข้อมูลผู้ใช้งาน (User) +CREATE TABLE users ( + user_id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + username VARCHAR(50) NOT NULL UNIQUE COMMENT 'ชื่อผู้ใช้งาน', + password_hash VARCHAR(255) NOT NULL COMMENT 'รหัสผ่าน (Hashed)', + first_name VARCHAR(50) COMMENT 'ชื่อจริง', + last_name VARCHAR(50) COMMENT 'นามสกุล', + email VARCHAR(100) NOT NULL UNIQUE COMMENT 'อีเมล', + line_id VARCHAR(100) COMMENT 'LINE ID', + primary_organization_id INT COMMENT 'สังกัดองค์กร', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + failed_attempts INT DEFAULT 0 COMMENT 'จำนวนครั้งที่ล็อกอินล้มเหลว', + locked_until DATETIME COMMENT 'ล็อกอินไม่ได้จนถึงเวลา', + last_login_at TIMESTAMP NULL COMMENT 'วันที่และเวลาที่ล็อกอินล่าสุด', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL DEFAULT NULL COMMENT 'วันที่ลบ', + FOREIGN KEY (primary_organization_id) REFERENCES organizations (id) ON DELETE + SET NULL +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูลผู้ใช้งาน (User)'; + +-- ตารางเก็บ Refresh Tokens สำหรับ Authentication +CREATE TABLE refresh_tokens ( + token_id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + user_id INT NOT NULL COMMENT 'เจ้าของ Token', + token_hash VARCHAR(255) NOT NULL COMMENT 'Hash ของ Refresh Token', + expires_at DATETIME NOT NULL COMMENT 'วันหมดอายุ', + is_revoked TINYINT(1) DEFAULT 0 COMMENT 'สถานะยกเลิก (1=Revoked)', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + replaced_by_token VARCHAR(255) NULL COMMENT 'Token ใหม่ที่มาแทนที่ (Rotation)', + FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเก็บ Refresh Tokens สำหรับ Authentication'; + +-- ตาราง Master เก็บ "บทบาท" ของผู้ใช้ในระบบ +CREATE TABLE roles ( + role_id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + -- role_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสบทบาท (เช่น SUPER_ADMIN, ADMIN, EDITOR, VIEWER)', + role_name VARCHAR(100) NOT NULL COMMENT 'ชื่อบทบาท', + scope ENUM( + 'Global', + 'Organization', + 'Project', + 'Contract' + ) NOT NULL, + -- ขอบเขตของบทบาท (จากข้อ 4.3) + description TEXT COMMENT 'คำอธิบายบทบาท', + is_system BOOLEAN DEFAULT FALSE COMMENT '(1 = บทบาทของระบบ ลบไม่ได้)', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บ "บทบาท" ของผู้ใช้ในระบบ'; + +-- ตาราง Master เก็บ "สิทธิ์" (Permission) หรือ "การกระทำ" ทั้งหมดในระบบ +CREATE TABLE permissions ( + permission_id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + permission_name VARCHAR(100) NOT NULL UNIQUE COMMENT 'รหัสสิทธิ์ (เช่น rfas.create, rfas.view)', + description TEXT COMMENT 'คำอธิบายสิทธิ์', + module VARCHAR(50) COMMENT 'โมดูลที่เกี่ยวข้อง', + scope_level ENUM('GLOBAL', 'ORG', 'PROJECT') COMMENT 'ระดับขอบเขตของสิทธิ์', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บ "สิทธิ์" (Permission) หรือ "การกระทำ" ทั้งหมดในระบบ'; + +-- ตารางเชื่อมระหว่าง roles และ permissions (M:N) +CREATE TABLE role_permissions ( + role_id INT COMMENT 'ID ของบทบาท', + permission_id INT COMMENT 'ID ของสิทธิ์', + PRIMARY KEY (role_id, permission_id), + FOREIGN KEY (role_id) REFERENCES roles (role_id) ON DELETE CASCADE, + FOREIGN KEY (permission_id) REFERENCES permissions (permission_id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง roles และ permissions (M :N)'; + +-- search.advanced +-- ตารางเชื่อมผู้ใช้ (users) +CREATE TABLE user_assignments ( + id INT AUTO_INCREMENT PRIMARY KEY, + user_id INT NOT NULL, + role_id INT NOT NULL, + -- คอลัมน์สำหรับกำหนดขอบเขต (จะใช้เพียงอันเดียวต่อแถว) + organization_id INT NULL, + project_id INT NULL, + contract_id INT NULL, + assigned_by_user_id INT, + -- ผู้ที่มอบหมายบทบาทนี้ + assigned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE, + FOREIGN KEY (role_id) REFERENCES roles (role_id) ON DELETE CASCADE, + FOREIGN KEY (organization_id) REFERENCES organizations (id) ON DELETE CASCADE, + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (contract_id) REFERENCES contracts (id) ON DELETE CASCADE, + FOREIGN KEY (assigned_by_user_id) REFERENCES users (user_id), + -- Constraint เพื่อให้แน่ใจว่ามีเพียงขอบเขตเดียวที่ถูกกำหนดในแต่ละแถว + CONSTRAINT chk_scope CHECK ( + ( + organization_id IS NOT NULL + AND project_id IS NULL + AND contract_id IS NULL + ) + OR ( + organization_id IS NULL + AND project_id IS NOT NULL + AND contract_id IS NULL + ) + OR ( + organization_id IS NULL + AND project_id IS NULL + AND contract_id IS NOT NULL + ) + OR ( + organization_id IS NULL + AND project_id IS NULL + AND contract_id IS NULL + ) -- สำหรับ Global scope + ) +); + +CREATE TABLE project_organizations ( + project_id INT NOT NULL, + organization_id INT NOT NULL, + PRIMARY KEY (project_id, organization_id), + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (organization_id) REFERENCES organizations (id) ON DELETE CASCADE +); + +CREATE TABLE contract_organizations ( + contract_id INT NOT NULL, + organization_id INT NOT NULL, + role_in_contract VARCHAR(100), + -- เช่น 'Owner', 'Designer', 'Consultant', 'Contractor ' + PRIMARY KEY (contract_id, organization_id), + FOREIGN KEY (contract_id) REFERENCES contracts (id) ON DELETE CASCADE, + FOREIGN KEY (organization_id) REFERENCES organizations (id) ON DELETE CASCADE +); + +-- ===================================================== +-- 3. ✉️ Correspondences (เอกสารหลัก, Revisions) +-- ===================================================== +-- ตารางเก็บข้อมูลสาขางาน (Disciplines) แยกตามสัญญา +CREATE TABLE disciplines ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + contract_id INT NOT NULL COMMENT 'ผูกกับสัญญา', + discipline_code VARCHAR(10) NOT NULL COMMENT 'รหัสสาขา (เช่น GEN, STR)', + code_name_th VARCHAR(255) COMMENT 'ชื่อไทย', + code_name_en VARCHAR(255) COMMENT 'ชื่ออังกฤษ', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + FOREIGN KEY (contract_id) REFERENCES contracts (id) ON DELETE CASCADE, + UNIQUE KEY uk_discipline_contract (contract_id, discipline_code) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเก็บข้อมูลสาขางาน (Disciplines) ตาม Req 6B'; + +-- ตาราง Master เก็บประเภทเอกสารโต้ตอบ +CREATE TABLE correspondence_types ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + type_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสประเภท (เช่น RFA, RFI)', + type_name VARCHAR(255) NOT NULL COMMENT 'ชื่อประเภท', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน ', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ (Soft Delete)' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บประเภทเอกสารโต้ตอบ'; + +-- ตารางเก็บประเภทหนังสือย่อย (Sub Types) สำหรับ Mapping เลขรหัส +CREATE TABLE correspondence_sub_types ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + contract_id INT NOT NULL COMMENT 'ผูกกับสัญญา', + correspondence_type_id INT NOT NULL COMMENT 'ผูกกับประเภทเอกสารหลัก (เช่น RFA)', + sub_type_code VARCHAR(20) NOT NULL COMMENT 'รหัสย่อย (เช่น MAT, SHP)', + sub_type_name VARCHAR(255) COMMENT 'ชื่อประเภทหนังสือย่อย', + sub_type_number VARCHAR(10) COMMENT 'เลขรหัสสำหรับ Running Number (เช่น 11, 22)', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (contract_id) REFERENCES contracts (id) ON DELETE CASCADE, + FOREIGN KEY (correspondence_type_id) REFERENCES correspondence_types (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเก็บประเภทหนังสือย่อย (Sub Types) ตาม Req 6B'; + +-- ตาราง Master เก็บสถานะของเอกสาร +CREATE TABLE correspondence_status ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + status_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสสถานะหนังสือ (เช่น DRAFT, SUBOWN)', + status_name VARCHAR(255) NOT NULL COMMENT 'ชื่อสถานะหนังสือ', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน ' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บสถานะของเอกสาร'; + +-- ตาราง "แม่" ของเอกสารโต้ตอบ เก็บข้อมูลที่ไม่เปลี่ยนตาม Revision +CREATE TABLE correspondences ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง (นี่คือ "Master ID" ที่ใช้เชื่อมโยง)', + correspondence_type_id INT NOT NULL COMMENT 'ประเภทเอกสาร ใช้แบ่งแยกว่าเป็น RFA หรือ อื่นๆ', + correspondence_number VARCHAR(100) NOT NULL COMMENT 'เลขที่เอกสาร (สร้างจาก DocumentNumberingModule)', + discipline_id INT NULL COMMENT 'สาขางาน (ถ้ามี)', + is_internal_communication TINYINT(1) DEFAULT 0 COMMENT '(1 = ภายใน, 0 = ภายนอก)', + project_id INT NOT NULL COMMENT 'อยู่ในโครงการ', + originator_id INT COMMENT 'องค์กรผู้ส่ง', + created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + created_by INT COMMENT 'ผู้สร้าง', + deleted_at DATETIME NULL COMMENT 'สำหรับ Soft Delete', + INDEX idx_doc_number (document_number), + INDEX idx_deleted_at (deleted_at), + INDEX idx_created_by (created_by), + FOREIGN KEY (correspondence_type_id) REFERENCES correspondence_types (id) ON DELETE RESTRICT, + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (originator_id) REFERENCES organizations (id) ON DELETE SET NULL, + FOREIGN KEY (created_by) REFERENCES users (user_id) ON DELETE SET NULL, + -- Foreign Key ที่รวมเข้ามาจาก ALTER (ระบุชื่อ Constraint ตามที่ต้องการ) + CONSTRAINT fk_corr_discipline FOREIGN KEY (discipline_id) REFERENCES disciplines (id) ON DELETE SET NULL, + UNIQUE KEY uq_corr_no_per_project (project_id, correspondence_number) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "แม่" ของเอกสารโต้ตอบ เก็บข้อมูลที่ไม่เปลี่ยนตาม Revision'; + +-- ตารางเชื่อมผู้รับ (TO/CC) สำหรับเอกสารแต่ละฉบับ (M:N) +CREATE TABLE correspondence_recipients ( + correspondence_id INT COMMENT 'ID ของเอกสาร', + recipient_organization_id INT COMMENT 'ID องค์กรผู้รับ', + recipient_type ENUM('TO', 'CC ') COMMENT 'ประเภทผู้รับ (TO หรือ CC)', + PRIMARY KEY ( + correspondence_id, + recipient_organization_id, + recipient_type + ), + FOREIGN KEY (correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE, + FOREIGN KEY (recipient_organization_id) REFERENCES organizations (id) ON DELETE RESTRICT +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมผู้รับ (TO / CC) สำหรับเอกสารแต่ละฉบับ (M :N)'; + +-- ตาราง "ลูก" เก็บประวัติการแก้ไข (Revisions) ของ correspondences (1:N) +CREATE TABLE correspondence_revisions ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของ Revision', + correspondence_id INT NOT NULL COMMENT 'Master ID', + revision_number INT NOT NULL COMMENT 'หมายเลข Revision (0, 1, 2...)', + revision_label VARCHAR(10) COMMENT 'Revision ที่แสดง (เช่น A, B, 1.1)', + is_current BOOLEAN DEFAULT FALSE COMMENT '(1 = Revision ปัจจุบัน)', + -- ข้อมูลเนื้อหาที่เปลี่ยนได้ + correspondence_status_id INT NOT NULL COMMENT 'สถานะของ Revision นี้', + subject VARCHAR(500) NOT NULL COMMENT 'หัวข้อเรื่อง', + description TEXT COMMENT 'คำอธิบายการแก้ไขใน Revision นี้', + body TEXT NULL COMMENT 'เนื้อความ (ถ้ามี)', + remarks TEXT COMMENT 'หมายเหตุ', + document_date DATE COMMENT 'วันที่ในเอกสาร', + issued_date DATETIME COMMENT 'วันที่ออกเอกสาร', + received_date DATETIME COMMENT 'วันที่ลงรับเอกสาร', + due_date DATETIME COMMENT 'วันที่ครบกำหนด', + -- Standard Meta Columns + created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้างเอกสาร', + created_by INT COMMENT 'ผู้สร้าง', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + -- ส่วนของ JSON และ Schema Version + details JSON COMMENT 'ข้อมูลเฉพาะ (เช่น LETTET details)', + schema_version INT DEFAULT 1 COMMENT 'เวอร์ชันของ Schema ที่ใช้กับ details', + -- Generated Virtual Columns (ดึงค่าจาก JSON โดยอัตโนมัติ) + v_ref_project_id INT GENERATED ALWAYS AS ( + CAST( + JSON_UNQUOTE(JSON_EXTRACT(details, '$.projectId')) AS UNSIGNED + ) + ) VIRTUAL COMMENT 'Virtual Column: Project ID จาก JSON', + v_doc_subtype VARCHAR(50) GENERATED ALWAYS AS ( + JSON_UNQUOTE(JSON_EXTRACT(details, '$.subType')) + ) VIRTUAL COMMENT 'Virtual Column: Document Subtype จาก JSON', + FOREIGN KEY (correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE, + FOREIGN KEY (correspondence_status_id) REFERENCES correspondence_status (id) ON DELETE RESTRICT, + FOREIGN KEY (created_by) REFERENCES users (user_id) ON DELETE + SET NULL, + FOREIGN KEY (updated_by) REFERENCES users (user_id) ON DELETE + SET NULL, + UNIQUE KEY uq_master_revision_number (correspondence_id, revision_number), + UNIQUE KEY uq_master_current (correspondence_id, is_current), + INDEX idx_corr_rev_v_project (v_ref_project_id), + INDEX idx_corr_rev_v_subtype (v_doc_subtype) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "ลูก" เก็บประวัติการแก้ไข (Revisions) ของ correspondences (1 :N)'; + +-- ตาราง Master เก็บ Tags ทั้งหมดที่ใช้ในระบบ +CREATE TABLE tags ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + tag_name VARCHAR(100) NOT NULL UNIQUE COMMENT 'ชื่อ Tag', + description TEXT COMMENT 'คำอธิบายแท็ก', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด ' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บ Tags ทั้งหมดที่ใช้ในระบบ'; + +-- ตารางเชื่อมระหว่าง correspondences และ tags (M:N) +CREATE TABLE correspondence_tags ( + correspondence_id INT COMMENT 'ID ของเอกสาร', + tag_id INT COMMENT 'ID ของ Tag', + PRIMARY KEY (correspondence_id, tag_id), + FOREIGN KEY (correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE, + FOREIGN KEY (tag_id) REFERENCES tags (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง correspondences และ tags (M :N)'; + +-- ตารางเชื่อมการอ้างอิงระหว่างเอกสาร (M:N) +CREATE TABLE correspondence_references ( + src_correspondence_id INT COMMENT 'ID เอกสารต้นทาง', + tgt_correspondence_id INT COMMENT 'ID เอกสารเป้าหมาย', + PRIMARY KEY ( + src_correspondence_id, + tgt_correspondence_id + ), + FOREIGN KEY (src_correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE, + FOREIGN KEY (tgt_correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมการอ้างอิงระหว่างเอกสาร (M :N)'; + +-- ===================================================== +-- 4. 📐 approval: RFA (เอกสารขออนุมัติ, Workflows) +-- ===================================================== +-- ตาราง Master สำหรับประเภท RFA +CREATE TABLE rfa_types ( + id INT PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT 'ID ของตาราง', + contract_id INT NOT NULL COMMENT 'ผูกกับสัญญา', + type_code VARCHAR(20) NOT NULL COMMENT 'รหัสประเภท RFA (เช่น DWG, DOC, MAT)', + type_name_th VARCHAR(100) NOT NULL COMMENT 'ชื่อประเภท RFA th', + type_name_en VARCHAR(100) NOT NULL COMMENT 'ชื่อประเภท RFA en', + remark TEXT COMMENT 'หมายเหตุ', + -- sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน ', + UNIQUE KEY uk_rfa_types_contract_code (contract_id, type_code), + FOREIGN KEY (contract_id) REFERENCES contracts (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับประเภท RFA'; + +-- ตาราง Master สำหรับสถานะ RFA +CREATE TABLE rfa_status_codes ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + status_code VARCHAR(20) NOT NULL UNIQUE COMMENT 'รหัสสถานะ RFA (เช่น DFT - Draft, FAP - For Approve)', + status_name VARCHAR(100) NOT NULL COMMENT 'ชื่อสถานะ', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน ' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับสถานะ RFA'; + +-- ตาราง Master สำหรับรหัสผลการอนุมัติ RFA +CREATE TABLE rfa_approve_codes ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + approve_code VARCHAR(20) NOT NULL UNIQUE COMMENT 'รหัสผลการอนุมัติ ( + เช่น 1A - Approved, + 3R - Revise + and Resubmit + )', + approve_name VARCHAR(100) NOT NULL COMMENT 'ชื่อผลการอนุมัติ', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน ' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับรหัสผลการอนุมัติ RFA'; + +CREATE TABLE rfas ( + id INT PRIMARY KEY COMMENT 'ID ของตาราง (RFA Master ID)', + -- ❌ ไม่มี AUTO_INCREMENT + rfa_type_id INT NOT NULL COMMENT 'ประเภท RFA', + -- discipline_id INT NULL COMMENT 'สาขางาน (ถ้ามี)', + created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + created_by INT COMMENT 'ผู้สร้าง', + deleted_at DATETIME NULL COMMENT 'สำหรับ Soft Delete', + FOREIGN KEY (rfa_type_id) REFERENCES rfa_types (id), + FOREIGN KEY (created_by) REFERENCES users (user_id) ON DELETE + SET NULL, + -- CONSTRAINT fk_rfa_discipline FOREIGN KEY (discipline_id) REFERENCES disciplines (id) ON DELETE SET NULL, + CONSTRAINT fk_rfas_parent FOREIGN KEY (id) REFERENCES correspondences (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "แม่" ของ RFA (มีความสัมพันธ์ 1 :N กับ rfa_revisions)'; + +-- ตาราง "ลูก" เก็บประวัติ (Revisions) ของ rfas (1:N) +CREATE TABLE rfa_revisions ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของ Revision', + rfa_id INT NOT NULL COMMENT 'Master ID ของ RFA', + revision_number INT NOT NULL COMMENT 'หมายเลข Revision (0, 1, 2...)', + revision_label VARCHAR(10) COMMENT 'Revision ที่แสดง (เช่น A, B, 1.1)', + is_current BOOLEAN DEFAULT FALSE COMMENT '(1 = Revision ปัจจุบัน)', + -- ข้อมูลเฉพาะของ RFA Revision ที่ซับซ้อน + rfa_status_code_id INT NOT NULL COMMENT 'สถานะ RFA', + rfa_approve_code_id INT COMMENT 'ผลการอนุมัติ', + subject VARCHAR(500) NOT NULL COMMENT 'หัวข้อเรื่อง', + description TEXT COMMENT 'คำอธิบายการแก้ไขใน Revision นี้', + body TEXT NULL COMMENT 'เนื้อความ (ถ้ามี)', + remarks TEXT COMMENT 'หมายเหตุ', + document_date DATE COMMENT 'วันที่ในเอกสาร', + issued_date DATE COMMENT 'วันที่ส่งขออนุมัติ', + received_date DATETIME COMMENT 'วันที่ลงรับเอกสาร', + due_date DATETIME COMMENT 'วันที่ครบกำหนด', + approved_date DATE COMMENT 'วันที่อนุมัติ', + -- Standard Meta Columns + created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้างเอกสาร', + created_by INT COMMENT 'ผู้สร้าง', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + -- ส่วนของ JSON และ Schema Version + details JSON NULL COMMENT 'RFA Specific Details', + schema_version INT DEFAULT 1 COMMENT 'Version ของ JSON Schema', + -- Generated Virtual Columns (ดึงค่าจาก JSON โดยอัตโนมัติ) + v_ref_drawing_count INT GENERATED ALWAYS AS ( + JSON_UNQUOTE( + JSON_EXTRACT(details, '$.drawingCount') + ) + ) VIRTUAL, + FOREIGN KEY (rfa_id) REFERENCES rfas (id) ON DELETE CASCADE, + FOREIGN KEY (rfa_status_code_id) REFERENCES rfa_status_codes (id), + FOREIGN KEY (rfa_approve_code_id) REFERENCES rfa_approve_codes (id) ON DELETE + SET NULL, + FOREIGN KEY (created_by) REFERENCES users (user_id) ON DELETE + SET NULL, + FOREIGN KEY (updated_by) REFERENCES users (user_id) ON DELETE + SET NULL, + UNIQUE KEY uq_rr_rev_number (rfa_id, revision_number), + UNIQUE KEY uq_rr_current (rfa_id, is_current) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "ลูก" เก็บประวัติ (Revisions) ของ rfas (1 :N)'; + +-- ตารางเชื่อมระหว่าง rfa_revisions (ที่เป็นประเภท DWG) กับ shop_drawing_revisions (M:N) +CREATE TABLE rfa_items ( + rfa_revision_id INT COMMENT 'ID ของ RFA Revision', + shop_drawing_revision_id INT COMMENT 'ID ของ Shop Drawing Revision', + PRIMARY KEY ( + rfa_revision_id, + shop_drawing_revision_id + ), + FOREIGN KEY (rfa_revision_id) REFERENCES rfa_revisions (id) ON DELETE CASCADE, + FOREIGN KEY (shop_drawing_revision_id) REFERENCES shop_drawing_revisions (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง rfa_revisions (ที่เป็นประเภท DWG) กับ shop_drawing_revisions (M :N)'; + +-- ===================================================== +-- 5. 📐 Drawings (แบบ, หมวดหมู่) +-- ===================================================== +-- ตาราง Master สำหรับ "เล่ม" ของแบบคู่สัญญา +CREATE TABLE contract_drawing_volumes ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + volume_code VARCHAR(50) NOT NULL COMMENT 'รหัสเล่ม', + volume_name VARCHAR(255) NOT NULL COMMENT 'ชื่อเล่ม', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + UNIQUE KEY ux_volume_project (project_id, volume_code) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับ "เล่ม" ของแบบคู่สัญญา'; + +-- ตาราง Master สำหรับ "หมวดหมู่หลัก" ของแบบคู่สัญญา +CREATE TABLE contract_drawing_cats ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + cat_code VARCHAR(50) NOT NULL COMMENT 'รหัสหมวดหมู่หลัก', + cat_name VARCHAR(255) NOT NULL COMMENT 'ชื่อหมวดหมู่หลัก', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + UNIQUE KEY ux_cat_project (project_id, cat_code) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับ "หมวดหมู่หลัก" ของแบบคู่สัญญา'; + +-- ตาราง Master สำหรับ "หมวดหมู่ย่อย" ของแบบคู่สัญญา +CREATE TABLE contract_drawing_sub_cats ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + sub_cat_code VARCHAR(50) NOT NULL COMMENT 'รหัสหมวดหมู่ย่อย', + sub_cat_name VARCHAR(255) NOT NULL COMMENT 'ชื่อหมวดหมู่ย่อย', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + UNIQUE KEY ux_subcat_project (project_id, sub_cat_code) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับ "หมวดหมู่ย่อย" ของแบบคู่สัญญา'; + +-- ตารางเชื่อมระหว่าง หมวดหมู่หลัก-ย่อย (M:N) +CREATE TABLE contract_drawing_subcat_cat_maps ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT COMMENT 'ID ของโครงการ', + sub_cat_id INT COMMENT 'ID ของหมวดหมู่ย่อย', + cat_id INT COMMENT 'ID ของหมวดหมู่หลัก', + UNIQUE KEY ux_map_unique (project_id, sub_cat_id, cat_id), + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (sub_cat_id) REFERENCES contract_drawing_sub_cats (id) ON DELETE CASCADE, + FOREIGN KEY (cat_id) REFERENCES contract_drawing_cats (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง หมวดหมู่หลัก - ย่อย (M :N)'; + +-- ตาราง Master เก็บข้อมูล "แบบคู่สัญญา" +CREATE TABLE contract_drawings ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + condwg_no VARCHAR(255) NOT NULL COMMENT 'เลขที่แบบสัญญา', + title VARCHAR(255) NOT NULL COMMENT 'ชื่อแบบสัญญา', + map_cat_id INT COMMENT 'หมวดหมู่ย่อย', + volume_id INT COMMENT 'เล่ม', + volume_page INT COMMENT 'หน้าที่', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (map_cat_id) REFERENCES contract_drawing_subcat_cat_maps (id) ON DELETE RESTRICT, + FOREIGN KEY (volume_id) REFERENCES contract_drawing_volumes (id) ON DELETE RESTRICT, + UNIQUE KEY ux_condwg_no_project (project_id, condwg_no) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูล "แบบคู่สัญญา"'; + +-- ตาราง Master สำหรับ "หมวดหมู่หลัก" ของแบบก่อสร้าง +CREATE TABLE shop_drawing_main_categories ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + main_category_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสหมวดหมู่หลัก (เช่น ARCH, STR)', + main_category_name VARCHAR(255) NOT NULL COMMENT 'ชื่อหมวดหมู่หลัก', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด ', + FOREIGN KEY (project_id) REFERENCES projects (id) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับ "หมวดหมู่หลัก" ของแบบก่อสร้าง'; + +-- ตาราง Master สำหรับ "หมวดหมู่ย่อย" ของแบบก่อสร้าง +CREATE TABLE shop_drawing_sub_categories ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + sub_category_code VARCHAR(50) NOT NULL UNIQUE COMMENT 'รหัสหมวดหมู่ย่อย (เช่น STR - COLUMN)', + sub_category_name VARCHAR(255) NOT NULL COMMENT 'ชื่อหมวดหมู่ย่อย', + description TEXT COMMENT 'คำอธิบาย', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master สำหรับ "หมวดหมู่ย่อย" ของแบบก่อสร้าง'; + +-- ตาราง Master เก็บข้อมูล "แบบก่อสร้าง" +CREATE TABLE shop_drawings ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + drawing_number VARCHAR(100) NOT NULL COMMENT 'เลขที่ Shop Drawing', + main_category_id INT NOT NULL COMMENT 'หมวดหมู่หลัก', + sub_category_id INT NOT NULL COMMENT 'หมวดหมู่ย่อย', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id), + FOREIGN KEY (main_category_id) REFERENCES shop_drawing_main_categories (id), + FOREIGN KEY (sub_category_id) REFERENCES shop_drawing_sub_categories (id), + UNIQUE KEY ux_shop_dwg_no_project (project_id, drawing_number) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูล "แบบก่อสร้าง"'; + +-- ตาราง "ลูก" เก็บประวัติ (Revisions) ของ shop_drawings (1:N) +CREATE TABLE shop_drawing_revisions ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของ Revision', + shop_drawing_id INT NOT NULL COMMENT 'Master ID', + revision_number INT NOT NULL COMMENT 'หมายเลข Revision (เช่น 0, 1, 2...)', + revision_label VARCHAR(10) COMMENT 'Revision ที่แสดง (เช่น A, B, 1.1)', + is_current BOOLEAN DEFAULT NULL COMMENT '(TRUE = Revision ปัจจุบัน, NULL = ไม่ใช่ปัจจุบัน)', + revision_date DATE COMMENT 'วันที่ของ Revision', + title VARCHAR(500) NOT NULL COMMENT 'ชื่อแบบ', + description TEXT COMMENT 'คำอธิบายการแก้ไข', + legacy_drawing_number VARCHAR(100) NULL COMMENT 'เลขที่เดิมของ Shop Drawing', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + created_by INT COMMENT 'ผู้สร้าง', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + FOREIGN KEY (shop_drawing_id) REFERENCES shop_drawings (id) ON DELETE CASCADE, + FOREIGN KEY (created_by) REFERENCES users (user_id) ON DELETE + SET NULL, + FOREIGN KEY (updated_by) REFERENCES users (user_id) ON DELETE + SET NULL, + UNIQUE KEY ux_sd_rev_drawing_revision (shop_drawing_id, revision_number), + UNIQUE KEY uq_sd_current (shop_drawing_id, is_current) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "ลูก" เก็บประวัติ (Revisions) ของ shop_drawings (1:N)'; + +-- ตารางเชื่อมระหว่าง shop_drawing_revisions กับ contract_drawings (M:N) +CREATE TABLE shop_drawing_revision_contract_refs ( + shop_drawing_revision_id INT COMMENT 'ID ของ Shop Drawing Revision', + contract_drawing_id INT COMMENT 'ID ของ Contract Drawing', + PRIMARY KEY ( + shop_drawing_revision_id, + contract_drawing_id + ), + FOREIGN KEY (shop_drawing_revision_id) REFERENCES shop_drawing_revisions (id) ON DELETE CASCADE, + FOREIGN KEY (contract_drawing_id) REFERENCES contract_drawings (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง shop_drawing_revisions กับ contract_drawings (M :N)'; + +-- ตาราง Master เก็บข้อมูล "AS Built" +CREATE TABLE asbuilt_drawings ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + drawing_number VARCHAR(100) NOT NULL COMMENT 'เลขที่ AS Built Drawing', + main_category_id INT NOT NULL COMMENT 'หมวดหมู่หลัก', + sub_category_id INT NOT NULL COMMENT 'หมวดหมู่ย่อย', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + deleted_at DATETIME NULL COMMENT 'วันที่ลบ', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id), + FOREIGN KEY (main_category_id) REFERENCES shop_drawing_main_categories (id), + FOREIGN KEY (sub_category_id) REFERENCES shop_drawing_sub_categories (id), + UNIQUE KEY ux_asbuilt_no_project (project_id, drawing_number) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บข้อมูล "แบบ AS Built"'; + +-- ตาราง "ลูก" เก็บประวัติ (Revisions) ของ AS Built (1:N) +CREATE TABLE asbuilt_drawing_revisions ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของ Revision', + asbuilt_drawing_id INT NOT NULL COMMENT 'Master ID', + revision_number INT NOT NULL COMMENT 'หมายเลข Revision (เช่น 0, 1, 2...)', + revision_label VARCHAR(10) COMMENT 'Revision ที่แสดง (เช่น A, B, 1.1)', + is_current BOOLEAN DEFAULT NULL COMMENT '(TRUE = Revision ปัจจุบัน, NULL = ไม่ใช่ปัจจุบัน)', + revision_date DATE COMMENT 'วันที่ของ Revision', + title VARCHAR(500) NOT NULL COMMENT 'ชื่อแบบ', + description TEXT COMMENT 'คำอธิบายการแก้ไข', + legacy_drawing_number VARCHAR(100) NULL COMMENT 'เลขที่เดิมของ AS Built Drawing', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + created_by INT COMMENT 'ผู้สร้าง', + updated_by INT COMMENT 'ผู้แก้ไขล่าสุด', + FOREIGN KEY (asbuilt_drawing_id) REFERENCES asbuilt_drawings (id) ON DELETE CASCADE, + FOREIGN KEY (created_by) REFERENCES users (user_id) ON DELETE + SET NULL, + FOREIGN KEY (updated_by) REFERENCES users (user_id) ON DELETE + SET NULL, + UNIQUE KEY ux_asbuilt_rev_drawing_revision (asbuilt_drawing_id, revision_number), + UNIQUE KEY uq_asbuilt_current (asbuilt_drawing_id, is_current) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "ลูก" เก็บประวัติ (Revisions) ของ asbuilt_drawings (1:N)'; + +-- ตารางเชื่อมระหว่าง asbuilt_drawing_revisions กับ shop_drawing_revisions (M:N) +CREATE TABLE asbuilt_revision_shop_revisions_refs ( + asbuilt_drawing_revision_id INT COMMENT 'ID ของ AS Built Drawing Revision', + shop_drawing_revision_id INT COMMENT 'ID ของ Shop Drawing Revision', + PRIMARY KEY ( + asbuilt_drawing_revision_id, + shop_drawing_revision_id + ), + FOREIGN KEY (asbuilt_drawing_revision_id) REFERENCES asbuilt_drawing_revisions (id) ON DELETE CASCADE, + FOREIGN KEY (shop_drawing_revision_id) REFERENCES shop_drawing_revisions (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง asbuilt_drawing_revisions กับ shop_drawing_revisions (M :N)'; + +-- ===================================================== +-- View: Shop Drawing พร้อม Current Revision +-- ===================================================== +CREATE OR REPLACE VIEW vw_shop_drawing_current AS +SELECT sd.id, + sd.project_id, + sd.drawing_number, + sd.main_category_id, + sd.sub_category_id, + sd.created_at, + sd.updated_at, + sd.deleted_at, + sd.updated_by, + sdr.id AS revision_id, + sdr.revision_number, + sdr.revision_label, + sdr.revision_date, + sdr.title AS revision_title, + sdr.description AS revision_description, + sdr.legacy_drawing_number, + sdr.created_by AS revision_created_by, + sdr.updated_by AS revision_updated_by +FROM shop_drawings sd + LEFT JOIN shop_drawing_revisions sdr ON sd.id = sdr.shop_drawing_id + AND sdr.is_current = TRUE; + +-- ===================================================== +-- View: As Built Drawing พร้อม Current Revision +-- ===================================================== +CREATE OR REPLACE VIEW vw_asbuilt_drawing_current AS +SELECT ad.id, + ad.project_id, + ad.drawing_number, + ad.main_category_id, + ad.sub_category_id, + ad.created_at, + ad.updated_at, + ad.deleted_at, + ad.updated_by, + adr.id AS revision_id, + adr.revision_number, + adr.revision_label, + adr.revision_date, + adr.title AS revision_title, + adr.description AS revision_description, + adr.legacy_drawing_number, + adr.created_by AS revision_created_by, + adr.updated_by AS revision_updated_by +FROM asbuilt_drawings ad + LEFT JOIN asbuilt_drawing_revisions adr ON ad.id = adr.asbuilt_drawing_id + AND adr.is_current = TRUE; + +-- ===================================================== +-- 6. 🔄 Circulations (ใบเวียนภายใน) +-- ===================================================== +-- ตาราง Master เก็บสถานะใบเวียน +CREATE TABLE circulation_status_codes ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + code VARCHAR(20) NOT NULL UNIQUE COMMENT 'รหัสสถานะการดำเนินงาน', + description VARCHAR(50) NOT NULL COMMENT 'คำอธิบายสถานะการดำเนินงาน', + sort_order INT DEFAULT 0 COMMENT 'ลำดับการแสดงผล', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน ' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บสถานะใบเวียน'; + +-- ตาราง "แม่" ของใบเวียนเอกสารภายใน +CREATE TABLE circulations ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตารางใบเวียน', + correspondence_id INT UNIQUE COMMENT 'ID ของเอกสาร (จากตาราง correspondences)', + organization_id INT NOT NULL COMMENT 'ID ขององค์กรณ์ที่เป็นเจ้าของใบเวียนนี้', + circulation_no VARCHAR(100) NOT NULL COMMENT 'เลขที่ใบเวียน', + circulation_subject VARCHAR(500) NOT NULL COMMENT 'เรื่องใบเวียน', + circulation_status_code VARCHAR(20) NOT NULL COMMENT 'รหัสสถานะใบเวียน', + created_by_user_id INT NOT NULL COMMENT 'ID ของผู้สร้างใบเวียน', + submitted_at TIMESTAMP NULL COMMENT 'วันที่ส่งใบเวียน', + closed_at TIMESTAMP NULL COMMENT 'วันที่ปิดใบเวียน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + FOREIGN KEY (correspondence_id) REFERENCES correspondences (id), + FOREIGN KEY (organization_id) REFERENCES organizations (id), + FOREIGN KEY (circulation_status_code) REFERENCES circulation_status_codes (code), + FOREIGN KEY (created_by_user_id) REFERENCES users (user_id) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "แม่" ของใบเวียนเอกสารภายใน'; + +-- ===================================================== +-- 7. 📤 Transmittals (เอกสารนำส่ง) +-- ===================================================== +-- ตารางข้อมูลเฉพาะของเอกสารนำส่ง (เป็นตารางลูก 1:1 ของ correspondences) +CREATE TABLE transmittals ( + correspondence_id INT PRIMARY KEY COMMENT 'ID ของเอกสาร', + purpose ENUM( + 'FOR_APPROVAL', + 'FOR_INFORMATION', + 'FOR_REVIEW', + 'OTHER ' + ) COMMENT 'วัตถุประสงค์', + remarks TEXT COMMENT 'หมายเหตุ', + FOREIGN KEY (correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางข้อมูลเฉพาะของเอกสารนำส่ง (เป็นตารางลูก 1 :1 ของ correspondences)'; + +-- ตารางเชื่อมระหว่าง transmittals และเอกสารที่นำส่ง (M:N) +CREATE TABLE transmittal_items ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของรายการ', + transmittal_id INT NOT NULL COMMENT 'ID ของ Transmittal', + item_correspondence_id INT NOT NULL COMMENT 'ID ของเอกสารที่แนบไป', + quantity INT DEFAULT 1 COMMENT 'จำนวน', + remarks VARCHAR(255) COMMENT 'หมายเหตุสำหรับรายการนี้', + FOREIGN KEY (transmittal_id) REFERENCES transmittals (correspondence_id) ON DELETE CASCADE, + FOREIGN KEY (item_correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE, + UNIQUE KEY ux_transmittal_item ( + transmittal_id, + item_correspondence_id + ) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อมระหว่าง transmittals และเอกสารที่นำส่ง (M :N)'; + +-- ===================================================== +-- 8. 📎 File Management (ไฟล์แนบ) +-- ===================================================== +-- ตาราง "กลาง" เก็บไฟล์แนบทั้งหมดของระบบ +-- 2.2 Attachments - Two-Phase Storage & Security +-- รองรับ: Backend Plan T2.2, Req 3.9.1 +-- เหตุผล: จัดการไฟล์ขยะ (Orphan Files) และตรวจสอบความถูกต้องไฟล์ +CREATE TABLE attachments ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของไฟล์แนบ', + original_filename VARCHAR(255) NOT NULL COMMENT 'ชื่อไฟล์ดั้งเดิมตอนอัปโหลด', + stored_filename VARCHAR(255) NOT NULL COMMENT 'ชื่อไฟล์ที่เก็บจริงบน Server (ป้องกันชื่อซ้ำ)', + file_path VARCHAR(500) NOT NULL COMMENT 'Path ที่เก็บไฟล์ (บน QNAP / share / dms - data /)', + mime_type VARCHAR(100) NOT NULL COMMENT 'ประเภทไฟล์ (เช่น application / pdf)', + file_size INT NOT NULL COMMENT 'ขนาดไฟล์ (bytes)', + is_temporary BOOLEAN DEFAULT TRUE COMMENT 'True = ยังไม่ Commit ลง DB จริง', + temp_id VARCHAR(100) NULL COMMENT 'ID ชั่วคราวสำหรับอ้างอิงตอน Upload Phase 1', + uploaded_by_user_id INT NOT NULL COMMENT 'ผู้อัปโหลดไฟล์', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่อัปโหลด', + expires_at DATETIME NULL COMMENT 'เวลาหมดอายุของไฟล์ Temp', + CHECKSUM VARCHAR(64) NULL COMMENT 'SHA -256 Checksum', + FOREIGN KEY (uploaded_by_user_id) REFERENCES users (user_id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง "กลาง" เก็บไฟล์แนบทั้งหมดของระบบ'; + +-- ตารางเชื่อม correspondences กับ attachments (M:N) +CREATE TABLE correspondence_attachments ( + correspondence_id INT COMMENT 'ID ของเอกสาร', + attachment_id INT COMMENT 'ID ของไฟล์แนบ', + is_main_document BOOLEAN DEFAULT FALSE COMMENT '(1 = ไฟล์หลัก)', + PRIMARY KEY (correspondence_id, attachment_id), + FOREIGN KEY (correspondence_id) REFERENCES correspondences (id) ON DELETE CASCADE, + FOREIGN KEY (attachment_id) REFERENCES attachments (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อม correspondences กับ attachments (M :N)'; + +-- ตารางเชื่อม circulations กับ attachments (M:N) +CREATE TABLE circulation_attachments ( + circulation_id INT COMMENT 'ID ของใบเวียน', + attachment_id INT COMMENT 'ID ของไฟล์แนบ', + is_main_document BOOLEAN DEFAULT FALSE COMMENT '(1 = ไฟล์หลักของใบเวียน)', + PRIMARY KEY (circulation_id, attachment_id), + FOREIGN KEY (circulation_id) REFERENCES circulations (id) ON DELETE CASCADE, + FOREIGN KEY (attachment_id) REFERENCES attachments (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อม circulations กับ attachments (M :N)'; + +-- ตารางเชื่อม shop_drawing_revisions กับ attachments (M:N) +CREATE TABLE asbuilt_drawing_revision_attachments ( + asbuilt_drawing_revision_id INT COMMENT 'ID ของ asbuilt Drawing Revision', + attachment_id INT COMMENT 'ID ของไฟล์แนบ', + file_type ENUM( + 'PDF', + 'DWG', + 'SOURCE', + 'OTHER ' + ) COMMENT 'ประเภทไฟล์', + is_main_document BOOLEAN DEFAULT FALSE COMMENT '(1 = ไฟล์หลัก)', + PRIMARY KEY ( + asbuilt_drawing_revision_id, + attachment_id + ), + FOREIGN KEY (asbuilt_drawing_revision_id) REFERENCES asbuilt_drawing_revisions (id) ON DELETE CASCADE, + FOREIGN KEY (attachment_id) REFERENCES attachments (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อม asbuilt_drawing_revisions กับ attachments (M :N)'; + +-- ตารางเชื่อม shop_drawing_revisions กับ attachments (M:N) +CREATE TABLE shop_drawing_revision_attachments ( + shop_drawing_revision_id INT COMMENT 'ID ของ Shop Drawing Revision', + attachment_id INT COMMENT 'ID ของไฟล์แนบ', + file_type ENUM( + 'PDF', + 'DWG', + 'SOURCE', + 'OTHER ' + ) COMMENT 'ประเภทไฟล์', + is_main_document BOOLEAN DEFAULT FALSE COMMENT '(1 = ไฟล์หลัก)', + PRIMARY KEY ( + shop_drawing_revision_id, + attachment_id + ), + FOREIGN KEY (shop_drawing_revision_id) REFERENCES shop_drawing_revisions (id) ON DELETE CASCADE, + FOREIGN KEY (attachment_id) REFERENCES attachments (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อม shop_drawing_revisions กับ attachments (M :N)'; + +-- ตารางเชื่อม contract_drawings กับ attachments (M:N) +CREATE TABLE contract_drawing_attachments ( + contract_drawing_id INT COMMENT 'ID ของ Contract Drawing', + attachment_id INT COMMENT 'ID ของไฟล์แนบ', + file_type ENUM( + 'PDF', + 'DWG', + 'SOURCE', + 'OTHER ' + ) COMMENT 'ประเภทไฟล์', + is_main_document BOOLEAN DEFAULT FALSE COMMENT '(1 = ไฟล์หลัก)', + PRIMARY KEY ( + contract_drawing_id, + attachment_id + ), + FOREIGN KEY (contract_drawing_id) REFERENCES contract_drawings (id) ON DELETE CASCADE, + FOREIGN KEY (attachment_id) REFERENCES attachments (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเชื่อม contract_drawings กับ attachments (M :N)'; + +-- ===================================================== +-- 9. 🔢 Document Numbering (การสร้างเลขที่เอกสาร) +-- ===================================================== +-- ตาราง Master เก็บ "รูปแบบ" Template ของเลขที่เอกสาร +CREATE TABLE document_number_formats ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของตาราง', + project_id INT NOT NULL COMMENT 'โครงการ', + correspondence_type_id INT NULL COMMENT 'ประเภทเอกสาร', + discipline_id INT DEFAULT 0 COMMENT 'สาขางาน (0 = ทุกสาขา/ไม่ระบุ)', + format_string VARCHAR(100) NOT NULL COMMENT 'Format pattern (e.g., {ORG}-{TYPE}-{YYYY}-#)', + description TEXT COMMENT 'Format description', + reset_annually BOOLEAN DEFAULT TRUE COMMENT 'เริ่มนับใหม่ทุกปี', + is_active TINYINT(1) DEFAULT 1 COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (correspondence_type_id) REFERENCES correspondence_types (id) ON DELETE CASCADE, + UNIQUE KEY unique_format ( + project_id, + correspondence_type_id + ) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตาราง Master เก็บ "รูปแบบ" Template ของเลขที่เอกสาร'; + +-- ========================================================== +-- [v1.5.1 UPDATE] ตารางเก็บ "ตัวนับ" (Running Number) ล่าสุด +-- เปลี่ยนแปลงหลัก: +-- - PRIMARY KEY: เปลี่ยนจาก 5 คอลัมน์เป็น 8 คอลัมน์ +-- - เพิ่มคอลัมน์: recipient_organization_id, sub_type_id, rfa_type_id +-- - เพิ่ม INDEXES สำหรับ performance +-- - เพิ่ม CONSTRAINTS สำหรับ data validation +-- เหตุผล: รองรับ 10 token types และ granular counter management +-- รองรับ: Backend Plan T2.3, Req 3.11.5, specs v1.5.1 +-- ========================================================== +CREATE TABLE document_number_counters ( + -- [v1.5.1] Composite Primary Key Columns (8 columns total) + project_id INT NOT NULL COMMENT 'โครงการ', + correspondence_type_id INT NULL COMMENT 'ประเภทเอกสาร (LETTER, RFA, TRANSMITTAL, etc.) NULL = default format for project', + originator_organization_id INT NOT NULL COMMENT 'องค์กรผู้ส่ง', + -- เปลี่ยนจาก NULL เป็น DEFAULT 0 + recipient_organization_id INT NOT NULL DEFAULT 0 COMMENT '[v1.7.0] องค์กรผู้รับ 0 = no recipient (RFA)', + sub_type_id INT DEFAULT 0 COMMENT '[v1.5.1 NEW] ประเภทย่อย สำหรับ TRANSMITTAL (0 = ไม่ระบุ)', + rfa_type_id INT DEFAULT 0 COMMENT '[v1.5.1 NEW] ประเภท RFA เช่น SHD, RPT, MAT (0 = ไม่ใช่ RFA)', + discipline_id INT DEFAULT 0 COMMENT 'สาขางาน เช่น TER, STR, GEO (0 = ไม่ระบุ)', + reset_scope VARCHAR(20) NOT NULL COMMENT 'Scope of reset (PROJECT, ORGANIZATION, etc.)', + -- Counter Data + last_number INT DEFAULT 0 NOT NULL COMMENT 'เลขที่ล่าสุดที่ใช้ไปแล้ว (auto-increment)', + version INT DEFAULT 0 NOT NULL COMMENT 'Optimistic Lock Version (TypeORM @VersionColumn)', + -- Metadata + created_at DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), + updated_at DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), + -- [v1.7.0 UPDATE] Primary Key: 5 columns -> 8 columns + PRIMARY KEY ( + project_id, + originator_organization_id, + recipient_organization_id, + correspondence_type_id, + sub_type_id, + rfa_type_id, + discipline_id, + reset_scope + ), + -- Foreign Keys + FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE, + FOREIGN KEY (originator_organization_id) REFERENCES organizations (id) ON DELETE CASCADE, + FOREIGN KEY (correspondence_type_id) REFERENCES correspondence_types (id) ON DELETE CASCADE, + -- Performance Indexes + INDEX idx_counter_lookup (project_id, correspondence_type_id, reset_scope), + INDEX idx_counter_org (originator_organization_id, reset_scope), + -- Constraints + CONSTRAINT chk_last_number_positive CHECK (last_number >= 0), + CONSTRAINT chk_reset_scope_format CHECK ( + reset_scope IN ('NONE') + OR reset_scope LIKE 'YEAR_%' + OR reset_scope LIKE 'MONTH_%' + OR reset_scope LIKE 'CONTRACT_%' + ) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเก็บ Running Number Counters - รองรับ 8-column composite PK'; + +-- ========================================================== +-- ตารางเก็บ Audit Trail สำหรับการสร้างเลขที่เอกสาร +-- เพิ่มตาราง: document_number_audit +-- เหตุผล: บันทึกประวัติการสร้างเลขที่ รองรับ audit requirement ≥ 7 ปี +-- ========================================================== +CREATE TABLE document_number_audit ( + id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID ของ audit record', + -- Document Info + document_id INT NULL COMMENT 'ID ของเอกสารที่สร้างเลขที่ (correspondences.id) - NULL if failed/reserved', + document_type VARCHAR(50), + document_number VARCHAR(100) NOT NULL COMMENT 'เลขที่เอกสารที่สร้าง (ผลลัพธ์)', + operation ENUM( + 'RESERVE', + 'CONFIRM', + 'MANUAL_OVERRIDE', + 'VOID_REPLACE', + 'CANCEL' + ) NOT NULL DEFAULT 'CONFIRM' COMMENT 'ประเภทการดำเนินการ', + STATUS ENUM( + 'RESERVED', + 'CONFIRMED', + 'CANCELLED', + 'VOID', + 'MANUAL' + ) NOT NULL DEFAULT 'RESERVED' COMMENT 'สถานะเลขที่เอกสาร', + counter_key JSON NOT NULL COMMENT 'Counter key ที่ใช้ (JSON format) - 8 fields', + reservation_token VARCHAR(36) NULL, + idempotency_key VARCHAR(128) NULL COMMENT 'Idempotency Key from request', + originator_organization_id INT NULL, + recipient_organization_id INT NULL, + template_used VARCHAR(200) NOT NULL COMMENT 'Template ที่ใช้ในการสร้าง', + old_value TEXT NULL COMMENT 'Previous value for audit', + new_value TEXT NULL COMMENT 'New value for audit', + -- User Info + user_id INT NULL COMMENT 'ผู้ขอสร้างเลขที่', + ip_address VARCHAR(45) COMMENT 'IP address ของผู้ขอ (IPv4/IPv6)', + user_agent TEXT COMMENT 'User agent string (browser info)', + is_success BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่/เวลาที่สร้าง', + -- Performance & Error Tracking + retry_count INT DEFAULT 0 COMMENT 'จำนวนครั้งที่ retry ก่อนสำเร็จ', + lock_wait_ms INT COMMENT 'เวลารอ Redis lock (milliseconds)', + total_duration_ms INT COMMENT 'เวลารวมทั้งหมดในการสร้าง (milliseconds)', + fallback_used ENUM('NONE', 'DB_LOCK', 'RETRY') DEFAULT 'NONE' COMMENT 'Fallback strategy ที่ถูกใช้ (NONE=normal, DB_LOCK=Redis down, RETRY=conflict)', + metadata JSON COMMENT 'Additional context data', + -- Indexes for performance + INDEX idx_document_id (document_id), + INDEX idx_user_id (user_id), + INDEX idx_status (STATUS), + INDEX idx_operation (operation), + INDEX idx_document_number (document_number), + INDEX idx_reservation_token (reservation_token), + INDEX idx_idempotency_key (idempotency_key), + INDEX idx_created_at (created_at), + -- Foreign Keys + FOREIGN KEY (document_id) REFERENCES correspondences (id) ON DELETE CASCADE, + FOREIGN KEY (user_id) REFERENCES users (user_id) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '[v1.5.1 NEW] Audit Trail สำหรับการสร้างเลขที่เอกสาร - เก็บ ≥ 7 ปี'; + +-- ========================================================== +-- [v1.5.1 NEW] ตารางเก็บ Error Logs สำหรับ Document Numbering +-- เพิ่มตาราง: document_number_errors +-- เหตุผล: ติดตาม errors, troubleshooting, monitoring +-- รองรับ: Req 3.11.6, Ops monitoring requirements +-- ========================================================== +CREATE TABLE document_number_errors ( + id INT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID ของ error record', + -- Error Classification + error_type ENUM( + 'LOCK_TIMEOUT', + -- Redis lock timeout + 'VERSION_CONFLICT', + -- Optimistic lock version mismatch + 'DB_ERROR', + -- Database connection/query error + 'REDIS_ERROR', + -- Redis connection error + 'VALIDATION_ERROR' -- Template/input validation error + ) NOT NULL COMMENT 'ประเภท error (5 types)', + -- Error Details + error_message TEXT COMMENT 'ข้อความ error (stack top)', + stack_trace TEXT COMMENT 'Stack trace แบบเต็ม (สำหรับ debugging)', + context_data JSON COMMENT 'Context ของ request (user, project, counter_key, etc.)', + -- User Info + user_id INT COMMENT 'ผู้ที่เกิด error', + ip_address VARCHAR(45) COMMENT 'IP address', + -- Timestamps + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่เกิด error', + resolved_at TIMESTAMP NULL COMMENT 'วันที่แก้ไขแล้ว (NULL = ยังไม่แก้)', + -- Indexes for troubleshooting + INDEX idx_error_type (error_type), + INDEX idx_created_at (created_at), + INDEX idx_user_id (user_id), + INDEX idx_unresolved (resolved_at) -- Find unresolved errors +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '[v1.5.1 NEW] Error Log สำหรับ Document Numbering System'; + +-- ===================================================== +CREATE TABLE document_number_reservations ( + id INT AUTO_INCREMENT PRIMARY KEY, + -- Reservation Details + token VARCHAR(36) NOT NULL UNIQUE COMMENT 'UUID v4', + document_number VARCHAR(100) NOT NULL UNIQUE, + document_number_status ENUM('RESERVED', 'CONFIRMED', 'CANCELLED', 'VOID') NOT NULL DEFAULT 'RESERVED', + -- Linkage + document_id INT NULL COMMENT 'FK to documents (NULL until confirmed)', + -- Context (for debugging) + project_id INT NOT NULL, + correspondence_type_id INT NOT NULL, + originator_organization_id INT NOT NULL, + recipient_organization_id INT DEFAULT 0, + user_id INT NOT NULL, + -- Timestamps + reserved_at DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), + expires_at DATETIME(6) NOT NULL, + confirmed_at DATETIME(6) NULL, + cancelled_at DATETIME(6) NULL, + -- Audit + ip_address VARCHAR(45), + user_agent TEXT, + metadata JSON NULL COMMENT 'Additional context', + -- Indexes + INDEX idx_token (token), + INDEX idx_status (document_number_status), + INDEX idx_status_expires (document_number_status, expires_at), + INDEX idx_document_id (document_id), + INDEX idx_user_id (user_id), + INDEX idx_reserved_at (reserved_at), + -- Foreign Keys + FOREIGN KEY (document_id) REFERENCES correspondence_revisions(id) ON DELETE + SET NULL, + FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE, + FOREIGN KEY (correspondence_type_id) REFERENCES correspondence_types(id) ON DELETE CASCADE, + FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'Document Number Reservations - Two-Phase Commit'; + +-- ===================================================== +-- 10. ⚙️ System & Logs (ระบบและ Log) +-- ===================================================== +-- 1.1 JSON Schemas Registry +-- รองรับ: Backend Plan T2.5.1, Req 6.11.1 +-- เหตุผล: เพื่อ Validate โครงสร้าง JSON Details ของเอกสารแต่ละประเภทแบบ Centralized +CREATE TABLE json_schemas ( + id INT AUTO_INCREMENT PRIMARY KEY, + schema_code VARCHAR(100) NOT NULL COMMENT 'รหัส Schema (เช่น RFA_DWG)', + version INT NOT NULL DEFAULT 1 COMMENT 'เวอร์ชันของ Schema', + table_name VARCHAR(100) NOT NULL COMMENT 'ชื่อตารางเป้าหมาย (เช่น rfa_revisions)', + schema_definition JSON NOT NULL COMMENT 'โครงสร้าง Data Schema (AJV Standard)', + ui_schema JSON NULL COMMENT 'โครงสร้าง UI Schema สำหรับ Frontend', + virtual_columns JSON NULL COMMENT 'Config สำหรับสร้าง Virtual Columns', + migration_script JSON NULL COMMENT 'Script สำหรับแปลงข้อมูลจากเวอร์ชันก่อนหน้า', + is_active BOOLEAN DEFAULT TRUE COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + -- ป้องกัน Schema Code ซ้ำกันใน Version เดียวกัน + UNIQUE KEY uk_schema_version (schema_code, version) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'ตารางเก็บ JSON Schema และ Configuration'; + +-- 1.2 User Preferences +-- รองรับ: Req 5.5, 6.8.3 +-- เหตุผล: แยกการตั้งค่า Notification และ UI ออกจากตาราง Users หลัก +CREATE TABLE user_preferences ( + user_id INT PRIMARY KEY, + notify_email BOOLEAN DEFAULT TRUE, + notify_line BOOLEAN DEFAULT TRUE, + digest_mode BOOLEAN DEFAULT FALSE COMMENT 'รับแจ้งเตือนแบบรวม (Digest) แทน Real - time', + ui_theme VARCHAR(20) DEFAULT 'light', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_user_prefs_user FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ตารางเก็บบันทึกการกระทำของผู้ใช้ +-- 4.1 Audit Logs Enhancements +-- รองรับ: Req 6.1 +-- เหตุผล: รองรับ Distributed Tracing และระบุความรุนแรง +CREATE TABLE audit_logs ( + audit_id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID ของ Log', + request_id VARCHAR(100) NULL COMMENT 'Trace ID linking to app logs', + user_id INT COMMENT 'ผู้กระทำ', + ACTION VARCHAR(100) NOT NULL COMMENT 'การกระทำ ( + เช่น rfa.create, + correspondence.update, + login.success + )', + severity ENUM( + 'INFO', + 'WARN', + 'ERROR', + 'CRITICAL ' + ) DEFAULT 'INFO', + entity_type VARCHAR(50) COMMENT 'ตาราง / โมดูล (เช่น ''rfa '', ''correspondence '')', + entity_id VARCHAR(50) COMMENT 'Primary ID ของระเบียนที่ได้รับผลกระทำ', + details_json JSON COMMENT 'ข้อมูลบริบท', + ip_address VARCHAR(45) COMMENT 'IP Address', + user_agent VARCHAR(255) COMMENT 'User Agent', + created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'เวลาที่กระทำ', + -- [แก้ไข] รวม created_at เข้ามาใน Primary Key เพื่อรองรับ Partition + PRIMARY KEY (audit_id, created_at), + -- [แก้ไข] ใช้ Index ธรรมดาแทน Foreign Key เพื่อไม่ให้ติดข้อจำกัดของ Partition Table + INDEX idx_audit_user (user_id), + INDEX idx_audit_action (ACTION), + INDEX idx_audit_entity (entity_type, entity_id), + INDEX idx_audit_created (created_at) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางเก็บบันทึกการกระทำของผู้ใช้' -- [เพิ่ม] คำสั่ง Partition +PARTITION BY RANGE (YEAR(created_at)) ( + PARTITION p_old + VALUES LESS THAN (2024), + PARTITION p2024 + VALUES LESS THAN (2025), + PARTITION p2025 + VALUES LESS THAN (2026), + PARTITION p2026 + VALUES LESS THAN (2027), + PARTITION p2027 + VALUES LESS THAN (2028), + PARTITION p2028 + VALUES LESS THAN (2029), + PARTITION p2029 + VALUES LESS THAN (2030), + PARTITION p2030 + VALUES LESS THAN (2031), + PARTITION p_future + VALUES LESS THAN MAXVALUE +); + +-- ตารางสำหรับจัดการการแจ้งเตือน (Email/Line/System) +CREATE TABLE notifications ( + id INT NOT NULL AUTO_INCREMENT COMMENT 'ID ของการแจ้งเตือน', + user_id INT NOT NULL COMMENT 'ID ผู้ใช้', + title VARCHAR(255) NOT NULL COMMENT 'หัวข้อการแจ้งเตือน', + message TEXT NOT NULL COMMENT 'รายละเอียดการแจ้งเตือน', + notification_type ENUM('EMAIL', 'LINE', 'SYSTEM ') NOT NULL COMMENT 'ประเภท (EMAIL, LINE, SYSTEM)', + is_read BOOLEAN DEFAULT FALSE COMMENT 'สถานะการอ่าน', + entity_type VARCHAR(50) COMMENT 'เช่น ''rfa '', + ''circulation ''', + entity_id INT COMMENT 'ID ของเอนทิตีที่เกี่ยวข้อง', + created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + -- [แก้ไข] รวม created_at เข้ามาใน Primary Key + PRIMARY KEY (id, created_at), + -- [แก้ไข] ใช้ Index ธรรมดาแทน Foreign Key + INDEX idx_notif_user (user_id), + INDEX idx_notif_type (notification_type), + INDEX idx_notif_read (is_read), + INDEX idx_notif_created (created_at) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางสำหรับจัดการการแจ้งเตือน (Email / Line / System)' -- [เพิ่ม] คำสั่ง Partition +PARTITION BY RANGE (YEAR(created_at)) ( + PARTITION p_old + VALUES LESS THAN (2024), + PARTITION p2024 + VALUES LESS THAN (2025), + PARTITION p2025 + VALUES LESS THAN (2026), + PARTITION p2026 + VALUES LESS THAN (2027), + PARTITION p2027 + VALUES LESS THAN (2028), + PARTITION p2028 + VALUES LESS THAN (2029), + PARTITION p2029 + VALUES LESS THAN (2030), + PARTITION p2030 + VALUES LESS THAN (2031), + PARTITION p_future + VALUES LESS THAN MAXVALUE +); + +-- ตารางสำหรับจัดการดัชนีการค้นหาขั้นสูง (Full-text Search) +CREATE TABLE search_indices ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของดัชนี', + entity_type VARCHAR(50) NOT NULL COMMENT 'ชนิดเอนทิตี (เช่น ''correspondence '', ''rfa '')', + entity_id INT NOT NULL COMMENT 'ID ของเอนทิตี', + content TEXT NOT NULL COMMENT 'เนื้อหาที่จะค้นหา', + indexed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง / อัปเดตัชนี ' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางสำหรับจัดการดัชนีการค้นหาขั้นสูง (Full - text Search)'; + +-- ตารางสำหรับบันทึกประวัติการสำรองข้อมูล +CREATE TABLE backup_logs ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'ID ของการสำรอง', + backup_type ENUM('DATABASE', 'FILES', 'FULL') NOT NULL COMMENT 'ประเภท (DATABASE, FILES, FULL)', + backup_path VARCHAR(500) NOT NULL COMMENT 'ตำแหน่งไฟล์สำรอง', + file_size BIGINT COMMENT 'ขนาดไฟล์', + STATUS ENUM( + 'STARTED', + 'COMPLETED', + 'FAILED' + ) NOT NULL COMMENT 'สถานะ', + started_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'เวลาเริ่มต้น', + completed_at TIMESTAMP NULL COMMENT 'เวลาเสร็จสิ้น', + error_message TEXT COMMENT 'ข้อความผิดพลาด (ถ้ามี)' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'ตารางสำหรับบันทึกประวัติการสำรองข้อมูล'; + +-- ============================================================ +-- ส่วนที่ 11: Unified Workflow Engine (Phase 6A/Phase 3) +-- ============================================================ +DROP TABLE IF EXISTS workflow_histories; + +DROP TABLE IF EXISTS workflow_instances; + +DROP TABLE IF EXISTS workflow_definitions; + +-- 1. ตารางเก็บนิยาม Workflow (Definition / DSL) +CREATE TABLE workflow_definitions ( + id CHAR(36) NOT NULL PRIMARY KEY COMMENT 'UUID ของ Workflow Definition', + workflow_code VARCHAR(50) NOT NULL COMMENT 'รหัส Workflow เช่น RFA_FLOW_V1, CORRESPONDENCE_FLOW_V1', + version INT NOT NULL DEFAULT 1 COMMENT 'หมายเลข Version', + description TEXT NULL COMMENT 'คำอธิบาย Workflow', + dsl JSON NOT NULL COMMENT 'นิยาม Workflow ต้นฉบับ (YAML/JSON Format)', + compiled JSON NOT NULL COMMENT 'โครงสร้าง Execution Tree ที่ Compile แล้ว', + is_active BOOLEAN DEFAULT TRUE COMMENT 'สถานะการใช้งาน', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด', + -- ป้องกันการมี Workflow Code และ Version ซ้ำกัน + UNIQUE KEY uq_workflow_version (workflow_code, version) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'ตารางเก็บนิยามกฎการเดินเอกสาร (Workflow DSL)'; + +-- สร้าง Index สำหรับการค้นหา Workflow ที่ Active ล่าสุดได้เร็วขึ้น +CREATE INDEX idx_workflow_active ON workflow_definitions (workflow_code, is_active, version); + +-- 2. ตารางเก็บ Workflow Instance (สถานะเอกสารจริง) +CREATE TABLE workflow_instances ( + id CHAR(36) NOT NULL PRIMARY KEY COMMENT 'UUID ของ Instance', + definition_id CHAR(36) NOT NULL COMMENT 'อ้างอิง Definition ที่ใช้', + entity_type VARCHAR(50) NOT NULL COMMENT 'ประเภทเอกสาร (rfa_revision, correspondence_revision, circulation)', + entity_id VARCHAR(50) NOT NULL COMMENT 'ID ของเอกสาร (String/Int)', + current_state VARCHAR(50) NOT NULL COMMENT 'สถานะปัจจุบัน', + STATUS ENUM( + 'ACTIVE', + 'COMPLETED', + 'CANCELLED', + 'TERMINATED' + ) DEFAULT 'ACTIVE' COMMENT 'สถานะภาพรวม', + context JSON NULL COMMENT 'ตัวแปร Context สำหรับตัดสินใจ', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_wf_inst_def FOREIGN KEY (definition_id) REFERENCES workflow_definitions (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'ตารางเก็บสถานะการเดินเรื่องของเอกสาร'; + +CREATE INDEX idx_wf_inst_entity ON workflow_instances (entity_type, entity_id); + +CREATE INDEX idx_wf_inst_state ON workflow_instances (current_state); + +-- 3. ตารางเก็บประวัติ (Audit Log / History) +CREATE TABLE workflow_histories ( + id CHAR(36) NOT NULL PRIMARY KEY COMMENT 'UUID', + instance_id CHAR(36) NOT NULL COMMENT 'อ้างอิง Instance', + from_state VARCHAR(50) NOT NULL COMMENT 'สถานะต้นทาง', + to_state VARCHAR(50) NOT NULL COMMENT 'สถานะปลายทาง', + ACTION VARCHAR(50) NOT NULL COMMENT 'Action ที่กระทำ', + action_by_user_id INT NULL COMMENT 'User ID ผู้กระทำ', + COMMENT TEXT NULL COMMENT 'ความเห็น', + metadata JSON NULL COMMENT 'Snapshot ข้อมูล ณ ขณะนั้น', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_wf_hist_inst FOREIGN KEY (instance_id) REFERENCES workflow_instances (id) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'ตารางประวัติการเปลี่ยนสถานะ Workflow'; + +CREATE INDEX idx_wf_hist_instance ON workflow_histories (instance_id); + +CREATE INDEX idx_wf_hist_user ON workflow_histories (action_by_user_id); + +-- Checkpoint Table: +CREATE TABLE IF NOT EXISTS migration_progress ( + batch_id VARCHAR(50) PRIMARY KEY, + last_processed_index INT DEFAULT 0, + status ENUM('RUNNING','COMPLETED','FAILED') DEFAULT 'RUNNING', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +); +-- Idempotency Table : +CREATE TABLE IF NOT EXISTS import_transactions ( + id INT AUTO_INCREMENT PRIMARY KEY, + idempotency_key VARCHAR(255) UNIQUE NOT NULL, + document_number VARCHAR(100), + batch_id VARCHAR(100), + status_code INT DEFAULT 201, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_idem_key (idempotency_key) +); +-- ============================================================ +-- 5. PARTITIONING PREPARATION (Advance - Optional) +-- ============================================================ +-- หมายเหตุ: การทำ Partitioning บนตารางที่มีอยู่แล้ว (audit_logs, notifications) +-- มักจะต้อง Drop Primary Key เดิม แล้วสร้างใหม่โดยรวม Partition Key (created_at) เข้าไป +-- ขั้นตอนนี้ควรทำแยกต่างหากเมื่อระบบเริ่มมีข้อมูลเยอะ หรือทำใน Maintenance Window +-- +-- ตัวอย่าง SQL สำหรับ Audit Logs (Reference Only): +-- ALTER TABLE audit_logs DROP PRIMARY KEY, ADD PRIMARY KEY (audit_id, created_at); +-- ALTER TABLE audit_logs PARTITION BY RANGE (YEAR(created_at)) ( +-- PARTITION p2024 VALUES LESS THAN (2025), +-- PARTITION p2025 VALUES LESS THAN (2026), +-- PARTITION p_future VALUES LESS THAN MAXVALUE +-- ); +-- ===================================================== +-- CREATE INDEXES +-- ===================================================== +-- Indexes for correspondences +CREATE INDEX idx_corr_type ON correspondences(correspondence_type_id); + +CREATE INDEX idx_corr_project ON correspondences(project_id); + +CREATE INDEX idx_rfa_rev_v_drawing_count ON rfa_revisions (v_ref_drawing_count); + +-- Indexes for document_number_formats +CREATE INDEX idx_document_number_formats_project ON document_number_formats (project_id); + +CREATE INDEX idx_document_number_formats_type ON document_number_formats (correspondence_type_id); + +CREATE INDEX idx_document_number_formats_project_type ON document_number_formats (project_id, correspondence_type_id); + +-- Indexes for document_number_counters +CREATE INDEX idx_document_number_counters_project ON document_number_counters (project_id); + +CREATE INDEX idx_document_number_counters_org ON document_number_counters (originator_organization_id); + +CREATE INDEX idx_document_number_counters_type ON document_number_counters (correspondence_type_id); + +-- Indexes for tags +CREATE INDEX idx_tags_name ON tags (tag_name); + +CREATE INDEX idx_tags_created_at ON tags (created_at); + +-- Indexes for correspondence_tags +CREATE INDEX idx_correspondence_tags_correspondence ON correspondence_tags (correspondence_id); + +CREATE INDEX idx_correspondence_tags_tag ON correspondence_tags (tag_id); + +-- Indexes for audit_logs +CREATE INDEX idx_audit_logs_user ON audit_logs (user_id); + +CREATE INDEX idx_audit_logs_action ON audit_logs (ACTION); + +CREATE INDEX idx_audit_logs_entity ON audit_logs (entity_type, entity_id); + +CREATE INDEX idx_audit_logs_created_at ON audit_logs (created_at); + +CREATE INDEX idx_audit_logs_ip ON audit_logs (ip_address); + +-- Indexes for notifications +CREATE INDEX idx_notifications_user ON notifications (user_id); + +CREATE INDEX idx_notifications_type ON notifications (notification_type); + +CREATE INDEX idx_notifications_read ON notifications (is_read); + +CREATE INDEX idx_notifications_entity ON notifications (entity_type, entity_id); + +CREATE INDEX idx_notifications_created_at ON notifications (created_at); + +-- Indexes for search_indices +CREATE INDEX idx_search_indices_entity ON search_indices (entity_type, entity_id); + +CREATE INDEX idx_search_indices_indexed_at ON search_indices (indexed_at); + +-- Indexes for backup_logs +CREATE INDEX idx_backup_logs_type ON backup_logs (backup_type); + +CREATE INDEX idx_backup_logs_status ON backup_logs (STATUS); + +CREATE INDEX idx_backup_logs_started_at ON backup_logs (started_at); + +CREATE INDEX idx_backup_logs_completed_at ON backup_logs (completed_at); + +-- ===================================================== +-- Additional Composite Indexes for Performance +-- ===================================================== +-- Composite index for document_number_counters for faster lookups +-- Composite index for notifications for user-specific queries +CREATE INDEX idx_notifications_user_unread ON notifications (user_id, is_read, created_at); + +-- Composite index for audit_logs for reporting +CREATE INDEX idx_audit_logs_reporting ON audit_logs (created_at, entity_type, ACTION); + +-- Composite index for search_indices for entity-based queries +CREATE INDEX idx_search_entities ON search_indices (entity_type, entity_id, indexed_at); + +-- สร้าง Index สำหรับ Cleanup Job +CREATE INDEX idx_attachments_temp_cleanup ON attachments (is_temporary, expires_at); + +CREATE INDEX idx_attachments_temp_id ON attachments (temp_id); + +CREATE INDEX idx_audit_request_id ON audit_logs (request_id); + +-- ===================================================== +-- SQL Script for LCBP3-DMS (V1.4.0) - MariaDB +-- Generated from Data Dictionary +-- ===================================================== +-- ===================================================== +-- 11. 📊 Views & Procedures (วิว และ โปรซีเดอร์) +-- ===================================================== +-- View แสดง Revision "ปัจจุบัน" ของ correspondences ทั้งหมด (ที่ไม่ใช่ RFA) +CREATE VIEW v_current_correspondences AS +SELECT c.id AS correspondence_id, + c.correspondence_number, + c.correspondence_type_id, + ct.type_code AS correspondence_type_code, + ct.type_name AS correspondence_type_name, + c.project_id, + p.project_code, + p.project_name, + c.originator_id, + org.organization_code AS originator_code, + org.organization_name AS originator_name, + cr.id AS revision_id, + cr.revision_number, + cr.revision_label, + cr.subject, + cr.document_date, + cr.issued_date, + cr.received_date, + cr.due_date, + cr.correspondence_status_id, + cs.status_code, + cs.status_name, + cr.created_by, + u.username AS created_by_username, + cr.created_at AS revision_created_at +FROM correspondences c + INNER JOIN correspondence_types ct ON c.correspondence_type_id = ct.id + INNER JOIN projects p ON c.project_id = p.id + LEFT JOIN organizations org ON c.originator_id = org.id + INNER JOIN correspondence_revisions cr ON c.id = cr.correspondence_id + INNER JOIN correspondence_status cs ON cr.correspondence_status_id = cs.id + LEFT JOIN users u ON cr.created_by = u.user_id +WHERE cr.is_current = TRUE + AND c.correspondence_type_id NOT IN( + SELECT id + FROM correspondence_types + WHERE type_code = 'RFA' + ) + AND c.deleted_at IS NULL; + +-- View แสดง Revision "ปัจจุบัน" ของ rfa_revisions ทั้งหมด +CREATE VIEW v_current_rfas AS +SELECT r.id AS rfa_id, + r.rfa_type_id, + rt.type_code AS rfa_type_code, + rt.type_name_th AS rfa_type_name_th, + rt.type_name_en AS rfa_type_name_en, + c.correspondence_number, + c.discipline_id, + -- ✅ ดึงจาก Correspondences + d.discipline_code, + -- ✅ Join เพิ่มเพื่อแสดง code + c.project_id, + p.project_code, + p.project_name, + c.originator_id, + org.organization_name AS originator_name, + rr.id AS revision_id, + rr.revision_number, + rr.revision_label, + rr.subject, + rr.document_date, + rr.issued_date, + rr.received_date, + rr.approved_date, + rr.rfa_status_code_id, + rsc.status_code AS rfa_status_code, + rsc.status_name AS rfa_status_name, + rr.rfa_approve_code_id, + rac.approve_code AS rfa_approve_code, + rac.approve_name AS rfa_approve_name, + rr.created_by, + u.username AS created_by_username, + rr.created_at AS revision_created_at +FROM rfas r + INNER JOIN rfa_types rt ON r.rfa_type_id = rt.id + INNER JOIN rfa_revisions rr ON r.id = rr.rfa_id -- RFA uses shared primary key with correspondences (1:1) + INNER JOIN correspondences c ON r.id = c.id -- [FIX 1] เพิ่มการ Join ตาราง disciplines + LEFT JOIN disciplines d ON c.discipline_id = d.id + INNER JOIN projects p ON c.project_id = p.id + INNER JOIN organizations org ON c.originator_id = org.id + INNER JOIN rfa_status_codes rsc ON rr.rfa_status_code_id = rsc.id + LEFT JOIN rfa_approve_codes rac ON rr.rfa_approve_code_id = rac.id + LEFT JOIN users u ON rr.created_by = u.user_id +WHERE rr.is_current = TRUE + AND r.deleted_at IS NULL + AND c.deleted_at IS NULL; + +-- View แสดงความสัมพันธ์ทั้งหมดระหว่าง Contract, Project, และ Organization +CREATE VIEW v_contract_parties_all AS +SELECT c.id AS contract_id, + c.contract_code, + c.contract_name, + p.id AS project_id, + p.project_code, + p.project_name, + o.id AS organization_id, + o.organization_code, + o.organization_name, + co.role_in_contract +FROM contracts c + INNER JOIN projects p ON c.project_id = p.id + INNER JOIN contract_organizations co ON c.id = co.contract_id + INNER JOIN organizations o ON co.organization_id = o.id +WHERE c.is_active = TRUE; + +-- ============================================================ +-- View: v_user_tasks (Unified Workflow Engine Edition) +-- ============================================================ +-- หน้าที่: รวมรายการงานที่ยังค้างอยู่ (Status = ACTIVE) จากทุกระบบ (RFA, Circulation, Correspondence) +-- เพื่อนำไปแสดงในหน้า Dashboard "My Tasks" +-- ============================================================ +CREATE OR REPLACE VIEW v_user_tasks AS +SELECT -- 1. Workflow Instance Info + wi.id AS instance_id, + wd.workflow_code, + wi.current_state, + wi.status AS workflow_status, + wi.created_at AS assigned_at, + -- 2. Entity Info (Polymorphic Identity) + wi.entity_type, + wi.entity_id, + -- 3. Normalized Document Info (ดึงข้อมูลจริงจากตารางลูกตามประเภท) + -- ใช้ CASE WHEN เพื่อรวมคอลัมน์ที่ชื่อต่างกันให้เป็นชื่อกลาง (document_number, subject) + CASE + WHEN wi.entity_type = 'rfa_revision' THEN rfa_corr.correspondence_number + WHEN wi.entity_type = 'circulation' THEN circ.circulation_no + WHEN wi.entity_type = 'correspondence_revision' THEN corr_corr.correspondence_number + ELSE 'N/A' + END AS document_number, + CASE + WHEN wi.entity_type = 'rfa_revision' THEN rfa_rev.subject + WHEN wi.entity_type = 'circulation' THEN circ.circulation_subject + WHEN wi.entity_type = 'correspondence_revision' THEN corr_rev.subject + ELSE 'Unknown Document' + END AS subject, + -- 4. Context Info (สำหรับ Filter สิทธิ์การมองเห็นที่ Backend) + -- ดึงเป็น JSON String เพื่อให้ Backend ไป Parse หรือใช้ JSON_CONTAINS + JSON_UNQUOTE(JSON_EXTRACT(wi.context, '$.ownerId')) AS owner_id, + JSON_EXTRACT(wi.context, '$.assigneeIds') AS assignee_ids_json +FROM workflow_instances wi + JOIN workflow_definitions wd ON wi.definition_id = wd.id -- 5. Joins for RFA (ซับซ้อนหน่อยเพราะ RFA ผูกกับ Correspondence อีกที) + LEFT JOIN rfa_revisions rfa_rev ON wi.entity_type = 'rfa_revision' + AND wi.entity_id = CAST(rfa_rev.id AS CHAR) + LEFT JOIN correspondences rfa_corr ON rfa_rev.id = rfa_corr.id -- 6. Joins for Circulation + LEFT JOIN circulations circ ON wi.entity_type = 'circulation' + AND wi.entity_id = CAST(circ.id AS CHAR) -- 7. Joins for Correspondence + LEFT JOIN correspondence_revisions corr_rev ON wi.entity_type = 'correspondence_revision' + AND wi.entity_id = CAST(corr_rev.id AS CHAR) + LEFT JOIN correspondences corr_corr ON corr_rev.correspondence_id = corr_corr.id -- 8. Filter เฉพาะงานที่ยัง Active อยู่ +WHERE wi.status = 'ACTIVE'; + +-- View แสดง audit_logs พร้อมข้อมูล username และ email ของผู้กระทำ +CREATE VIEW v_audit_log_details AS +SELECT al.audit_id, + al.user_id, + u.username, + u.email, + u.first_name, + u.last_name, + al.action, + al.entity_type, + al.entity_id, + al.details_json, + al.ip_address, + al.user_agent, + al.created_at +FROM audit_logs al + LEFT JOIN users u ON al.user_id = u.user_id; + +-- View รวมสิทธิ์ทั้งหมด (Global + Project) ของผู้ใช้ทุกคน +CREATE VIEW v_user_all_permissions AS -- Global Permissions +SELECT ua.user_id, + ua.role_id, + r.role_name, + rp.permission_id, + p.permission_name, + p.module, + p.scope_level, + ua.organization_id, + NULL AS project_id, + NULL AS contract_id, + 'GLOBAL' AS permission_scope +FROM user_assignments ua + INNER JOIN roles r ON ua.role_id = r.role_id + INNER JOIN role_permissions rp ON ua.role_id = rp.role_id + INNER JOIN permissions p ON rp.permission_id = p.permission_id -- Global scope +WHERE p.is_active = 1 + AND ua.organization_id IS NULL + AND ua.project_id IS NULL + AND ua.contract_id IS NULL +UNION ALL +-- Organization-specific Permissions +SELECT ua.user_id, + ua.role_id, + r.role_name, + rp.permission_id, + p.permission_name, + p.module, + p.scope_level, + ua.organization_id, + NULL AS project_id, + NULL AS contract_id, + 'ORGANIZATION' AS permission_scope +FROM user_assignments ua + INNER JOIN roles r ON ua.role_id = r.role_id + INNER JOIN role_permissions rp ON ua.role_id = rp.role_id + INNER JOIN permissions p ON rp.permission_id = p.permission_id -- Organization scope +WHERE p.is_active = 1 + AND ua.organization_id IS NOT NULL + AND ua.project_id IS NULL + AND ua.contract_id IS NULL +UNION ALL +-- Project-specific Permissions +SELECT ua.user_id, + ua.role_id, + r.role_name, + rp.permission_id, + p.permission_name, + p.module, + p.scope_level, + ua.organization_id, + ua.project_id, + NULL AS contract_id, + 'PROJECT' AS permission_scope +FROM user_assignments ua + INNER JOIN roles r ON ua.role_id = r.role_id + INNER JOIN role_permissions rp ON ua.role_id = rp.role_id + INNER JOIN permissions p ON rp.permission_id = p.permission_id -- Project scope +WHERE p.is_active = 1 + AND ua.project_id IS NOT NULL + AND ua.contract_id IS NULL +UNION ALL +-- Contract-specific Permissions +SELECT ua.user_id, + ua.role_id, + r.role_name, + rp.permission_id, + p.permission_name, + p.module, + p.scope_level, + ua.organization_id, + ua.project_id, + ua.contract_id, + 'CONTRACT' AS permission_scope +FROM user_assignments ua + INNER JOIN roles r ON ua.role_id = r.role_id + INNER JOIN role_permissions rp ON ua.role_id = rp.role_id + INNER JOIN permissions p ON rp.permission_id = p.permission_id -- Contract scope +WHERE p.is_active = 1 + AND ua.contract_id IS NOT NULL; + +-- ===================================================== +-- Additional Useful Views +-- ===================================================== +-- View แสดงเอกสารทั้งหมดที่มีไฟล์แนบ +CREATE VIEW v_documents_with_attachments AS +SELECT 'CORRESPONDENCE' AS document_type, + c.id AS document_id, + c.correspondence_number AS document_number, + c.project_id, + p.project_code, + p.project_name, + COUNT(ca.attachment_id) AS attachment_count, + MAX(a.created_at) AS latest_attachment_date +FROM correspondences c + INNER JOIN projects p ON c.project_id = p.id + LEFT JOIN correspondence_attachments ca ON c.id = ca.correspondence_id + LEFT JOIN attachments a ON ca.attachment_id = a.id +WHERE c.deleted_at IS NULL +GROUP BY c.id, + c.correspondence_number, + c.project_id, + p.project_code, + p.project_name +UNION ALL +SELECT 'CIRCULATION' AS document_type, + circ.id AS document_id, + circ.circulation_no AS document_number, + corr.project_id, + p.project_code, + p.project_name, + COUNT(ca.attachment_id) AS attachment_count, + MAX(a.created_at) AS latest_attachment_date +FROM circulations circ + INNER JOIN correspondences corr ON circ.correspondence_id = corr.id + INNER JOIN projects p ON corr.project_id = p.id + LEFT JOIN circulation_attachments ca ON circ.id = ca.circulation_id + LEFT JOIN attachments a ON ca.attachment_id = a.id +GROUP BY circ.id, + circ.circulation_no, + corr.project_id, + p.project_code, + p.project_name +UNION ALL +SELECT 'SHOP_DRAWING' AS document_type, + sdr.id AS document_id, + sd.drawing_number AS document_number, + sd.project_id, + p.project_code, + p.project_name, + COUNT(sdra.attachment_id) AS attachment_count, + MAX(a.created_at) AS latest_attachment_date +FROM shop_drawing_revisions sdr + INNER JOIN shop_drawings sd ON sdr.shop_drawing_id = sd.id + INNER JOIN projects p ON sd.project_id = p.id + LEFT JOIN shop_drawing_revision_attachments sdra ON sdr.id = sdra.shop_drawing_revision_id + LEFT JOIN attachments a ON sdra.attachment_id = a.id +WHERE sd.deleted_at IS NULL +GROUP BY sdr.id, + sd.drawing_number, + sd.project_id, + p.project_code, + p.project_name +UNION ALL +SELECT 'CONTRACT_DRAWING' AS document_type, + cd.id AS document_id, + cd.condwg_no AS document_number, + cd.project_id, + p.project_code, + p.project_name, + COUNT(cda.attachment_id) AS attachment_count, + MAX(a.created_at) AS latest_attachment_date +FROM contract_drawings cd + INNER JOIN projects p ON cd.project_id = p.id + LEFT JOIN contract_drawing_attachments cda ON cd.id = cda.contract_drawing_id + LEFT JOIN attachments a ON cda.attachment_id = a.id +WHERE cd.deleted_at IS NULL +GROUP BY cd.id, + cd.condwg_no, + cd.project_id, + p.project_code, + p.project_name; + +-- View แสดงสถิติเอกสารตามประเภทและสถานะ +CREATE VIEW v_document_statistics AS +SELECT p.id AS project_id, + p.project_code, + p.project_name, + ct.id AS correspondence_type_id, + ct.type_code, + ct.type_name, + cs.id AS status_id, + cs.status_code, + cs.status_name, + COUNT(DISTINCT c.id) AS document_count, + COUNT(DISTINCT cr.id) AS revision_count +FROM projects p + CROSS JOIN correspondence_types ct + CROSS JOIN correspondence_status cs + LEFT JOIN correspondences c ON p.id = c.project_id + AND ct.id = c.correspondence_type_id + LEFT JOIN correspondence_revisions cr ON c.id = cr.correspondence_id + AND cs.id = cr.correspondence_status_id + AND cr.is_current = TRUE +WHERE p.is_active = 1 + AND ct.is_active = 1 + AND cs.is_active = 1 +GROUP BY p.id, + p.project_code, + p.project_name, + ct.id, + ct.type_code, + ct.type_name, + cs.id, + cs.status_code, + cs.status_name; + +-- ===================================================== +-- Indexes for View Performance Optimization +-- ===================================================== +-- Indexes for v_current_correspondences performance +CREATE INDEX idx_correspondences_type_project ON correspondences (correspondence_type_id, project_id); + +CREATE INDEX idx_corr_revisions_current_status ON correspondence_revisions (is_current, correspondence_status_id); + +CREATE INDEX idx_corr_revisions_correspondence_current ON correspondence_revisions (correspondence_id, is_current); + +-- Indexes for v_current_rfas performance +CREATE INDEX idx_rfa_revisions_current_status ON rfa_revisions (is_current, rfa_status_code_id); + +CREATE INDEX idx_rfa_revisions_rfa_current ON rfa_revisions (rfa_id, is_current); + +-- Indexes for document statistics performance +CREATE INDEX idx_correspondences_project_type ON correspondences (project_id, correspondence_type_id); + +CREATE INDEX idx_corr_revisions_status_current ON correspondence_revisions (correspondence_status_id, is_current); + +CREATE INDEX IDX_AUDIT_DOC_ID ON document_number_audit (document_id); + +CREATE INDEX IDX_AUDIT_STATUS ON document_number_audit (STATUS); + +CREATE INDEX IDX_AUDIT_OPERATION ON document_number_audit (operation); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/specs/03-Data-and-Storage/lcbp3-v1.8.0-seed-basic.sql b/specs/03-Data-and-Storage/lcbp3-v1.8.0-seed-basic.sql new file mode 100644 index 0000000..31c6cbe --- /dev/null +++ b/specs/03-Data-and-Storage/lcbp3-v1.8.0-seed-basic.sql @@ -0,0 +1,2203 @@ +-- ========================================================== +-- DMS v1.8.0 Document Management System Database +-- Deploy Script Schema +-- Server: Container Station on QNAP TS-473A +-- Database service: MariaDB 11.8 +-- database web ui: phpmyadmin 5-apache +-- database development ui: DBeaver +-- backend service: NestJS +-- frontend service: next.js +-- reverse proxy: jc21/nginx-proxy-manager:latest +-- cron service: n8n +-- ========================================================== +-- [v1.8.0 UPDATE] Prepare migration +-- Update: Upgraded from v1.7.0 +-- Last Updated: 2026-02-27 +-- Major Changes: +-- 1. เพิ่ม: +-- 2.1 username = migration_bot +-- 2.2 +-- ========================================================== + +INSERT INTO organization_roles (id, role_name) +VALUES (1, 'OWNER'), + (2, 'DESIGNER'), + (3, 'CONSULTANT'), + (4, 'CONTRACTOR'), + (5, 'THIRD PARTY'), + (6, 'GUEST'); +INSERT INTO organizations ( + id, + organization_code, + organization_name, + role_id + ) +VALUES (1, 'กทท.', 'การท่าเรือแห่งประเทศไทย', 1), + ( + 10, + 'สคฉ.3', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3', + 1 + ), + ( + 11, + 'สคฉ.3-01', + 'ตรวจรับพัสดุ ที่ปรึกษาควบคุมงาน', + 1 + ), + (12, 'สคฉ.3-02', 'ตรวจรับพัสดุ งานทางทะเล', 1), + ( + 13, + 'สคฉ.3-03', + 'ตรวจรับพัสดุ อาคารและระบบสาธารณูปโภค', + 1 + ), + ( + 14, + 'สคฉ.3-04', + 'ตรวจรับพัสดุ ตรวจสอบผลกระทบสิ่งแวดล้อม', + 1 + ), + ( + 15, + 'สคฉ.3-05', + 'ตรวจรับพัสดุ เยียวยาการประมง', + 1 + ), + ( + 16, + 'สคฉ.3-06', + 'ตรวจรับพัสดุ งานก่อสร้าง ส่วนที่ 3', + 1 + ), + ( + 17, + 'สคฉ.3-07', + 'ตรวจรับพัสดุ งานก่อสร้าง ส่วนที่ 4', + 1 + ), + ( + 18, + 'สคฉ.3-xx', + 'ตรวจรับพัสดุ ที่ปรึกษาออกแบบ ส่วนที่ 4', + 1 + ), + (21, 'TEAM', 'Designer Consulting Ltd.', 2), + (22, 'คคง.', 'Construction Supervision Ltd.', 3), + (41, 'ผรม.1', 'Contractor งานทางทะเล', 4), + (42, 'ผรม.2', 'Contractor งานก่อสร้าง', 4), + ( + 43, + 'ผรม.3', + 'Contractor งานก่อสร้าง ส่วนที่ 3', + 4 + ), + ( + 44, + 'ผรม.4', + 'Contractor งานก่อสร้าง ส่วนที่ 4', + 4 + ), + (31, 'EN', 'Third Party Environment', 5), + (32, 'CAR', 'Third Party Fishery Care', 5); +-- Seed project +INSERT INTO projects (project_code, project_name) +VALUES ( + 'LCBP3', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 1-4)' + ), + ( + 'LCBP3-C1', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 1) งานก่อสร้างงานทางทะเล' + ), + ( + 'LCBP3-C2', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 2) งานก่อสร้างอาคาร ท่าเทียบเรือ ระบบถนน และระบบสาธารณูปโภค' + ), + ( + 'LCBP3-C3', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 3) งานก่อสร้าง' + ), + ( + 'LCBP3-C4', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 4) งานก่อสร้าง' + ), + ( + 'LCBP3-EN', + 'โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 4) งานก่อสร้าง' + ); +-- Seed contract +-- ใช้ Subquery เพื่อดึง project_id มาเชื่อมโยง ทำให้ไม่ต้องมานั่งจัดการ ID ด้วยตัวเอง +INSERT INTO contracts ( + contract_code, + contract_name, + project_id, + is_active + ) +VALUES ( + 'LCBP3-DS', + 'งานจ้างที่ปรีกษาออกแบบ โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 1-4)', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3' + ), + TRUE + ), + ( + 'LCBP3-PS', + 'งานจ้างที่ปรีกษาควบคุมงาน โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 1-4)', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3' + ), + TRUE + ), + ( + 'LCBP3-C1', + 'งานก่อสร้าง โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 1) งานก่อสร้างงานทางทะเล', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-C1' + ), + TRUE + ), + ( + 'LCBP3-C2', + 'งานก่อสร้าง โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 2) งานก่อสร้างอาคาร ท่าเทียบเรือ ระบบถนน และระบบสาธารณูปโภค', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-C2' + ), + TRUE + ), + ( + 'LCBP3-C3', + 'งานก่อสร้าง โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 3) งานก่อสร้าง', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-C3' + ), + TRUE + ), + ( + 'LCBP3-C4', + 'งานก่อสร้าง โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 4) งานก่อสร้าง', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-C4' + ), + TRUE + ), + ( + 'LCBP3-EN', + 'งานก่อสร้าง โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 4) งานก่อสร้าง', + ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-EN' + ), + TRUE + ); +-- Seed user +-- Initial SUPER_ADMIN user +INSERT INTO users ( + user_id, + username, + password_hash, + first_name, + last_name, + email, + line_id, + primary_organization_id + ) +VALUES ( + 1, + 'superadmin', + '$2b$10$MpKnf1UEvlu8hZcqMkhMsuWG3gYD/priWTUr71GpF/uuroaGxtose', + 'Super', + 'Admin', + 'superadmin @example.com', + NULL, + NULL + ), + ( + 2, + 'admin', + '$2b$10$MpKnf1UEvlu8hZcqMkhMsuWG3gYD/priWTUr71GpF/uuroaGxtose', + 'Admin', + 'คคง.', + 'admin@example.com', + NULL, + 1 + ), + ( + 3, + 'editor01', + '$2b$10$MpKnf1UEvlu8hZcqMkhMsuWG3gYD/priWTUr71GpF/uuroaGxtose', + 'DC', + 'C1', + 'editor01 @example.com', + NULL, + 41 + ), + ( + 4, + 'viewer01', + '$2b$10$MpKnf1UEvlu8hZcqMkhMsuWG3gYD/priWTUr71GpF/uuroaGxtose', + 'Viewer', + 'สคฉ.03', + 'viewer01 @example.com', + NULL, + 10 + ); + + INSERT INTO users (username, email, role, is_active) + VALUES ( + 'migration_bot', + 'migration@system.internal', + 'SYSTEM_ADMIN', + TRUE + ); +-- ========================================================== +-- Seed Roles (บทบาทพื้นฐาน 5 บทบาท ตาม Req 4.3) +-- ========================================================== +-- 1. Superadmin (Global) +INSERT INTO roles (role_id, role_name, scope, description) +VALUES ( + 1, + 'Superadmin', + 'Global', + 'ผู้ดูแลระบบสูงสุด: สามารถทำทุกอย่างในระบบ, จัดการองค์กร, และจัดการข้อมูลหลักระดับ Global' + ), + -- 2. Org Admin (Organization) + ( + 2, + 'Org Admin', + 'Organization', + 'ผู้ดูแลองค์กร: จัดการผู้ใช้ในองค์กร, จัดการบทบาท / สิทธิ์ภายในองค์กร, และดูรายงานขององค์กร' + ), + -- 3. Document Control (Organization) + ( + 3, + 'Document Control', + 'Organization', + 'ควบคุมเอกสารขององค์กร: เพิ่ม / แก้ไข / ลบเอกสาร, และกำหนดสิทธิ์เอกสารภายในองค์กร' + ), + -- 4. Editor (Organization) + ( + 4, + 'Editor', + 'Organization', + 'ผู้แก้ไขเอกสารขององค์กร: เพิ่ม / แก้ไขเอกสารที่ได้รับมอบหมาย' + ), + -- 5. Viewer (Organization) + ( + 5, + 'Viewer', + 'Organization', + 'ผู้ดูเอกสารขององค์กร: ดูเอกสารที่มีสิทธิ์เข้าถึงเท่านั้น' + ), + -- 6. Project Manager (Project) + ( + 6, + 'Project Manager', + 'Project', + 'ผู้จัดการโครงการ: จัดการสมาชิกในโครงการ, สร้าง / จัดการสัญญาในโครงการ, และดูรายงานโครงการ' + ), + -- 7. Contract Admin (Contract) + ( + 7, + 'Contract Admin', + 'Contract', + 'ผู้ดูแลสัญญา: จัดการสมาชิกในสัญญา, สร้าง / จัดการข้อมูลหลักเฉพาะสัญญา, และอนุมัติเอกสารในสัญญา' + ); +-- ========================================================== +-- Seed Role-Permissions Mapping (จับคู่สิทธิ์เริ่มต้น) +-- ========================================================== +-- Seed data for the 'role_permissions 'table +-- This table links roles to their specific permissions. +-- NOTE: This assumes the role_id and permission_id FROM the previous seed data files. +-- Superadmin (role_id = 1), Org Admin (role_id = 2), Document Control (role_id = 3), etc. +-- ========================================================== +-- SECTION 2: ROLE-PERMISSION MAPPINGS +-- ========================================================== +-- Seed data for the 'user_assignments' table +INSERT INTO user_assignments ( + id, + user_id, + role_id, + organization_id, + project_id, + contract_id, + assigned_by_user_id + ) +VALUES (1, 1, 1, NULL, NULL, NULL, NULL), + -- superadmin: Global scope (organization_id = NULL) + (2, 2, 2, 1, NULL, NULL, NULL), + -- admin: Organization scope (org_id=1 = กทท.) + (3, 3, 4, 41, NULL, NULL, 1), + -- editor01: Editor role (role_id=4) at organization 41 (คคง.), assigned by superadmin + (4, 4, 5, 10, NULL, NULL, 1); +-- viewer01: Viewer role (role_id=5) at organization 10 (สคฉ.03), assigned by superadmin +-- ===================================================== +-- == 4. การเชื่อมโยงโครงการกับองค์กร (project_organizations) == +-- ===================================================== +-- โครงการหลัก (LCBP3) จะมีองค์กรหลักๆ เข้ามาเกี่ยวข้องทั้งหมด +INSERT INTO project_organizations (project_id, organization_id) +SELECT ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3' + ), + id +FROM organizations +WHERE organization_code IN ( + 'กทท.', + 'สคฉ.3', + 'TEAM', + 'คคง.', + 'ผรม.1', + 'ผรม.2', + 'ผรม.3', + 'ผรม.4', + 'EN', + 'CAR' + ); +-- โครงการย่อย (LCBP3C1) จะมีเฉพาะองค์กรที่เกี่ยวข้อง +INSERT INTO project_organizations (project_id, organization_id) +SELECT ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-C1' + ), + id +FROM organizations +WHERE organization_code IN ( + 'กทท.', + 'สคฉ.3', + 'สคฉ.3 -02', + 'คคง.', + 'ผรม.1 ' + ); +-- ทำเช่นเดียวกันสำหรับโครงการอื่นๆ (ตัวอย่าง) +INSERT INTO project_organizations (project_id, organization_id) +SELECT ( + SELECT id + FROM projects + WHERE project_code = 'LCBP3-C2' + ), + id +FROM organizations +WHERE organization_code IN ( + 'กทท.', + 'สคฉ.3', + 'สคฉ.3 -03', + 'คคง.', + 'ผรม.2' + ); +-- ===================================================== +-- == 5. การเชื่อมโยงสัญญากับองค์กร (contract_organizations) == +-- ===================================================== +-- สัญญาที่ปรึกษาออกแบบ (DSLCBP3) +INSERT INTO contract_organizations (contract_id, organization_id, role_in_contract) +VALUES ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-DS' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'กทท.' + ), + 'Owner' + ), + ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-DS' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'TEAM' + ), + 'Designer' + ); +-- สัญญาที่ปรึกษาควบคุมงาน (PSLCBP3) +INSERT INTO contract_organizations (contract_id, organization_id, role_in_contract) +VALUES ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-PS' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'กทท.' + ), + 'Owner' + ), + ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-PS' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'คคง.' + ), + 'Consultant' + ); +-- สัญญางานก่อสร้าง ส่วนที่ 1 (LCBP3-C1) +INSERT INTO contract_organizations (contract_id, organization_id, role_in_contract) +VALUES ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-C1' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'กทท.' + ), + 'Owner' + ), + ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-C1' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'ผรม.1' + ), + 'Contractor' + ); +-- สัญญางานก่อสร้าง ส่วนที่ 2 (LCBP3-C2) +INSERT INTO contract_organizations (contract_id, organization_id, role_in_contract) +VALUES ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-C2' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'กทท.' + ), + 'Owner' + ), + ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-C2' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'ผรม.2' + ), + 'Contractor' + ); +-- สัญญาตรวจสอบสิ่งแวดล้อม (LCBP3-EN) +INSERT INTO contract_organizations (contract_id, organization_id, role_in_contract) +VALUES ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-EN' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'กทท.' + ), + 'Owner' + ), + ( + ( + SELECT id + FROM contracts + WHERE contract_code = 'LCBP3-EN' + ), + ( + SELECT id + FROM organizations + WHERE organization_code = 'EN' + ), + 'Consultant' + ); +-- Seed correspondence_status +INSERT INTO correspondence_status ( + status_code, + status_name, + sort_order, + is_active + ) +VALUES ('DRAFT', 'Draft', 10, 1), + ('SUBOWN', 'Submitted to Owner', 21, 1), + ('SUBDSN', 'Submitted to Designer', 22, 1), + ('SUBCSC', 'Submitted to CSC', 23, 1), + ('SUBCON', 'Submitted to Contractor', 24, 1), + ('SUBOTH', 'Submitted to Others', 25, 1), + ('REPOWN', 'Reply by Owner', 31, 1), + ('REPDSN', 'Reply by Designer', 32, 1), + ('REPCSC', 'Reply by CSC', 33, 1), + ('REPCON', 'Reply by Contractor', 34, 1), + ('REPOTH', 'Reply by Others', 35, 1), + ('RSBOWN', 'Resubmited by Owner', 41, 1), + ('RSBDSN', 'Resubmited by Designer', 42, 1), + ('RSBCSC', 'Resubmited by CSC', 43, 1), + ('RSBCON', 'Resubmited by Contractor', 44, 1), + ('CLBOWN', 'Closed by Owner', 51, 1), + ('CLBDSN', 'Closed by Designer', 52, 1), + ('CLBCSC', 'Closed by CSC', 53, 1), + ('CLBCON', 'Closed by Contractor', 54, 1), + ('CCBOWN', 'Canceled by Owner', 91, 1), + ('CCBDSN', 'Canceled by Designer', 92, 1), + ('CCBCSC', 'Canceled by CSC', 93, 1), + ('CCBCON', 'Canceled by Contractor', 94, 1); +-- Seed correspondence_types +INSERT INTO correspondence_types (type_code, type_name, sort_order, is_active) +VALUES ('RFA', 'Request for Approval', 1, 1), + ('RFI', 'Request for Information', 2, 1), + ('TRANSMITTAL', 'Transmittal', 3, 1), + ('EMAIL', 'Email', 4, 1), + ('INSTRUCTION', 'Instruction', 5, 1), + ('LETTER', 'Letter', 6, 1), + ('MEMO', 'Memorandum', 7, 1), + ('MOM', 'Minutes of Meeting', 8, 1), + ('NOTICE', 'Notice', 9, 1), + ('OTHER', 'Other', 10, 1); +-- Seed rfa_types +INSERT INTO rfa_types ( + contract_id, + type_code, + type_name_en, + type_name_th + ) +SELECT id, + 'ADW', + 'As Built Drawing', + 'แบบร่างหลังการก่อสร้าง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'BC', + 'Box Culvert', + 'ท่อระบายน้ำรูปกล่อง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'BM', + 'Benchmark', + 'หมุดหลักฐาน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'CER', + 'Certificates', + 'ใบรับรอง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'CN', + 'Canal Drainage', + 'ระบบระบายน้ำในคลอง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'CON', + 'Contract', + 'สัญญา' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'DDS', + 'Design Data Submission', + 'นำส่งข้อมูลการออกแบบ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'DDW', + 'Draft Drawing', + 'แบบร่าง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'DRW', + 'Drawings (All Types)', + 'แบบก่อสร้าง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'DSN', + 'Design/Calculation/Manual (All Stages)', + 'ออกแบบ / คำนวณ / คู่มือ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'GEN', + 'General', + 'ทั่วไป' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'ICR', + 'Incident Report', + 'รายงานการเกิดอุบัติเหตุและการบาดเจ็บ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'INS', + 'Insurances/Bond/Guarantee', + 'การประกัน / พันธบัตร / การค้ำประกัน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'INR', + 'Inspection/Audit/Surveillance Report', + 'รายงานการตรวจสอบ / การตรวจสอบ / รายงานการเฝ้าระวัง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'ITP', + 'Inspection and Test Plan', + 'แผนการตรวจสอบและทดสอบ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'JSA', + 'Jobs Analysis', + 'รายงานการวิเคราะห์ความปลอดภัย' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'MAN', + 'Manual', + 'คู่มือ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'MAT', + 'Materials/Equipment/Plant', + 'วัสดุ / อุปกรณ์ / โรงงาน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'MOM', + 'Minutes of Meeting', + 'รายงานการประชุม' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'MPR', + 'Monthly Progress Report', + 'รายงานความคืบหน้าประจำเดือน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'MST', + 'Method Statement for Construction/Installation', + 'ขั้นตอนการก่อสร้าง / ติดตั้ง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'NDS', + 'Non-Design Data Submission', + 'นำส่งข้อมูลที่ไม่เกี่ยวข้องกับการออกแบบ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'PMA', + 'Payment/Invoice/Retention/Estimate', + 'การชำระเงิน / ใบแจ้งหนี้ / ประกันผลงาน / ประมาณการ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'PRD', + 'Procedure', + 'ระเบียบปฏิบัติ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'PRG', + 'Progress of Construction', + 'ความคืบหน้าของการก่อสร้าง / ภาพถ่าย / วิดีโอ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'QMS', + 'Quality Document (Plan/Work Instruction)', + 'เอกสารด้านคุณภาพ (แผนงาน / ข้อแนะนำในการทำงาน)' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'RPT', + 'Report', + 'รายงาน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SAR', + 'Semi Annual Report', + 'รายงานประจำหกเดือน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SCH', + 'Schedule and Program', + 'แผนงาน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SDW', + 'Shop Drawing', + 'แบบขยายรายละเอียด' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SI', + 'Soil Investigation', + 'การตรวจสอบดิน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SPE', + 'Specification', + 'ข้อกำหนด' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'TNR', + 'Training Report', + 'รายงานการฝึกปฏิบัติ' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'UC', + 'Underground Construction', + 'โครงสร้างใต้ดิน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'VEN', + 'Vendor', + 'ผู้ขาย' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'VRO', + 'Variation Request/Instruction/Order', + 'คำขอเปลี่ยนแปลง / ข้อเสนอแนะ / ข้อเรียกร้อง' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'WTY', + 'Warranty', + 'การประกัน' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'GEN', + 'General', + 'ทั่วไป' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'CON', + 'Contract', + 'สัญญา' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'INS', + 'Insurances/Bond/Guarantee', + 'การประกัน / พันธบัตร / การค้ำประกัน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SCH', + 'Schedule and Program', + 'แผนงาน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'PMA', + 'Payment/Invoice/Retention/Estimate', + 'การชำระเงิน / ใบแจ้งหนี้ / ประกันผลงาน / ประมาณการ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'VRO', + 'Variation Request/Instruction/Order', + 'คำขอเปลี่ยนแปลง / ข้อเสนอแนะ / ข้อเรียกร้อง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'VEN', + 'Vendor', + 'ผู้ขาย' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'WTY', + 'Warranty', + 'การประกัน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'DRW', + 'Drawings (All Types)', + 'แบบก่อสร้าง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'DDW', + 'Draft Drawing', + 'แบบร่าง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SDW', + 'Shop Drawing', + 'แบบขยายรายละเอียด' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ADW', + 'As Built Drawing', + 'แบบร่างหลังการก่อสร้าง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'DDS', + 'Design Data Submission', + 'นำส่งข้อมูลการออกแบบ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'DSN', + 'Design/Calculation/Manual (All Stages)', + 'ออกแบบ / คำนวณ / คู่มือ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'NDS', + 'Non-Design Data Submission', + 'นำส่งข้อมูลที่ไม่เกี่ยวข้องกับการออกแบบ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'PRD', + 'Procedure', + 'ระเบียบปฏิบัติ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MST', + 'Method Statement for Construction/Installation', + 'ขั้นตอนการก่อสร้าง / ติดตั้ง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'QMS', + 'Quality Document (Plan/Work Instruction)', + 'เอกสารด้านคุณภาพ (แผนงาน / ข้อแนะนำในการทำงาน)' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'INR', + 'Inspection/Audit/Surveillance Report', + 'รายงานการตรวจสอบ / การตรวจสอบ / รายงานการเฝ้าระวัง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ITP', + 'Inspection and Test Plan', + 'แผนการตรวจสอบและทดสอบ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MAT', + 'Materials/Equipment/Plant', + 'วัสดุ / อุปกรณ์ / โรงงาน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SPE', + 'Specification', + 'ข้อกำหนด' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MAN', + 'Manual', + 'คู่มือ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'CER', + 'Certificates', + 'ใบรับรอง' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SAR', + 'Semi Annual Report', + 'รายงานประจำหกเดือน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'JSA', + 'Jobs Analysis', + 'รายงานการวิเคราะห์ความปลอดภัย' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MOM', + 'Minutes of Meeting', + 'รายงานการประชุม' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MPR', + 'Monthly Progress Report', + 'รายงานความคืบหน้าประจำเดือน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ICR', + 'Incident Report', + 'รายงานการเกิดอุบัติเหตุและการบาดเจ็บ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'PRG', + 'Progress of Construction', + 'ความคืบหน้าของการก่อสร้าง / ภาพถ่าย / วิดีโอ' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'RPT', + 'Report', + 'รายงาน' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'TNR', + 'Training Report', + 'รายงานการฝึกปฏิบัติ' +FROM contracts +WHERE contract_code = 'LCBP3-C2'; +-- Seed rfa_status_codes +INSERT INTO rfa_status_codes ( + status_code, + status_name, + description, + sort_order + ) +VALUES ('DFT', 'Draft', 'ฉบับร่าง', 1), + ('FAP', 'For Approve', 'เพื่อขออนุมัติ', 11), + ('FRE', 'For Review', 'เพื่อตรวจสอบ', 12), + ('FCO', 'For Construction', 'เพื่อก่อสร้าง', 20), + ('ASB', 'AS - Built', 'แบบก่อสร้างจริง', 30), + ('OBS', 'Obsolete', 'ไม่ใช้งาน', 80), + ('CC', 'Canceled', 'ยกเลิก', 99); +INSERT INTO rfa_approve_codes ( + approve_code, + approve_name, + sort_order, + is_active + ) +VALUES ('1A', 'Approved by Authority', 10, 1), + ('1C', 'Approved by CSC', 11, 1), + ('1N', 'Approved As Note', 12, 1), + ('1R', 'Approved with Remarks', 13, 1), + ('3C', 'Consultant Comments', 31, 1), + ('3R', 'Revise and Resubmit', 32, 1), + ('4X', 'Reject', 40, 1), + ('5N', 'No Further Action', 50, 1); +-- Seed circulation_status_codes +INSERT INTO circulation_status_codes (code, description, sort_order) +VALUES ('OPEN', 'Open', 1), + ('IN_REVIEW', 'In Review', 2), + ('COMPLETED', 'ปCompleted', 3), + ('CANCELLED', 'Cancelled / Withdrawn', 9); +-- ตาราง "แม่" ของ RFA (มีความสัมพันธ์ 1:N กับ rfa_revisions) +-- ========================================================== +-- SEED DATA 6B.md (Disciplines, RFA Types, Sub Types) +-- ========================================================== +-- 1. Seed ข้อมูล Disciplines (สาขางาน) +-- LCBP3-C1 +INSERT INTO disciplines ( + contract_id, + discipline_code, + code_name_th, + code_name_en + ) +SELECT id, + 'GEN', + 'งานบริหารโครงการ', + 'General Management' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'COD', + 'สัญญาและข้อโต้แย้ง', + 'Contracting' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'QSB', + 'สำรวจปริมาณและควบคุมงบประมาณ', + 'Quantity Survey and Budget Control' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'PPG', + 'บริหารแผนและความก้าวหน้า', + 'Plan and Progress Management' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'PRC', + 'งานจัดซื้อ', + 'Procurement' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SUB', + 'ผู้รับเหมาช่วง', + 'Subcontractor' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'ODC', + 'สำนักงาน-ควบคุมเอกสาร', + 'Operation Docment Control' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'LAW', + 'กฎหมาย', + 'Law' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'TRF', + 'จราจร', + 'Traffic' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'BIM', + 'BIM', + 'Building information modeling' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SRV', + 'งานสำรวจ', + 'Survey' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SFT', + 'ความปลอดภัย', + 'Safety' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'BST', + 'งานโครงสร้างอาคาร', + 'Building Structure Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'TEM', + 'งานชั่วคราว', + 'Temporary Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'UTL', + 'งานระบบสาธารณูปโภค', + 'Utility' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'EPW', + 'งานระบบไฟฟ้า', + 'Electrical Power Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'ECM', + 'งานระบบไฟฟ้าสื่อสาร', + 'Electrical Communication Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'ENV', + 'สิ่งแวดล้อม', + 'Environment' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'AQV', + 'คุณภาพอากาศและความสั่นสะเทือน', + 'Air quality and vibration' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'WAB', + 'คุณภาพน้ำและชีววิทยาทางน้ำ', + 'Water quality and Aquatic biology' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'ONS', + 'วิศวกรรมชายฝั่ง', + 'Onshore Engineer Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'PPR', + 'มวลชนสัมพันธ์และการประชาสัมพันธ์', + 'Public Relations' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'OSW', + 'งานก่อสร้างงานทางทะเล', + 'Offshore Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'DRE', + 'งานขุดและถมทะเล', + 'Dredging and Reclamation' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'REV', + 'งานคันหินล้อมพื้นที่ถมทะเล', + 'Revetment' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'BRW', + 'งานเขื่อนกันคลื่น', + 'Breakwater' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SOI', + 'ปรับปรุงคุณภาพดิน', + 'Soil Improvement' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'BLC', + 'งานปรับปรุงคลองบางละมุง', + 'Bang Lamung Canal Bank Protection' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'FUP', + 'งานประตูระบายน้ำและท่อลอด', + 'Floodgate & Under Ground Piping Works' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'SWP', + 'งานอาคารควบคุมสถานีสูบน้ำทะเล', + 'Sea Water Pumping Station Control BuilDing' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'NAV', + 'งานติดตั้งเครื่องหมายช่วงการเดินเรือ', + 'Navigations Aids' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'GEO', + 'งานด้านธรณีเทคนิค', + 'Geotechnical' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'CRW', + 'งานด้านโยธา - Rock Works', + 'Civil-Rock work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'DVR', + 'ทีมนักประดาน้ำ', + 'Dive Work' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'MTS', + 'งานทดสอบวัสดุและธรณีเทคนิค', + 'Materials and Geotechnical Testing' +FROM contracts +WHERE contract_code = 'LCBP3-C1' +UNION ALL +SELECT id, + 'OTH', + 'อื่นๆ', + 'Other' +FROM contracts +WHERE contract_code = 'LCBP3-C1'; +-- LCBP3-C2 +INSERT INTO disciplines ( + contract_id, + discipline_code, + code_name_th, + code_name_en + ) +SELECT id, + 'GEN', + 'งานบริหารโครงการ', + 'Project Management' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'COD', + 'สัญญาและข้อโต้แย้ง', + 'Contracts and arguments' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'QSB', + 'สำรวจปริมาณและควบคุมงบประมาณ', + 'Survey the quantity and control the budget' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'PPM', + 'บริหารแผนและความก้าวหน้า', + 'Plan Management & Progress' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ODC', + 'สำนักงาน-ควบคุมเอกสาร', + 'Document Control Office' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'LAW', + 'กฎหมาย', + 'Law' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'TRF', + 'จราจร', + 'Traffic' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'BIM', + 'Building Information Modeling', + 'Building Information Modeling' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SRV', + 'งานสำรวจ', + 'Survey' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SFT', + 'ความปลอดภัย', + 'Safety' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'BST', + 'งานโครงสร้างอาคาร', + 'Building Structure' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'UTL', + 'งานะบบสาธารณูปโภค', + 'Public Utilities' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'EPW', + 'งานระบบไฟฟ้า', + 'Electrical Systems' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ECM', + 'งานระบบไฟฟ้าสื่อสาร', + 'Electrical Communication System' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ENV', + 'สิ่งแวดล้อม', + 'Environment' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'AQV', + 'คุณภาพอากาศและความสั่นสะเทือน', + 'Air Quality and Vibration' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'WAB', + 'คุณภาพน้ำและชีววิทยาทางน้ำ', + 'Water Quality and Aquatic Biology' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ONS', + 'วิศวกรรมชายฝั่ง', + 'Coastal Engineering' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'PPR', + 'มวลชนสัมพันธ์และประชาสัมพันธ์', + 'Mass Relations and Public Relations' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'OFW', + 'งานก่อสร้างทางทะเล', + 'Marine Construction' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'EXR', + 'งานขุดและถมทะเล', + 'Excavation and reclamation' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'GEO', + 'งานด้านธรณีเทคนิค', + 'Geotechnical work' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'CRW', + 'งานด้านโยธา - Rock Works', + 'Civil Works - Rock Works' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'DVW', + 'ทีมนักประดาน้ำ', + 'Team of Divers' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MTT', + 'งานทดสอบวัสดุ', + 'Materials Testing' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ARC', + 'งานสถาปัตยกรรม', + 'Architecture' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'STR', + 'งานโครงสร้าง', + 'Structural work' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'SAN', + 'งานระบบสุขาภิบาล', + 'Sanitation System' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'DRA', + 'งานระบบระบายน้ำ', + 'Drainage system work' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'TER', + 'งานท่าเทียบเรือ', + 'Terminal Work work' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'BUD', + 'งานอาคาร', + 'Building' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'ROW', + 'งานถนนและสะพาน', + 'Road and Bridge Work' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'MEC', + 'งานเคริองกล', + 'Mechanical work' +FROM contracts +WHERE contract_code = 'LCBP3-C2' +UNION ALL +SELECT id, + 'OTH', + 'อื่น ๆ', + 'Others' +FROM contracts +WHERE contract_code = 'LCBP3-C2'; +-- 2. Seed ข้อมูล Correspondence Sub Types (Mapping RFA Types กับ Number) +-- เนื่องจาก sub_type_code ตรงกับ RFA Type Code แต่ Req ต้องการ Mapping เป็น Number +-- LCBP3-C1 +-- LCBP3-C1 +INSERT INTO correspondence_sub_types ( + contract_id, + correspondence_type_id, + sub_type_code, + sub_type_name, + sub_type_number + ) +SELECT c.id, + ct.id, + 'MAT', + 'Material Approval', + '11' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C1' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'SHP', + 'Shop Drawing Submittal', + '12' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C1' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'DWG', + 'Document Approval', + '13' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C1' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'MET', + 'Engineering Document Submittal', + '14' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C1' + AND ct.type_code = 'RFA'; +-- LCBP3-C2 +INSERT INTO correspondence_sub_types ( + contract_id, + correspondence_type_id, + sub_type_code, + sub_type_name, + sub_type_number + ) +SELECT c.id, + ct.id, + 'MAT', + 'Material Approval', + '21' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C2' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'SHP', + 'Shop Drawing Submittal', + '22' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C2' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'DWG', + 'Document Approval', + '23' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C2' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'MET', + 'Engineering Document Submittal', + '24' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C2' + AND ct.type_code = 'RFA'; +-- LCBP3-C3 +INSERT INTO correspondence_sub_types ( + contract_id, + correspondence_type_id, + sub_type_code, + sub_type_name, + sub_type_number + ) +SELECT c.id, + ct.id, + 'MAT', + 'Material Approval', + '31' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C3' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'SHP', + 'Shop Drawing Submittal', + '32' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C3' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'DWG', + 'Document Approval', + '33' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C3' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'MET', + 'Engineering Document Submittal', + '34' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C3' + AND ct.type_code = 'RFA'; +-- LCBP3-C4 +INSERT INTO correspondence_sub_types ( + contract_id, + correspondence_type_id, + sub_type_code, + sub_type_name, + sub_type_number + ) +SELECT c.id, + ct.id, + 'MAT', + 'Material Approval', + '41' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C4' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'SHP', + 'Shop Drawing Submittal', + '42' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C4' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'DWG', + 'Document Approval', + '43' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C4' + AND ct.type_code = 'RFA' +UNION ALL +SELECT c.id, + ct.id, + 'MET', + 'Engineering Document Submittal', + '44' +FROM contracts c, + correspondence_types ct +WHERE c.contract_code = 'LCBP3-C4' + AND ct.type_code = 'RFA'; +INSERT INTO `correspondences` ( + `id`, + `correspondence_number`, + `correspondence_type_id`, + `discipline_id`, + `is_internal_communication`, + `project_id`, + `originator_id`, + `created_at`, + `created_by`, + `deleted_at` + ) +VALUES ( + 1, + 'ผรม.1-คคง.-0242-2568', + 6, + 1, + 0, + 2, + 41, + '2025-12-06 05:25:58', + 1, + NULL + ), + ( + 2, + 'LCBP3-C2-RFA-ROW-RPT-0059-A', + 1, + 95, + 0, + 3, + 42, + '2025-12-06 05:36:52', + 1, + NULL + ); +INSERT INTO `correspondence_revisions` ( + `id`, + `correspondence_id`, + `revision_number`, + `revision_label`, + `is_current`, + `correspondence_status_id`, + `subject`, + `document_date`, + `issued_date`, + `received_date`, + `due_date`, + `description`, + `details`, + `schema_version`, + `created_at`, + `created_by`, + `updated_by` + ) +VALUES ( + 1, + 1, + 0, + NULL, + 1, + 4, + 'นำส่งวีดิทัศน์ความก้าวหน้างานก่อสร้างงานทางทะเล (ฉบับสมบูรณ์) ประจำเดือนตุลาคม พ.ศ.2568 โครงการพัฒนาท่าเรือแหลมฉบัง ระยะที่ 3 (ส่วนที่ 1) งานก่อสร้างงานทางทะเล', + '2025-11-28', + '2025-11-28 12:26:29', + '2025-12-01 12:26:29', + NULL, + NULL, + NULL, + 1, + '2025-12-06 05:30:17', + 1, + NULL + ); +INSERT INTO `rfas` ( + `id`, + `rfa_type_id`, + `created_at`, + `created_by`, + `deleted_at` + ) +VALUES (2, 68, '2025-12-06 05:40:02', 1, NULL); +INSERT INTO `rfa_revisions` ( + `id`, + `rfa_id`, + `revision_number`, + `revision_label`, + `is_current`, + `rfa_status_code_id`, + `rfa_approve_code_id`, + `subject`, + `document_date`, + `issued_date`, + `received_date`, + `approved_date`, + `description`, + `details`, + `schema_version`, + `created_at`, + `created_by`, + `updated_by` + ) +VALUES ( + 1, + 2, + 1, + 'A', + 0, + 2, + NULL, + 'ขออนุมัติผลการทดสอบเสาเข็มแบบ Dynamic Load Test สำหรับงานเสาเข็มตอกของอาคารสถานีไฟฟ้าย่อย 22 kV. No. 6', + '2025-12-03', + '2025-12-04', + '2025-12-04 12:40:19', + NULL, + NULL, + NULL, + 1, + '2025-12-06 05:41:25', + NULL, + NULL + ); +-- ========================================================== +-- 20. Workflow Definitions (Unified Workflow Engine) +-- ========================================================== +INSERT INTO `workflow_definitions` ( + `id`, + `workflow_code`, + `version`, + `description`, + `dsl`, + `compiled`, + `is_active`, + `created_at`, + `updated_at` + ) +VALUES ( + -- CORRESPONDENCE_FLOW_V1 + UUID(), + 'CORRESPONDENCE_FLOW_V1', + 1, + 'Standard Correspondence Workflow - Draft → Submit → Review → Approve/Reject', + JSON_OBJECT( + 'workflow', + 'CORRESPONDENCE_FLOW_V1', + 'version', + 1, + 'states', + JSON_ARRAY( + JSON_OBJECT( + 'name', + 'DRAFT', + 'initial', + TRUE, + 'on', + JSON_OBJECT( + 'SUBMIT', + JSON_OBJECT('to', 'IN_REVIEW') + ) + ), + JSON_OBJECT( + 'name', + 'IN_REVIEW', + 'on', + JSON_OBJECT( + 'APPROVE', + JSON_OBJECT('to', 'APPROVED'), + 'REJECT', + JSON_OBJECT('to', 'REJECTED'), + 'RETURN', + JSON_OBJECT('to', 'DRAFT') + ) + ), + JSON_OBJECT('name', 'APPROVED', 'terminal', TRUE), + JSON_OBJECT('name', 'REJECTED', 'terminal', TRUE) + ) + ), + JSON_OBJECT( + 'initialState', + 'DRAFT', + 'states', + JSON_OBJECT( + 'DRAFT', + JSON_OBJECT( + 'initial', + TRUE, + 'terminal', + false, + 'transitions', + JSON_OBJECT( + 'SUBMIT', + JSON_OBJECT('to', 'IN_REVIEW', 'events', JSON_ARRAY()) + ) + ), + 'IN_REVIEW', + JSON_OBJECT( + 'initial', + false, + 'terminal', + false, + 'transitions', + JSON_OBJECT( + 'APPROVE', + JSON_OBJECT('to', 'APPROVED', 'events', JSON_ARRAY()), + 'REJECT', + JSON_OBJECT('to', 'REJECTED', 'events', JSON_ARRAY()), + 'RETURN', + JSON_OBJECT('to', 'DRAFT', 'events', JSON_ARRAY()) + ) + ), + 'APPROVED', + JSON_OBJECT( + 'initial', + false, + 'terminal', + TRUE, + 'transitions', + JSON_OBJECT() + ), + 'REJECTED', + JSON_OBJECT( + 'initial', + false, + 'terminal', + TRUE, + 'transitions', + JSON_OBJECT() + ) + ) + ), + TRUE, + NOW(), + NOW() + ), + ( + -- RFA_APPROVAL + UUID(), + 'RFA_APPROVAL', + 1, + 'Request for Approval Workflow - Contractor Submit → Consultant Review → Owner Review', + JSON_OBJECT( + 'workflow', + 'RFA_APPROVAL', + 'version', + 1, + 'states', + JSON_ARRAY( + JSON_OBJECT( + 'name', + 'DRAFT', + 'initial', + TRUE, + 'on', + JSON_OBJECT( + 'SUBMIT', + JSON_OBJECT( + 'to', + 'CONSULTANT_REVIEW', + 'require', + JSON_OBJECT('role', 'CONTRACTOR') + ) + ) + ), + JSON_OBJECT( + 'name', + 'CONSULTANT_REVIEW', + 'on', + JSON_OBJECT( + 'APPROVE', + JSON_OBJECT('to', 'OWNER_REVIEW'), + 'REJECT', + JSON_OBJECT('to', 'DRAFT') + ) + ), + JSON_OBJECT( + 'name', + 'OWNER_REVIEW', + 'on', + JSON_OBJECT( + 'APPROVE', + JSON_OBJECT('to', 'APPROVED'), + 'REJECT', + JSON_OBJECT('to', 'CONSULTANT_REVIEW') + ) + ), + JSON_OBJECT('name', 'APPROVED', 'terminal', TRUE) + ) + ), + JSON_OBJECT( + 'initialState', + 'DRAFT', + 'states', + JSON_OBJECT( + 'DRAFT', + JSON_OBJECT( + 'initial', + TRUE, + 'terminal', + false, + 'transitions', + JSON_OBJECT( + 'SUBMIT', + JSON_OBJECT( + 'target', + 'CONSULTANT_REVIEW', + 'events', + JSON_ARRAY() + ) + ) + ), + 'CONSULTANT_REVIEW', + JSON_OBJECT( + 'initial', + false, + 'terminal', + false, + 'transitions', + JSON_OBJECT( + 'APPROVE', + JSON_OBJECT('target', 'OWNER_REVIEW', 'events', JSON_ARRAY()), + 'REJECT', + JSON_OBJECT('target', 'DRAFT', 'events', JSON_ARRAY()) + ) + ), + 'OWNER_REVIEW', + JSON_OBJECT( + 'initial', + false, + 'terminal', + false, + 'transitions', + JSON_OBJECT( + 'APPROVE', + JSON_OBJECT('target', 'APPROVED', 'events', JSON_ARRAY()), + 'REJECT', + JSON_OBJECT( + 'target', + 'CONSULTANT_REVIEW', + 'events', + JSON_ARRAY() + ) + ) + ), + 'APPROVED', + JSON_OBJECT( + 'initial', + false, + 'terminal', + TRUE, + 'transitions', + JSON_OBJECT() + ) + ) + ), + TRUE, + NOW(), + NOW() + ); +INSERT INTO `document_number_formats` ( + `id`, + `project_id`, + `correspondence_type_id`, + `discipline_id`, + `format_string`, + `reset_annually`, + `is_active`, + `description`, + `created_at`, + `updated_at` + ) +VALUES ( + 1, + 1, + NULL, + 0, + '{ORG}-{RECIPIENT}-{SEQ:4}-{YEAR}', + 1, + 1, + NULL, + '2025-12-16 09:33:36', + '2025-12-16 09:33:36' + ), + ( + 2, + 2, + NULL, + 0, + '{ORG}-{RECIPIENT}-{SEQ:4}-{YEAR}', + 1, + 1, + NULL, + '2025-12-16 09:34:10', + '2025-12-16 09:34:10' + ); diff --git a/specs/06-Decision-Records/ADR-017-ollama-data-migration.md b/specs/06-Decision-Records/ADR-017-ollama-data-migration.md index 9f17159..7563fdd 100644 --- a/specs/06-Decision-Records/ADR-017-ollama-data-migration.md +++ b/specs/06-Decision-Records/ADR-017-ollama-data-migration.md @@ -2,33 +2,40 @@ **Status:** Accepted **Date:** 2026-02-26 +**Version:** 1.8.0 **Decision Makers:** Development Team, DevOps Engineer **Related Documents:** - - [Legacy Data Migration Plan](../03-Data-and-Storage/03-04-legacy-data-migration.md) +- [n8n Migration Setup Guide](../03-Data-and-Storage/03-05-n8n-migration-setup-guide.md) - [Software Architecture](../02-Architecture/02-02-software-architecture.md) - [Data Dictionary](../03-Data-and-Storage/03-01-data-dictionary.md) +> **Note:** ADR-017 is clarified and hardened by ADR-018 regarding AI physical isolation. Category Enum system-driven, Idempotency Contract, Duplicate Handling Clarification, Storage Enforcement, Audit Log Enhancement, Review Queue Integration, Revision Drift Protection, Execution Time, Encoding Normalization, Security Hardening, AI Physical Isolation (ASUSTOR). + --- ## Context and Problem Statement -โครงการ LCBP3-DMS มีความจำเป็นต้องนำเข้าเอกสาร (Data Migration) ประเภท PDF เก่าจำนวนกว่า 20,000 ฉบับ ซึ่งมาพร้อมกับ Metadata ในรูปแบบไฟล์ Excel เข้าสู่ระบบใหม่เพื่อให้สามารถเริ่มใช้งานได้อย่างสมบูรณ์ +โครงการ LCBP3-DMS มีความจำเป็นต้องนำเข้าเอกสาร PDF เก่าจำนวนกว่า 20,000 ฉบับ พร้อม Metadata ใน Excel เข้าสู่ระบบใหม่ -ความท้าทายหลักของการทำ Migration ชุดนี้คือ **Data Integrity และความถูกต้องของ Metadata** เนื่องจากเป็นข้อมูลเก่าที่มีโอกาสเกิด Human Error ในขั้นตอนการจัดทำ Index (เช่น ชื่อไฟล์ หรือ Document Number พิมพ์ผิด) เราจึงต้องการเครื่องมืออัตโนมัติมาช่วย Validate เอกสารและจำแนกประเภทก่อนการนำเข้า +ความท้าทายหลักคือ **Data Integrity และความถูกต้องของ Metadata** เนื่องจากข้อมูลเก่ามีโอกาสเกิด Human Error เราจึงต้องการ AI ช่วย Validate ก่อนนำเข้า -ทว่าการส่งข้อมูล 20,000 รายการ ขึ้นไปวิเคราะห์บน Cloud AI Provider (เช่น OpenAI, Anthropic) มีปัญหาใหญ่ 2 ประการ: -1. **Data Privacy / Confidentiality:** เอกสารก่อสร้างท่าเรือเป็นข้อมูลความลับ ไม่ควรส่งขึ้น Public API -2. **Cost:** ค่าใช้จ่ายต่อ Token ในการวิเคราะห์เอกสารจำนวนมากจะสูงเกินความจำเป็น +การส่งข้อมูลขึ้น Cloud AI Provider มีปัญหา 2 ประการ: +1. **Data Privacy:** เอกสารก่อสร้างท่าเรือเป็นความลับ ห้ามออกนอกเครือข่าย +2. **Cost:** ~$0.01–0.03 ต่อ Record = อาจสูงถึง $600 สำหรับ 20,000 records --- ## Decision Drivers -- **Security & Privacy:** ต้องเก็บข้อมูลและประมวลผลภายในระบบเครือข่ายภายในองค์กร (On-Premise) -- **Cost Effectiveness:** ไม่เสียค่าใช้จ่ายแบบ Pay-per-use (API Costs) ไม่จำกัดจำนวน Request -- **Performance:** ต้องสามารถประมวลผลได้อย่างรวดเร็วในระยะเวลาที่จำกัด -- **Maintainability:** เครื่องมือ Migration ต้องแยก Context ออกจาก Core Application (ไม่นำไปเขียนเป็น Script ฝังใน NestJS เพื่อทำงานชั่วคราว) +- **Security & Privacy:** ประมวลผลภายในเครือข่ายองค์กร (On-Premise) เท่านั้น +- **Cost Effectiveness:** ไม่เสียค่า Pay-per-use +- **Performance:** ประมวลผลได้ในระยะเวลาที่จำกัด (~3–4 คืน) +- **Maintainability:** แยก Migration ออกจาก Core Application +- **Recoverability:** Rollback ได้สมบูรณ์ +- **Resilience:** รองรับ Checkpoint/Resume และ Hardware Failure +- **Data Integrity:** Idempotency, Revision Drift Protection, Enum Enforcement +- **Storage Governance:** ทุก File Move ต้องผ่าน StorageService --- @@ -36,57 +43,306 @@ ### Option 1: NestJS Custom Script + Public AI API -**แนวทาง:** เขียน Script ชั่วคราวใน NestJS อ่านไฟล์ Excel และยิง API ไปยัง OpenAI/Anthropic เพื่อตรวจสอบ - -**Pros:** -- ไม่ต้องจัดหา Hardware เพิ่มเติมสำหรับประมวลผล AI -- AI มีความฉลาดสูง (GPT-4 / Claude 3) +**Pros:** ไม่ต้องจัดหา Hardware เพิ่ม, AI ฉลาดสูง **Cons:** -- ❌ ผิดนโยบายเรื่อง Data Privacy -- ❌ มีค่าใช้จ่ายต่อเนื่องตามจำนวน Token ที่ประมวลผล -- ❌ โค้ดสกปรก: นำ Script การทำงานชั่วคราวไปปะปนกับ Source Code หลักของ Application +- ❌ ผิดนโยบาย Data Privacy +- ❌ ค่าใช้จ่ายสูง (~$600) +- ❌ Code สกปรก ปะปนกับ Source Code หลัก ### Option 2: Pure Scripting (No AI) -**แนวทาง:** เขียน Script ตรวจสอบ Format โดยใช้ Regular Expressions เช็คความยาวหรือ Pattern ของข้อความเท่านั้น - -**Pros:** -- เร็วมาก และไม่มีค่าใช้จ่าย +**Pros:** เร็ว ไม่มีค่าใช้จ่าย **Cons:** -- ❌ ความแม่นยำต่ำ: ทราบเพียงว่า Format ตรง แต่ไม่ทราบว่าความหมายของชื่อเรื่อง สอดคล้องกับประเภทเอกสารและเอกสารอ้างอิงหรือไม่ -- ❌ ต้องใช้แรงงานคน (Manual Review) กลับมาสุ่มตรวจหรือแก้ไขข้อผิดพลาดจำนวนมากหลังนำเข้า +- ❌ ความแม่นยำต่ำ ตรวจได้แค่ Format +- ❌ ต้องใช้ Manual Review จำนวนมาก -### Option 3: Local AI Model (Ollama) + n8n Workflow Automation ⭐ (Selected) - -**แนวทาง:** จำลอง Workflow การ Migration ผ่าน n8n (ซึ่งติดตั้งอยู่บน QNAP NAS ของระบบอยู่แล้ว) และใช้ Ollama รัน Local Language Model (เช่น LLaMA 3.2 หรือ Mistral) โดยประมวลผลบนเครื่อง Desktop PC ที่มี GPU (เช่น RTX 2060 SUPER) ภายในเครือข่าย Local Network เดียวกัน ความเร็วในการส่งไฟล์ผ่าน 2.5G LAN +### Option 3: Local AI Model (Ollama) + n8n ⭐ (Selected) **Pros:** -- ✅ **Privacy Guaranteed:** ข้อมูลไม่รั่วไหลออกสู่อินเทอร์เน็ต -- ✅ **Zero Cost:** ใช้ Hardware ที่มีอยู่แล้ว ไม่มีค่าใช้จ่ายด้าน Token -- ✅ **Clean Architecture:** กระบวนการทำ Migration ถูกแยกออกจากการพัฒนาซอฟต์แวร์หลักของระบบ (NestJS Backend รับผิดชอบแค่ Ingest API เท่านั้น) -- ✅ **Visual & Debuggable:** n8n ช่วยให้มองเห็น Flow การทำงานแบบเป็นภาพ (Visual Node Editor) จัดการ Batch, Retry และดู Error Logs ได้ง่าย +- ✅ Privacy Guaranteed +- ✅ Zero Cost +- ✅ Clean Architecture +- ✅ Visual & Debuggable +- ✅ Resilient (Checkpoint/Resume) +- ✅ Structured Output ด้วย JSON Schema **Cons:** -- ❌ จำเป็นต้องเปิดคอมพิวเตอร์ Desktop ทิ้งไว้ และควบคุมอุณหภูมิ GPU ในช่วงที่ทำ Migration +- ❌ ต้องเปิด Desktop ทิ้งไว้ดูแล GPU Temperature +- ❌ Model เล็กอาจแม่นน้อยกว่า Cloud AI → ต้องมี Human Review Queue --- ## Decision Outcome -**Chosen Option:** Option 3 - Local AI Model (Ollama) + n8n Workflow Automation +**Chosen Option:** Option 3 — Local AI Model (Ollama) + n8n -### Rationale - -เราเลือกแนวทางนี้เพราะเป็นการประยุกต์ใช้ทรัพยากรที่มีอยู่ให้เกิดประโยชน์สูงสุด โดยไม่ขัดหลักการด้าน Cybersecurity และ Privacy ของโครงการ การนำ Automation Tool (n8n) แยกออกมาเป็น Orchestrator ช่วยลดความเสี่ยงที่การรัน Migration script ขนาดใหญ่จะไปส่งผลกระทบให้ Core Backend (NestJS) ของระบบในฝั่ง Production หยุดชะงัก (Downtime) หรือ Memory รั่ว +**Rationale:** ประยุกต์ใช้ Hardware ที่มีอยู่ โดยไม่ขัดหลัก Privacy และ Security ของโครงการ n8n ช่วยลด Risk ที่จะกระทบ Core Backend และรองรับ Checkpoint/Resume ได้ดีกว่าการเขียน Script เอง --- ## Implementation Summary -- **Migration Orchestrator:** n8n (Docker container ภายในระบบ Infrastructure เดิม) -- **AI Brain:** Ollama Native (รันนอก Environment หลัก บน Hardware แยกเพื่อรับโหลด AI โดยตรง) -- **Data Ingestion:** ส่งผ่าน RESTful API ของ LCBP3-DMS Backend (พร้อม Token สิทธิพิเศษ) +| Component | รายละเอียด | +| ---------------------- | ------------------------------------------------------------- | +| Migration Orchestrator | n8n (Docker บน ASUSTOR NAS) | +| AI Model Primary | Ollama `llama3.2:3b` | +| AI Model Fallback | Ollama `mistral:7b-instruct-q4_K_M` | +| Hardware | ASUSTOR NAS (AI Processing Only) | +| Data Ingestion | RESTful API + Migration Token (7 วัน) + Idempotency-Key Header | +| Concurrency | Sequential — 1 Request/ครั้ง, Delay 2 วินาที | +| Checkpoint | MariaDB `migration_progress` | +| Fallback | Auto-switch Model เมื่อ Error ≥ Threshold | +| Storage | Backend StorageService เท่านั้น — ห้าม move file โดยตรง | +| Expected Runtime | ~16.6 ชั่วโมง (~3–4 คืน) สำหรับ 20,000 records | -*หมายเหตุ: สำหรับขั้นตอนปฏิบัติงานแบบละเอียด โปรดดูที่ไฟล์ `03-04-legacy-data-migration.md`* +--- + +## AI Output Contract (JSON Schema) + +```json +{ + "is_valid": true, + "confidence": 0.92, + "suggested_category": "Correspondence", + "detected_issues": [], + "suggested_title": null +} +``` + +| Field | Type | คำอธิบาย | +| -------------------- | ------------------------- | --------------------------- | +| `is_valid` | boolean | เอกสารผ่านการตรวจสอบหรือไม่ | +| `confidence` | float (0.0–1.0) | ความมั่นใจของ AI | +| `suggested_category` | string (enum จาก Backend) | หมวดหมู่ที่ AI แนะนำ | +| `detected_issues` | string[] | รายการปัญหา (array ว่างถ้าไม่มี) | +| `suggested_title` | string \| null | Title ที่แก้ไขแล้ว หรือ null | + +> ⚠️ **Patch:** `suggested_category` ต้องตรงกับ System Enum จาก `GET /api/meta/categories` เท่านั้น — ห้าม hardcode Category List ใน Prompt + +--- + +## Confidence Threshold Policy + +| ระดับ Confidence | การดำเนินการ | +| ------------------------------- | --------------------------------------- | +| `>= 0.85` และ `is_valid = true` | Auto Ingest เข้าระบบ | +| `0.60–0.84` | ส่งไป Human Review Queue | +| `< 0.60` หรือ `is_valid = false` | ส่งไป Reject Log รอ Manual Fix | +| AI Parse Error | ส่งไป Error Log + Trigger Fallback Logic | +| Revision Drift | ส่งไป Review Queue พร้อม reason | + +--- + +## Idempotency Contract + +**HTTP Header ที่ต้องส่งทุก Request:** +``` +Idempotency-Key: : +``` + +**Backend Logic:** +``` +IF idempotency_key EXISTS in import_transactions → RETURN HTTP 200 (no action) +ELSE → Process normally → INSERT import_transactions → RETURN HTTP 201 +``` + +ป้องกัน Revision ซ้ำกรณี n8n Retry หรือ Network Error + +--- + +## Duplicate Handling Clarification + +Bypass Duplicate **Validation Error** + +Hard Rules: +- ❌ Migration Token ไม่สามารถ Overwrite Revision ที่มีอยู่ +- ❌ Migration Token ไม่สามารถ Delete Revision ก่อนหน้า +- ✅ Migration Token trigger Revision increment logic ตามปกติเท่านั้น + +--- + +## Storage Governance (Patch) + +**ข้อห้าม:** +``` +❌ mv /data/dms/staging_ai/TCC-COR-0001.pdf /final/path/... +``` + +**ข้อบังคับ:** +``` +✅ POST /api/correspondences/import + body: { source_file_path: "/data/dms/staging_ai/TCC-COR-0001.pdf", ... } +``` + +Backend จะ: +1. Generate UUID +2. Enforce path strategy: `/data/dms/uploads/YYYY/MM/{uuid}.pdf` +3. Move file atomically ผ่าน StorageService +4. Create revision folder ถ้าจำเป็น + +--- + +## Review Queue Contract + +- `migration_review_queue` เป็น **Temporary Table เท่านั้น** — ไม่ใช่ Business Schema +- ห้ามสร้าง Correspondence record จนกว่า Admin จะ Approve +- Approval Flow: `Review → Admin Approve → POST /api/correspondences/import` + +--- + +## Revision Drift Protection + +ถ้า Excel มี revision column: +``` +IF excel_revision != current_db_revision + 1 +→ ROUTE ไป Review Queue พร้อม reason: "Revision drift" +``` + +--- + +## Execution Time Estimate + +| Parameter | ค่า | +| -------------------- | ---------------------------- | +| Delay ระหว่าง Request | 2 วินาที | +| Inference Time (avg) | ~1 วินาที | +| เวลาต่อ Record | ~3 วินาที | +| จำนวน Record | 20,000 | +| เวลารวม | ~60,000 วินาที (~16.6 ชั่วโมง) | +| **จำนวนคืนที่ต้องใช้** | **~3–4 คืน** (รัน 22:00–06:00) | + +--- + +## Encoding Normalization + +ก่อน Ingestion ทุกครั้ง: +- Excel data → Convert เป็น **UTF-8** +- Filename → Normalize เป็น **NFC UTF-8** ป้องกันปัญหาภาษาไทยเพี้ยนข้าม OS + +--- + +## Security Constraints + +1. Migration Token อายุ **≤ 7 วัน** — Revoke ทันทีหลัง Migration +2. Token Bypass ได้เฉพาะ: Virus Scan, Duplicate Validation Error, Created-by +3. Token **ไม่มีสิทธิ์** ลบหรือ Overwrite Record เดิม +4. ทุก Request บันทึก Audit Log: `action=IMPORT, source=MIGRATION, created_by=SYSTEM_IMPORT` +5. **IP Whitelist:** ใช้ได้เฉพาะจาก `` +6. **Nginx Rate Limit:** `limit_req zone=migration burst=5 nodelay` +7. **Docker Hardening:** `mem_limit: 2g`, log rotation `max-size: 10m, max-file: 3` + +--- + +## Rollback Strategy + +1. Disable Migration Token ใน DB ทันที +2. ลบ Records ทั้งหมด `created_by = 'SYSTEM_IMPORT'` ผ่าน Transaction SQL (รวม `import_transactions`) +3. ย้ายไฟล์ PDF กลับ `migration_temp/` +4. Reset `migration_progress` และ `migration_fallback_state` +5. วิเคราะห์ Root Cause ก่อนรันใหม่ + +รายละเอียดดูที่ `03-04-legacy-data-migration.md` หัวข้อ 4 + +--- + +## Architecture Validation Checklist (GO-LIVE GATE) + +### 🟢 A. Infrastructure Validation + +| Check | Expected | ✅ | +| ---------------------------- | ------------- | --- | +| Ollama `/api/tags` reachable | HTTP 200 | | +| Backend `/health` OK | HTTP 200 | | +| MariaDB reachable | SELECT 1 | | +| `staging_ai` mounted RO | ls works | | +| `migration_logs` mounted RW | write test OK | | +| GPU VRAM < 70% idle | safe margin | | +| Disk space > 30% free | safe | | + +### 🟢 B. Security Validation + +| Check | Expected | ✅ | +| -------------------------------------- | -------- | --- | +| Migration Token expiry ≤ 7 days | Verified | | +| Token IP Whitelist = NAS IP only | Verified | | +| Token cannot DELETE records | Verified | | +| Token cannot UPDATE non-import records | Verified | | +| Audit Log records `source=MIGRATION` | Verified | | +| Nginx rate limit configured | Verified | | +| Docker mem_limit = 2g | Verified | | + +### 🟢 C. Data Integrity Validation + +| Check | Expected | ✅ | +| ---------------------------------------------- | -------------- | --- | +| Enum fetched from `/api/meta/categories` | Not hardcoded | | +| `Idempotency-Key` header enforced | Verified | | +| Duplicate revision test (run same batch twice) | No overwrite | | +| Revision drift test | Sent to Review | | +| Storage path matches Core Storage Spec v1.8.0 | Verified | | +| Encoding normalization NFC UTF-8 | Verified | | + +### 🟢 D. Workflow Validation (Dry Run 20 Records) + +| Check | Expected | ✅ | +| ---------------------------------------- | ------------ | --- | +| JSON parse success rate | > 95% | | +| Confidence distribution reasonable | Mean 0.7–0.9 | | +| Checkpoint updates every 10 records | Verified | | +| Fallback model not prematurely triggered | Verified | | +| Reject log written to `migration_logs/` | Verified | | +| Error log written to `migration_logs/` | Verified | | +| Review queue inserts to DB | Verified | | + +### 🟢 E. Performance Validation + +| Check | Expected | ✅ | +| ------------------------------- | -------- | --- | +| 10 records processed < 1 minute | Verified | | +| GPU temp < 80°C | Verified | | +| No memory leak after 1 hour | Verified | | +| No duplicate revision created | Verified | | + +### 🟢 F. Rollback Test (Mandatory) + +| Check | Expected | ✅ | +| ------------------------------------ | ----------------- | --- | +| Disable token works | is_active = false | | +| Delete `SYSTEM_IMPORT` records works | COUNT = 0 | | +| `import_transactions` cleared | COUNT = 0 | | +| Checkpoint reset to 0 | Verified | | +| Fallback state reset | Verified | | + +--- + +## GO / NO-GO Criteria + +**GO ถ้า:** +- A, B, C ทุก Check = PASS +- Dry run error rate < 10% +- JSON parse failure < 5% +- Revision conflict < 3% + +**NO-GO ถ้า:** +- Enum mismatch (Category hardcoded) +- Idempotency ไม่ได้ implement +- Storage bypass (move file โดยตรง) +- Audit log ไม่ครบ + +--- + +## Final Architectural Assessment + +| Area | Status | +| ------------------ | ------------------------------------------------ | +| ADR Compliance | ✅ Fully aligned | +| Security | ✅ Hardened (IP Whitelist, Rate Limit, Docker) | +| Data Integrity | ✅ Controlled (Idempotency, Revision Drift, Enum) | +| Storage Governance | ✅ Enforced (StorageService only) | +| Operational Safety | ✅ Production Grade | + +--- + +*สำหรับขั้นตอนปฏิบัติงานแบบละเอียด ดูที่ `03-04-legacy-data-migration.md` และ `03-05-n8n-migration-setup-guide.md`* diff --git a/specs/06-Decision-Records/Patch 1.8.1.md b/specs/06-Decision-Records/Patch 1.8.1.md new file mode 100644 index 0000000..c874072 --- /dev/null +++ b/specs/06-Decision-Records/Patch 1.8.1.md @@ -0,0 +1,378 @@ +สรุป Patch 1.8.1 +--- + +# 📘 1) Formal Spec — Version 1.8.1 + +**Document ID:** DMS-SPEC-1.8.1 +**Status:** Approved for Implementation +**Supersedes:** 1.8.0 +**Effective Date:** 2026-02-26 + +--- + +## 1. Purpose + +Spec 1.8.1 แก้ความไม่สอดคล้องระหว่าง: + +* 03-04-legacy-data-migration.md +* 03-05-n8n-migration-setup-guide.md +* ADR-017-ollama-data-migration.md + +และกำหนด Production Boundary ที่ชัดเจน + +--- + +## 2. Authoritative Architecture (Binding) + +### Infrastructure Layout + +| Component | Host | Responsibility | +| ------------- | ------- | -------------------- | +| DMS App | QNAP | Production system | +| MariaDB | QNAP | Authoritative DB | +| File Storage | QNAP | Primary file store | +| Reverse Proxy | QNAP | Public ingress | +| Ollama | ASUSTOR | AI processing only | +| n8n | ASUSTOR | Automation engine | +| Portainer | ASUSTOR | Container management | + +**Constraint:** + +* Ollama MUST NOT run on QNAP +* AI containers MUST NOT access production DB directly + +--- + +## 3. Source of Truth Definition + +During Migration: + +| Data Type | Authority | +| ------------ | --------------------------------------- | +| File content | Legacy file server | +| RFA metadata | Gmail notification | +| Assignment | Circulation sheet | +| DMS DB | NOT authoritative until validation pass | + +--- + +## 4. Metadata Mapping Contract (Mandatory) + +| Legacy | DMS | Required | Rule | +| ------------- | ------------- | -------- | ----------------- | +| RFA No | rfa_number | YES | UNIQUE | +| Title | title | YES | NOT NULL | +| Issue Date | issue_date | YES | Valid date | +| Revision | revision_code | YES | Pattern validated | +| Assigned User | user_id | YES | FK must exist | +| File Path | file_path | YES | File must exist | + +Migration MUST fail if required fields invalid. + +--- + +## 5. Idempotent Execution Requirement + +Automation must: + +* Check existence by rfa_number +* Validate file hash +* UPDATE instead of INSERT if exists +* Prevent duplicate revision chain + +--- + +## 6. Folder Standard + +``` +/data/dms/ + ├── uploads/YYYY/MM/ + ├── staging_ai/ + ├── migration_logs/ + └── archive_legacy/ +``` + +--- + +## 7. File Naming Standard + +``` +{RFA_NO}_{REV}_{YYYYMMDD}.pdf +``` + +Example: + +``` +RFA-2026-001_A_20260225.pdf +``` + +--- + +## 8. Logging Standard + +| System | Required | +| ---------------- | -------------- | +| Migration script | structured log | +| n8n | execution log | +| Ollama | inference log | +| DMS | audit_log | + +Retention: 90 days minimum. + +--- + +## 9. Dry Run Policy + +All migrations MUST run with: + +``` +--dry-run +``` + +No DB commit until validation approved. + +--- + +## 10. Rollback Strategy + +1. Disable n8n +2. Restore DB snapshot +3. Restore file snapshot +4. Clear staging_ai +5. Re-run validation + +--- + +--- + +# 📄 2) ADR-018 — AI Boundary Hardening + +**Title:** AI Isolation & Production Boundary Enforcement +**Status:** Accepted +**Date:** 2026-02-26 +**Supersedes:** Clarifies ADR-017 + +--- + +## Context + +AI-based migration using Ollama introduces: + +* DB corruption risk +* Hallucinated metadata +* Unauthorized modification +* Privilege escalation risk + +Production DMS must remain authoritative. + +--- + +## Decision + +### 1. AI Isolation Model + +Ollama must: + +* Run on ASUSTOR only +* Have NO DB credentials +* Have NO write access to uploads +* Access only `/staging_ai` +* Output JSON only + +--- + +### 2. Data Flow Model + +``` +Legacy File → staging_ai → Ollama → JSON + ↓ + Validation Script + ↓ + DMS API (write) +``` + +AI never writes directly. + +--- + +### 3. API Gatekeeping + +All writes must go through: + +* Authenticated DMS API +* RBAC enforced +* Audit log recorded + +--- + +### 4. Hallucination Mitigation + +AI output must: + +* Match schema +* Pass validation script +* Fail on missing required fields +* Reject unknown users + +--- + +### 5. Security Controls + +| Risk | Control | +| ------------------ | ------------------ | +| DB corruption | No DB access | +| File overwrite | Read-only mount | +| Public AI exposure | No exposed port | +| Data leak | Internal VLAN only | + +--- + +## Consequences + +Pros: + +* Production safe +* Predictable migration +* Audit trail preserved + +Cons: + +* Slightly slower pipeline +* Requires validation layer + +--- + +--- + +# 🧠 3) Full Migration Runbook + +**Production Execution Guide** + +--- + +# PHASE 0 — Pre-Run Validation + +☐ Full DB backup +☐ File storage snapshot +☐ Restore test verified +☐ 10-sample manual compare +☐ Dry-run executed +☐ Dry-run report approved + +--- + +# PHASE 1 — Environment Preparation + +1. Stop public automation +2. Disable n8n production workflows +3. Clear `/staging_ai` +4. Confirm Ollama healthy +5. Confirm DMS API reachable + +--- + +# PHASE 2 — Controlled Batch Migration + +Batch size recommendation: + +* 20–50 RFAs per batch + +Process: + +1. Copy files to `/staging_ai` +2. Run AI extraction +3. Validate JSON +4. Push via DMS API +5. Log result +6. Manual sample verify (10%) + +--- + +# PHASE 3 — Post-Batch Validation + +After each batch: + +☐ Record count match +☐ File open test +☐ Revision chain correct +☐ Assignment correct +☐ No duplicate rfa_number + +If fail → STOP and rollback. + +--- + +# PHASE 4 — Cutover + +When all batches pass: + +1. Enable n8n automation +2. Monitor logs 24h +3. Lock legacy system (read-only) +4. Final backup snapshot + +--- + +# PHASE 5 — Post-Go-Live Monitoring (72 hours) + +Monitor: + +* DB errors +* Duplicate insert +* Missing files +* AI extraction errors +* API error rate + +If anomaly >5% → trigger rollback plan. + +--- + +# 🚨 Emergency Rollback Procedure + +1. Disable n8n +2. Restore DB snapshot +3. Restore file snapshot +4. Clear staging_ai +5. Reconcile delta manually + +Target RTO: < 2 hours + +--- + +# 📊 Risk Matrix (Condensed) + +| Risk | Probability | Impact | Mitigation | +| ---------------- | ----------- | -------- | ----------------- | +| Duplicate RFA | Medium | High | Idempotent check | +| Wrong assignment | Medium | Medium | Validation rule | +| AI hallucination | Medium | High | Schema validation | +| Storage mismatch | Low | High | File hash verify | +| DB corruption | Low | Critical | No AI DB access | + +--- + +# 🏁 Production Readiness Criteria + +System may go live only if: + +* All dry-run tests pass +* 100% required fields valid +* 0 duplicate RFA +* Sample QA pass >95% +* Backup verified + +--- + +--- + +# 🎯 Final Result + +ตอนนี้เอกสารทั้งชุด: + +✔ Architecture consistent +✔ AI boundary hardened +✔ Migration deterministic +✔ Rollback defined +✔ Production-safe + +--- diff --git a/specs/03-Data-and-Storage/lcbp3-v1.7.0-schema.sql b/specs/99-archives/lcbp3-v1.7.0-schema.sql similarity index 100% rename from specs/03-Data-and-Storage/lcbp3-v1.7.0-schema.sql rename to specs/99-archives/lcbp3-v1.7.0-schema.sql diff --git a/specs/03-Data-and-Storage/lcbp3-v1.7.0-seed-basic.sql b/specs/99-archives/lcbp3-v1.7.0-seed-basic.sql similarity index 100% rename from specs/03-Data-and-Storage/lcbp3-v1.7.0-seed-basic.sql rename to specs/99-archives/lcbp3-v1.7.0-seed-basic.sql diff --git a/specs/99-archives/lcbp3-v1.7.0-seed-contractdrawing.sql b/specs/99-archives/lcbp3-v1.7.0-seed-contractdrawing.sql new file mode 100644 index 0000000..b0fa5f6 --- /dev/null +++ b/specs/99-archives/lcbp3-v1.7.0-seed-contractdrawing.sql @@ -0,0 +1,2372 @@ +-- ========================================================== +-- DMS DMS v0.5.0 +-- Database v5.1 - Seed contract_dwg data +-- Server: Container Station on QNAPQNAP TS-473A +-- Database service: MariaDB 10.11 +-- database ui: phpmyadmin 5-apache +-- backend sevice: node.js +-- frontend sevice: next.js +-- reverse proxy: nginx 1.27-alpine +-- cron service: n8n +-- scripts: alpine:3.20 +-- Notes: +-- ========================================================== + +INSERT INTO contract_drawing_volumes (project_id, volume_code, volume_name, description) +VALUES + (3, 'Volume-1/7', 'หมวดงานภูมิสถาปัตย์', 'งานภูมิสถาปัตย์, งานอาคาร 1/3'), + (3, 'Volume-2/7', 'หมวดงานอาคาร', 'งานอาคาร 2/3'), + (3, 'Volume-3/7', 'หมวดงานอาคาร', 'งานอาคาร 3/3'), + (3, 'Volume-4/7', 'หมวดงานท่าเทียบเรือ', 'งานท่าเรือชายฝั่ง และ งานท่าเรือบริการ'), + (3, 'Volume-5/7', 'หมวดงานถนน', 'งานระบบถนนและสะพาน'), + (3, 'Volume-6/7-1', 'หมวดงานสาธารณูปโภค', 'งานระบบประปาและดับเพลิง, งานระบบระบายน้ำ'), + (3, 'Volume-6/7-2', 'หมวดงานสาธารณูปโภค', 'งานระบบระบายน้ำ, งานระบบบำบัดน้ำเสีบ, งานระบบสาธารณูปโภคภายนอก'), + (3, 'Volume-7/7', 'หมวดงานสาธารณูปโภค', 'งาน SUBSTATION, งานระบบสื่อสาร, งานระบบกล้องโทรทัศน์วงจรปิด, งานระบบสายเคเบิ้ลใต้ดินแรงสูง'); + +INSERT INTO contract_drawing_cats (id, project_id, cat_code, cat_name) +VALUES +(1, 3, 'LSC', 'งานภายนอก'), +(2, 3, 'RTP', 'บ่อหน่วงน้ำ'), +(3, 3, 'CDB', 'อาคารร้านอาหารและจำหน่ายสินค้าปลอดภาษี'), +(4, 3, 'WSP', 'ระบบจ่ายน้ำประปา'), +(5, 3, 'GEN', 'ทั่วไป'), +(6, 3, 'CG5', 'อาคารประตูตรวจสอบ 5'), +(7, 3, 'HWB', 'อาคารพักขยะอันตราย'), +(8, 3, 'SWB', 'อาคารพักขยะทั่วไป'), +(9, 3, 'SDB', 'สำนักงานท่าเรือบริการและห้องพักเจ้าหน้าที่'), +(10, 3, 'BRB', 'โรงนอนพนักงาน'), +(11, 3, 'COT', 'อาคารสื่อสารและหอสังเกตุการณ์'), +(12, 3, 'TEG', 'ด่านทางเข้าท่าเรือชายฝั่ง'), +(13, 3, 'CPO', 'อาคารสำนักงานปฏิบัติการท่าเรือชายฝั่ง'), +(14, 3, 'CWS', 'โรงซ่อมบำรุงส่วนท่าเรือชายฝั่ง'), +(15, 3, 'S66', 'อาคารสถานีไฟฟ้าย่อยขนาด 6.6 kV'), +(16, 3, 'COP', 'ท่าเรือชายฝั่ง'), +(17, 3, 'SRP', 'ทาเรือบริการ'), +(18, 3, 'ROD', 'ถนน'), +(19, 3, 'BLC', 'ชุมชนบ้านแหลม'), +(20, 3, 'RPA', 'ทางแยกต่างระดับ A'), +(21, 3, 'EG2', 'ทางเข้าประตู 2'), +(22, 3, 'EG4', 'ทางเข้าประตู 4'), +(23, 3, 'G5-RN2', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-2 และสะพานยกระดับ 12'), +(24, 3, 'G5-RN2-LT', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-2 LT. และสะพานยกระดับ 12.1'), +(25, 3, 'G5-OP12.2', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / สะพานยกระดับ 12.2'), +(26, 3, 'G5-OP4', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / สะพานยกระดับ 4'), +(27, 3, 'G5-RN1', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-1'), +(28, 3, 'G5-RN3', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-3'), +(29, 3, 'G5-RN3-LT1', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-3 LT.-1'), +(30, 3, 'G5-RN3-LT2', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-3 LT.-2'), +(31, 3, 'G5-RN3-RT', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-3 RT.'), +(32, 3, 'G5-OP5', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / สะพานยกระดับ 5'), +(33, 3, 'G5-RN4', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-4'), +(34, 3, 'G5-RN5', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-5 และสะพานยกระดับ 6'), +(35, 3, 'G5-RN6-LT', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-6 LT.'), +(36, 3, 'G5-RN6-RT', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-6 RT.'), +(37, 3, 'G5-RN7', 'ทางเข้าประตู 5 ท่าเทียบเรือ E และ F / ถนนสาย RN-7'), +(38, 3, 'BRG', 'สะพาน'), +(39, 3, 'STD', 'มาตรฐาน'), +(40, 3, 'FRF', 'ระบบประปาและดับเพลิง'), +(41, 3, 'WTK', 'ถังน้ำใส 4,200 ลบ.ม.'), +(42, 3, 'TWY', 'หอถังสูง 300 ลบ.ม.'), +(43, 3, 'WPB', 'อาคารสูบจ่ายน้ำประปา'), +(44, 3, 'DRN', 'ระบบระบายน้ำ'), +(45, 3, 'RTP-RIP', 'บ่อหน่วงน้ำ / บ่อหน่วงน้ำดินชุดปูหินเรียง'), +(46, 3, 'RTP-CC1', 'บ่อหน่วงน้ำ / บ่อหน่วงน้ำ ค.ส.ล. ขนาด 4.00x4.00x3.00 ม.'), +(47, 3, 'RTP-CC2', 'บ่อหน่วงน้ำ / บ่อหน่วงน้ำ ค.ส.ล. ขนาด 5.00×5.00x2.00 ม.'), +(48, 3, 'RTP-EE', 'บ่อหน่วงน้ำ / ระบบไฟฟ้า บ่อหน่วงน้ำ ค.ส.ล.'), +(49, 3, 'DPB', 'อาคารสถานีสูบระบายน้ำ'), +(50, 3, 'PCB', 'อาคารควบคุมสถานีสูบระบายน้ำ'), +(51, 3, 'MSB', 'อาคารสถานีไฟฟ้าย่อย ขนาด 115 kV.'), +(52, 3, 'SS6', 'อาคารสถานีไฟฟ้าย่อย ขนาด 22 kV. No.6'), +(53, 3, 'SS7', 'อาคารสถานีไฟฟ้าย่อย ขนาด 22 kV. No.7'), +(54, 3, 'SPB', 'อาคารควบคุมสถานีสูบน้ำทะเล'), +(55, 3, 'TSO', 'อาคารสํานักงานท่าเรือบริการและห้องพักเจ้าหน้าที่'), +(56, 3, 'TOC', 'สํานักงานปฏิบัติการท่าเรือชายฝั่ง'), +(57, 3, 'TWT', 'โรงซ่อมบำรุงสวนท่าเรือชายฝั่ง (ส่วนท้องน้ำ)'), +(58, 3, 'TWS', 'โรงซ่อมบำรุงส่วนท่าเรือชายฝั่ง (ส่วนซ่อมบำรุง)'), +(59, 3, 'EXT', 'ระบบสาธารณูปโภคภายนอก'), +(60, 3, 'COM', 'ระบบสื่อสาร'), +(61, 3, 'UGC', 'สายเคเบิ้ลใต้ดินแรงสูง'); + +INSERT INTO contract_drawing_sub_cats (project_id, sub_cat_code, sub_cat_name) +VALUES (3, 'LSC', 'งานภูมิสถาปัตยกรรม'), + (3, 'ARC', 'งานสถาปัตยกรรม'), + (3, 'INT', 'งานสถาปัตยกรรมภายใน'), + (3, 'STR', 'งานโครงสร้าง'), + (3, 'SAN', 'งานระบบสุขาภิบาล'), + (3, 'HVAC', 'งานระบบปรับอากาศ'), + (3, 'COM', 'งานระบบไฟฟ้าและสื่อสาร'), + (3, 'QST', 'งานโครงสร้างหน้าท่า'), + (3, 'YST', 'ลานกองตู้'), + (3, 'DRN', 'งานระบบระบายน้ำ'), + (3, 'EEW', 'งานระบบไฟฟ้า'), + (3, 'ROW', 'งานถนน'), + (3, 'SEC', 'รูปตัดโครงการ'), + (3, 'ALG', 'แนวทางและระดับ'), + (3, 'GDS', 'การออกแบบเรขาคณิต'), + (3, 'JNG', 'ขยายทางแยกระดับพื้น'), + (3, 'TRF', 'แสดงตำแหน่งการติดตั้งป้ายจราจร'), + (3, 'OBU', 'งานรื้อย้ายระบบสาธารณูปโภค'), + (3, 'GBS', 'การออกเรขาคณิต (ช่องทางเข้าออกสำหรับรถขนาดใหญ่)'), + (3, 'DOH', 'มาตรฐานงานทางกรมทางหลวง พ.ศ. 2558'), + (3, 'DOR', 'มาตรฐานงานทางกรมทางหลวงชนบท พ.ศ. 2558'), + (3, 'LDW', 'รายการประกอบ'), + (3, 'PLN', 'แปลนและรูปตัดตามยาวสะพานยกระดับ คอนกรีตอัดแรงรูปตัวไอ'), + (3, 'ELB', 'โครงสร้างสะพานยกระดับ คอนกรีตอัดแรงรูปตัวไอ'), + (3, 'ESB', 'โครงสร้างสะพานช่วงสั้น และ การปรับปรุงคลอง'), + (3, 'RST', 'งานโครงสร้างงานทาง'), + (3, 'DRR', 'งานระบบระบายน้ำพื้นที่ปรับปรุงและเชื่อมต่อโครงข่ายจราจรเดิม'), + (3, 'ELT', 'งานระบบไฟฟ้าส่องสว่าง'), + (3, 'ELR', 'งานระบบไฟฟ้าแสงสว่างถนน'), + (3, 'TWS', 'รายละเอียด TOLL ISLAND และ WIEGHT STATION'), + (3, 'WSD', 'รายละเอียด WIEGHTING SYSTEM AND IT SYSTEM'), + (3, 'CTY', 'ลานขนถ่ายสินค้าข้างทางรถไฟท่า F'), + (3, 'CW', 'งานระบบประปาและดับเพลิง'), + (3, 'IND', 'รายละเอียดการติดตั้ง'), + (3, 'MEC', 'งานเครื่องกล'), + (3, 'STD-WS', 'มาตรฐานการติดตั้งท่อประปา'), + (3, 'WWT', 'งานระบบบำบัดน้ำเสีย'), + (3, 'FNC', 'งานภูมิสถาปัตยกรรม (แนวรั้วโครงการ)'), + (3, 'STD', 'รายละเอียดและมาตราฐานการติดตั้ง'), + (3, 'CTV', 'งานระบบกล้องโทรทัศน์วงจรปิด'), + (3, 'UGC', 'แนวสายเคเบิ้ลใต้ดินแรงสูง'); + +INSERT INTO contract_drawing_subcat_cat_maps (id, project_id, cat_id, sub_cat_id) +VALUES + (2001, 3, 1, 1), +(2002, 3, 2, 1), +(2003, 3, 3, 1), +(2004, 3, 4, 1), +(2005, 3, 5, 2), +(2006, 3, 5, 3), +(2007, 3, 6, 2), +(2008, 3, 6, 3), +(2009, 3, 6, 4), +(2010, 3, 6, 5), +(2011, 3, 6, 6), +(2012, 3, 6, 7), +(2013, 3, 7, 2), +(2014, 3, 7, 3), +(2015, 3, 7, 4), +(2016, 3, 7, 5), +(2017, 3, 7, 6), +(2018, 3, 7, 7), +(2019, 3, 8, 2), +(2020, 3, 8, 3), +(2021, 3, 8, 4), +(2022, 3, 8, 5), +(2023, 3, 8, 6), +(2024, 3, 8, 7), +(2025, 3, 3, 2), +(2026, 3, 3, 3), +(2027, 3, 3, 4), +(2028, 3, 3, 5), +(2029, 3, 3, 6), +(2030, 3, 3, 7), +(2031, 3, 9, 2), +(2032, 3, 9, 3), +(2033, 3, 9, 4), +(2034, 3, 9, 5), +(2035, 3, 9, 6), +(2036, 3, 9, 7), +(2037, 3, 10, 2), +(2038, 3, 10, 3), +(2039, 3, 10, 4), +(2040, 3, 10, 5), +(2041, 3, 10, 6), +(2042, 3, 10, 7), +(2043, 3, 11, 2), +(2044, 3, 11, 3), +(2045, 3, 11, 4), +(2046, 3, 11, 5), +(2047, 3, 11, 6), +(2048, 3, 11, 7), +(2049, 3, 12, 2), +(2050, 3, 12, 3), +(2051, 3, 12, 4), +(2052, 3, 12, 5), +(2053, 3, 12, 6), +(2054, 3, 12, 7), +(2055, 3, 13, 2), +(2056, 3, 13, 3), +(2057, 3, 13, 4), +(2058, 3, 13, 5), +(2059, 3, 13, 6), +(2060, 3, 13, 7), +(2061, 3, 14, 2), +(2062, 3, 14, 3), +(2063, 3, 14, 4), +(2064, 3, 14, 5), +(2065, 3, 14, 6), +(2066, 3, 14, 7), +(2067, 3, 15, 2), +(2068, 3, 15, 4), +(2069, 3, 15, 5), +(2070, 3, 15, 6), +(2071, 3, 15, 7), +(2072, 3, 16, 8), +(2073, 3, 16, 9), +(2074, 3, 17, 8), +(2075, 3, 16, 10), +(2076, 3, 16, 11), +(2077, 3, 18, 12), +(2078, 3, 18, 13), +(2079, 3, 18, 14), +(2080, 3, 19, 15), +(2081, 3, 20, 15), +(2082, 3, 21, 15), +(2083, 3, 22, 15), +(2084, 3, 23, 15), +(2085, 3, 24, 15), +(2086, 3, 25, 15), +(2087, 3, 26, 15), +(2088, 3, 27, 15), +(2089, 3, 28, 15), +(2090, 3, 29, 15), +(2091, 3, 30, 15), +(2092, 3, 31, 15), +(2093, 3, 32, 15), +(2094, 3, 33, 15), +(2095, 3, 34, 15), +(2096, 3, 35, 15), +(2097, 3, 36, 15), +(2098, 3, 37, 15), +(2099, 3, 18, 16), +(2100, 3, 18, 17), +(2101, 3, 18, 18), +(2102, 3, 18, 19), +(2103, 3, 18, 20), +(2104, 3, 18, 21), +(2105, 3, 38, 22), +(2106, 3, 38, 23), +(2107, 3, 38, 24), +(2108, 3, 38, 25), +(2109, 3, 39, 26), +(2110, 3, 18, 27), +(2111, 3, 18, 28), +(2112, 3, 18, 29), +(2113, 3, 18, 30), +(2114, 3, 18, 31), +(2115, 3, 18, 32), +(2116, 3, 40, 33), +(2117, 3, 41, 33), +(2118, 3, 42, 33), +(2119, 3, 43, 2), +(2120, 3, 43, 34), +(2121, 3, 43, 4), +(2122, 3, 43, 5), +(2123, 3, 43, 35), +(2124, 3, 43, 11), +(2125, 3, 40, 36), +(2126, 3, 5, 10), +(2127, 3, 44, 10), +(2128, 3, 45, 10), +(2129, 3, 46, 10), +(2130, 3, 47, 10), +(2131, 3, 47, 11), +(2132, 3, 48, 11), +(2133, 3, 49, 2), +(2134, 3, 49, 4), +(2135, 3, 49, 11), +(2136, 3, 50, 4), +(2137, 3, 50, 2), +(2138, 3, 50, 11), +(2139, 3, 50, 6), +(2140, 3, 50, 5), +(2141, 3, 5, 37), +(2142, 3, 6, 37), +(2143, 3, 51, 37), +(2144, 3, 52, 37), +(2145, 3, 53, 37), +(2146, 3, 8, 37), +(2147, 3, 3, 37), +(2148, 3, 43, 37), +(2149, 3, 50, 37), +(2150, 3, 54, 37), +(2151, 3, 55, 37), +(2152, 3, 10, 37), +(2153, 3, 56, 37), +(2154, 3, 57, 37), +(2155, 3, 58, 37), +(2156, 3, 39, 37), +(2157, 3, 59, 38), +(2158, 3, 59, 4), +(2159, 3, 59, 5), +(2160, 3, 59, 39), +(2161, 3, 51, 2), +(2162, 3, 51, 3), +(2163, 3, 51, 4), +(2164, 3, 51, 5), +(2165, 3, 51, 6), +(2166, 3, 51, 7), +(2167, 3, 52, 2), +(2168, 3, 52, 3), +(2169, 3, 52, 4), +(2170, 3, 52, 5), +(2171, 3, 52, 6), +(2172, 3, 52, 7), +(2173, 3, 53, 2), +(2174, 3, 53, 3), +(2175, 3, 53, 4), +(2176, 3, 53, 5), +(2177, 3, 53, 6), +(2178, 3, 53, 7), +(2179, 3, 60, 40), +(2180, 3, 61, 41); + +INSERT INTO contract_drawings (project_id, condwg_no, title, map_cat_id, volume_id, volume_page) +VALUES + (3, 'LP3-GN-LA-001', 'สารบัญ ,รายละเอียดสัญลักษณ์ประกอบและคำย่อ', 2001, 1, 1), + (3, 'LP3-GN-LA-002', 'รายการประกอบวัสดุพืชพรรณ', 2001, 1, 2), + (3, 'LP3-GN-LA-003', 'ข้อกำหนดการทำเนินดินผสมปลูก', 2001, 1, 3), + (3, 'LP3-GN-LA-004', 'ข้อกำหนดการปลูกต้นไม้ 1', 2001, 1, 4), + (3, 'LP3-GN-LA-005', 'ข้อกำหนดการปลูกต้นไม้ 2', 2001, 1, 5), + (3, 'LP3-GN-LA-006', 'ตารางสรุปต้นไม้', 2001, 1, 6), + (3, 'LP3-L1-LA-100', 'ผังบริเวณรวมงานภูมิสถาปัตยกรรม', 2002, 1, 7), + (3, 'LP3-L1-LA-101', 'ผังบริเวณงานภูมิสถาปัตยกรรม ส่วนที่ 1', 2002, 1, 8), + (3, 'LP3-L1-LA-102', 'ผังระยะ', 2002, 1, 9), + (3, 'LP3-L1-LA-103', 'ผังปรับระดับเนินดิน ', 2002, 1, 10), + (3, 'LP3-L1-LA-104', 'ผังระดับและวัสดุ', 2002, 1, 11), + (3, 'LP3-L1-LA-105', 'ผังทิศทางการระบายน้ำ', 2002, 1, 12), + (3, 'LP3-L1-LA-106', 'ผังไม้ยืนต้น', 2002, 1, 13), + (3, 'LP3-L1-LA-107', 'ผังไม้พุ่มและไม้คลุมดิน', 2002, 1, 14), + (3, 'LP3-L1-LA-108', 'ผังตำแหน่งไฟฟ้าส่องสว่าง', 2002, 1, 15), + (3, 'LP3-L1-LA-109', 'ผังตำแหน่งก๊อกสนาม', 2002, 1, 16), + (3, 'LP3-L1-LA-301', 'รูปตัด A และ รูปตัด B ', 2002, 1, 17), + (3, 'LP3-L1-LA-302', 'รูปตัด A และ รูปตัด B ', 2002, 1, 18), + (3, 'LP3-L1-LA-303', 'รูปตัด A และ รูปตัด B ', 2002, 1, 19), + (3, 'LP3-L1-LA-501', 'ขยายมาตรฐาน พื้นทางเดิน , ทางลาด', 2002, 1, 20), + (3, 'LP3-L1-LA-502', 'ขยายมาตรฐาน กระบะต้นไม้', 2002, 1, 21), + (3, 'LP3-L2-LA-101', 'ผังบริเวณงานภูมิสถาปัตยกรรม ส่วนที่ 2', 2003, 1, 22), + (3, 'LP3-L2-LA-102', 'ผังระยะ', 2003, 1, 23), + (3, 'LP3-L2-LA-103', 'ผังปรับระดับเนินดิน ', 2003, 1, 24), + (3, 'LP3-L2-LA-104', 'ผังระดับและวัสดุ', 2003, 1, 25), + (3, 'LP3-L2-LA-105', 'ผังทิศทางการระบายน้ำ', 2003, 1, 26), + (3, 'LP3-L2-LA-106', 'ผังไม้ยืนต้น', 2003, 1, 27), + (3, 'LP3-L2-LA-107', 'ผังไม้พุ่มและไม้คลุมดิน', 2003, 1, 28), + (3, 'LP3-L2-LA-108', 'ผังตำแหน่งไฟฟ้าส่องสว่าง', 2003, 1, 29), + (3, 'LP3-L2-LA-109', 'ผังตำแหน่งก๊อกสนาม', 2003, 1, 30), + (3, 'LP3-L2-LA-301', 'รูปตัด A, B และ C', 2003, 1, 31), + (3, 'LP3-L2-LA-302', 'รูปตัด D, E และ F', 2003, 1, 32), + (3, 'LP3-L2-LA-303', 'รูปตัด G, H และ I', 2003, 1, 33), + (3, 'LP3-L2-LA-401', 'ขยายลานพักผ่อน', 2003, 1, 34), + (3, 'LP3-L2-LA-501', 'ขยายมาตรฐาน พื้นทางเดิน , ทางลาด', 2003, 1, 35), + (3, 'LP3-L3-LA-101', 'ผังบริเวณงานภูมิสถาปัตยกรรม ส่วนที่ 3', 2003, 1, 36), + (3, 'LP3-L3-LA-102', 'ผังระยะ,ระดับและวัสดุ', 2003, 1, 37), + (3, 'LP3-L3-LA-103', 'ผังไม้ยืนต้น,ไม้พุ่มและไม้คลุมดิน', 2003, 1, 38), + (3, 'LP3-L3-LA-501', 'ขยายมาตรฐาน พื้นทางเดิน , ทางลาด', 2003, 1, 39), + (3, 'LP3-LA-GN-001', 'สารบัญ ,รายละเอียดสัญลักษณ์ประกอบและคำย่อ', 2004, 1, 1), + (3, 'LP3-L1-WS-101', 'ผังท่อจ่ายน้่ำประปา และตำแหน่งก๊อกสนาม', 2004, 1, 2), + (3, 'LP3-L2-WS-101', 'ผังท่อจ่ายน้่ำประปา และตำแหน่งก๊อกสนาม', 2004, 1, 3), + (3, 'LP3-L2-TP-101', 'รายละเอียดการติดตั้ง งานจ่ายน้ำประปา งานภูมิสถาปัตย์ แผ่นที่ 1/2', 2004, 1, 4), + (3, 'LP3-LA-TP-102', 'รายละเอียดการติดตั้ง งานจ่ายน้ำประปา งานภูมิสถาปัตย์ แผ่นที่ 2/2', 2004, 1, 5), + (3, 'LP3-GN-AR-001', 'สารบัญ', 2005, 1, 1), + (3, 'LP3-GN-AR-002', 'สัญลักษณ์ประกอบ , ตารางวัสดุประกอบ', 2005, 1, 2), + (3, 'LP3-GN-AR-003', 'ผังแม่บทท่าเรือขั้นที่ 3', 2005, 1, 3), + (3, 'LP3-GN-AR-601', 'รายการอุปกรณ์ประตู-หน้าต่าง 1/3', 2005, 1, 4), + (3, 'LP3-GN-AR-602', 'รายการอุปกรณ์ประตู-หน้าต่าง 2/3', 2005, 1, 5), + (3, 'LP3-GN-AR-603', 'รายการอุปกรณ์ประตู-หน้าต่าง 3/3', 2005, 1, 6), + (3, 'LP3-GN-AR-604', 'ขยายการติดตั้ง ประตู-หน้าต่าง 1/3', 2005, 1, 7), + (3, 'LP3-GN-AR-605', 'ขยายการติดตั้ง ประตู-หน้าต่าง 2/3', 2005, 1, 8), + (3, 'LP3-GN-AR-606', 'ขยายการติดตั้ง ประตู-หน้าต่าง 3/3', 2005, 1, 9), + (3, 'LP3-GN-ID-501', 'ตารางข้อกำหนดการใช้ครุภัณฑ์', 2006, 1, 10), + (3, 'LP3-GN-ID-502', 'ตารางครุภัณฑ์ 1/3', 2006, 1, 11), + (3, 'LP3-GN-ID-503', 'ตารางครุภัณฑ์ 2/3', 2006, 1, 12), + (3, 'LP3-GN-ID-504', 'ตารางครุภัณฑ์ 3/3', 2006, 1, 13), + (3, 'LP3-GN-ID-601', 'ขยายห้องเตรียมอาหาร B1,B2,B3,B4,B5,B6 ', 2006, 1, 14), + (3, 'LP3-GN-ID-602', 'ขยายเค้าเตอร์ประชาสัมพันธ์ CO1', 2006, 1, 15), + (3, 'LP3-GN-ID-701', 'ตารางรายการและสัญลักษณ์ประกอบงานป้าย', 2006, 1, 16), + (3, 'LP3-GN-ID-702', 'ขยายป้าย 1/3', 2006, 1, 17), + (3, 'LP3-GN-ID-703', 'ขยายป้าย 2/3', 2006, 1, 18), + (3, 'LP3-GN-ID-704', 'ขยายป้าย 3/3', 2006, 1, 19), + (3, 'LP3-GN-ID-705', 'ตารางแสดงรายชื่อห้อง', 2006, 1, 20), + (3, 'LP3-G5-AR-012', 'สารบัญ', 2007, 1, 1), + (3, 'LP3-G5-AR-003', 'สัญลักษณ์ประกอบ , ตารางวัสดุประกอบ', 2007, 1, 2), + (3, 'LP3-G5-AR-004', 'ผังแม่บทท่าเรือขั้นที่ 3', 2007, 1, 3), + (3, 'LP3-G5-AR-111', 'ผังบริเวณอาคาร', 2007, 1, 4), + (3, 'LP3-G5-AR-211', 'แปลนพื้นชั้นที่ 1 , แปลนหลังคา (ส่วนสำนักงาน)', 2007, 1, 5), + (3, 'LP3-G5-AR-311', 'รูปด้าน 1 , 2 , 3 , 4 (ส่วนสำนักงาน)', 2007, 1, 6), + (3, 'LP3-G5-AR-121', 'รูปตัด A ,B (ส่วนสำนักงาน)', 2007, 1, 7), + (3, 'LP3-G5-AR-122', 'แปลนพื้นชั้นที่ 1 (ส่วนด่านตรวจสอบ ขาเข้า)', 2007, 1, 8), + (3, 'LP3-G5-AR-221', 'แปลนหลังคา (ส่วนด่านตรวจสอบ ขาเข้า)', 2007, 1, 9), + (3, 'LP3-G5-AR-222', 'รูปด้าน 1 , 2 (ส่วนด่านตรวจสอบ ขาเข้า)', 2007, 1, 10), + (3, 'LP3-G5-AR-321', 'รูปด้าน 3 , 4 (ส่วนด่านตรวจสอบ ขาเข้า)', 2007, 1, 11), + (3, 'LP3-G5-AR-322', 'รูปตัด A ,B (ส่วนด่านตรวจสอบ ขาเข้า)', 2007, 1, 12), + (3, 'LP3-G5-AR-131', 'แปลนพื้นชั้นที่ 1 (ส่วนด่านตรวจสอบ ขาออก)', 2007, 1, 13), + (3, 'LP3-G5-AR-132', 'แปลนหลังคา (ส่วนด่านตรวจสอบ ขาออก)', 2007, 1, 14), + (3, 'LP3-G5-AR-231', 'รูปด้าน 1 , 2 (ส่วนด่านตรวจสอบ ขาออก)', 2007, 1, 15), + (3, 'LP3-G5-AR-232', 'รูปด้าน 3 , 4 (ส่วนด่านตรวจสอบ ขาออก)', 2007, 1, 16), + (3, 'LP3-G5-AR-331', 'รูปตัด A ,B (ส่วนด่านตรวจสอบ ขาออก)', 2007, 1, 17), + (3, 'LP3-G5-AR-501', 'ขยายห้องน้ำ TL-01,TL-02 ,TL-03,TL-04', 2007, 1, 18), + (3, 'LP3-G5-AR-502', 'รายการเครื่องสุขภัณฑ์', 2007, 1, 19), + (3, 'LP3-G5-AR-601', 'ขยายประตู', 2007, 1, 20), + (3, 'LP3-G5-AR-602', 'ขยายหน้าต่าง,ตารางรายการวัสดุประตู', 2007, 1, 21), + (3, 'LP3-G5-AR-701', 'ขยายตู้ควบคุมการ เข้า-ออก BC-01', 2007, 1, 22), + (3, 'LP3-G5-AR-702', 'ขยายประตูเหล็กบานเลื่อน SD3 ', 2007, 1, 23), + (3, 'LP3-G5-AR-703', 'แปลนพื้นทางเดินมีหลังคาหลุม', 2007, 1, 24), + (3, 'LP3-G5-AR-704', 'ขยายพื้นทางเดินมีหลังคาหลุม', 2007, 1, 25), + (3, 'LP3-G5-AR-801', 'แปลนฝ้า-เพดาน', 2007, 1, 26), + (3, 'LP3-G5-ID-001', 'สารบัญ', 2008, 1, 27), + (3, 'LP3-G5-ID-111', 'แปลนแสดงตำแหน่งป้าย ชั้น 1 (111)', 2008, 1, 28), + (3, 'LP3-G5-ID-121', 'แปลนแสดงตำแหน่งป้าย สวนด่านตรวจสอบ ขาเข้า (121)', 2008, 1, 29), + (3, 'LP3-G5-ID-131', 'แบลนแสดงตำแหน่งป้าย ส่วนด่านตรวจสอบ ขาออก (131)', 2008, 1, 30), + (3, 'LP3-G5-ID-112', 'แปลนแสดงตำแหน่งป้าย ชั้น 1 (111)', 2008, 1, 31), + (3, 'LP3-G5-ID-122', 'แปลนแสดงตำแหน่งป้าย สวนด่านตรวจสอบ ขาเข้า (121)', 2008, 1, 32), + (3, 'LP3-G5-ID-132', 'แบลนแสดงตำแหน่งป้าย ส่วนด่านตรวจสอบ ขาออก (131)', 2008, 1, 33), + (3, 'LP3-G5-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2009, 1, 34), + (3, 'LP3-G5-ST-002', 'ข้อกำหนดทั่วไป', 2009, 1, 35), + (3, 'LP3-G5-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2009, 1, 36), + (3, 'LP3-G5-ST-011', 'ส่วนสำนักงาน ผังแสดงน้ำหนักบรรทุกจร ชั้น 1', 2009, 1, 37), + (3, 'LP3-G5-ST-101', 'ส่วนสำนักงาน ผังฐานราก และ ตอม่อ, ผังโครงสร้างชั้น 1', 2009, 1, 38), + (3, 'LP3-G5-ST-102', 'ส่วนสำนักงาน ผังโครงสร้างชั้นอะเส, ชั้นหลังคา', 2009, 1, 39), + (3, 'LP3-G5-ST-111', 'ส่วนด่านตรวจสอบ ขาเข้า ผังฐานราก และ ตอมอ', 2009, 1, 40), + (3, 'LP3-G5-ST-112', 'ส่วนด่านตรวจสอบ ขาเข้า ผังโครงสร้างชั้น 1', 2009, 1, 41), + (3, 'LP3-G5-ST-113', 'ส่วนด่านตรวจสอบ ขาเข้า ผังโครงสร้างชั้นหลังคา', 2009, 1, 42), + (3, 'LP3-G5-ST-121', ' ส่วนดานตรวจสอบ ขาออก ผังฐานราก และ ตอม่อ', 2009, 1, 43), + (3, 'LP3-G5-ST-122', 'ส่วนด่านตรวจสอบ ขาออก ผังโครงสร้างชั้น 1', 2009, 1, 44), + (3, 'LP3-G5-ST-123', 'สวนด่านตรวจสอบ ขาออก ผังโครงสร้างชั้นหลังคา', 2009, 1, 45), + (3, 'LP3-G5-ST-131', 'รูปตัด A', 2009, 1, 46), + (3, 'LP3-G5-ST-141', 'ขยายตู้ตรวจสอบ, แผงกันชน คสล. TYPE-1,2,3', 2009, 1, 47), + (3, 'LP3-G5-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2009, 1, 48), + (3, 'LP3-G5-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2009, 1, 49), + (3, 'LP3-G5-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2009, 1, 50), + (3, 'LP3-G5-ST-301', 'ผังพื้นทางเดินเชื่อมด่านตรวจสอบ ขาเข้า-ขาออก', 2009, 1, 51), + (3, 'LP3-G5-ST-302', 'ขยายทางเดินเชื่อมด่านตรวจสอบ ขาเข้า-ขาออก', 2009, 1, 52), + (3, 'LP3-G5-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2010, 1, 53), + (3, 'LP3-G5-SN-002', 'ตารางแสดงรายการประกอบ', 2010, 1, 54), + (3, 'LP3-G5-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2010, 1, 55), + (3, 'LP3-G5-SN-201', 'ผังบริเวณระบบสุขาภิบาล', 2010, 1, 56), + (3, 'LP3-G5-SN-202', 'แปลนระบบระบายน้ำ – ส่วนสำนักงาน', 2010, 1, 57), + (3, 'LP3-G5-SN-203', 'แปลนระบบสุขาภิบาล - ส่วนสำนักงาน', 2010, 1, 58), + (3, 'LP3-G5-SN-204', 'แปลนระบบสุขาภิบาล - แปลนพื้นชั้นที่ 1 ส่วนด่านตรวจสอบ ขาเข้', 2010, 1, 59), + (3, 'LP3-G5-SN-205', 'แปลนระบบสุขาภิบาล - แปลนหลังคา ส่วนด่านตรวจสอบ ขาเข้า', 2010, 1, 60), + (3, 'LP3-G5-SN-206', 'แปลนระบบสุขาภิบาล - แปลนพื้นชั้นที่ 1 ส่วนด่านตรวจสอบ ขาออ', 2010, 1, 61), + (3, 'LP3-G5-SN-207', 'แปลนระบบสุขาภิบาล - แปลนหลังคา ส่วนด่านตรวจสอบ ขาออก', 2010, 1, 62), + (3, 'LP3-G5-SN-301', 'ขยายห้องน้ำ 1', 2010, 1, 63), + (3, 'LP3-G5-SN-302', 'ขยายห้องน้ำ 2', 2010, 1, 64), + (3, 'LP3-G5-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2010, 1, 65), + (3, 'LP3-G5-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2010, 1, 66), + (3, 'LP3-G5-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2010, 1, 67), + (3, 'LP3-G5-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2011, 1, 68), + (3, 'LP3-G5-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2011, 1, 69), + (3, 'LP3-G5-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2011, 1, 70), + (3, 'LP3-G5-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1 (ส่วนสำนักงาน)', 2011, 1, 71), + (3, 'LP3-G5-HV-202', 'แปลนระบบปรับอากาศ ชั้น 1 (ส่วนด่านตรวจสอบ ขาเข้า)', 2011, 1, 72), + (3, 'LP3-G5-HV-203', 'แปลนระบบระบายอากาศ ชั้น 1 (ส่วนดานตรวจสอบ ขาเข้า)', 2011, 1, 73), + (3, 'LP3-G5-HV-204', 'แปลนระบบปรับอากาศ ชั้น 1 (ส่วนด่านตรวจสอบ ขาออก)', 2011, 1, 74), + (3, 'LP3-G5-HV-205', 'แปลนระบบระบายอากาศ ชั้น 1 (ส่วนด่านตรวจสอบ ขาออก)', 2011, 1, 75), + (3, 'LP3-G5-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2011, 1, 76), + (3, 'LP3-G5-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2011, 1, 77), + (3, 'LP3-G5-EE-001', 'สารบัญ', 2012, 1, 78), + (3, 'LP3-G5-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2012, 1, 79), + (3, 'LP3-G5-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2012, 1, 80), + (3, 'LP3-G5-EE-004', 'สัญลักษณ์ตารางโคม', 2012, 1, 81), + (3, 'LP3-G5-EE-101', 'SINGLE LINE DIAGRAM แผ่นที่ 1/2', 2012, 1, 82), + (3, 'LP3-G5-EE-102', 'SINGLE LINE DIAGRAM แผ่นที่ 2/2', 2012, 1, 83), + (3, 'LP3-G5-EE-103', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางใหลดไฟฟ้า แผ่นที่ 1/3', 2012, 1, 84), + (3, 'LP3-G5-EE-104', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางใหลดไฟฟ้า แผ่นที่ 2/3', 2012, 1, 85), + (3, 'LP3-G5-EE-105', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า แผ่นที่ 3/3', 2012, 1, 86), + (3, 'LP3-G5-EE-106', 'แปลนอุปกรณ์โคมไฟถนนบริเวณอาคาร 65 แผ่นที่ 1/2', 2012, 1, 87), + (3, 'LP3-G5-EE-107', 'แปลนอุปกรณ์โคมไฟถนนบริเวณอาคาร 65 แผ่นที่ 2/2', 2012, 1, 88), + (3, 'LP3-G5-EE-201', 'แปลน์โคมไฟ (สวนสำนักงาน)', 2012, 1, 89), + (3, 'LP3-G5-EE-202', 'แปลน์โคมไฟ (สวนดานตรวจสอบขาเข้า)', 2012, 1, 90), + (3, 'LP3-G5-EE-203', 'แปลน์โคมไฟ (สวนด่านตรวจสอบขาออก)', 2012, 1, 91), + (3, 'LP3-G5-EE-204', 'แปลน์โคมไฟทางเดิน', 2012, 1, 92), + (3, 'LP3-G5-EE-301', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์ (ส่วนสำนักงาน)', 2012, 1, 93), + (3, 'LP3-G5-EE-302', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์ (ส่วนด่านตรวจสอบขาเข้า)', 2012, 1, 94), + (3, 'LP3-G5-EE-303', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์ (สวนด่านตรวจสอบขาออก)', 2012, 1, 95), + (3, 'LP3-G5-EE-401', 'แปลนระบบป้องกันฟ้าผาและกราวด์ (ส่วนสำนักงาน)', 2012, 1, 96), + (3, 'LP3-G5-EE-402', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ (ส่วนด่านตรวจสอบขาเข้า)', 2012, 1, 97), + (3, 'LP3-G5-EE-403', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ (ส่วนด่านตรวจสอบขาออก)', 2012, 1, 98), + (3, 'LP3-G5-EE-501', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้และเสียงประกาศสาธารณะ (ส่วนสำนักงาน)', 2012, 1, 99), + (3, 'LP3-G5-EE-502', 'แปลนอุปกรณ์เสียงประกาศสาธารณะ (ส่วนด่านตรวจสอบขาเข้า)', 2012, 1, 100), + (3, 'LP3-G5-EE-503', 'แปลนอุปกรณ์เสียงประกาศสาธารณะ (ส่วนด่านตรวจสอบขาออก)', 2012, 1, 101), + (3, 'LP3-G5-EE-601', 'แปลนกล้องโทรทัศน์วงจรปิด (ส่วนสำนักงาน)', 2012, 1, 102), + (3, 'LP3-G5-EE-602', 'แปลนกล้องโทรทัศน์วงจรปิด (ส่วนด่านตรวจสอบขาเข้า)', 2012, 1, 103), + (3, 'LP3-G5-EE-603', 'แปลนกล้องโทรทัศน์วงจรปิด (ส่วนด่านตรวจสอบขาออก)', 2012, 1, 104), + (3, 'LP3-G5-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1/9', 2012, 1, 105), + (3, 'LP3-G5-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2/9', 2012, 1, 106), + (3, 'LP3-G5-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3/9', 2012, 1, 107), + (3, 'LP3-G5-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4/9', 2012, 1, 108), + (3, 'LP3-G5-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5/9', 2012, 1, 109), + (3, 'LP3-G5-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6/9', 2012, 1, 110), + (3, 'LP3-G5-EE-707', 'รายละเอียดการติดตั้งแผ่นที่ 7/9', 2012, 1, 111), + (3, 'LP3-G5-EE-708', 'รายละเอียดการติดตั้งแผ่นที่ 8/9', 2012, 1, 112), + (3, 'LP3-G5-EE-709', 'รายละเอียดการติดตั้งแผ่นที่ 9/9', 2012, 1, 113), + (3, 'LP3-HW-AR-001', 'สารบัญ', 2013, 1, 1), + (3, 'LP3-HW-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2013, 1, 2), + (3, 'LP3-HW-AR-003', 'ผังแม่บทท่าเรือชั้นที่ 3', 2013, 1, 3), + (3, 'LP3-HW-AR-004', 'ผังบริเวณอาคาร', 2013, 1, 4), + (3, 'LP3-HW-AR-101', 'แปลนพื้นชั้นลาง, แปลนหลังคา, แปลนฝ้าเพดาน, ขยาย DE-1', 2013, 1, 5), + (3, 'LP3-HW-AR-201', 'รูปด้าน 1. รูปด้าน 2. รูปด้าน 3. รูปด้าน 4', 2013, 1, 6), + (3, 'LP3-HW-AR-301', 'รูปตัด A, รูปตัด B, ขยายทางลาด', 2013, 1, 7), + (3, 'LP3-HW-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2013, 1, 8), + (3, 'LP3-HW-AR-701', 'ขยายประตูรั้วโครงการ ขยายขอบคันหิน', 2013, 1, 9), + (3, 'LP3-HW-ID-001', 'สารบัญ', 2014, 1, 10), + (3, 'LP3-HW-ID-101', 'แปลนแสดงตำแหน่งป้าย', 2014, 1, 11), + (3, 'LP3-HW-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2015, 1, 12), + (3, 'LP3-HW-ST-002', 'ข้อกำหนดทั่วไป', 2015, 1, 13), + (3, 'LP3-HW-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2015, 1, 14), + (3, 'LP3-HW-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2015, 1, 15), + (3, 'LP3-HW-ST-101', 'ผังโครงสร้างอาคาร', 2015, 1, 16), + (3, 'LP3-HW-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2015, 1, 17), + (3, 'LP3-HW-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2015, 1, 18), + (3, 'LP3-HW-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2016, 1, 19), + (3, 'LP3-HW-SN-002', 'ตารางแสดงรายการประกอบ', 2016, 1, 20), + (3, 'LP3-HW-SN-201', 'ไดอะแกรมและแปลนระบบสุขาภิบาล ชั้นที่ 1 และชั้นหลังคา', 2016, 1, 21), + (3, 'LP3-HW-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป', 2016, 1, 22), + (3, 'LP3-HW-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2017, 1, 23), + (3, 'LP3-HW-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2017, 1, 24), + (3, 'LP3-HW-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2017, 1, 25), + (3, 'LP3-HW-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1', 2017, 1, 26), + (3, 'LP3-HW-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2017, 1, 27), + (3, 'LP3-HW-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2017, 1, 28), + (3, 'LP3-HW-EE-001', 'สารบัญ', 2018, 1, 29), + (3, 'LP3-HW-EE-002', 'สัญลักษณ์ระบบไฟฟ้า', 2018, 1, 30), + (3, 'LP3-HW-EE-003', 'สัญลักษณ์ระบบสื่อสาร', 2018, 1, 31), + (3, 'LP3-HW-EE-004', 'สัญลักษณ์ตารางโคม', 2018, 1, 32), + (3, 'LP3-HW-EE-101', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า', 2018, 1, 33), + (3, 'LP3-HW-EE-201', 'แปลน์โคมไฟ และ แปลนเต้ารับไฟฟ้า', 2018, 1, 34), + (3, 'LP3-HW-EE-301', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ และ แปลนแจ้งเหตุเพลิงไหม้', 2018, 1, 35), + (3, 'LP3-HW-EE-401', 'แปลนกล้องโทรทัศน์วงจรปิด', 2018, 1, 36), + (3, 'LP3-HW-EE-501', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2018, 1, 37), + (3, 'LP3-HW-EE-502', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2018, 1, 38), + (3, 'LP3-HW-EE-503', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2018, 1, 39), + (3, 'LP3-HW-EE-504', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2018, 1, 40), + (3, 'LP3-HW-EE-505', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2018, 1, 41), + (3, 'LP3-HW-EE-506', 'รายละเอียดการติดตั้งแผ่นที่ 6', 2018, 1, 42), + (3, 'LP3-SW-AR-001', 'สารบัญ', 2019, 1, 1), + (3, 'LP3-SW-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2019, 1, 2), + (3, 'LP3-SW-AR-003', 'ผังแม่บทท่าเรือขั้นที่ 3', 2019, 1, 3), + (3, 'LP3-SW-AR-004', 'ผังบริเวณอาคาร', 2019, 1, 4), + (3, 'LP3-SW-AR-101', 'แปลนพื้นชั้นลาง, แปลนหลังคา, แปลนฝ้าเพดาน,ขยาย DE-1,DE-2', 2019, 1, 5), + (3, 'LP3-SW-AR-201', 'รูปด้าน 1, รูปด้าน 2, รูปด้าน 3, รูปด้าน 4, รูปตัด A, รูปตัด 8', 2019, 1, 6), + (3, 'LP3-SW-AR-501', 'รายการเครื่องสุขภัณฑ์', 2019, 1, 7), + (3, 'LP3-SW-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2019, 1, 8), + (3, 'LP3-SW-ID-001', 'สารบัญ', 2020, 1, 9), + (3, 'LP3-SW-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1', 2020, 1, 10), + (3, 'LP3-SW-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2020, 1, 11), + (3, 'LP3-SW-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2021, 1, 12), + (3, 'LP3-SW-ST-002', 'ข้อกำหนดทั่วไป', 2021, 1, 13), + (3, 'LP3-SW-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2021, 1, 14), + (3, 'LP3-SW-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2021, 1, 15), + (3, 'LP3-SW-ST-101', 'ผังโครงสร้างอาคาร', 2021, 1, 16), + (3, 'LP3-SW-ST-111', 'รูปตัด A', 2021, 1, 17), + (3, 'LP3-SW-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2021, 1, 18), + (3, 'LP3-SW-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผนที่ 2', 2021, 1, 19), + (3, 'LP3-SW-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2021, 1, 20), + (3, 'LP3-SW-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2022, 1, 21), + (3, 'LP3-SW-SN-002', 'ตารางแสดงรายการประกอบ', 2022, 1, 22), + (3, 'LP3-SW-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2022, 1, 23), + (3, 'LP3-SW-SN-201', 'แปลนระบบสุขาภิบาลชิ้นที่ 1 และชั้นหลังดา', 2022, 1, 24), + (3, 'LP3-SW-SN-301', 'ขยายห้องน้ำ', 2022, 1, 25), + (3, 'LP3-SW-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2022, 1, 26), + (3, 'LP3-SW-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2022, 1, 27), + (3, 'LP3-SW-SN-403', 'อยายมาตรฐานการติดตั้งทั่วไป 3', 2022, 1, 28), + (3, 'LP3-SW-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2023, 1, 29), + (3, 'LP3-SW-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2023, 1, 30), + (3, 'LP3-SW-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2023, 1, 31), + (3, 'LP3-SW-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1', 2023, 1, 32), + (3, 'LP3-SW-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2023, 1, 33), + (3, 'LP3-SW-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2023, 1, 34), + (3, 'LP3-SW-EE-001', 'สารบัญ', 2024, 1, 35), + (3, 'LP3-SW-EE-002', 'สัญลักษณ์ระบบไฟฟ้า', 2024, 1, 36), + (3, 'LP3-SW-EE-003', 'สัญลักษณ์ระบบสื่อสาร', 2024, 1, 37), + (3, 'LP3-SW-EE-004', 'สัญลักษณ์ตารางโคม', 2024, 1, 38), + (3, 'LP3-SW-EE-101', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางเหลดไฟฟ้า', 2024, 1, 39), + (3, 'LP3-SW-EE-201', 'แปลนโคมไฟ', 2024, 1, 40), + (3, 'LP3-SW-EE-301', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์', 2024, 1, 41), + (3, 'LP3-SW-EE-401', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์', 2024, 1, 42), + (3, 'LP3-SW-EE-501', 'แปลนแจ้งเหตุเพลิงไหม้', 2024, 1, 43), + (3, 'LP3-SW-EE-601', 'แปลนกล้องโทรทัศน์วงจรปิด', 2024, 1, 44), + (3, 'LP3-SW-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2024, 1, 45), + (3, 'LP3-SW-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2024, 1, 46), + (3, 'LP3-SW-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2024, 1, 47), + (3, 'LP3-SW-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2024, 1, 48), + (3, 'LP3-SW-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2024, 1, 49), + (3, 'LP3-SW-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6', 2024, 1, 50), + (3, 'LP3-MD-AR-001', 'สารบัญ', 2025, 2, 1), + (3, 'LP3-MD-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2025, 2, 2), + (3, 'LP3-MD-AR-003', 'ผังแม่บททาเรือชั้นที่ 3', 2025, 2, 3), + (3, 'LP3-MD-AR-004', 'ผังบริเวณอาคาร', 2025, 2, 4), + (3, 'LP3-MD-AR-111', 'แปลนพื้นชั้นที่ 1 (ส่วนร้านค้า)', 2025, 2, 5), + (3, 'LP3-MD-AR-112', 'แปลนหลังคา (ส่วนร้านค้า)', 2025, 2, 6), + (3, 'LP3-MD-AR-211', 'รูปด้าน 1. รูปด้าน 2 (ส่วนร้านค้า)', 2025, 2, 7), + (3, 'LP3-MD-AR-212', 'รูปด้าน 3. รูปด้าน 4 (ส่วนร้านค้า)', 2025, 2, 8), + (3, 'LP3-MD-AR-311', 'รูปตัด A, รูปตัด B (ส่วนร้านค้า)', 2025, 2, 9), + (3, 'LP3-MD-AR-121', 'แปลนพื้นชั้นที่ 1 (ส่วนร้านอาหาร)', 2025, 2, 10), + (3, 'LP3-MD-AR-122', 'แปลนหลังคา (ส่วนร้านอาหาร)', 2025, 2, 11), + (3, 'LP3-MD-AR-221', 'รูปด้าน 1. รูปด้าน 2 (ส่วนร้านอาหาร)', 2025, 2, 12), + (3, 'LP3-MD-AR-222', 'รูปด้าน 3. รูปด้าน 4 (ส่วนร้านอาหาร)', 2025, 2, 13), + (3, 'LP3-MD-AR-321', 'รูปตัด A, รูปตัด B (ส่วนร้านอาหาร)', 2025, 2, 14), + (3, 'LP3-MD-AR-401', 'ขยายบันได 1 23.4', 2025, 2, 15), + (3, 'LP3-MD-AR-402', 'ขยายทางลาด', 2025, 2, 16), + (3, 'LP3-MD-AR-501', 'ขยายห้องน้ำ TL-01, TL-02, TL-03, TL-04', 2025, 2, 17), + (3, 'LP3-MD-AR-502', 'รายการเครื่องสุขภัณฑ์', 2025, 2, 18), + (3, 'LP3-MD-AR-601', 'ขยายประตู-หน้าต่าง', 2025, 2, 19), + (3, 'LP3-MD-AR-602', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2025, 2, 20), + (3, 'LP3-MD-AR-701', 'ขยายซุ้มทางเข้า แปลนพื้น', 2025, 2, 21), + (3, 'LP3-MD-AR-702', 'อยายซุ้มทางเข้า แปลนหลังคา', 2025, 2, 22), + (3, 'LP3-MD-AR-703', 'ขยายซุ้มทางเข้า รูปด้าน 1. รูปด้าน 2', 2025, 2, 23), + (3, 'LP3-MD-AR-704', 'ขยายซุ้มทางเข้า รูปตัด A. รูปตัด B', 2025, 2, 24), + (3, 'LP3-MD-AR-705', 'ขยาย DE-03, DE-04, DE-06', 2025, 2, 25), + (3, 'LP3-MD-AR-706', 'แปลนพื้นทางเดินหลังคาคลุม', 2025, 2, 26), + (3, 'LP3-MD-AR-707', 'ขยาย DE-05', 2025, 2, 27), + (3, 'LP3-MD-AR-811', 'แปลนผ้า-เพดานชั้นที่ 1 (ส่วนร้านค้า)', 2025, 2, 28), + (3, 'LP3-MD-AR-821', 'แปลนผ้า-เพดานชั้นที่ 1 (ส่วนร้านอาหาร)', 2025, 2, 29), + (3, 'LP3-MD-ID-001', 'สารบัญ', 2026, 2, 30), + (3, 'LP3-MD-ID-111', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1 (DUTY FREE BUILDING)', 2026, 2, 31), + (3, 'LP3-MD-ID-121', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1 (MARINE CLUB)', 2026, 2, 32), + (3, 'LP3-MD-ID-112', 'แปลนแสดงตำแหน่งป้าย ชั้น 1 (DUTY FREE BUILDING)', 2026, 2, 33), + (3, 'LP3-MD-ID-122', 'แปลนแสดงตำแหน่งป้าย ชั้น 1 (MARINE CLUB)', 2026, 2, 34), + (3, 'LP3-MD-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2027, 2, 35), + (3, 'LP3-MD-ST-002', 'ข้อกำหนดทั่วไป', 2027, 2, 36), + (3, 'LP3-MD-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2027, 2, 37), + (3, 'LP3-MD-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร (MARINE CLUB)', 2027, 2, 38), + (3, 'LP3-MD-ST-111', 'ผังฐานราก และ ตอมอ (MARINE CLUB)', 2027, 2, 39), + (3, 'LP3-MD-ST-112', 'ผังโครงสร้างชั้น 1 (MARINE CLUB)', 2027, 2, 40), + (3, 'LP3-MD-ST-113', 'ผังโครงสร้างชั้นอะเส (MARINE CLUB)', 2027, 2, 41), + (3, 'LP3-MD-ST-114', 'ผังโครงสร้างหลังคา (MARINE CLUB)', 2027, 2, 42), + (3, 'LP3-MD-ST-115', 'รูปตัด A, B (MARINE CLUB)', 2027, 2, 43), + (3, 'LP3-MD-ST-021', 'ผังแสดงน้ำหนักบรรทุกจร (DUTY FREE BUILDING)', 2027, 2, 44), + (3, 'LP3-MD-ST-121', 'ผังฐานราก และ ตอมอ (DUTY FREE BUILDING)', 2027, 2, 45), + (3, 'LP3-MD-ST-122', 'ผังโครงสร้างชั้น 1 (DUTY FREE BUILDING)', 2027, 2, 46), + (3, 'LP3-MD-ST-123', 'ผังโครงสร้างชั้นอะเส (DUTY FREE BUILDING)', 2027, 2, 47), + (3, 'LP3-MD-ST-124', 'ผังโครงสร้างหลังคา (DUTY FREE BUILDING)', 2027, 2, 48), + (3, 'LP3-MD-ST-125', 'รูปตัด A, B (DUTY FREE BUILDING)', 2027, 2, 49), + (3, 'LP3-MD-ST-201', 'ขยายฐานราก และ เสา', 2027, 2, 50), + (3, 'LP3-MD-ST-301', 'ขยายคาน', 2027, 2, 51), + (3, 'LP3-MD-ST-401', 'ขยายพื้น และ บันได', 2027, 2, 52), + (3, 'LP3-MD-ST-501', 'ขยายโครงหลังคาเหล็ก แผ่นที่ 1', 2027, 2, 53), + (3, 'LP3-MD-ST-502', 'ขยายโครงหลังคาเหล็ก แผ่นที่ 2', 2027, 2, 54), + (3, 'LP3-MD-ST-601', 'ผังพื้นทางเดินเชื่อมอาคาร', 2027, 2, 55), + (3, 'LP3-MD-ST-602', 'ขยายโครงสร้างทางเดินเชื่อมอาคาร', 2027, 2, 56), + (3, 'LP3-MD-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2028, 2, 57), + (3, 'LP3-MD-SN-002', 'ตารางแสดงรายการประกอบ', 2028, 2, 58), + (3, 'LP3-MD-SN-101', 'ไดอะแกรมระบบสุขาภิบาล (ส่วนร้านอาหาร)', 2028, 2, 59), + (3, 'LP3-MD-SN-102', 'ไดอะแกรมระบบสุขาภิบาล (ส่วนร้านค้า)', 2028, 2, 60), + (3, 'LP3-MD-SN-201', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1 (ส่วนร้านอาหาร)', 2028, 2, 61), + (3, 'LP3-MD-SN-202', 'แปลนระบบระบายน้ำเสีย ชั้นที่ 1 (ส่วนร้านอาหาร)', 2028, 2, 62), + (3, 'LP3-MD-SN-203', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1 (ส่วนร้านอาหาร)', 2028, 2, 63), + (3, 'LP3-MD-SN-204', 'แปลนระบบระบายน้ำฝน ชั้นหลังคา (ส่วนร้านอาหาร)', 2028, 2, 64), + (3, 'LP3-MD-SN-205', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1 (ส่วนร้านค้า)', 2028, 2, 65), + (3, 'LP3-MD-SN-206', 'แปลนระบบระบายน้ำเสีย ชั้นที่ 1 (ส่วนร้านค้า)', 2028, 2, 66), + (3, 'LP3-MD-SN-207', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1 (ส่วนร้านค้า)', 2028, 2, 67), + (3, 'LP3-MD-SN-208', 'แบลนระบบระบายน้ำฝน ชั้นหลังคา (ส่วนร้านค้า)', 2028, 2, 68), + (3, 'LP3-MD-SN-301', 'ขยายห้องน้ำ 1 (ส่วนร้านอาหาร)', 2028, 2, 69), + (3, 'LP3-MD-SN-302', 'ขยายห้องน้ำ 2 (ส่วนร้านอาหาร)', 2028, 2, 70), + (3, 'LP3-MD-SN-303', 'ขยายห้องน้ำ (สวนร้านค้า)', 2028, 2, 71), + (3, 'LP3-MD-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2028, 2, 72), + (3, 'LP3-MD-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2028, 2, 73), + (3, 'LP3-MD-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2028, 2, 74), + (3, 'LP3-MD-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2029, 2, 75), + (3, 'LP3-MD-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2028, 2, 76), + (3, 'LP3-MD-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2028, 2, 77), + (3, 'LP3-MD-HV-201', 'แปลนระบบปรับอากาศ ชั้น 1 (ส่วนร้านอาหาร)', 2028, 2, 78), + (3, 'LP3-MD-HV-205', 'แปลนระบบระบายอากาศ ชั้น 1 (ส่วนร้านอาหาร)', 2028, 2, 79), + (3, 'LP3-MD-HV-203', 'แปลนระบบปรับอากาศ ชั้น 1 (ส่วนร้านค้า)', 2028, 2, 80), + (3, 'LP3-MD-HV-204', 'แปลนระบบระบายอากาศ ชั้น 1 (ส่วนร้านค้า)', 2028, 2, 81), + (3, 'LP3-MD-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2028, 2, 82), + (3, 'LP3-MD-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2028, 2, 83), + (3, 'LP3-MD-EE-001', 'สารบัญ', 2030, 2, 84), + (3, 'LP3-MD-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2030, 2, 85), + (3, 'LP3-MD-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2030, 2, 86), + (3, 'LP3-MD-EE-004', 'สัญลักษณ์ตารางโคม', 2030, 2, 87), + (3, 'LP3-MD-EE-101', 'SINGLE LINE DIAGRAM แผ่นที่ 1/2', 2030, 2, 88), + (3, 'LP3-MD-EE-102', 'SINGLE LINE DIAGRAM แผนที 2/2', 2030, 2, 89), + (3, 'LP3-MD-EE-103', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า แผนที 1/2', 2030, 2, 90), + (3, 'LP3-MD-EE-104', 'ไรเซอร์ไดอะแกรมระบบสือสารและตารางโหลดไฟฟ้า แผ่นที่ 2/2', 2030, 2, 91), + (3, 'LP3-MD-EE-105', 'แปลนอุปกรณ์โคมไฟถนนบริเวณอาคาร MD', 2030, 2, 92), + (3, 'LP3-MD-EE-201', 'แปลนโคมไฟ (ส่วนร้านอาหาร)', 2030, 2, 93), + (3, 'LP3-MD-EE-202', 'แปลน์โคมไฟ (ส่วนร้านค้า)', 2030, 2, 94), + (3, 'LP3-MD-EE-301', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์ (ส่วนร้านอาหาร)', 2030, 2, 95), + (3, 'LP3-MD-EE-302', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์ (ส่วนร้านค้า)', 2030, 2, 96), + (3, 'LP3-MD-EE-401', 'แปลนระบบป้องกันฟ้าผาและกราวด์ (ส่วนร้านอาหาร)', 2030, 2, 97), + (3, 'LP3-MD-EE-402', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ (ส่วนร้านค้า)', 2030, 2, 98), + (3, 'LP3-MD-EE-501', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ (ส่วนร้านอาหาร)', 2030, 2, 99), + (3, 'LP3-MD-EE-502', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ (ส่วนร้านค้า)', 2030, 2, 100), + (3, 'LP3-MD-EE-601', 'แปลนกล้องโทรทัศน์วงจรปิด (ส่วนร้านอาหาร)', 2030, 2, 101), + (3, 'LP3-MD-EE-602', 'แปลนกล้องโทรทัศน์วงจรปิด (ส่วนร้านค้า)', 2030, 2, 102), + (3, 'LP3-MD-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1/9', 2030, 2, 103), + (3, 'LP3-MD-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2/9', 2030, 2, 104), + (3, 'LP3-MD-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3/9', 2030, 2, 105), + (3, 'LP3-MD-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4/9', 2030, 2, 106), + (3, 'LP3-MD-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5/9', 2030, 2, 107), + (3, 'LP3-MD-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6/9', 2030, 2, 108), + (3, 'LP3-MD-EE-707', 'รายละเอียดการติดตั้งแผ่นที่ 7/9', 2030, 2, 109), + (3, 'LP3-MD-EE-708', 'รายละเอียดการติดตั้งแผ่นที่ 8/9', 2030, 2, 110), + (3, 'LP3-MD-EE-709', 'รายละเอียดการติดตั้งแผ่นที่ 9/9', 2030, 2, 111), + (3, 'LP3-SD-AR-001', 'สารบัญ', 2031, 2, 1), + (3, 'LP3-SD-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2031, 2, 2), + (3, 'LP3-SD-AR-003', 'ผังแม่บททาเรือชั้นที่ 3', 2031, 2, 3), + (3, 'LP3-SD-AR-004', 'ผังบริเวณอาคาร', 2031, 2, 4), + (3, 'LP3-SD-AR-101', 'แปลนพื้นชั้นล่าง, แปลนพื้นชั้นบน', 2031, 2, 5), + (3, 'LP3-SD-AR-102', 'แปลนหลังคา', 2031, 2, 6), + (3, 'LP3-SD-AR-201', 'รูปด้าน 1. รูปด้าน 2, รูปด้าน 3, รูปด้าน 4', 2031, 2, 7), + (3, 'LP3-SD-AR-301', 'รูปตัด A, รูปตัด B. รูปตัด C', 2031, 2, 8), + (3, 'LP3-SD-AR-401', 'ขยายบันได 1', 2031, 2, 9), + (3, 'LP3-SD-AR-501', 'ขยายห้องน้ำ TL-01, TL-02', 2031, 2, 10), + (3, 'LP3-SD-AR-502', 'ขยายห้องน้ำ TL-03', 2031, 2, 11), + (3, 'LP3-SD-AR-503', 'รายการเครื่องสุขภัณฑ์', 2031, 2, 12), + (3, 'LP3-SD-AR-601', 'ขยายประตู-หน้าต่าง 1/2', 2031, 2, 13), + (3, 'LP3-SD-AR-602', 'ขยายประตู-หน้าต่าง 2/2', 2031, 2, 14), + (3, 'LP3-SD-AR-603', 'ตารางรายการวัสดุประตู-หน้าต่าง', 2031, 2, 15), + (3, 'LP3-SD-AR-701', 'รูปตัดขยาย DE-1, DE-2, DE-3', 2031, 2, 16), + (3, 'LP3-SD-AR-702', 'รูปตัดขยาย DE-4, DE-5', 2031, 2, 17), + (3, 'LP3-SD-AR-801', 'แปลนฝ้าเพดานชั้นล่าง, แปลนผ้าเพดานชั้นบน', 2031, 2, 18), + (3, 'LP3-SD-AR-802', 'ขยายผ้าเพดานและโคมไฟ', 2031, 2, 19), + (3, 'LP3-SD-ID-001', 'สารบัญ', 2032, 2, 20), + (3, 'LP3-SD-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1.2', 2032, 2, 21), + (3, 'LP3-SD-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้น 1.2', 2032, 2, 22), + (3, 'LP3-SD-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2033, 2, 23), + (3, 'LP3-SD-ST-002', 'ข้อกำหนดทั่วไป', 2033, 2, 24), + (3, 'LP3-SD-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2033, 2, 25), + (3, 'LP3-SD-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2033, 2, 26), + (3, 'LP3-SD-ST-101', 'ผังฐานราก และ ตอมอ ผังโครงสร้าง', 2033, 2, 27), + (3, 'LP3-SD-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2033, 2, 28), + (3, 'LP3-SD-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2033, 2, 29), + (3, 'LP3-SD-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2033, 2, 30), + (3, 'LP3-SD-ST-204', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4', 2033, 2, 31), + (3, 'LP3-SD-ST-205', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 5', 2033, 2, 32), + (3, 'LP3-SD-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2034, 2, 33), + (3, 'LP3-SD-SN-002', 'ตารางแสดงรายการประกอบ', 2034, 2, 34), + (3, 'LP3-SD-SN-101', 'ไดอะแกรมระบบจ่ายน้ำประปา และระบบระบายน้ำเสีย', 2034, 2, 35), + (3, 'LP3-SD-SN-102', 'ไดอะแกรมระบบระบายน้ำฝน', 2034, 2, 36), + (3, 'LP3-SD-SN-201', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1 และชั้นที่ 2', 2034, 2, 37), + (3, 'LP3-SD-SN-202', 'แปลนระบบระบายน้ำเสียและน้ำฝน ชั้นที่ 1 และชั้นที่ 2', 2034, 2, 38), + (3, 'LP3-SD-SN-203', 'แปลนระบบระบายน้ำฝน ชั้นหลังคา', 2034, 2, 39), + (3, 'LP3-SD-SN-204', 'แปลนระบบเระบายน้ำ ชั้นที่ 1', 2034, 2, 40), + (3, 'LP3-SD-SN-301', 'ขยายห้องน้ำ 1', 2034, 2, 41), + (3, 'LP3-SD-SN-302', 'ขยายห้องน้ำ 2', 2034, 2, 42), + (3, 'LP3-SD-SN-303', 'ขยายห้องน้ำ 3', 2034, 2, 43), + (3, 'LP3-SD-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2034, 2, 44), + (3, 'LP3-SD-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2034, 2, 45), + (3, 'LP3-SD-SN-403', 'อยายมาตรฐานการติดตั้งทั่วไป 3', 2034, 2, 46), + (3, 'LP3-SD-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2035, 2, 47), + (3, 'LP3-SD-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2035, 2, 48), + (3, 'LP3-SD-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2035, 2, 49), + (3, 'LP3-SD-HV-201', 'แปลนระบบปรับอากาศ ชั้น 1-2', 2035, 2, 50), + (3, 'LP3-SD-HV-202', 'แปลนระบบระบายอากาศ ชั้น 1-2', 2035, 2, 51), + (3, 'LP3-SD-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2035, 2, 52), + (3, 'LP3-SD-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2035, 2, 53), + (3, 'LP3-SD-EE-001', 'สารบัญ', 2036, 2, 54), + (3, 'LP3-SD-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2036, 2, 55), + (3, 'LP3-SD-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2036, 2, 56), + (3, 'LP3-SD-EE-004', 'สัญลักษณ์โคมไฟ', 2036, 2, 57), + (3, 'LP3-SD-EE-101', 'ไดอะแกรมเชิงเดี่ยว และ ตารางโหลด', 2036, 2, 58), + (3, 'LP3-SD-EE-102', 'ไรเซอร์ไดอะแกรม', 2036, 2, 59), + (3, 'LP3-SD-EE-201', 'แปลน์โคมไฟ', 2036, 2, 60), + (3, 'LP3-SD-EE-301', 'แปลนเต้ารับไฟฟ้าและคอมพิวเตอร์', 2036, 2, 61), + (3, 'LP3-SD-EE-401', 'รายละเอียดการติดตั้งระบบป้องกันฟ้าผ่าและระบบกราวด', 2036, 2, 62), + (3, 'LP3-SD-EE-501', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้', 2036, 2, 63), + (3, 'LP3-SD-EE-601', 'แปลนอุปกรณ์กล้องโทรทัศน์วงจรปิด', 2036, 2, 64), + (3, 'LP3-SD-EE-701', 'รายละเอียดการติดตั้ง แผ่นที่ 1', 2036, 2, 65), + (3, 'LP3-SD-EE-702', 'รายละเอียดการติดตั้ง แผ่นที่ 2', 2036, 2, 66), + (3, 'LP3-SD-EE-703', 'รายละเอียดการติดตั้ง แผ่นที่ 3', 2036, 2, 67), + (3, 'LP3-SD-EE-704', 'รายละเอียดการติดตั้ง แผ่นที่ 4', 2036, 2, 68), + (3, 'LP3-SD-EE-705', 'รายละเอียดการติดตั้ง แผ่นที่ 5', 2036, 2, 69), + (3, 'LP3-SD-EE-706', 'รายละเอียดการติดตั้ง แผ่นที่ 6', 2036, 2, 70), + (3, 'LP3-SD-EE-707', 'รายละเอียดการติดตั้ง แผ่นที่ 7', 2036, 2, 71), + (3, 'LP3-SD-EE-708', 'รายละเอียดการติดตั้ง แผ่นที่ 8', 2036, 2, 72), + (3, 'LP3-SD-EE-709', 'รายละเอียดการติดตั้ง แผ่นที่ 9', 2036, 2, 73), + (3, 'LP3-SD-EE-710', 'รายละเอียดการติดตั้ง แผ่นที่ 10', 2036, 2, 74), + (3, 'LP3-BA-AR-001', 'สารบัญ', 2037, 2, 1), + (3, 'LP3-BA-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2037, 2, 2), + (3, 'LP3-BA-AR-003', 'ผังแมบททาเรือชั้นที่ 3', 2037, 2, 3), + (3, 'LP3-BA-AR-004', 'ผังบริเวณอาคาร', 2037, 2, 4), + (3, 'LP3-BA-AR-101', 'แปลนพื้นชั้นที่ 1 แปลนหลังคา แปลนผ้า-เพดาน', 2037, 2, 5), + (3, 'LP3-BA-AR-201', 'รูปด้าน 1. 2. 3. 4 รูปตัด AB', 2037, 2, 6), + (3, 'LP3-BA-AR-501', 'ขยายห้องน้ำชาย-หญิง TL-01', 2037, 2, 7), + (3, 'LP3-BA-AR-502', 'ตารางสุขภัณฑ์', 2037, 2, 8), + (3, 'LP3-BA-AR-601', 'ขยายประตู-หน้าต่าง', 2037, 2, 9), + (3, 'LP3-BA-AR-602', 'ตารางรายการวัสดุประตู-หน้าต่าง', 2037, 2, 10), + (3, 'LP3-BA-ID-001', 'สารบัญ', 2038, 2, 11), + (3, 'LP3-BA-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1', 2038, 2, 12), + (3, 'LP3-BA-ID-102', 'แปลนแสดงตำแหน่งบ้าย ชั้น 1', 2038, 2, 13), + (3, 'LP3-BA-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2039, 2, 14), + (3, 'LP3-BA-ST-002', 'ข้อกำหนดทั่วไป', 2039, 2, 15), + (3, 'LP3-BA-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2039, 2, 16), + (3, 'LP3-BA-ST-011', 'ผังแสดงน้ำหนักบรรทุก', 2039, 2, 17), + (3, 'LP3-BA-ST-101', 'ผังโครงสร้างฐานราก ตอม่อ, ชั้น 1, หลังคา', 2039, 2, 18), + (3, 'LP3-BA-ST-111', 'รูปตัด A', 2039, 2, 19), + (3, 'LP3-BA-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่', 2039, 2, 20), + (3, 'LP3-BA-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2039, 2, 21), + (3, 'LP3-BA-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2039, 2, 22), + (3, 'LP3-BA-ST-204', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4', 2039, 2, 23), + (3, 'LP3-BA-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2040, 2, 24), + (3, 'LP3-BA-SN-002', 'ตารางแสดงรายการประกอบ', 2040, 2, 25), + (3, 'LP3-BA-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2040, 2, 26), + (3, 'LP3-BA-SN-201', 'แปลนระบบสุขาภิบาล', 2040, 2, 27), + (3, 'LP3-BA-SN-301', 'ขยายห้องน้ำ', 2040, 2, 28), + (3, 'LP3-BA-SN-401', 'สบายมาตรฐานการติดตั้งทั่วไป 1', 2040, 2, 29), + (3, 'LP3-BA-SN-402', 'สบายมาตรฐานการติดตั้งทั่วไป 2', 2040, 2, 30), + (3, 'LP3-BA-SN-403', 'สบายมาตรฐานการติดตั้งทั่วไป 3', 2040, 2, 31), + (3, 'LP3-BA-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2041, 2, 32), + (3, 'LP3-BA-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2041, 2, 33), + (3, 'LP3-BA-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2041, 2, 34), + (3, 'LP3-BA-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1', 2041, 2, 35), + (3, 'LP3-BA-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2041, 2, 36), + (3, 'LP3-BA-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2041, 2, 37), + (3, 'LP3-BA-EE-001', 'สารบัญ', 2042, 2, 38), + (3, 'LP3-BA-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2042, 2, 39), + (3, 'LP3-BA-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2042, 2, 40), + (3, 'LP3-BA-EE-004', 'สัญลักษณ์โคมไฟ', 2042, 2, 41), + (3, 'LP3-BA-EE-101', 'ตารางเหลดไฟฟ้า และ ไรเซอร์ไดอะแกรม', 2042, 2, 42), + (3, 'LP3-BA-EE-201', 'แปลน์โคมไฟ/เฝ้ารับไฟฟ้า/โทรศัพท์/คอมพิวเตอร์/กล้องโทรทัศน์วงจรปิด', 2042, 2, 43), + (3, 'LP3-BA-EE-401', 'แปลนแจ้งเหตุเพลิงไหม้/รายละเอียดการติดตั้งระบบป้องกันฟ้าผ่าและระบบกราวด', 2042, 2, 44), + (3, 'LP3-BA-EE-701', 'รายละเอียดการติดตั้ง แผ่นที่ 1', 2042, 2, 45), + (3, 'LP3-BA-EE-702', 'รายละเอียดการติดตั้ง แผ่นที่ 2', 2042, 2, 46), + (3, 'LP3-BA-EE-703', 'รายละเอียดการติดตั้ง แผ่นที่ 3', 2042, 2, 47), + (3, 'LP3-BA-EE-704', 'รายละเอียดการติดตั้ง แผ่นที่ 4', 2042, 2, 48), + (3, 'LP3-BA-EE-705', 'รายละเอียดการติดตั้ง แผ่นที่ 5', 2042, 2, 49), + (3, 'LP3-CO-AR-001', 'สารบัญ', 2043, 2, 1), + (3, 'LP3-CO-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2043, 2, 2), + (3, 'LP3-CO-AR-003', 'ผังแม่บทท่าเรือชั้นที่ 3', 2043, 2, 3), + (3, 'LP3-CO-AR-004', 'ผังบริเวณอาคาร', 2043, 2, 4), + (3, 'LP3-CO-AR-101', 'แปลนพื้นชั้นที่ 1, แปลนพื้นชั้นที 2, แปลนพื้นชั้นที 3, แปลนพื้นชั้นที 4', 2043, 2, 5), + (3, 'LP3-CO-AR-102', 'แปลนหลังคา', 2043, 2, 6), + (3, 'LP3-CO-AR-201', 'รูปด้าน 1, รูปด้าน 2', 2043, 2, 7), + (3, 'LP3-CO-AR-202', 'รูปด้าน 3, รูปด้าน 4', 2043, 2, 8), + (3, 'LP3-CO-AR-301', 'รูปตัด A, B', 2043, 2, 9), + (3, 'LP3-CO-AR-401', 'อยายบันได ST-1, ขยาย DE-1', 2043, 2, 10), + (3, 'LP3-CO-AR-501', 'ขยายห้องน้ำ TL-1, รายการเครื่องสุขภัณฑ์', 2043, 2, 11), + (3, 'LP3-CO-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2043, 2, 12), + (3, 'LP3-CO-AR-602', 'แปลนผ้า-เพดาน', 2043, 2, 13), + (3, 'LP3-CO-ID-001', 'สารบัญ', 2044, 2, 14), + (3, 'LP3-CO-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้นล่าง,2,3,4,5', 2044, 2, 15), + (3, 'LP3-CO-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้นล่าง,2,3,4,5', 2044, 2, 16), + (3, 'LP3-CO-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2045, 2, 17), + (3, 'LP3-CO-ST-002', 'ข้อกำหนดทั่วไป', 2045, 2, 18), + (3, 'LP3-CO-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2045, 2, 19), + (3, 'LP3-CO-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2045, 2, 20), + (3, 'LP3-CO-ST-101', 'ผังฐานราก และ ตอม่อ ผังโครงสร้าง', 2045, 2, 21), + (3, 'LP3-CO-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2045, 2, 22), + (3, 'LP3-CO-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2045, 2, 23), + (3, 'LP3-CO-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2045, 2, 24), + (3, 'LP3-CO-ST-204', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4', 2045, 2, 25), + (3, 'LP3-CO-SN-001', 'สารบัญ สัญลัยษณ์ และอักษรย่อ', 2046, 2, 26), + (3, 'LP3-CO-SN-002', 'ตารางแสดงรายการประกอบ', 2046, 2, 27), + (3, 'LP3-CO-SN-101', 'ไดอะแกรมระบบจ่ายน้ำประปา และระบบระบายน้ำเสีย', 2046, 2, 28), + (3, 'LP3-CO-SN-102', 'ไดอะแกรมระบบระบายน้ำฝน', 2046, 2, 29), + (3, 'LP3-CO-SN-201', 'แปลนระบบสุขาภิบาล', 2046, 2, 30), + (3, 'LP3-CO-SN-301', 'ขยายห้องน้ำ', 2046, 2, 31), + (3, 'LP3-CO-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2046, 2, 32), + (3, 'LP3-CO-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2046, 2, 33), + (3, 'LP3-CO-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2047, 2, 34), + (3, 'LP3-CO-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2047, 2, 35), + (3, 'LP3-CO-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2047, 2, 36), + (3, 'LP3-CO-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1-5', 2047, 2, 37), + (3, 'LP3-CO-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2047, 2, 38), + (3, 'LP3-CO-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2047, 2, 39), + (3, 'LP3-CO-EE-001', 'สารบัญ', 2048, 2, 40), + (3, 'LP3-CO-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2048, 2, 41), + (3, 'LP3-CO-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2048, 2, 42), + (3, 'LP3-CO-EE-004', 'สัญลักษณ์ตารางโคม', 2048, 2, 43), + (3, 'LP3-CO-EE-101', 'SINGLE LINE DIAGRAM/ตารางโหลดไฟฟ้า', 2048, 2, 44), + (3, 'LP3-CO-EE-102', 'ไรเซอร์ไดอะแกรมระบบสื่อสาร', 2048, 2, 45), + (3, 'LP3-CO-EE-201', 'แปลนโคมไฟชั้นล่าง – ชั้นที่ 5', 2048, 2, 46), + (3, 'LP3-CO-EE-301', 'แปลนเต้ารับไฟฟ้า/โทรศัพท์/คอมพิวเตอร์ชั้นล่าง – ชั้นที่ 5', 2048, 2, 47), + (3, 'LP3-CO-EE-401', 'รายละเอียดการติดตั้งระบบป้องกันฟ้าผ่าและกราวด์และชายละเอียดการติดตั้งระบบโทรทัศน์ว', 2048, 2, 48), + (3, 'LP3-CO-EE-501', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ชั้นล่าง – ชั้นที่ 5', 2048, 2, 49), + (3, 'LP3-CO-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2048, 2, 50), + (3, 'LP3-CO-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2048, 2, 51), + (3, 'LP3-CO-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2048, 2, 52), + (3, 'LP3-CO-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2048, 2, 53), + (3, 'LP3-CO-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2048, 2, 54), + (3, 'LP3-CO-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6', 2048, 2, 55), + (3, 'LP3-CO-EE-707', 'รายละเอียดการติดตั้งแผ่นที่ 7', 2048, 2, 56), + (3, 'LP3-TM-AR-001', 'สารบัญ', 2049, 3, 1), + (3, 'LP3-TM-AR-002', 'สัญลักษณ์ประกอบ ตารางวัสดุประกอบ', 2049, 3, 2), + (3, 'LP3-TM-AR-003', 'ผังแม่บทท่าเรือชั้นที่ 3', 2049, 3, 3), + (3, 'LP3-TM-AR-004', 'ผังบริเวณอาคาร', 2049, 3, 4), + (3, 'LP3-TM-AR-101', 'แปลนพื้นชั้นล่าง', 2049, 3, 5), + (3, 'LP3-TM-AR-102', 'แปลนหลังคา', 2049, 3, 6), + (3, 'LP3-TM-AR-201', 'รูปด้าน 1.2', 2049, 3, 7), + (3, 'LP3-TM-AR-202', 'รูปด้าน 3.4', 2049, 3, 8), + (3, 'LP3-TM-AR-301', 'รูปตัด AB', 2049, 3, 9), + (3, 'LP3-TM-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2049, 3, 10), + (3, 'LP3-TM-AR-701', 'ขยายตู้ตรวจสอบ', 2049, 3, 11), + (3, 'LP3-TM-ID-001', 'สารบัญ', 2050, 3, 12), + (3, 'LP3-TM-ID-101', 'แปลนแสดงงานครุภัณฑ์', 2050, 3, 13), + (3, 'LP3-TM-ID-102', 'แปลนแสดงตำแหน่งป้าย', 2050, 3, 14), + (3, 'LP3-TM-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2051, 3, 15), + (3, 'LP3-TM-ST-002', 'ข้อกำหนดทั่วไป', 2051, 3, 16), + (3, 'LP3-TM-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2051, 3, 17), + (3, 'LP3-TM-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2051, 3, 18), + (3, 'LP3-TM-ST-101', 'ฝังฐานราก และ ตอมอ', 2051, 3, 19), + (3, 'LP3-TM-ST-102', 'ผังโครงสร้างชั้น 1', 2051, 3, 20), + (3, 'LP3-TM-ST-103', 'ผังโครงสร้างโครงหลังคา', 2051, 3, 21), + (3, 'LP3-TM-ST-111', 'รูปตัด A-A, B-B', 2051, 3, 22), + (3, 'LP3-TM-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2051, 3, 23), + (3, 'LP3-TM-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2052, 3, 24), + (3, 'LP3-TM-SN-002', 'ตารางแสดงรายการประกอบ', 2052, 3, 25), + (3, 'LP3-TM-SN-101', 'ไดอะแกรมระบบระบายน้ำผน', 2052, 3, 26), + (3, 'LP3-TM-SN-201', 'แปลนระบบระบายน้ำฝน ชิ้นที่ 1', 2052, 3, 27), + (3, 'LP3-TM-SN-202', 'แปลนระบบระบายน้ำฝน ชั้นหลังคา', 2052, 3, 28), + (3, 'LP3-TM-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป', 2052, 3, 29), + (3, 'LP3-TM-HV-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2053, 3, 30), + (3, 'LP3-TM-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2053, 3, 31), + (3, 'LP3-TM-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2053, 3, 32), + (3, 'LP3-TM-HV-201', 'แปลนระบบปรับอากาศ ชั้น 1', 2053, 3, 33), + (3, 'LP3-TM-HV-202', 'แปลนระบบระบายอากาศ ชั้น 1', 2053, 3, 34), + (3, 'LP3-TM-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2053, 3, 35), + (3, 'LP3-TM-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2053, 3, 36), + (3, 'LP3-TM-EE-001', 'สารบัญ', 2054, 3, 37), + (3, 'LP3-TM-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2054, 3, 38), + (3, 'LP3-TM-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2054, 3, 39), + (3, 'LP3-TM-EE-004', 'สัญลักษณ์ตารางโคม', 2054, 3, 40), + (3, 'LP3-TM-EE-101', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางใหลดไฟฟ้า', 2054, 3, 41), + (3, 'LP3-TM-EE-201', 'แปลน์โคมไฟ', 2054, 3, 42), + (3, 'LP3-TM-EE-301', 'แปลนเต้ารับไฟฟ้า โทรศัพท์และคอมพิวเตอร์', 2054, 3, 43), + (3, 'LP3-TM-EE-401', 'แปลนระบบป้องกันฟ้าผ่าและกราวด', 2054, 3, 44), + (3, 'LP3-TM-EE-501', 'แปลนกล้องโทรทัศน์วงจรปิด', 2054, 3, 45), + (3, 'LP3-TM-EE-601', 'แปลนเสียงประกาศ', 2054, 3, 46), + (3, 'LP3-TM-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2054, 3, 47), + (3, 'LP3-TM-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2054, 3, 48), + (3, 'LP3-TM-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2054, 3, 49), + (3, 'LP3-TM-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2054, 3, 50), + (3, 'LP3-TM-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2054, 3, 51), + (3, 'LP3-TM-EE-706', 'รายละเอียดการติดตั้งแผนที่ 6', 2054, 3, 52), + (3, 'LP3-TO-AR-001', 'สารบัญ', 2055, 3, 1), + (3, 'LP3-TO-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2055, 3, 2), + (3, 'LP3-TO-AR-003', 'ผังแม่บทท่าเรือชั้นที่ 3', 2055, 3, 3), + (3, 'LP3-TO-AR-004', 'ผังบริเวณอาคาร', 2055, 3, 4), + (3, 'LP3-TO-AR-101', 'แปลนพื้นชั้นที่ 1. แปลนถังน้ำใต้ดิน', 2055, 3, 5), + (3, 'LP3-TO-AR-102', 'แปลนพื้นชั้นที่ 2', 2055, 3, 6), + (3, 'LP3-TO-AR-103', 'แปลนพื้นชั้นที่ 3', 2055, 3, 7), + (3, 'LP3-TO-AR-104', 'แปลนพื้นชั้นที่ 4', 2055, 3, 8), + (3, 'LP3-TO-AR-105', 'แปลนพื้นชั้นที่ 5', 2055, 3, 9), + (3, 'LP3-TO-AR-106', 'แปลนหลังคา', 2055, 3, 10), + (3, 'LP3-TO-AR-201', 'รูปด้าน 1', 2055, 3, 11), + (3, 'LP3-TO-AR-202', 'รูปด้าน 2', 2055, 3, 12), + (3, 'LP3-TO-AR-203', 'รูปด้าน 3', 2055, 3, 13), + (3, 'LP3-TO-AR-204', 'รูปด้าน 4', 2055, 3, 14), + (3, 'LP3-TO-AR-301', 'รูปตัด A', 2055, 3, 15), + (3, 'LP3-TO-AR-302', 'รูปตัด B', 2055, 3, 16), + (3, 'LP3-TO-AR-303', 'รูปตัด C', 2055, 3, 17), + (3, 'LP3-TO-AR-401', 'ขยายบันได ST-1, RM-1', 2055, 3, 18), + (3, 'LP3-TO-AR-402', 'ขยายรูปตัดบันได ST-1', 2055, 3, 19), + (3, 'LP3-TO-AR-403', 'อยายบันได ST-2', 2055, 3, 20), + (3, 'LP3-TO-AR-404', 'ขยายบันได ST-3,ST-4', 2055, 3, 21), + (3, 'LP3-TO-AR-405', 'ยายบันได ST-5, ขยายบันไดเหล็ก', 2055, 3, 22), + (3, 'LP3-TO-AR-406', 'อยายบันไดลงถังน้ำใต้ดิน', 2055, 3, 23), + (3, 'LP3-TO-AR-501', 'ขยายห้องน้ำ 1.2.3 และห้อง JANITOR 1', 2055, 3, 24), + (3, 'LP3-TO-AR-502', 'ขยายห้องน้ำ 4.5,6,7 และท้อง JANITOR 2,3', 2055, 3, 25), + (3, 'LP3-TO-AR-503', 'ตารางสุขภัณฑ์', 2055, 3, 26), + (3, 'LP3-TO-AR-601', 'ขยายประตู-หน้าต่าง 1/3', 2055, 3, 27), + (3, 'LP3-TO-AR-602', 'ขยายประตู-หนาตาง 2/3', 2055, 3, 28), + (3, 'LP3-TO-AR-603', 'ขยายประตู-หน้าตาง 3/3', 2055, 3, 29), + (3, 'LP3-TO-AR-604', 'ตารางรายการวัสดุประตู-หน้าตาง', 2055, 3, 30), + (3, 'LP3-TO-AR-701', 'ขยายกันสาดด้านข้าง', 2055, 3, 31), + (3, 'LP3-TO-AR-702', 'ขยายประตูรั้ว์โครงการ ขยายขอบคันหิน', 2055, 3, 32), + (3, 'LP3-TO-AR-801', 'แปลนผ้า-เพดานชั้นที่ 1', 2055, 3, 33), + (3, 'LP3-TO-AR-802', 'แปลนผ้า-เพดานชั้นที่ 2', 2055, 3, 34), + (3, 'LP3-TO-AR-803', 'แปลนผ้า-เพดานชิ้นที่', 2055, 3, 35), + (3, 'LP3-TO-AR-804', 'แปลนผ้า-เพดานชั้นที่ 4', 2055, 3, 36), + (3, 'LP3-TO-AR-805', 'แปลนผ้า-เพดานชิ้นที่ 5', 2055, 3, 37), + (3, 'LP3-TO-ID-001', 'สารบัญ', 2056, 3, 38), + (3, 'LP3-TO-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1', 2056, 3, 39), + (3, 'LP3-TO-ID-102', 'แปลนแสดงงานครุภัณฑ์ ชั้น 2', 2056, 3, 40), + (3, 'LP3-TO-ID-103', 'แปลนแสดงงานครุภัณฑ์ ชั้น 3', 2056, 3, 41), + (3, 'LP3-TO-ID-104', 'แปลนแสดงงานครุภัณฑ์ ชั้น 4', 2056, 3, 42), + (3, 'LP3-TO-ID-105', 'แปลนแสดงงานครุภัณฑ์ ชั้น 5', 2056, 3, 43), + (3, 'LP3-TO-ID-106', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2056, 3, 44), + (3, 'LP3-TO-ID-107', 'แปลนแสดงตำแหน่งป้าย ชั้น 2', 2056, 3, 45), + (3, 'LP3-TO-ID-108', 'แปลนแสดงตำแหน่งป้าย ชั้น 3', 2056, 3, 46), + (3, 'LP3-TO-ID-109', 'แปลนแสดงตำแหน่งป้าย ชั้น 4', 2056, 3, 47), + (3, 'LP3-TO-ID-110', 'แปลนแสดงตำแหน่งป้าย ชั้น 5', 2056, 3, 48), + (3, 'LP3-TO-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2057, 3, 49), + (3, 'LP3-TO-ST-002', 'ข้อกำหนดทั่วไป', 2057, 3, 50), + (3, 'LP3-TO-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร ชั้น 1', 2057, 3, 51), + (3, 'LP3-TO-ST-012', 'ผังแสดงน้ำหนักบรรทุกจร ชั้น 2', 2057, 3, 52), + (3, 'LP3-TO-ST-013', 'ผังแสดงน้ำหนักบรรทุกจร ชั้น 3', 2057, 3, 53), + (3, 'LP3-TO-ST-014', 'ผังแสดงน้ำหนักบรรทุกจร ชั้น 4', 2057, 3, 54), + (3, 'LP3-TO-ST-015', 'ผังแสดงน้ำหนักบรรทุกจร ชั้น 5', 2057, 3, 55), + (3, 'LP3-TO-ST-016', 'ผังแสดงน้ำหนักบรรทุกจร ชั้นอะเส', 2057, 3, 56), + (3, 'LP3-TO-ST-101', 'ผังฐานราก และ ตอมอ', 2057, 3, 57), + (3, 'LP3-TO-ST-102', 'ผังโครงสร้างชั้น 1', 2057, 3, 58), + (3, 'LP3-TO-ST-103', 'ผังโครงสร้างชั้น 2', 2057, 3, 59), + (3, 'LP3-TO-ST-104', 'ผังโครงสร้างชั้น 3', 2057, 3, 60), + (3, 'LP3-TO-ST-105', 'ผังโครงสร้างชั้น 4', 2057, 3, 61), + (3, 'LP3-TO-ST-106', 'ผังโครงสร้างชั้น 5', 2057, 3, 62), + (3, 'LP3-TO-ST-107', 'ผังโครงสร้างชั้นอะเส', 2057, 3, 63), + (3, 'LP3-TO-ST-108', 'ผังโครงสร้างชั้นหลังคา', 2057, 3, 64), + (3, 'LP3-TO-ST-121', 'ผังแสดงเหล็กเสริม FLAT SLAB ชั้น 2', 2057, 3, 65), + (3, 'LP3-TO-ST-122', 'ผังแสดงเหล็กเสริม FLAT SLAB ชั้น 3', 2057, 3, 66), + (3, 'LP3-TO-ST-123', 'ผังแสดงเหล็กเสริม FLAT SLAB ชั้น 4', 2057, 3, 67), + (3, 'LP3-TO-ST-124', 'ผังแสดงเหล็กเสริม FLAT SLAB ชั้น 5', 2057, 3, 68), + (3, 'LP3-TO-ST-201', 'ขยายฐานราก แผ่นที่ 1', 2057, 3, 69), + (3, 'LP3-TO-ST-202', 'สยายฐานราก แผนที่ 2', 2057, 3, 70), + (3, 'LP3-TO-ST-203', 'ขยายฐานราก แผนที่ 3', 2057, 3, 71), + (3, 'LP3-TO-ST-204', 'ขยายฐานราก แผนที่ 4', 2057, 3, 72), + (3, 'LP3-TO-ST-205', 'ขยายฐานราก แผ่นที่ 5', 2057, 3, 73), + (3, 'LP3-TO-ST-211', 'ขยายเสา', 2057, 3, 74), + (3, 'LP3-TO-ST-221', 'ขยายคาน แผนที 1', 2057, 3, 75), + (3, 'LP3-TO-ST-222', 'ขยายคาน แผนที 2', 2057, 3, 76), + (3, 'LP3-TO-ST-223', 'ขยายคาน แผนที่ 3', 2057, 3, 77), + (3, 'LP3-TO-ST-224', 'ขยายคาน แผนที่ 4', 2057, 3, 78), + (3, 'LP3-TO-ST-225', 'ขยายคาน แผ่นที่ 5', 2057, 3, 79), + (3, 'LP3-TO-ST-226', 'ขยายคาน แผนที่ 6', 2057, 3, 80), + (3, 'LP3-TO-ST-231', 'อยายพื้น', 2057, 3, 81), + (3, 'LP3-TO-ST-241', 'ขยายบันได, ทางลาด', 2057, 3, 82), + (3, 'LP3-TO-ST-251', 'ขยายกำแพง CWI แผ่นที่ 1', 2057, 3, 83), + (3, 'LP3-TO-ST-252', 'ขยายกำแพง CWI แผนที่ 2', 2057, 3, 84), + (3, 'LP3-TO-ST-253', 'ขยายกำแพง CW2 แผนที่ 1', 2057, 3, 85), + (3, 'LP3-TO-ST-254', 'ขยายกำแพง CW2 แผนที่ 2', 2057, 3, 86), + (3, 'LP3-TO-ST-261', 'ขยาย WATER TANK', 2057, 3, 87), + (3, 'LP3-TO-ST-301', 'ขยาย CANOPY', 2057, 3, 88), + (3, 'LP3-TO-ST-311', 'CONNECTION DETAIL', 2057, 3, 89), + (3, 'LP3-TO-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2058, 3, 90), + (3, 'LP3-TO-SN-002', 'ตารางแสดงรายการประกอบ', 2058, 3, 91), + (3, 'LP3-TO-SN-101', 'ไดอะแกรมระบบจ่ายน้ำประปาและดับเพลิง', 2058, 3, 92), + (3, 'LP3-TO-SN-102', 'ไดอะแกรมระบบระบายน้ำเสีย', 2058, 3, 93), + (3, 'LP3-TO-SN-103', 'ไดอะแกรมระบบระบายน้ำฝน', 2058, 3, 94), + (3, 'LP3-TO-SN-201', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1', 2058, 3, 95), + (3, 'LP3-TO-SN-202', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 2', 2058, 3, 96), + (3, 'LP3-TO-SN-203', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 3', 2058, 3, 97), + (3, 'LP3-TO-SN-204', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 4', 2058, 3, 98), + (3, 'LP3-TO-SN-205', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 5', 2058, 3, 99), + (3, 'LP3-TO-SN-206', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 1', 2058, 3, 100), + (3, 'LP3-TO-SN-207', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 2', 2058, 3, 101), + (3, 'LP3-TO-SN-208', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 3', 2058, 3, 102), + (3, 'LP3-TO-SN-209', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 4', 2058, 3, 103), + (3, 'LP3-TO-SN-210', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 5', 2058, 3, 104), + (3, 'LP3-TO-SN-211', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นหลังคา', 2058, 3, 105), + (3, 'LP3-TO-SN-212', 'ผังบริเวณระบบระบายน้ำ', 2058, 3, 106), + (3, 'LP3-TO-SN-301', 'ขยายห้องน้ำ 1', 2058, 3, 107), + (3, 'LP3-TO-SN-302', 'ขยายห้องน้ำ 2', 2058, 3, 108), + (3, 'LP3-TO-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2058, 3, 109), + (3, 'LP3-TO-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2058, 3, 110), + (3, 'LP3-TO-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2058, 3, 111), + (3, 'LP3-TO-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2059, 3, 112), + (3, 'LP3-TO-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2059, 3, 113), + (3, 'LP3-TO-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2059, 3, 114), + (3, 'LP3-TO-HV-103', 'ไดอะแกรมท่อน้ำยา 1/3', 2059, 3, 115), + (3, 'LP3-TO-HV-104', 'ไดอะแกรมท่อน้ำยา 2/3', 2059, 3, 116), + (3, 'LP3-TO-HV-105', 'ไดอะแกรมท่อน้ำยา 3/3', 2059, 3, 117), + (3, 'LP3-TO-HV-201', 'แปลนระบบปรับอากาศ ชั้น 1', 2059, 3, 118), + (3, 'LP3-TO-HV-202', 'แปลนระบบปรับอากาศ ชั้น 2', 2059, 3, 119), + (3, 'LP3-TO-HV-203', 'แปลนระบบปรับอากาศ ชั้น 3', 2059, 3, 120), + (3, 'LP3-TO-HV-204', 'แปลนระบบปรับอากาศ ชั้น 4', 2059, 3, 121), + (3, 'LP3-TO-HV-205', 'แปลนระบบปรับอากาศ ชั้น 5', 2059, 3, 122), + (3, 'LP3-TO-HV-206', 'แปลนระบบระบายอากาศ ชั้น 1', 2059, 3, 123), + (3, 'LP3-TO-HV-207', 'แปลนระบบระบายอากาศ ชั้น 2', 2059, 3, 124), + (3, 'LP3-TO-HV-208', 'แปลนระบบระบายอากาศ ชั้น 3', 2059, 3, 125), + (3, 'LP3-TO-HV-209', 'แปลนระบบระบายอากาศ ชั้น 4', 2059, 3, 126), + (3, 'LP3-TO-HV-210', 'แปลนระบบระบายอากาศ ชิ้น 5', 2059, 3, 127), + (3, 'LP3-TO-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2059, 3, 128), + (3, 'LP3-TO-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2059, 3, 129), + (3, 'LP3-TO-EE-001', 'สารบัญ', 2060, 3, 130), + (3, 'LP3-TO-EE-002', 'สัญลักษณ์ระบบไฟฟ้า', 2060, 3, 131), + (3, 'LP3-TO-EE-003', 'สัญลักษณ์ระบบสื่อสาร', 2060, 3, 132), + (3, 'LP3-TO-EE-004', 'สัญลักษณ์โคมไฟ', 2060, 3, 133), + (3, 'LP3-TO-EE-101', 'LV SINGLE LINE', 2060, 3, 134), + (3, 'LP3-TO-EE-102', 'ไรเซอร์ไดอะแกรมอุปกรณ์แจ้งเหตุเพลิงไหม้', 2060, 3, 135), + (3, 'LP3-TO-EE-103', 'ไรเชอร์ไดอะแกรมระบบโทรศัพท์และระบบคอมพิวเตอร์', 2060, 3, 136), + (3, 'LP3-TO-EE-104', 'ไรเซอร์ไดอะแกรมระบบกล้องโทรทัศน์วงจรปิดและระบบควบคุมการเข้าออกอาคาร', 2060, 3, 137), + (3, 'LP3-TO-EE-105', 'ไรเซอร์ไดอะแกรมระบบเสียงประกาศสาธารณะ', 2060, 3, 138), + (3, 'LP3-TO-EE-106', 'ตารางโหลดไฟฟ้า แผ่นที่ 1', 2060, 3, 139), + (3, 'LP3-TO-EE-107', 'ตารางโหลดไฟฟ้า แผ่นที่ 2', 2060, 3, 140), + (3, 'LP3-TO-EE-201', 'แปลน์โคมไฟ ชั้นที่ 1', 2060, 3, 141), + (3, 'LP3-TO-EE-202', 'แปลน์โคมไฟ ชั้นที่ 2', 2060, 3, 142), + (3, 'LP3-TO-EE-203', 'แปลนโคมไฟ ชั้นที่ 3', 2060, 3, 143), + (3, 'LP3-TO-EE-204', 'แปลนโคมไฟ ชั้นที่ 4', 2060, 3, 144), + (3, 'LP3-TO-EE-205', 'แปลน์โคมไฟ ชิ้นที่ 5', 2060, 3, 145), + (3, 'LP3-TO-EE-301', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์ ชั้นที่ 1', 2060, 3, 146), + (3, 'LP3-TO-EE-302', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์ ชั้นที่ 2', 2060, 3, 147), + (3, 'LP3-TO-EE-303', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์ ชั้นที่ 3', 2060, 3, 148), + (3, 'LP3-TO-EE-304', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์ ชั้นที่ 4', 2060, 3, 149), + (3, 'LP3-TO-EE-305', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์ ชั้นที่ 5', 2060, 3, 150), + (3, 'LP3-TO-EE-401', 'รายละเอียดการติดตั้งระบบป้องกันฟ้าผ่าและระบบกราวด์', 2060, 3, 151), + (3, 'LP3-TO-EE-501', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 1', 2060, 3, 152), + (3, 'LP3-TO-EE-502', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 2', 2060, 3, 153), + (3, 'LP3-TO-EE-503', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 3', 2060, 3, 154), + (3, 'LP3-TO-EE-504', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 4', 2060, 3, 155), + (3, 'LP3-TO-EE-505', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 5', 2060, 3, 156), + (3, 'LP3-TO-EE-601', 'รายละเอียดการติดตั้งระบบกล้องโทรทัศน์วงจรปิดและระบบเสียงประกาศสาธารณะ ชิ้นที่ 1', 2060, 3, 157), + (3, 'LP3-TO-EE-602', 'รายละเอียดการติดตั้งระบบกล้องโทรทัศน์วงจรปิดและระบบเสียงประกาศสาธารณะ ชิ้นที่ 2', 2060, 3, 158), + (3, 'LP3-TO-EE-603', 'รายละเอียดการติดตั้งระบบกล้องโทรทัศน์วงจรปิดและระบบเสียงประกาศลาธารณะ ฮันที่ 3', 2060, 3, 159), + (3, 'LP3-TO-EE-604', 'รายละเอียดการติดตั้งระบบกล้องโทรทัศน์วงจรปิดและระบบเสียงประกาศสาธารณะ ชิ้นที่ 4', 2060, 3, 160), + (3, 'LP3-TO-EE-605', 'รายละเอียดการติดตั้งระบบกล้องโทรทัศน์วงจรปิดและระบบเสียงประกาศสาธารณะ ฮันที่ 5', 2060, 3, 161), + (3, 'LP3-TO-EE-701', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 1', 2060, 3, 162), + (3, 'LP3-TO-EE-702', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 2', 2060, 3, 163), + (3, 'LP3-TO-EE-703', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 3', 2060, 3, 164), + (3, 'LP3-TO-EE-704', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 4', 2060, 3, 165), + (3, 'LP3-TO-EE-705', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 5', 2060, 3, 166), + (3, 'LP3-TO-EE-706', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 6', 2060, 3, 167), + (3, 'LP3-TO-EE-707', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 7', 2060, 3, 168), + (3, 'LP3-TO-EE-708', 'รายละเอียดการติดตั้งทั่วไปแผ่นที่ 8', 2060, 3, 169), + (3, 'LP3-TO-EE-709', 'รายละเอียดการติดตั้งทั่วไปแผนที่ 9', 2060, 3, 170), + (3, 'LP3-WO-AR-001', 'สารบัญ', 2061, 3, 1), + (3, 'LP3-WO-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2061, 3, 2), + (3, 'LP3-WO-AR-003', 'ผังแม่บททาเรือชั้นที่ 3', 2061, 3, 3), + (3, 'LP3-WO-AR-004', 'ผังบริเวณอาคาร', 2061, 3, 4), + (3, 'LP3-WO-AR-101', 'แปลนพื้นชั้นล่าง ลยายรางระบายน้ำ DE-1, ขยายกันชน DE-2', 2061, 3, 5), + (3, 'LP3-WO-AR-102', 'แปลนหลังคา', 2061, 3, 6), + (3, 'LP3-WO-AR-201', 'รูปด้าน 1, รูปด้าน 2, ลยายกันชน DE-2', 2061, 3, 7), + (3, 'LP3-WO-AR-202', 'รูปด้าน 3, รูปด้าน 4', 2061, 3, 8), + (3, 'LP3-WO-AR-301', 'รูปตัด A, รูปตัด B, สยายรางระบายน้ำ DE-3, DE-4', 2061, 3, 9), + (3, 'LP3-WO-AR-401', 'ขยาย บันได ST-01', 2061, 3, 10), + (3, 'LP3-WO-AR-501', 'ขยายห้องน้ำ L-01', 2061, 3, 11), + (3, 'LP3-WO-AR-502', 'รายการมาตราฐานงานสุขภัณฑ์', 2061, 3, 12), + (3, 'LP3-WO-AR-604', 'ขยายประตู-หน้าต่าง 1/2', 2061, 3, 13), + (3, 'LP3-WO-AR-602', 'ลยายประตู-หน้าต่าง 2/2', 2061, 3, 14), + (3, 'LP3-WO-AR-603', 'ตารางรายการวัสดุประตู-หน้าต่าง', 2061, 3, 15), + (3, 'LP3-WO-ID-001', 'สารบัญ', 2062, 3, 16), + (3, 'LP3-WO-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1', 2062, 3, 17), + (3, 'LP3-WO-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2062, 3, 18), + (3, 'LP3-WO-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2063, 3, 19), + (3, 'LP3-WO-ST-002', 'ข้อกำหนดทั่วไป', 2063, 3, 20), + (3, 'LP3-WO-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2063, 3, 21), + (3, 'LP3-WO-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2063, 3, 22), + (3, 'LP3-WO-ST-101', 'ผังฐานราก และ ตอม่อ', 2063, 3, 23), + (3, 'LP3-WO-ST-102', 'ผังโครงสร้างชั้น 1', 2063, 3, 24), + (3, 'LP3-WO-ST-103', 'ผังโครงสร้าง ระดับ +4.20', 2063, 3, 25), + (3, 'LP3-WO-ST-104', 'ผังโครงสร้างหลังคา', 2063, 3, 26), + (3, 'LP3-WO-ST-105', 'ผังโครงสร้างโครงหลังคา', 2063, 3, 27), + (3, 'LP3-WO-ST-111', 'รูปตัด 1, รูปตัด 2', 2063, 3, 28), + (3, 'LP3-WO-ST-112', 'รูปตัด 3, รูปตัด 4', 2063, 3, 29), + (3, 'LP3-WO-ST-121', 'รูปด้าน 1, รูปด้าน 3', 2063, 3, 30), + (3, 'LP3-WO-ST-122', 'วูบด้าน 2, รูปด้าน 4', 2063, 3, 31), + (3, 'LP3-WO-ST-201', 'สยายรายละเอียดงานโครงสร้าง แผ่นที่', 2063, 3, 32), + (3, 'LP3-WO-ST-202', 'สยายรายละเอียคราบโครงสร้าง แผ่นที่ 2', 2063, 3, 33), + (3, 'LP3-WO-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2063, 3, 34), + (3, 'LP3-WO-ST-204', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4', 2063, 3, 35), + (3, 'LP3-WO-ST-205', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 5', 2063, 3, 36), + (3, 'LP3-WO-ST-206', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 6', 2063, 3, 37), + (3, 'LP3-WO-ST-207', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 7', 2063, 3, 38), + (3, 'LP3-WO-ST-208', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 8', 2063, 3, 39), + (3, 'LP3-WO-ST-209', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 9', 2063, 3, 40), + (3, 'LP3-WO-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2064, 3, 41), + (3, 'LP3-WO-SN-002', 'ตารางแสดงรายการประกอบ', 2064, 3, 42), + (3, 'LP3-WO-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2064, 3, 43), + (3, 'LP3-WO-SN-201', 'แปลนระบบจายน้ำประปา ชั้นที 1', 2064, 3, 44), + (3, 'LP3-WO-SN-202', 'แปลนระบบระบายน้ำเสีย ชั้นที่ 1', 2064, 3, 45), + (3, 'LP3-WO-SN-203', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1', 2064, 3, 46), + (3, 'LP3-WO-SN-204', 'แปลนระบบระบายน้ำฝน ชั้นหลังคา', 2064, 3, 47), + (3, 'LP3-WO-SN-301', 'ขยายห้องน้ำ', 2064, 3, 48), + (3, 'LP3-WO-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2064, 3, 49), + (3, 'LP3-WO-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2064, 3, 50), + (3, 'LP3-WO-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2064, 3, 51), + (3, 'LP3-WO-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2065, 3, 52), + (3, 'LP3-WO-HV-101', 'รายการวัสดุและอุปกรณ์ 1/2', 2065, 3, 53), + (3, 'LP3-WO-HV-102', 'รายการวัสดุและอุปกรณ์ 2/2', 2065, 3, 54), + (3, 'LP3-WO-HV-201', 'แปลนระบบปรับอากาศ ชั้น 1', 2065, 3, 55), + (3, 'LP3-WO-HV-202', 'แปลนระบบระบายอากาศ ชั้น 1', 2065, 3, 56), + (3, 'LP3-WO-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2065, 3, 57), + (3, 'LP3-WO-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2065, 3, 58), + (3, 'LP3-WO-EE-001', 'สารบัญ', 2066, 3, 59), + (3, 'LP3-WO-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2066, 3, 60), + (3, 'LP3-WO-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2066, 3, 61), + (3, 'LP3-WO-EE-004', 'สัญลักษณ์ตารางโคม', 2066, 3, 62), + (3, 'LP3-WO-EE-101', 'ตารางเหลดไฟฟ้าและไรเซอร์ไดอะแกรมระบบสื่อสาร', 2066, 3, 63), + (3, 'LP3-WO-EE-201', 'แบลน์โคมไฟ ชั้นที่ 1', 2066, 3, 64), + (3, 'LP3-WO-EE-301', 'แปลนเต้ารับไฟฟ้า โทรศัพท์/คอมพิวเตอร์ ชั้น 1', 2066, 3, 65), + (3, 'LP3-WO-EE-401', 'รายละเอียดการติดตั้งระบบป้องกันฟ้าผ่าและกราวด', 2066, 3, 66), + (3, 'LP3-WO-EE-501', 'แบลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ขึ้น 1', 2066, 3, 67), + (3, 'LP3-WO-EE-601', 'รายละเอียดการติดตั้งระบบโทรทัศน์วงจรปิด ชิ้นที่ 1', 2066, 3, 68), + (3, 'LP3-WO-EE-701', 'รายละเอียดการติดตั้ง แผ่นที่ 1', 2066, 3, 69), + (3, 'LP3-WO-EE-702', 'รายละเอียดการติดตั้ง แผ่นที่ 2', 2066, 3, 70), + (3, 'LP3-WO-EE-703', 'รายละเอียดการติดตั้ง แผ่นที่ 3', 2066, 3, 71), + (3, 'LP3-WO-EE-704', 'รายละเอียดการติดตั้ง แผ่นที่ 4', 2066, 3, 72), + (3, 'LP3-WO-EE-705', 'รายละเอียดการติดตั้ง แผ่นที่ 5', 2066, 3, 73), + (3, 'LP3-TS-AR-001', 'สารบัญ', 2067, 3, 1), + (3, 'LP3-TS-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2067, 3, 2), + (3, 'LP3-TS-AR-003', 'ผังแม่บทท่าเรือชั้นที่ 3', 2067, 3, 3), + (3, 'LP3-TS-AR-004', 'ผังบริเวณอาคาร', 2067, 3, 4), + (3, 'LP3-TS-AR-101', 'แปลนพื้นชั้นที 1, แปลนพื้นชั้นระดับ +0.15, แปลนหลังคา, แปลนผ้าเพดาน', 2067, 3, 5), + (3, 'LP3-TS-AR-201', 'รูปด้าน 1, 2, 3, 4 รูปตัด A, 8,', 2067, 3, 6), + (3, 'LP3-TS-AR-401', 'อยายบันได ST-01,ธยายรั้วกั้นหม้อแปลงไฟฟ้า', 2067, 3, 7), + (3, 'LP3-TS-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าตาง', 2067, 3, 8), + (3, 'LP3-TS-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2068, 3, 9), + (3, 'LP3-TS-ST-002', 'ข้อกำหนดทั่วไป', 2068, 3, 10), + (3, 'LP3-TS-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2068, 3, 11), + (3, 'LP3-TS-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2068, 3, 12), + (3, 'LP3-TS-ST-101', 'ผังโครงสร้างอาคาร', 2068, 3, 13), + (3, 'LP3-TS-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2068, 3, 14), + (3, 'LP3-TS-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2068, 3, 15), + (3, 'LP3-TS-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2068, 3, 16), + (3, 'LP3-TS-ST-204', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4', 2068, 3, 17), + (3, 'LP3-TS-ST-205', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 5', 2068, 3, 18), + (3, 'LP3-TS-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2069, 3, 19), + (3, 'LP3-TS-SN-002', 'ตารางแสดงรายการประกอบ', 2069, 3, 20), + (3, 'LP3-TS-SN-101', 'ไดอะแกรมระบบระบายน้ำฝน', 2069, 3, 21), + (3, 'LP3-TS-SN-201', 'แปลนระบบสุขาภิบาล ชั้นที่ 1 และชั้นหลังคา', 2069, 3, 22), + (3, 'LP3-TS-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป', 2069, 3, 23), + (3, 'LP3-TS-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2070, 3, 24), + (3, 'LP3-TS-HV-101', 'รายการวัสดุและอุปกรณ์', 2070, 3, 25), + (3, 'LP3-TS-HV-201', 'แบลนระบบระบายอากาศ ชิ้น 1', 2070, 3, 26), + (3, 'LP3-TS-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2070, 3, 27), + (3, 'LP3-TS-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2070, 3, 28), + (3, 'LP3-TS-EE-001', 'สารบัญ', 2071, 3, 29), + (3, 'LP3-TS-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2071, 3, 30), + (3, 'LP3-TS-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2071, 3, 31), + (3, 'LP3-TS-EE-004', 'สัญลักษณ์โคมไฟ', 2071, 3, 32), + (3, 'LP3-TS-EE-101', 'SINGLE LINE DIAGRAM', 2071, 3, 33), + (3, 'LP3-TS-EE-102', 'LOW VOLTAGE MAIN SINGLE LINE DIAGRAM', 2071, 3, 34), + (3, 'LP3-TS-EE-103', 'ไรเซอร์ไดอะแกรม และตารางโหลดไฟฟ้า', 2071, 3, 35), + (3, 'LP3-TS-EE-201', 'แปลนโคมไฟ/เต้ารับไฟฟ้า/กล้องโทรทัศน์วงจรปิด', 2071, 3, 36), + (3, 'LP3-TS-EE-401', 'รายละเอียดการติดตั้งระบบป้องกันฟ้าผ่าและระบบกราวด', 2071, 3, 37), + (3, 'LP3-TS-EE-501', 'แปลนแจ้งเหตุเพลิงไหม้', 2071, 3, 38), + (3, 'LP3-TS-EE-701', 'รายละเอียดการติดตั้ง แผ่นที่ 1', 2071, 3, 39), + (3, 'LP3-TS-EE-702', 'รายละเอียดการติดตั้ง แผ่นที่ 2', 2071, 3, 40), + (3, 'LP3-TS-EE-703', 'รายละเอียดการติดตั้ง แผ่นที่ 3', 2071, 3, 41), + (3, 'LP3-TS-EE-704', 'รายละเอียดการติดตั้ง แผ่นที่ 4', 2071, 3, 42), + (3, 'LP3-TS-EE-705', 'รายละเอียดการติดตั้ง แผ่นที่ 5', 2071, 3, 43), + (3, 'LP3-TS-EE-706', 'รายละเอียดการติดตั้ง แผ่นที่ 6', 2071, 3, 44), + (3, 'LP3-TS-EE-707', 'รายละเอียดการติดตั้ง แผ่นที่ 7', 2071, 3, 45), + (3, 'LP3-TS-EE-708', 'รายละเอียดการติดตั้ง แผ่นที่ 8', 2071, 3, 46), + (3, 'LP3-TS-EE-709', 'รายละเอียดการติดตั้ง แผ่นที่ 9', 2071, 3, 47), + (3, 'LP3-TS-EE-710', 'รายละเอียดการติดตั้ง แผ่นที่ 10', 2071, 3, 48), + (3, 'LP3-GN-GN-001', 'สารบัญหมวดงานท่าเทียบเรือ', 2072, 4, 1), + (3, 'LP3-CT-ST-001', 'ผังโครงสร้างหน้าท่า', 2072, 4, 2), + (3, 'LP3-CT-ST-002', 'ขยายผังโครงสร้างหน้าท่า แผ่นที่ 1', 2072, 4, 3), + (3, 'LP3-CT-ST-003', 'ขยายผังโครงสร้างหน้าท่า แผนที่ 2', 2072, 4, 4), + (3, 'LP3-CT-ST-004', 'รูปตัดหน้าท่า A', 2072, 4, 5), + (3, 'LP3-CT-ST-005', 'รูปตัดหน้าท่า B', 2072, 4, 6), + (3, 'LP3-CT-ST-006', 'แปลนเสาเข็ม', 2072, 4, 7), + (3, 'LP3-CT-ST-007', 'แปลนคาน', 2072, 4, 8), + (3, 'LP3-CT-ST-008', 'ขยายระบายน้ำ', 2072, 4, 9), + (3, 'LP3-CT-ST-009', 'รายละเอียดเสริมเหล็กหัวเสาเข็ม', 2072, 4, 10), + (3, 'LP3-CT-ST-010', 'รายละเอียดเสริมเหล็กคาน', 2072, 4, 11), + (3, 'LP3-CT-ST-011', 'รายละเอียดเสริมเหล็กพื้น', 2072, 4, 12), + (3, 'LP3-CT-ST-012', 'ขยายรอยต่อโครงสร้างหน้าท่า', 2072, 4, 13), + (3, 'LP3-CT-ST-013', 'รายละเอียดเสริมเหล็กชิ้นส่วนคอนกรีต', 2072, 4, 14), + (3, 'LP3-CT-ST-014', 'รายละเอียดยางกันกระแทกและหลักผูกเรือ', 2072, 4, 15), + (3, 'LP3-CT-ST-015', 'รายละเอียดชอบคันดิน', 2072, 4, 16), + (3, 'LP3-CT-ST-016', 'รายละเอียดรางเครน', 2072, 4, 17), + (3, 'LP3-CT-ST-017', 'รูปตัด REVETMENT TYPE C', 2072, 4, 18), + (3, 'LP3-CT-CY-001', 'ผังแสดงพื้นผิวลาน', 2073, 4, 19), + (3, 'LP3-CT-CY-002', 'รายละเอียดพื้นผิวลาน', 2073, 4, 20), + (3, 'LP3-CT-CY-003', 'TRANSTAINER AND STACKING LAYOUT', 2073, 4, 21), + (3, 'LP3-CT-CY-004', 'รูปตัด A-A', 2073, 4, 22), + (3, 'LP3-CT-CY-005', 'รูปตัด 8-8', 2073, 4, 23), + (3, 'LP3-CT-CY-006', 'รูปตัด C-C', 2073, 4, 24), + (3, 'LP3-CT-CY-007', 'TRANSTAINER AND TURNING POINT PLAN', 2073, 4, 25), + (3, 'LP3-CT-CY-008', 'STACKING DETAILS', 2073, 4, 26), + (3, 'LP3-SB-ST-001', 'ผิงท่าเรือบริการ', 2074, 4, 27), + (3, 'LP3-SB-ST-002', 'รูปตัด A', 2074, 4, 28), + (3, 'LP3-SB-ST-003', 'รูปตัด 8', 2074, 4, 29), + (3, 'LP3-SB-ST-004', 'แปลนเสาเข็ม', 2074, 4, 30), + (3, 'LP3-SB-ST-005', 'แปลขคาน', 2074, 4, 31), + (3, 'LP3-SB-ST-006', 'รายละเอียดเสริมเหล็กหัวเสาเข็ม', 2074, 4, 32), + (3, 'LP3-SB-ST-007', 'รายละเอียดเสริมเหล็กคาน', 2074, 4, 33), + (3, 'LP3-SB-ST-008', 'รายละเอียดเสริมเหล็กพื้น', 2074, 4, 34), + (3, 'LP3-SB-ST-009', 'รายละเอียดรอยต่อหน้าท่าเรือบริการ', 2074, 4, 35), + (3, 'LP3-SB-ST-010', 'รายละเอียดเสริมเหล็กชิ้นส่วนคอนกรีต', 2074, 4, 36), + (3, 'LP3-SB-ST-011', 'รายละเอียดยางกันกระแทกและบันได', 2074, 4, 37), + (3, 'LP3-SB-ST-012', 'รายละเอียดขอบคันหิน และหลักผูกเรือ', 2074, 4, 38), + (3, 'LP3-SB-ST-013', 'กำแพงกันดิน แผ่นที่ 1', 2074, 4, 39), + (3, 'LP3-SB-ST-014', 'กำแพงกันดิน แผ่นที่ 2', 2074, 4, 40), + (3, 'LP3-SB-ST-015', 'กำแพงกันดิน แผ่นที่ 3', 2074, 4, 41), + (3, 'LP3-SB-ST-016', 'กำแพงกันดิน แผ่นที่ 4', 2074, 4, 42), + (3, 'LP3-SB-ST-017', 'รายละเอียดถนน แผนที่ 1', 2074, 4, 43), + (3, 'LP3-SB-ST-018', 'รายละเอียดถนน แผนที่ 2', 2074, 4, 44), + (3, 'LP3-SB-ST-019', 'รูปตัด REVETMENT TYPE E', 2074, 4, 45), + (3, 'LP3-DW-CP-001', 'ผังระบบระบายน้ำ (แผ่นที่1/2)', 2075, 4, 46), + (3, 'LP3-DW-CP-002', 'ผังระบบระบายน้ำ (แผ่นที่2/2)', 2075, 4, 47), + (3, 'LP3-DW-CP-003', 'ขนาดและรายละเอียดการเสริมเหล็กสำหรับท่อกลม', 2075, 4, 48), + (3, 'LP3-DW-CP-004', 'การขุดวางท่อระบายน้ำ การรองพื้นท่อ และการต่อท่อสำหรับท่อกลม', 2075, 4, 49), + (3, 'LP3-DW-CP-005', 'มาตรฐานท่อระบายน้ำ สำหรับท่อกลม', 2075, 4, 50), + (3, 'LP3-DW-CP-006', 'ท่อ คสล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ผิวจราจรวัสดุถมน้อยกว่า 0.60', 2075, 4, 51), + (3, 'LP3-DW-CP-007', 'ท่อ คสล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ผิวจราจรวัสดุถมระหว่าง 0.60 ถึง 3.0', 2075, 4, 52), + (3, 'LP3-DW-CP-008', 'ท่อ คสล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ทางเท้าวัสดุถมระหว่าง 0.60 ถึง 3.00', 2075, 4, 53), + (3, 'LP3-DW-CP-009', 'การขุดวางท่อระบายน้ำ การของพื้นท่อและการต่อท่อ สำหรับท่อเหลี่ยม', 2075, 4, 54), + (3, 'LP3-DW-CP-010', 'มาตรฐานบ่อพักระบายน้ำสำหรับเชื่อมต่อท่อเหลี่ยม', 2075, 4, 55), + (3, 'LP3-TS-EE-001a', 'SINGLE LINE DIAGRAM', 2076, 4, 56), + (3, 'LP3-TS-EE-002a', 'SINGLE LINE DIAGRAM FOR UNIT SUBSTATION', 2076, 4, 57), + (3, 'LP3-TS-EE-003a', 'แนวสายใต้ดินหน้าท่าเรือชายฝั่ง', 2076, 4, 58), + (3, 'LP3-TS-EE-004a', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2076, 4, 59), + (3, 'LP3-TS-EE-005a', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2076, 4, 60), + (3, 'LP3-TS-EE-006a', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2076, 4, 61), + (3, 'LP3-TS-EE-007a', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2076, 4, 62), + (3, 'LP3-GN-LD-A1-A5', 'สารบัญ', 2077, 5, 0), + (3, 'LP3-GN-LO-001', 'แผนที่แสดงที่ตั้งโครงการ', 2077, 5, 1), + (3, 'LP3-GN-AB-001', 'อักษรย่อและสัญญลักษณ์', 2077, 5, 2), + (3, 'LP3-GN-LA-001a', 'แสดงแผนผังทั่วไป (บริเวณชุมชนบ้านแหลม)', 2077, 5, 3), + (3, 'LP3-GN-LA-002a', 'แสดงแผนผังทั่วไป (บริเวณทางแยกต่างระดับโซน A)', 2077, 5, 4), + (3, 'LP3-GN-LA-003a', 'แสดงแผนผังทั่วไป (บริเวณทางเข้าประตู 2)', 2077, 5, 5), + (3, 'LP3-GN-LA-004a', 'แสดงแผนผังทั่วไป (บริเวณทางเข้าประตู 4)', 2077, 5, 6), + (3, 'LP3-GN-LA-005a', 'แสดงแผนผังทั่วไป (บริเวณทางเข้าประตู 5 ท่าเทียบเรือ E และ F) (1/3)', 2077, 5, 7), + (3, 'LP3-GN-LA-006a', 'แสดงแผนฝังทั่วไป (บริเวณทางเข้าประตู 5 ท่าเทียบเรือ E และ F) (2/3)', 2077, 5, 8), + (3, 'LP3-GN-LA-007a', 'แสดงแผนผังทั่วไป (บริเวณทางเข้าประตู 5 ท่าเทียบเรือ E และ F) (3/3)', 2077, 5, 9), + (3, 'LP3-HW-TS-001', 'รูปตัดทั่วไปถนนบริเวณชุมชนบ้านแหลม (1/3)', 2078, 5, 10), + (3, 'LP3-HW-TS-002', 'รูปตัดทั่วไปถนนบริเวณชุมชนบ้านแหลม (2/3)', 2078, 5, 11), + (3, 'LP3-HW-TS-003', 'รูปตัดทั่วไปถนนปริเวณชุมชนบ้านแหลม (3/3)', 2078, 5, 12), + (3, 'LP3-HW-TS-004', 'รูปตัดทั่วไปถนนบริเวณทางแยกต่างระดับ A (1/3)', 2078, 5, 13), + (3, 'LP3-HW-TS-005', 'รูปตัดทั่วไปถนนบริเวณทางแยกต่างระดับ A (2/3)', 2078, 5, 14), + (3, 'LP3-HW-TS-006', 'รูปตัดทั่วไปถนนบริเวณทางแยกต่างระดับ A (3/3)', 2078, 5, 15), + (3, 'LP3-HW-TS-007', 'รูปตัดทั่วไปถนนบริเวณทางเข้าประตู 2 (1/3)', 2078, 5, 16), + (3, 'LP3-HW-TS-008', 'รูปตัดทั่วไปถนนบริเวณทางเข้าประตู 2 (2/3)', 2078, 5, 17), + (3, 'LP3-HW-TS-009', 'รูปตัดทั่วไปถนนทางบริเวณเข้าประตู 2 (3/3)', 2078, 5, 18), + (3, 'LP3-HW-TS-010', 'รูปตัดทั่วไปถนนบริเวณทางเข้าประตู 4', 2078, 5, 19), + (3, 'LP3-HW-TS-011', 'รูปตัดทั่วไปถนนสาย RN-2 กม. 0+650.000', 2078, 5, 20), + (3, 'LP3-HW-TS-012', 'รูปตัดทั่วไปถนนสาย RN-2 กม. 0+800.000', 2078, 5, 21), + (3, 'LP3-HW-TS-013', 'รูปตัดทั่วไปถนนสาย RN-2 กม. 0+900.000', 2078, 5, 22), + (3, 'LP3-HW-TS-014', 'รูปตัดทั่วไปถนนสาย RN-2 กม. 2+000.000', 2078, 5, 23), + (3, 'LP3-HW-TS-015', 'รูปตัดทั่วไปถนนสาย RN-2 LT. กม. 0+200.000', 2078, 5, 24), + (3, 'LP3-HW-TS-016', 'รูปตัดทั่วไปถนนสาย RN-2 LT. กม. 0+475.000', 2078, 5, 25), + (3, 'LP3-HW-TS-017', 'รูปตัดทั่วไปถนนสาย RN-2 LT. กม. 0+500.000', 2078, 5, 26), + (3, 'LP3-HW-TS-018', 'รูปตัดทั่วไปถนนสาย RN-3 กม. 0+350.000', 2078, 5, 27), + (3, 'LP3-HW-TS-019', 'รูปตัดทั่วไปถนนสาย RN-3 กม. 0+725.000', 2078, 5, 28), + (3, 'LP3-HW-TS-020', 'รูปตัดทั่วไปถนนสาย RN-3 กม. 1+300.000', 2078, 5, 29), + (3, 'LP3-HW-TS-021', 'รูปตัดทั่วไปถนนสาย RN-4 กม. 0+200.000 และ กม. 0+400.000', 2078, 5, 30), + (3, 'LP3-HW-TS-022', 'รูปตัดทั่วไปถนนสาย RN-5 กม. 0+350.000 และ กม. 0+800.000', 2078, 5, 31), + (3, 'LP3-HW-TS-023', 'รูปตัดทั่วไปถนนสาย RN-5 กม. 1+075.000 และ กม. 1+400,000', 2078, 5, 32), + (3, 'LP3-HW-TS-024', 'รูปตัดทั่วไปถนนสาย RN-5 กม. 1+800.000 และ กม. 1+900.000', 2078, 5, 33), + (3, 'LP3-HW-TS-025', 'รูปตัดทั่วไปถนนสาย RN-5 กม.2+100.000', 2078, 5, 34), + (3, 'LP3-HW-TS-026', 'รูปตัดทั่วไปถนนสาย RN-6 กม.2+300.000', 2078, 5, 35), + (3, 'LP3-HW-TS-027', 'รูปตัดทั่วไปถนนสาย RN-6 กม.3+500.000', 2078, 5, 36), + (3, 'LP3-HW-TS-028', 'รูปตัดทั่วไปถนนสาย RN-1 กม. 0+550.000 และ กม.0+900.000', 2078, 5, 37), + (3, 'LP3-HW-TS-029', 'รูปตัดทั่วไปถนนสาย RN-1 กม. 1+000,000 และ กม.1+050.000', 2078, 5, 38), + (3, 'LP3-HW-TS-030', 'รูปตัดทั่วไปถนนสาย RN-7 กม. 0+050.000 และ กม.0+150.000', 2078, 5, 39), + (3, 'LP3-HW-SO-001', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (1/7)', 2079, 5, 40), + (3, 'LP3-HW-SO-002', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (2/7)', 2079, 5, 41), + (3, 'LP3-HW-SO-003', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (3/7)', 2079, 5, 42), + (3, 'LP3-HW-SO-004', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (4/7)', 2079, 5, 43), + (3, 'LP3-HW-SO-005', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (5/7)', 2079, 5, 44), + (3, 'LP3-HW-SO-006', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (6/7)', 2079, 5, 45), + (3, 'LP3-HW-SO-007', 'ตารางแสดงข้อมูลแนวเส้นทาง (SETTING OUT DATA) (7/7)', 2079, 5, 46), + (3, 'LP3-PP-BL-001', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 7 กม. 0+000.000 ถึง 0+700.000', 2080, 5, 47), + (3, 'LP3-PP-BL-002', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 7 กม.0+700.000 ถึง 1+379,200', 2080, 5, 48), + (3, 'LP3-PP-BL-003', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 8 กม. 0+000.000 ถึง 0+700.000', 2080, 5, 49), + (3, 'LP3-PP-BL-004', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 8 กม. 0+700,000 ถึง 1+400.000', 2080, 5, 50), + (3, 'LP3-PP-BL-005', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 8 กม. 1+400,000 ถึง 1+607.630', 2080, 5, 51), + (3, 'LP3-PP-IA-001', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานต่างระดับขาที่ 1 กม. 0+000,000 ถึง 0+400.000', 2081, 5, 52), + (3, 'LP3-PP-IA-002', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานต่างระดับขาที่ 1 กม. 0+400.000 ถึง 0+873.690', 2081, 5, 53), + (3, 'LP3-PP-IA-003', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานต่างระดับขาที่ 3 กม. 0+000,000 ถึง 0+600.000', 2081, 5, 54), + (3, 'LP3-PP-IA-004', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานต่างระดับขาที่ 3 กม. 0+600.000 ถึง 0+772.212', 2081, 5, 55), + (3, 'LP3-PP-IA-005', 'แปลนและรูปตัดตามยาวถนนสาย RN-8 และถนน U-TURN AT GRADE กม.0+000.000 ถึง 0+275,950', 2081, 5, 56), + (3, 'LP3-PP-G2-001', 'แปลนและรูปตัดตามยาวถนนบริการ กม. 0+000,000 ถึง 0+596.452', 2082, 5, 57), + (3, 'LP3-PP-G2-002', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานกลับรถ 1 กม. 0+000.000 ถึง 0-691.487', 2082, 5, 58), + (3, 'LP3-PP-G2-003', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานกลับรถ 3 กม. 0+000.000 ถึง 0+700.000', 2082, 5, 59), + (3, 'LP3-PP-G2-004', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานกลับรถ 3 กม. 0+700,000 ถึง 0+751.290', 2082, 5, 60), + (3, 'LP3-PP-G2-005', 'แปลนและรุปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 9 กม. 0+000.000 ถึง 0+700.000', 2082, 5, 61), + (3, 'LP3-PP-G2-006', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 9 กม. 0+700.000 ถึง 0+804.604', 2082, 5, 62), + (3, 'LP3-PP-G2-007', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 11 กม. 0+000.000 ถึง 0+605.226', 2082, 5, 63), + (3, 'LP3-PP-G4-001', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 3 กม.0+000.000 ถึง 0+700.000', 2083, 5, 64), + (3, 'LP3-PP-G4-002', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 3 กม.0+700.000 ถึง 0+769.533', 2083, 5, 65), + (3, 'LP3-PP-G4-003', 'แปลนและรูปตัดตามยาวถนน U-TURN กม.0+000.000 ถึง 0+617.450', 2083, 5, 66), + (3, 'LP3-PP-RN2-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 กม. 0+000,000 ถึง 0+500.000', 2084, 5, 67), + (3, 'LP3-PP-RN2-002', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 กม. 0+500.000 ถึง 1+200.000', 2084, 5, 68), + (3, 'LP3-PP-RN2-003', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 กม. 1+200.000 ถึง 1+900.000', 2084, 5, 69), + (3, 'LP3-PP-RN2-004', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 กม. 1+900.000 ถึง 2+600.000', 2084, 5, 70), + (3, 'LP3-PP-RN2-005', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 กม. 2+600.000 ถึง 2+806.000', 2084, 5, 71), + (3, 'LP3-PP-RN2-006', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 LT. กม. 0+000.000 ถึง 0-650.000', 2085, 5, 72), + (3, 'LP3-PP-RN2-007', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 LT. กม. 0+000.000 ถึง 0+500.000', 2086, 5, 73), + (3, 'LP3-PP-RN2-008', 'แปลนและรูปตัดตามยาวถนนสาย RN-2 LT. กม. 0+500,000 ถึง 0-716.060', 2086, 5, 74), + (3, 'LP3-PP-OP4-001', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 4 กม. 0+000,000 ถึง 0+700.000', 2087, 5, 75), + (3, 'LP3-PP-OP4-002', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 4 กม. 0+700.000 ถึง 1+144.496', 2087, 5, 76), + (3, 'LP3-PP-RN1-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-1 กม. 0+000,000 ถึง 0+700.000', 2088, 5, 77), + (3, 'LP3-PP-RN1-002', 'แปลนและรูปตัดตามยาวถนนสาย RN-1 กม. 0+700,000 ถึง 1+768.762', 2088, 5, 78), + (3, 'LP3-PP-RN3-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 0+000,000 ถึง 0+400.000', 2089, 5, 79), + (3, 'LP3-PP-RN3-002', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 0+400.000 ถึง 1+100.000', 2089, 5, 80), + (3, 'LP3-PP-RN3-003', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 1+100.000 ถึง 1+800.000', 2089, 5, 81), + (3, 'LP3-PP-RN3-004', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 1+800,000 ถึง 2+205.676', 2089, 5, 82), + (3, 'LP3-PP-RN3-005', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 LT.-1 กม. 0+000,000 ถึง 0+500.000', 2090, 5, 83), + (3, 'LP3-PP-RN3-006', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 LT.-1 กม. 0+500.000 ถึง 1+200.000', 2090, 5, 84), + (3, 'LP3-PP-RN3-007', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 LT.-1 กม. 1+200.000 ถึง 1+527.887', 2090, 5, 85), + (3, 'LP3-PP-RN3-008', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 LT-2 กม. 0+000,000 ถึง 0+670.530', 2091, 5, 86), + (3, 'LP3-PP-RN3-009', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 0+000,000 ถึง 0+700,000', 2092, 5, 87), + (3, 'LP3-PP-RN3-010', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 0+700,000 ถึง 1+400.000', 2092, 5, 88), + (3, 'LP3-PP-RN3-011', 'แปลนและรูปตัดตามยาวถนนสาย RN-3 กม. 1+400.000 ถึง 2+053.930', 2092, 5, 89), + (3, 'LP3-PP-OP5-001', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 5 กม. 0+000.000 ถึง 0+500.000', 2093, 5, 90), + (3, 'LP3-PP-OP5-002', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 5 กม. 0+500.000 ถึง 1+200.000', 2093, 5, 91), + (3, 'LP3-PP-OP5-003', 'แปลนและรูปตัดตามยาวถนนเชื่อมต่อสะพานยกระดับ 5 กม. 1+200.000 ถึง 1+491.883', 2093, 5, 92), + (3, 'LP3-PP-RN4-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 0+000.000 ถึง 0+500.000', 2094, 5, 93), + (3, 'LP3-PP-RN4-002', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 0+500.000 ถึง 1+200.000', 2094, 5, 94), + (3, 'LP3-PP-RN4-003', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 1+200.000 ถึง 1+900.000', 2094, 5, 95), + (3, 'LP3-PP-RN4-004', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 1+900.000 ถึง 2+600.000', 2094, 5, 96), + (3, 'LP3-PP-RN4-005', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 2+600.000 ถึง 3+300.000', 2094, 5, 97), + (3, 'LP3-PP-RN4-006', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 3+300.000 ถึง 4+000.000', 2094, 5, 98), + (3, 'LP3-PP-RN4-007', 'แปลนและรูปตัดตามยาวถนนสาย RN-4 กม. 4+000.000 ถึง 4+406.126', 2094, 5, 99), + (3, 'LP3-PP-RN5-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-5 กม. 0+000.000 ถึง 0+600.000', 2095, 5, 100), + (3, 'LP3-PP-RN5-002', 'แปลนและรูปตัดตามยาวถนนสาย RN-5 กม. 0+600.000 ถึง 1+300.000', 2095, 5, 101), + (3, 'LP3-PP-RN5-003', 'แปลนและรูปตัดตามยาวถนนสาย RN-5 กม. 1+300.000 ถึง 2+000.000', 2095, 5, 102), + (3, 'LP3-PP-RN5-004', 'แปลนและรูปตัดตามยาวถนนสาย RN-5 กม. 2+000.000 ถึง 2+175.458', 2095, 5, 103), + (3, 'LP3-PP-RN6-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 LT กม. 0+000,000 ถึง 0+700.000', 2096, 5, 104), + (3, 'LP3-PP-RN6-002', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 LT กม. 0+700.000 ถึง 1+400.000', 2096, 5, 105), + (3, 'LP3-PP-RN6-003', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 LT กม. 1+400.000 ถึง 2+100.000', 2096, 5, 106), + (3, 'LP3-PP-RN6-004', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 LT กม. 2+100.000 ถึง 2+800.000', 2096, 5, 107), + (3, 'LP3-PP-RN6-005', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 LT กม. 2+800.000 ถึง 3+500.000', 2096, 5, 108), + (3, 'LP3-PP-RN6-006', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 LT กม. 3+500.000 ถึง 3+840.254', 2096, 5, 109), + (3, 'LP3-PP-RN6-007', 'แปลนและรูปตัดตามยาวถนน U-TURN เชื่อมต่อถนนสาย RN-6 LT กม. 0+000,000 ถึง 0+529.095', 2096, 5, 110), + (3, 'LP3-PP-RN6-008', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 RT. กม. 0+000,000 ถึง 0+700.000', 2097, 5, 111), + (3, 'LP3-PP-RN6-009', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 RT. กม. 0+700.000 ถึง 1+400.000', 2097, 5, 112), + (3, 'LP3-PP-RN6-010', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 RT. กม. 1+400.000 ถึง 2+100.000', 2097, 5, 113), + (3, 'LP3-PP-RN6-011', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 RT. กม. 2+100.000 ถึง 2+800.000', 2097, 5, 114), + (3, 'LP3-PP-RN6-012', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 RT. กม. 2+800.000 000 ถึง 3+500,000', 2097, 5, 115), + (3, 'LP3-PP-RN6-013', 'แปลนและรูปตัดตามยาวถนนสาย RN-6 RT. กม. 3+500.000 ถึง 3+826.956', 2097, 5, 116), + (3, 'LP3-PP-RN7-001', 'แปลนและรูปตัดตามยาวถนนสาย RN-7 RT. กม. 0+000.000 ถึง 0+274.518', 2098, 5, 117), + (3, 'LP3-GN-INT-001', 'แสดงรายละเอียดเรขาคณิตวงเวียนท่าเทียบเรือ D', 2099, 5, 118), + (3, 'LP3-GN-INT-002', 'แสดงรายละเอียดเรขาคณิตวงเวียนท่าเทียบเรือ E', 2099, 5, 119), + (3, 'LP3-GN-INT-003', 'แสดงรายละเอียดเรขาคณิตทางแยกระดับพื้นประตู 5 และ ถนนเชื่อมต่อ', 2099, 5, 120), + (3, 'LP3-GN-INT-004', 'แสดงรายละเอียดเรขาคณิตวงเวียนและจุดกลับรถท่าเทียบเรือ F', 2099, 5, 121), + (3, 'LP3-GN-TF-001', 'แสดงตำแหน่งการติดตั้งป้ายจราจร (1/4)', 2100, 5, 122), + (3, 'LP3-GN-TF-002', 'แสดงตำแหน่งการติดตั้งป้ายจราจร (2/4)', 2100, 5, 123), + (3, 'LP3-GN-TF-003', 'แสดงตำแหน่งการติดตั้งป้ายจราจร (3/4)', 2100, 5, 124), + (3, 'LP3-GN-TF-004', 'แสดงตำแหน่งการติดตั้งป้ายจราจร (4/4)', 2100, 5, 125), + (3, 'LP3-GN-TF-005', 'แสดงสัญญาณไฟทางแยก ประตู 3', 2100, 5, 126), + (3, 'LP3-GN-TF-006', 'แสดงสัญญาณไฟทางแยก ประตู 5-1', 2100, 5, 127), + (3, 'LP3-GN-TF-007', 'แสดงสัญญาณไฟทางแยก ประตู 5-2', 2100, 5, 128), + (3, 'LP3-GN-UT-001', 'งานรื้อย้ายระบบสาธารณูปโภคชุมชนบ้านแหลม', 2101, 5, 129), + (3, 'LP3-GN-UT-002', 'งานรื้อย้ายระบบสาธารณูปโภคทางแยกต่างระดับ A (1/2)', 2101, 5, 130), + (3, 'LP3-GN-UT-003', 'งานรื้อย้ายระบบสาธารณูปโภคทางแยกต่างระดับ A (2/2)', 2101, 5, 131), + (3, 'LP3-GN-UT-004', 'งานรื้อย้ายระบบสาธารณูปโภคทางเข้าประตู 2 (1/2)', 2101, 5, 132), + (3, 'LP3-GN-UT-005', 'งานรื้อย้ายระบบสาธารณูปโภคทางเข้าประตู 2 (2/2)', 2101, 5, 133), + (3, 'LP3-GN-UT-006', 'งานรื้อย้ายระบบสาธารณูปโภคทางเข้าประตู 4', 2101, 5, 134), + (3, 'LP3-PP-OZ-001', 'แผนผังทั่วไปถนนของทางเข้าออกสำหรับรถขนาดใหญ่', 2102, 5, 135), + (3, 'GD-101', 'SUPERELEVATION ATTAINING AND WIDENING 2-LANE HIGHWAY ON CIRCULAR CURVE', 2103, 5, 331), + (3, 'GD-103', 'SUPERELEVATION ATTAINING AND WIDENING COMPOUND AND REVERSE CURVE', 2103, 5, 332), + (3, 'GD-105', 'SUPERELEVATION ATTAINING AND WIDENING MULTILANE LANE HIGHWAY RAISED MEDIAN ON CIRCULAR CURVE', 2103, 5, 333), + (3, 'GD-201', 'TRAVELLED WAY WIDENING DETAILS FOR WB-19 AND SU-12 DESIGN VEHICLE', 2103, 5, 334), + (3, 'GD-601', 'JOINT REINFORCED CONCRETE PAVEMENT (JRCP) PLAN SECTION AND REINFORCEMENT DETAILS', 2103, 5, 335), + (3, 'GD-602', 'JOINT REINFORCED CONCRETE PAVEMENT (JRCP) DETAILS OF JOINT', 2103, 5, 336), + (3, 'GD-603', 'JOINT REINFORCED CONCRETE PAVEMENT (JRCP) DETAILS OF JOINT AT MANHOLE', 2103, 5, 337), + (3, 'GD-607', 'PAVEMENT TRANSITION DETAILS', 2103, 5, 338), + (3, 'GD-701', 'PAVEMENT TRANSITION DETAILS TYPICAL SURFACE OVERLAY AND REPAIRING', 2103, 5, 339), + (3, 'GD-703', 'CLEARING AND GRUBBING', 2103, 5, 340), + (3, 'GD-704', 'CONNECTION ROAD DETAILS', 2103, 5, 341), + (3, 'GD-709', 'CONCRETE CURB & CURB AND GUTTER', 2103, 5, 342), + (3, 'RS-101', 'MINOR ROAD SIGN & SIGN POST DETAILS', 2103, 5, 343), + (3, 'RS-201', 'TRAFFIC MARKING MARKING DETAILS-1', 2103, 5, 344), + (3, 'RS-202', 'TRAFFIC MARKING MARKING DETAILS-II', 2103, 5, 345), + (3, 'RS-203', 'TRAFFIC MARKING ROAD STUD', 2103, 5, 346), + (3, 'RS-301', 'TRAFFIC CONTROL DEVICE FOR HIGHWAY UNDER CONSTRUCTION TRAFFIC SIGN AND DEVICES-I', 2103, 5, 347), + (3, 'RS-302', 'TRAFFIC CONTROL DEVICE FOR HIGHWAY UNDER CONSTRUCTION TRAFFIC SIGN AND DEVICES-II', 2103, 5, 348), + (3, 'RS-303', 'TRAFFIC CONTROL DEVICE FOR HIGHWAY UNDER CONSTRUCTION INSTALLATION GUIDELINE-1', 2103, 5, 349), + (3, 'RS-304', 'TRAFFIC CONTROL DEVICE FOR HIGHWAY UNDER CONSTRUCTION INSTALLATION GUIDELINE-II', 2103, 5, 350), + (3, 'RS-305', 'TRAFFIC CONTROL DEVICE FOR HIGHWAY UNDER CONSTRUCTION INSTALLATION GUIDELINE-III', 2103, 5, 351), + (3, 'RS-401', 'OVERHEAD AND OVERHANG SIGN INSTALLATION', 2103, 5, 352), + (3, 'RS-402', 'INSTALLATION OF OVERHEAD SIGN & TRAFFIC SIGN ON BRIDGE BARRIER', 2103, 5, 353), + (3, 'RS-403', 'OVERHEAD TRAFFIC SIGN SIGN BOARD DETAILS', 2103, 5, 354), + (3, 'RS-404', 'OVERHEAD TRAFFIC SIGN STEEL FRAME FOR MOUNTING WIDTH < 18.00 Μ.', 2103, 5, 355), + (3, 'RS-405', 'OVERHEAD TRAFFIC SIGN STEEL FRAME FOR MOUNTING WIDTH < 20.00 M.', 2103, 5, 356), + (3, 'RS-406', 'OVERHEAD TRAFFIC SIGN STEEL FRAME FOR MOUNTING 20.00 WIDTH < 28.00 м.', 2103, 5, 357), + (3, 'RS-407', 'OVERHEAD TRAFFIC SIGN ILLUMINATED SIGN', 2103, 5, 358), + (3, 'RS-501', 'OVERHEAD TRAFFIC SIGN STEEL POLE TYPE I FOR SIGN PLATES NOT MORE THAN 52,800 SO.CM.', 2103, 5, 359), + (3, 'RS-502', 'OVERHEAD TRAFFIC SIGN STEEL POLE TYPE II FOR SIGN PLATES NOT MORE THAN 108,000 SQ.CM.', 2103, 5, 360), + (3, 'RS-503', 'OVERHEAD TRAFFIC SIGN STEEL POLE TYPE III FOR SIGN PLATES NOT MORE THAN 2X52,800 SQ.CM.', 2103, 5, 361), + (3, 'RS-504', 'OVERHANG TRAFFIC SIGN FOOTING DETAILS', 2103, 5, 362), + (3, 'RS-603', 'GUARDRAIL SINGLE W-BEAM GUARDRAIL', 2103, 5, 363), + (3, 'RS-604', 'GUARDRAIL DOUBLE W-BEAM GUARDRAIL', 2103, 5, 364), + (3, 'RS-605', 'GUARDRAIL INSTALLATION AND W-BEAM GUARDRAIL APPROACH TYPE-1', 2103, 5, 365), + (3, 'RS-606', 'GUARDRAIL INSTALLATION AND W-BEAM GUARDRAIL APPROACH TYPE-11', 2103, 5, 366), + (3, 'RS-608', 'CONCRETE BARRIER TYPE', 2103, 5, 367), + (3, 'RS-609', 'CONCRETE BARRIER TYPE II', 2103, 5, 368), + (3, 'RS-611', 'CONCRETE BARRIER PRE-CAST CONCRETE BARRIER TYPE IA', 2103, 5, 369), + (3, 'RS-615', 'CONCRETE BARRIER AT BRIDGE APPROACH', 2103, 5, 370), + (3, 'DS-401', 'DROP INLET IN MEDIAN TYPE A FOR RAISED MEDIAN', 2103, 5, 371), + (3, 'DS-603', 'DROP INLET IN MEDIAN TYPE A FOR R.C. U-DITCH TYPE D & E', 2103, 5, 372), + (3, 'TF-103', 'ROAD TRAFFIC SIGNALS TRAFFIC SIGNAL CONTROLLER AND POLE DETAILS', 2103, 5, 373), + (3, 'TF-104', 'ROAD TRAFFIC SIGNALS TRAFFIC SIGNAL MAST POLE DETAILS', 2103, 5, 374), + (3, 'ถน-402/56', 'มาตรฐานถนนดินซิเมนต์ (1/3)', 2104, 5, 375), + (3, 'ถน-403/56', 'มาตรฐานถนนดินซิเมนต์ (2/3)', 2104, 5, 376), + (3, 'ถน-404/56', 'มาตรฐานถนนดินซีเมนต์ (3/3)', 2104, 5, 377), + (3, 'LP3-ST-GN-001', 'รายการประกอบโครงสร้าง 1/4', 2105, 5, 136), + (3, 'LP3-ST-GN-002', 'รายการประกอบโครงสร้าง 2/4', 2105, 5, 137), + (3, 'LP3-ST-GN-003', 'รายการประกอบโครงสร้าง 3/4', 2105, 5, 138), + (3, 'LP3-ST-GN-004', 'รายการประกอบโครงสร้าง 4/4', 2105, 5, 139), + (3, 'LP3-LA-UT-001', 'แปลนและรูปตัดตามยาวสะพานต่างระดับขาที่ 1-1', 2106, 5, 140), + (3, 'LP3-LA-UT-002', 'แปลนและรูปตัดตามยาวสะพานต่างระดับขาที่ 1-2', 2106, 5, 141), + (3, 'LP3-LA-UT-003', 'แปลนการจัดวางลวดอัดแรงสะพานต่างระดับขาที่ 1', 2106, 5, 142), + (3, 'LP3-LA-UT-004', 'แปลนและรูปตัดตามยาวสะพานต่างระดับขาที่ 3-1', 2106, 5, 143), + (3, 'LP3-LA-UT-005', 'แปลนและรูปตัดตามยาวสะพานต่างระดับขาที่ 3-2', 2106, 5, 144), + (3, 'LP3-LA-UT-006', 'แปลนและรูปตัดตามยาวสะพานต่างระดับขาที่ 3-3', 2106, 5, 145), + (3, 'LP3-LA-UT-007', 'แปลนการจัดวางลวดอัดแรงสะพาน ต่างระดับขาที่ 3', 2106, 5, 146), + (3, 'LP3-LA-UT-008', 'แปลนและรูปตัดตามยาวสะพานกลับรถ 1', 2106, 5, 147), + (3, 'LP3-LA-UT-009', 'แปลนการจัดวางลวดอัดแรงสะพานกลับรถ 1', 2106, 5, 148), + (3, 'LP3-LA-UT-010', 'แปลนและรูปตัดตามยาวสะพานกลับรถ 3', 2106, 5, 149), + (3, 'LP3-LA-UT-011', 'แปลนการจัดวางลวดอัดแรงสะพานกลับรถ 3', 2106, 5, 150), + (3, 'LP3-LA-UT-012', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 3-1', 2106, 5, 151), + (3, 'LP3-LA-UT-013', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 3-2', 2106, 5, 152), + (3, 'LP3-LA-UT-014', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 3', 2106, 5, 153), + (3, 'LP3-LA-UT-015', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 4-1', 2106, 5, 154), + (3, 'LP3-LA-UT-016', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 4-2', 2106, 5, 155), + (3, 'LP3-LA-UT-017', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 4', 2106, 5, 156), + (3, 'LP3-LA-UT-018', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 5', 2106, 5, 157), + (3, 'LP3-LA-UT-019', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 5', 2106, 5, 158), + (3, 'LP3-LA-UT-020', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 6 RT-1', 2106, 5, 159), + (3, 'LP3-LA-UT-021', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 6 RT-2', 2106, 5, 160), + (3, 'LP3-LA-UT-022', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 6 RT', 2106, 5, 161), + (3, 'LP3-LA-UT-023', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 6 LT - 1', 2106, 5, 162), + (3, 'LP3-LA-UT-024', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 6 LT - 2', 2106, 5, 163), + (3, 'LP3-LA-UT-025', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 6 LT', 2106, 5, 164), + (3, 'LP3-LA-UT-026', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 7', 2106, 5, 165), + (3, 'LP3-LA-UT-027', 'แปลนการจัดวางควดอัดแรงสะพานยกระดับ 7', 2106, 5, 166), + (3, 'LP3-LA-UT-028', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 8-1', 2106, 5, 167), + (3, 'LP3-LA-UT-029', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 8-2', 2106, 5, 168), + (3, 'LP3-LA-UT-030', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 9-1', 2106, 5, 169), + (3, 'LP3-LA-UT-031', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 9-2', 2106, 5, 170), + (3, 'LP3-LA-UT-032', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 9', 2106, 5, 171), + (3, 'LP3-LA-UT-033', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 11-1', 2106, 5, 172), + (3, 'LP3-LA-UT-034', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 11-2', 2106, 5, 173), + (3, 'LP3-LA-UT-035', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 11', 2106, 5, 174), + (3, 'LP3-LA-UT-036', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 12', 2106, 5, 175), + (3, 'LP3-LA-UT-037', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 12', 2106, 5, 176), + (3, 'LP3-LA-UT-038', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 12.1-1', 2106, 5, 177), + (3, 'LP3-LA-UT-039', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 12.1-2', 2106, 5, 178), + (3, 'LP3-LA-UT-040', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 12.1', 2106, 5, 179), + (3, 'LP3-LA-UT-041', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 12.2-1', 2106, 5, 180), + (3, 'LP3-LA-UT-042', 'แปลนและรูปตัดตามยาวสะพานยกระดับ 12.2-2', 2106, 5, 181), + (3, 'LP3-LA-UT-043', 'แปลนการจัดวางลวดอัดแรงสะพานยกระดับ 12.2', 2106, 5, 182), + (3, 'LP3-ST-UT-101', 'คอนกรีตอัดแรงรุปตัวไอ TYPE G1 AND G2 DIMENSION AND DETAILS', 2107, 5, 183), + (3, 'LP3-ST-UT-102', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G1 STRANDS ARRANGEMENT', 2107, 5, 184), + (3, 'LP3-ST-UT-103', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G2 STRANDS ARRANGEMENT', 2107, 5, 185), + (3, 'LP3-ST-UT-104', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G1 AND G2 REINFORCEMENT DETAILS', 2107, 5, 186), + (3, 'LP3-ST-UT-105', 'คอนกรีตอัดแรงรูปตัวไอ พื้นสะพานและคานขวางตัวริม (TYPE G1 AND G2)', 2107, 5, 187), + (3, 'LP3-ST-UT-106', 'คอนกรีตอัดแรงรูปตัวไอ พื้นสะพานและการเสริมเหล็ก (TYPE G1 AND G2)', 2107, 5, 188), + (3, 'LP3-ST-UT-107', 'คอนกรีตอัดแรงรูปตัวไอ รอยต่อสะพาน และ ต่อเชื่อมพื้นสะพาน (TYPE G1 AND G2)', 2107, 5, 189), + (3, 'LP3-ST-UT-108', 'คอนกรีตอัดแรงรูปตัวไอ รอยต่อสะพาน และ ต่อเชื่อมพื้นสะพานและการเสริมเหล็ก (TYPE G1 AND G2)', 2107, 5, 190), + (3, 'LP3-ST-UT-109', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G3 DIMENSION AND DETAILS', 2107, 5, 191), + (3, 'LP3-ST-UT-110', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G3 STRANDS ARRANGEMENT', 2107, 5, 192), + (3, 'LP3-ST-UT-111', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G3 REINFORCEMENT DETAILS', 2107, 5, 193), + (3, 'LP3-ST-UT-112', 'คอนกรีตอัดแรงรูปตัวไอ พื้นสะพานและคานขวางตัวริม (TYPE G3)', 2107, 5, 194), + (3, 'LP3-ST-UT-113', 'คอนกรีตอัดแรงรูปตัวไอ พื้นสะพานและการเสริมเหล็ก (TYPE G3)', 2107, 5, 195), + (3, 'LP3-ST-UT-114', 'คอนกรีตอัดแรงรูปตัวไอ รอยต่อสะพาน และ ต่อเชื่อมพื้นสะพาน (TYPE G3)', 2107, 5, 196), + (3, 'LP3-ST-UT-115', 'คอนกรีตอัดแรงรูปตัวไอ รอยต่อสะพาน และ ต่อเชื่อมพื้นสะพาน และการเสริมเหล็ก (TYPE G3)', 2107, 5, 197), + (3, 'LP3-ST-UT-116', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G4 DIMENSION AND DETAILS', 2107, 5, 198), + (3, 'LP3-ST-UT-117', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G4 STRANDS ARRANGEMENT', 2107, 5, 199), + (3, 'LP3-ST-UT-118', 'คอนกรีตอัดแรงรูปตัวไอ TYPE G4 REINFORCEMENT DETAILS', 2107, 5, 200), + (3, 'LP3-ST-UT-119', 'PIER TYPE A COLUMN AND PILE CAP DETAILS', 2107, 5, 201), + (3, 'LP3-ST-UT-120', 'PIER TYPE B COLUMN AND PILE CAP DETAILS', 2107, 5, 202), + (3, 'LP3-ST-UT-121', 'PIER TYPE A COLUMN REINFORCEMENT', 2107, 5, 203), + (3, 'LP3-ST-UT-122', 'PIER TYPE B COLUMN REINFORCEMENT', 2107, 5, 204), + (3, 'LP3-ST-UT-123', 'PIER TYPE A คานขวางหัวเสา REINFORCEMENT', 2107, 5, 205), + (3, 'LP3-ST-UT-124', 'PIER TYPE B ผังลวดขัดแรงคานหัวเสา', 2107, 5, 206), + (3, 'LP3-ST-UT-125', 'PIER TYPE B คานขวางหัวเสา REINFORCEMENT', 2107, 5, 207), + (3, 'LP3-ST-UT-126', 'รายละเอียด PILE CAP REINFORCEMENT TYPE A', 2107, 5, 208), + (3, 'LP3-ST-UT-127', 'รายละเอียด PILE CAP REINFORCEMENT TYPE B', 2107, 5, 209), + (3, 'LP3-ST-UT-128', 'PIER TYPE C COLUMN AND PILE CAP DETAILS', 2107, 5, 210), + (3, 'LP3-ST-UT-129', 'PIER TYPE C COLUMN REINFORCEMENT', 2107, 5, 211), + (3, 'LP3-ST-UT-130', 'PIER TYPE C คานขวางหัวเสา REINFORCEMENT', 2107, 5, 212), + (3, 'LP3-ST-UT-131', 'รายละเอียด PILE CAP REINFORCEMENT TYPE C', 2107, 5, 213), + (3, 'LP3-ST-UT-132', 'แปลนคานคอนกรีตอัดแรงหล่อในที (TYPE D)', 2107, 5, 214), + (3, 'LP3-ST-UT-133', 'PIER TYPE ID (SPAN 15.997 M.) PRESTESSING STEEL', 2107, 5, 215), + (3, 'LP3-ST-UT-134', 'PIER TYPE D (SPAN 17.617 M.) PRESTESSING STEEL', 2107, 5, 216), + (3, 'LP3-ST-UT-135', 'PIER TYPE D (SPAN 18.413 M) PRESTESSING STEEL', 2107, 5, 217), + (3, 'LP3-ST-UT-136', 'PIER TYPE D (SPAN 20.023 M.) PRESTESSING STEEL', 2107, 5, 218), + (3, 'LP3-ST-UT-137', 'PIER TYPE D PRESTESSING STEEL', 2107, 5, 219), + (3, 'LP3-ST-UT-138', 'รายละเอียดการเสริมเหล็ก คานคอนกรีตอัดแรงหล่อในที่ (ตามยาว)', 2107, 5, 220), + (3, 'LP3-ST-UT-139', 'รายละเอียดการเสริมเหล็ก พื้นคอนกรีตอัดแรงหล่อในที่', 2107, 5, 221), + (3, 'LP3-ST-UT-140', 'รายละเอียดการเสริมเหล็ก ด้านปลายยืนรองรับคานตัว I', 2107, 5, 222), + (3, 'LP3-ST-UT-141', 'PIER TYPE D COLUMN REINFORCEMENT', 2107, 5, 223), + (3, 'LP3-ST-UT-142', 'PIER TYPE E COLUMN REINFORCEMENT', 2107, 5, 224), + (3, 'LP3-ST-UT-143', 'PIER TYPE F COLUMN AND PILE CAP DETAILS', 2107, 5, 225), + (3, 'LP3-ST-UT-144', 'PIER TYPE F COLUMN REINFORCEMENT', 2107, 5, 226), + (3, 'LP3-ST-UT-145', 'PIER TYPE F คานขวางหัวเสา REINFORCEMENT', 2107, 5, 227), + (3, 'LP3-ST-UT-146', 'PIER TYPE G COLUMN AND PILE CAP DETAILS - 1', 2107, 5, 228), + (3, 'LP3-ST-UT-147', 'PIER TYPE G COLUMN AND PILE CAP DETAILS - 2', 2107, 5, 229), + (3, 'LP3-ST-UT-148', 'PIER TYPE G COLUMN AND PILE CAP DETAILS - 3', 2107, 5, 230), + (3, 'LP3-ST-UT-149', 'PIER TYPE G COLUMN AND PILE CAP DETAILS - 4', 2107, 5, 231), + (3, 'LP3-ST-UT-150', 'PIER TYPE H (SHEET 1 OF 2)', 2107, 5, 232), + (3, 'LP3-ST-UT-151', 'PIER TYPE H (SHEET 2 OF 2)', 2107, 5, 233), + (3, 'LP3-ST-UT-152', 'ABUTMENT TYPE A DEMENSION AND DETAILS', 2107, 5, 234), + (3, 'LP3-ST-UT-153', 'ABUTMENT TYPE A REINFORCEMENT DETAILS', 2107, 5, 235), + (3, 'LP3-ST-UT-154', 'ABUTMENT TYPE B DEMENSION AND DETAILS', 2107, 5, 236), + (3, 'LP3-ST-UT-155', 'ABUTMENT TYPE B REINFORCEMENT DETAILS', 2107, 5, 237), + (3, 'LP3-ST-UT-156', 'ABUTMENT TYPE C DEMENSION AND DETAILS', 2107, 5, 238), + (3, 'LP3-ST-UT-157', 'ABUTMENT TYPE C REINFORCEMENT DETAILS', 2107, 5, 239), + (3, 'LP3-ST-UT-158', 'แผงกั้น TYPE 1', 2107, 5, 240), + (3, 'LP3-ST-UT-159', 'รายละเอียดพื้นคอนกรีตเชิงลาดสะพาน', 2107, 5, 241), + (3, 'LP3-ST-UT-160', 'แผ่นยางรองคอสะพาน', 2107, 5, 242), + (3, 'LP3-ST-UT-161', 'เสาเข็มเจาะ หลอในที่ขนาด 0.80 M.', 2107, 5, 243), + (3, 'LP3-ST-UT-162', 'เสาเข็มเจาะ หล่อในที่ขนาด 1.20 M.', 2107, 5, 244), + (3, 'LP3-ST-UT-163', 'แปลนระดับกำแพงกันดิน', 2107, 5, 245), + (3, 'LP3-ST-UT-164', 'รายละเอียดเหล็กเสริมกำแพงกันดิน', 2107, 5, 246), + (3, 'LP3-ST-UT-165', 'ทั่วไประบบระบายน้า สำหรับสะพานคอนกรีตอัดแรงรูปตัวไอ', 2107, 5, 247), + (3, 'LP3-ST-UT-166', 'ทั่วไป GULLY AND GRATING', 2107, 5, 248), + (3, 'LP3-ST-UT-167', 'รายละเอียด SUPPORT', 2107, 5, 249), + (3, 'LP3-ST-UT-168', 'รายละเอียด CATCH BASIN', 2107, 5, 250), + (3, 'LP3-ST-UT-169', 'รายละเอียด ฐานราก สำหรับเสาไฟฟ้าบนสะพาน', 2107, 5, 251), + (3, 'LP3-ST-MB-101', 'เขื่อนป้องกันตลิ่ง แผ่นที่ 1', 2108, 5, 252), + (3, 'LP3-ST-MB-102', 'เขื่อนป้องกันตลิ่ง แผ่นที่ 2', 2108, 5, 253), + (3, 'LP3-ST-MB-103', 'สะพานช่วงสั้น STA. 1+301.827', 2108, 5, 254), + (3, 'SB-101', 'มาตรฐานงานโครงสร้างกรมทางหลวง พศ 2558', 2109, 5, 378), + (3, 'SB-102', 'R.C. SLAB BRIDGE O SKEW, PLAN AND SECTION DETAILS', 2109, 5, 379), + (3, 'SB-103', 'R.C. SLAB BRIDGE 125 SKEW PLAN AND SECTION DETAILS', 2109, 5, 380), + (3, 'SB-104', 'R.C. SLAB BRIDGE 2645 SKEW PLAN AND SECTION DETAILS', 2109, 5, 381), + (3, 'SB-105', 'R.C. SLAB BRIDGE TAPERED PLAN AND SECTION DETAILS', 2109, 5, 382), + (3, 'BR-101', 'R.C. SLAB BRIDGE TAPERED PLAN AND SECTION DETAILS, EDGE BEAM REINFORCEMENT TRAFFIC AND PEDESTRIAN BARRIERS REINFORCEMENT DETAILS', 2109, 5, 383), + (3, 'BR-102', 'TRAFFIC AND PEDESTRIAN BARRIERS PRECAST FIN AND RAILING DETAILS', 2109, 5, 384), + (3, 'PL-201', 'PC. PILES 0.40x0.40 M. PILE CAPACITY AND REINFORCEMENT DETAILS', 2109, 5, 385), + (3, 'PL-302', 'SPUN PILE 0.60 M. PILE CAPACITY AND REINFORCEMENT DETAILS', 2109, 5, 386), + (3, 'AP-101', 'APPROACH SLAB 025 SKEW REINFORCEMENT AND POROUS BACKFILL DETAILS', 2109, 5, 387), + (3, 'AP-102', 'APPROACH SLAB 26 15 SKEW REINFORCEMENT AND POROUS BACKFILL DETAILS', 2109, 5, 388), + (3, 'LP3-ED-DN-001', 'แปลนระบบระบายน้าถนน RN-7', 2110, 5, 255), + (3, 'LP3-ED-DN-002', 'แปลนระบบระบายน้ำของทางเข้าออกสำหรับรถขนาดใหญ่', 2110, 5, 256), + (3, 'LP3-ED-DN-003', 'ขนาดและรายละเอียดการเสริมเหล็กสำหรับท่อกลม', 2110, 5, 257), + (3, 'LP3-ED-DN-004', 'การขุดวางท่อ การรองพื้นท่อ และการต่อท่อสำหรับท่อกลม', 2110, 5, 258), + (3, 'LP3-ED-DN-005', 'มาตรฐานบ่อพักท่อระบายน้าสำหรับท่อกลม', 2110, 5, 259), + (3, 'LP3-GN-EE-001', 'งานออกระบบไฟฟ้าส่องสว่างชุมชนบ้านแหลม', 2111, 5, 260), + (3, 'LP3-GN-EE-002', 'งานออกระบบไฟฟ้าส่องสว่างทางแยกต่างระดับ A (1/2)', 2111, 5, 261), + (3, 'LP3-GN-EE-003', 'งานออกระบบไฟฟ้าส่องสว่างทางแยกต่างระดับ A (2/2)', 2111, 5, 262), + (3, 'LP3-GN-EE-004', 'งานออกระบบไฟฟ้าส่องสว่างทางเข้าประตู 2 (1/2)', 2111, 5, 263), + (3, 'LP3-GN-EE-005', 'งานออกระบบไฟฟ้าส่องสว่างทางเข้าประตู 2 (2/2)', 2111, 5, 264), + (3, 'LP3-GN-EE-006', 'งานออกระบบไฟฟ้าส่องสว่างทางเข้าประตู 4', 2111, 5, 265), + (3, 'LP3-GN-EE-007', 'SINGLE DIAGRAM SP1-SP2 ชุมชนบ้านแหลม', 2111, 5, 266), + (3, 'LP3-GN-EE-008', 'SINGLE DIAGRAM SP3-SP4 ชุมชนบ้านแหลม', 2111, 5, 267), + (3, 'LP3-GN-EE-009', 'SINGLE DIAGRAM SP1-SP2 ทางแยกต่างระดับ', 2111, 5, 268), + (3, 'LP3-GN-EE-010', 'SINGLE DIAGRAM SP1-SP2 ทางเข้าประตู 2 (1/2)', 2111, 5, 269), + (3, 'LP3-GN-EE-011', 'SINGLE DIAGRAM SP3 ทางเข้าประตู 2 (2/2)', 2111, 5, 270), + (3, 'LP3-GN-EE-012', 'SINGLE DIAGRAM SP5 ทางเข้าประตู 4', 2111, 5, 271), + (3, 'LP3-UT-EE-701', 'แปลนรวม (KEY PLAN)', 2112, 5, 272), + (3, 'LP3-UT-EE-702', 'สัญลักษณ์ระบบไฟฟ้า', 2112, 5, 273), + (3, 'LP3-UT-EE-703', 'สัญลักษณ์ระบบสื่อสาร', 2112, 5, 274), + (3, 'LP3-UT-EE-704', 'สัญลักษณ์โคมไฟ', 2112, 5, 275), + (3, 'LP3-UT-EE-705', 'ไรเซอร์ไดอะแกรม', 2112, 5, 276), + (3, 'LP3-UT-EE-706', 'SINGLE LINE DIAGRAM แผนที่ 1', 2112, 5, 277), + (3, 'LP3-UT-EE-707', 'SINGLE LINE DIAGRAM แผนที่ 2', 2112, 5, 278), + (3, 'LP3-UT-EE-708', 'SINGLE LINE DIAGRAM แผนที่ 3', 2112, 5, 279), + (3, 'LP3-UT-EE-709', 'SINGLE LINE DIAGRAM แผนที่ 4', 2112, 5, 280), + (3, 'LP3-UT-EE-710', 'SINGLE LINE DIAGRAM แผ่นที่ 5', 2112, 5, 281), + (3, 'LP3-UT-EE-711', 'SINGLE LINE DIAGRAM แผนที่ 6', 2112, 5, 282), + (3, 'LP3-UT-EE-712', 'SINGLE LINE DIAGRAM แผนที่ 7', 2112, 5, 283), + (3, 'LP3-UT-EE-713', 'SINGLE LINE DIAGRAM แผ่นที่ 8', 2112, 5, 284), + (3, 'LP3-UT-EE-714', 'SINGLE LINE DIAGRAM แผ่นที่ 9', 2112, 5, 285), + (3, 'LP3-UT-EE-715', 'SINGLE LINE DIAGRAM แผนที่ 10', 2112, 5, 286), + (3, 'LP3-UT-EE-716', 'แปลน โคมไฟ แผ่นที่ 1', 2112, 5, 287), + (3, 'LP3-UT-EE-717', 'แปลนโคมไฟ แผ่นที่ 2', 2112, 5, 288), + (3, 'LP3-UT-EE-718', 'แปลนโคมไฟ แผ่นที่ 3', 2112, 5, 289), + (3, 'LP3-UT-EE-719', 'แปลนโคมไฟ แผ่นที่ 4', 2112, 5, 290), + (3, 'LP3-UT-EE-720', 'แปลนโคมไฟ แผ่นที่ 5', 2112, 5, 291), + (3, 'LP3-UT-EE-721', 'แปลนโคมไฟ แผ่นที่ 6', 2112, 5, 292), + (3, 'LP3-UT-EE-722', 'แปลน โคมไฟ แผ่นที่ 7', 2112, 5, 293), + (3, 'LP3-UT-EE-723', 'แปลนโคมไฟ แผ่นที่ 8', 2112, 5, 294), + (3, 'LP3-UT-EE-724', 'แปลนโคมไฟ แผ่นที่ 9', 2112, 5, 295), + (3, 'LP3-UT-EE-725', 'แปลนโคมไฟ แผ่นที่ 10', 2112, 5, 296), + (3, 'LP3-UT-EE-726', 'แปลนโคมไฟ แผ่นที่ 11', 2112, 5, 297), + (3, 'LP3-UT-EE-727', 'แปลนโคมไฟ แผ่นที่ 12', 2112, 5, 298), + (3, 'LP3-UT-EE-728', 'แปลนโคมไฟ แผ่นที่ 13', 2112, 5, 299), + (3, 'LP3-UT-EE-729', 'แปลนโคมไฟ แผ่นที่ 14', 2112, 5, 300), + (3, 'LP3-UT-EE-730', 'แปลนโคมไฟ แผ่นที่ 15', 2112, 5, 301), + (3, 'LP3-UT-EE-731', 'รายละเอียดการติดตั้ง แผ่นที่ 1', 2112, 5, 302), + (3, 'LP3-UT-EE-732', 'รายละเอียดการติดตั้ง แผ่นที่ 2', 2112, 5, 303), + (3, 'LP3-UT-EE-733', 'รายละเอียดการติดตั้ง แผ่นที่ 3', 2112, 5, 304), + (3, 'LP3-UT-EE-734', 'รายละเอียดการติดตั้ง แผ่นที่ 4', 2112, 5, 305), + (3, 'LP3-UT-EE-735', 'รายละเอียดการติดตั้ง แผ่นที่ 5', 2112, 5, 306), + (3, 'LP3-UT-EE-736', 'รายละเอียดการติดตั้ง แผ่นที่ 6', 2112, 5, 307), + (3, 'LP3-UT-EE-737', 'รายละเอียดการติดตั้ง แผ่นที่ 7', 2112, 5, 308), + (3, 'LP3-UT-EE-738', 'รายละเอียดการติดตั้ง แผ่นที่ 8', 2112, 5, 309), + (3, 'LP3-TO-AB-001', 'TYPICAL DETAILS OF BOOTH ISLAND 1/2', 2113, 5, 310), + (3, 'LP3-TO-AB-002', 'TYPICAL DETAILS OF BOOTH ISLAND 2/2', 2113, 5, 311), + (3, 'LP3-TO-AB-003', 'TYPICAL DETAIL OF WEIGHTING SYSTEM', 2113, 5, 312), + (3, 'LP3-WM-IT-001', 'PROJECT WEIGHING SYSTEM AND IT SYSTEM LOCATION', 2114, 5, 313), + (3, 'LP3-WM-IT-002', 'TYPICAL DIAGRAM OF IT SYSTEM 1/2', 2114, 5, 314), + (3, 'LP3-WM-IT-003', 'TYPICAL DIAGRAM OF IT SYSTEM 2/2', 2114, 5, 315), + (3, 'LP3-WM-IT-004', 'TYPICAL DIAGRAM OF WEIGHING SYSTEM 1/3', 2114, 5, 316), + (3, 'LP3-WM-IT-005', 'TYPICAL DIAGRAM OF WEIGHING SYSTEM 2/3', 2114, 5, 317), + (3, 'LP3-WM-IT-006', 'TYPICAL DIAGRAM OF WEIGHING SYSTEM 3/3', 2114, 5, 318), + (3, 'LP3-WM-IT-007', 'UPS POWER SINGLE LINE DIAGAM AND UPS POWER LOAD SCHEDULE', 2114, 5, 319), + (3, 'LP3-WM-IT-008', 'WEIGHING PERIPHERAL DETAIL 1/2', 2114, 5, 320), + (3, 'LP3-WM-IT-009', 'WEIGHING PERIPHERAL DETAIL 2/2', 2114, 5, 321), + (3, 'LP3-WM-IT-010', 'VEHICLE DETECTOR AND STEEL POLE DETAIL', 2114, 5, 322), + (3, 'LP3-WM-IT-011', 'REMOTE DISPLAY FOR WEIGHT DATA DISPLAY WITH LPR AND STEEL POLE DETAIL', 2114, 5, 323), + (3, 'LP3-WM-IT-012', 'CCTV AND STEEL POLE DETAIL', 2114, 5, 324), + (3, 'LP3-WM-IT-013', 'LED TRAFFIC LIGHT AND STEEL POLE DETAIL', 2114, 5, 325), + (3, 'LP3-LA-PK-001', 'ลานจอดรถบรรทุก', 2114, 5, 326), + (3, 'LP3-LA-PK-002', 'ผังแสดงลานขนถ่ายสินค้าข้างทางรถไฟท่า F', 2115, 5, 327), + (3, 'LP3-LA-PK-003', 'ลานขนถ่ายสินค้าข้างทางรถไฟท่า F แผ่นที่ 1 STA.0+000 STA.0+600', 2115, 5, 328), + (3, 'LP3-LA-PK-004', 'ลานขนถ่ายสินค้าข้างทางรถไฟท่า F แผ่นที่ 2 STA.0+600 - STA.1+200', 2115, 5, 329), + (3, 'LP3-LA-PK-005', 'ลานขนถ่ายสินค้าข้างทางรถไฟทา F แผ่นที่ 3 STA 1+200 STA.1+659.343', 2115, 5, 330), + (3, 'LP3-WS-GN-001', 'สารบัญ', 2116, 6, 1), + (3, 'LP3-WS-GN-002', 'สัญลักษณ์และคำย่อ', 2116, 6, 2), + (3, 'LP3-WS-GN-003', 'แผนภูมิระบบประปา', 2116, 6, 3), + (3, 'LP3-WS-GN-004', 'ผังบริเวณระบบประปา', 2116, 6, 4), + (3, 'LP3-WS-WD-001', 'ผังระบบท่อประปา (แผ่นที่ 1/4)', 2116, 6, 5), + (3, 'LP3-WS-WD-002', 'ผังระบบท่อประปา (แผ่นที่ 2/4)', 2116, 6, 6), + (3, 'LP3-WS-WD-003', 'ผังระบบท่อประปา (แผ่นที่ 3/4)', 2116, 6, 7), + (3, 'LP3-WS-WD-004', 'ผังระบบท่อประปา (แผ่นที่ 4/4)', 2116, 6, 8), + (3, 'LP3-WS-WD-005', 'ผังระบบท่อประปาบริเวณ ท่าเรือบริการ', 2116, 6, 9), + (3, 'LP3-WS-WD-006', 'ผังระบบท่อประปาบริเวณ ท่าเรือชายฝั่ง', 2116, 6, 10), + (3, 'LP3-WS-CW-001', 'แปลนฝาถัง', 2117, 6, 11), + (3, 'LP3-WS-CW-002', 'แปลนกันถึง', 2117, 6, 12), + (3, 'LP3-WS-CW-003', 'รูปด้าน รูปตัด', 2117, 6, 13), + (3, 'LP3-WS-CW-004', 'แปลนพื้น คาน ที่ฝาถัง', 2117, 6, 14), + (3, 'LP3-WS-CW-005', 'แปลนพื้น ผนัง เสา ค.ส.ล. ที่กันถัง', 2117, 6, 15), + (3, 'LP3-WS-CW-006', 'แปลนเสาเข็ม', 2117, 6, 16), + (3, 'LP3-WS-CW-007', 'รายละเอียดทั่วไป', 2117, 6, 17), + (3, 'LP3-WS-CW-008', 'รายละเอียดการเสริมเหล็ก (แผ่นที่ 1/2)', 2117, 6, 18), + (3, 'LP3-WS-CW-009', 'รายละเอียดการเสริมเหล็ก (แผ่นที่ 2/2)', 2117, 6, 19), + (3, 'LP3-WS-ET-001', 'รายการประกอบแปลน', 2118, 6, 20), + (3, 'LP3-WS-ET-002', 'รูปด้าน', 2118, 6, 21), + (3, 'LP3-WS-ET-003', 'แปลนพื้น ชั้นที่ 1-6', 2118, 6, 22), + (3, 'LP3-WS-ET-004', 'แปลนถังเก็บน้ำ พื้นเหนือถังเก็บน้ำและหลังคา', 2118, 6, 23), + (3, 'LP3-WS-ET-005', 'รูปตัด', 2118, 6, 24), + (3, 'LP3-WS-ET-006', 'ขยาย', 2118, 6, 25), + (3, 'LP3-WS-ET-007', 'รายละเอียดทั่วไป (แผ่นที่ 1/2)', 2118, 6, 26), + (3, 'LP3-WS-ET-008', 'รายละเอียดทั่วไป (แผ่นที่ 2/2)', 2118, 6, 27), + (3, 'LP3-WS-ET-009', 'รายละเอียดการเสริมเหล็ก (แผ่นที่ 1/2)', 2118, 6, 28), + (3, 'LP3-WS-ET-010', 'รายละเอียดการเสริมเหล็ก (แผนที่ 2/2)', 2118, 6, 29), + (3, 'LP3-WS-ET-011', 'รายละเอียดการเสริมเหล็กถังเก็บน้ำ (แผ่นที่ 1/2)', 2118, 6, 30), + (3, 'LP3-WS-ET-012', 'รายละเอียดการเสริมเหล็กถังเก็บน้ำ (แผ่นที่ 2/2)', 2118, 6, 31), + (3, 'LP3-WS-ET-013', 'รายละเอียดฐานราก และ เสาเข็ม', 2118, 6, 32), + (3, 'LP3-WS-ET-014', 'ระบบไฟฟ้า - แปลนพื้นชั้นที่ 1 - 6', 2118, 6, 33), + (3, 'LP3-WS-ET-015', 'ระบบไฟฟ้า - รูปตัด', 2118, 6, 34), + (3, 'LP3-WS-ET-016', 'รายละเอียดสายล่อฟ้า', 2118, 6, 35), + (3, 'LP3-WS-WS-001', 'สัญลักษณ์ประกอบ', 2119, 6, 36), + (3, 'LP3-WS-WS-002', 'ผังแม่บทท่าเรือชั้นที่ 3', 2119, 6, 37), + (3, 'LP3-WS-WS-003', 'ผังบริเวณอาคาร', 2119, 6, 38), + (3, 'LP3-WS-WS-101', 'แปลนพื้นชั้นที่ 1, แปลนพื้นชั้น 2, แปลนหลังคา', 2119, 6, 39), + (3, 'LP3-WS-WS-102', 'รูปด้าน 1, 2, 3, 4', 2119, 6, 40), + (3, 'LP3-WS-WS-103', 'รูปตัด A, B', 2119, 6, 41), + (3, 'LP3-WS-WS-104', 'ขยายบันได 1', 2119, 6, 42), + (3, 'LP3-WS-WS-105', 'ขยายห้องน้ำ 1 ห้องน้ำ 2', 2119, 6, 43), + (3, 'LP3-WS-WS-106', 'อยายประตู - หน้าต่าง, ตารางรายการวัสดุประตู - หน้าต่าง', 2119, 6, 44), + (3, 'LP3-WS-WS-107', 'ขยายประตูรั้วโครงการ, ขยายขอบคันหิน', 2119, 6, 45), + (3, 'LP3-WS-WS-108', 'แปลนผ้า - เพดานชิ้นที่ 1. แปลนผ้า - เพดานชั้นที่ 2', 2119, 6, 46), + (3, 'LP3-WS-WS-109', 'แปลนแสดงครุภัณฑ์ ชั้นที่ 1. 2', 2119, 6, 47), + (3, 'LP3-WS-WS-110', 'แปลนแสดงตำแหน่งป้าย ชั้นที่ 1. 2', 2119, 6, 48), + (3, 'LP3-WS-WS-201', 'การติดตั้งเครื่องสูบน้ำ', 2120, 6, 49), + (3, 'LP3-WS-WS-202', 'รายละเอียดแท่นเครื่องสูบน้ำและการยึดท่อ', 2120, 6, 50), + (3, 'LP3-WS-WS-203', 'รายละเอียดการติดตั้งเครน', 2120, 6, 51), + (3, 'LP3-WS-WS-204', 'รายละเอียดระบบควบคุมเครื่องสูบน้ำ', 2120, 6, 52), + (3, 'LP3-WS-WS-205', 'ตัวอย่างกราฟฟิกบนจอ TOUCH SCREEN ที่ตู้ควบคุม PLC1', 2120, 6, 53), + (3, 'LP3-WS-WS-206', 'ขยายห้องจ่ายคลอรีน', 2120, 6, 54), + (3, 'LP3-WS-WS-301', 'สัญลักษณ์ประกอบ', 2121, 6, 55), + (3, 'LP3-WS-WS-302', 'ข้อกำหนดทั่วไป', 2121, 6, 56), + (3, 'LP3-WS-WS-303', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2121, 6, 57), + (3, 'LP3-WS-WS-304', 'ผังแสดงน้ำหนักบรรทุกจร', 2121, 6, 58), + (3, 'LP3-WS-WS-305', 'โครงสร้าง ฐานราก ชั้น 1, 2', 2121, 6, 59), + (3, 'LP3-WS-WS-306', 'โครงสร้างหลังคา รูปตัด A. B', 2121, 6, 60), + (3, 'LP3-WS-WS-307', 'ขยายโครงสร้างห้องจ่ายคลอรีน', 2121, 6, 61), + (3, 'LP3-WS-WS-308', 'ขยายรายละเอียดโครงสร้าง แผ่นที่ 1', 2121, 6, 62), + (3, 'LP3-WS-WS-309', 'ขยายรายละเอียดโครงสร้าง แผ่นที่ 2', 2121, 6, 63), + (3, 'LP3-WS-WS-310', 'ขยายรายละเอียดโครงสร้าง แผ่นที่ 3', 2121, 6, 64), + (3, 'LP3-WS-WS-401', 'สัญลักษณ์และคำย่อ', 2122, 6, 65), + (3, 'LP3-WS-WS-402', 'ตารางแสดงรายการประกอบ', 2122, 6, 66), + (3, 'LP3-WS-WS-403', 'ไดอะแกรมระบบจ่ายน้ำประปา และระบบระบายน้ำเสีย', 2122, 6, 67), + (3, 'LP3-WS-WS-404', 'ไดอะแกรมระบบระบายน้ำฝน', 2122, 6, 68), + (3, 'LP3-WS-WS-405', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1 และชั้นที่ 2', 2122, 6, 69), + (3, 'LP3-WS-WS-406', 'แปลนระบบระบายน้ำเสีย ชั้นที่ 1 และชั้นที่ 2', 2122, 6, 70), + (3, 'LP3-WS-WS-407', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1 ชั้นที่ 2 และชั้นหลังคา', 2122, 6, 71), + (3, 'LP3-WS-WS-408', 'ขยายห้องน้ำ 1', 2122, 6, 72), + (3, 'LP3-WS-WS-409', 'ขยายห้องน้ำ 2', 2122, 6, 73), + (3, 'LP3-WS-WS-410', 'ขยายมาตรฐานการติดตั้งทั่วไป (แผ่นที่ 1/3)', 2122, 6, 74), + (3, 'LP3-WS-WS-411', 'ขยายมาตรฐานการติดตั้งทั่วไป (แผ่นที่ 2/3)', 2122, 6, 75), + (3, 'LP3-WS-WS-412', 'ขยายมาตรฐานการติดตั้งทั่วไป (แผ่นที่ 3/3)', 2122, 6, 76), + (3, 'LP3-WS-WS-501', 'สัญลักษณ์และค่ายอ', 2123, 6, 77), + (3, 'LP3-WS-WS-502', 'รายการวัสดุอุปกรณ์ (แผ่นที่ 1/2)', 2123, 6, 78), + (3, 'LP3-WS-WS-503', 'รายการวัสดุอุปกรณ์ (แผ่นที่ 2/2)', 2123, 6, 79), + (3, 'LP3-WS-WS-504', 'แปลนระบบปรับอากาศ ชั้น 1 และชั้น 2', 2123, 6, 80), + (3, 'LP3-WS-WS-505', 'แปลนระบบระบายอากาศ ชั้น 1 และชั้น 2', 2123, 6, 81), + (3, 'LP3-WS-WS-506', 'แปลนขยายการติดตั้งทั่วไป (แผ่นที่ 1/2)', 2123, 6, 82), + (3, 'LP3-WS-WS-507', 'แปลนขยายการติดตั้งทั่วไป (แผ่นที่ 2/2)', 2123, 6, 83), + (3, 'LP3-WS-WS-601', 'สัญลักษณ์งานระบบไฟฟ้า', 2124, 6, 84), + (3, 'LP3-WS-WS-602', 'สัญลักษณ์งานระบบสื่อสาร', 2124, 6, 85), + (3, 'LP3-WS-WS-603', 'สัญลักษณ์ตารางโคม', 2124, 6, 86), + (3, 'LP3-WS-WS-604', 'ตารางโหลดไฟฟ้า และ ไรเซอร์ ไดอะแกรม', 2124, 6, 87), + (3, 'LP3-WS-WS-605', 'แปลนบ่อพักระบบไฟฟ้า', 2124, 6, 88), + (3, 'LP3-WS-WS-606', 'แปลนโคมไฟถนนบริเวณอาคาร', 2124, 6, 89), + (3, 'LP3-WS-WS-607', 'แปลน์โคมไฟ', 2124, 6, 90), + (3, 'LP3-WS-WS-608', 'แปลนอุปกรณ์เต้ารับไฟฟ้า โทรศัพท์และเต้ารับแลน', 2124, 6, 91), + (3, 'LP3-WS-WS-609', 'แปลนระบบป้องกันฟ้าผ่าและกราวด', 2124, 6, 92), + (3, 'LP3-WS-WS-610', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้และเสียงประกาศสาธารณะ', 2124, 6, 93), + (3, 'LP3-WS-WS-611', 'แปลนอุปกรณ์กล้องโทรทัศน์วงจรปิด', 2124, 6, 94), + (3, 'LP3-WS-WS-612', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 1', 2124, 6, 95), + (3, 'LP3-WS-WS-613', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 2', 2124, 6, 96), + (3, 'LP3-WS-WS-614', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 3', 2124, 6, 97), + (3, 'LP3-WS-WS-615', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 4', 2124, 6, 98), + (3, 'LP3-WS-WS-616', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 5', 2124, 6, 99), + (3, 'LP3-WS-WS-617', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 6', 2124, 6, 100), + (3, 'LP3-WS-WS-618', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 7', 2124, 6, 101), + (3, 'LP3-WS-WS-619', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 8', 2124, 6, 102), + (3, 'LP3-WS-WS-620', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 9', 2124, 6, 103), + (3, 'LP3-WS-TP-001', 'รายละเอียดการติดตั้งหัวดับเพลิง', 2125, 6, 104), + (3, 'LP3-WS-TP-002', 'รายละเอียดการติดตั้งมาตรวัดน้ำ', 2125, 6, 105), + (3, 'LP3-WS-TP-003', 'การติดตั้ง AIR VALVE และ BLOW OFF', 2125, 6, 106), + (3, 'LP3-WS-TP-004', 'มาตรฐานแท่นยึดอุปกรณ์ท่อ ท่อโค้งตามแนวราบ', 2125, 6, 107), + (3, 'LP3-WS-TP-005', 'มาตรฐานแท่นยึดอุปกรณ์ท่อ ท่อโค้งตามแนวตั้ง', 2125, 6, 108), + (3, 'LP3-WS-TP-006', 'มาตรฐานการวางท่อลอดถนนและค้ำยันรับท่อ', 2125, 6, 109), + (3, 'LP3-WS-TP-007', 'มาตรฐานการวางท่อลอดถนนกรณีมีท่อระบายน้ำขวาง', 2125, 6, 110), + (3, 'LP3-WS-TP-008', 'มาตรฐานการวางท่อในร่องดิน', 2125, 6, 111), + (3, 'LP3-WS-TP-009', 'มาตรฐานรัดแยกเหล็กหล่อสำหรับท่อ PVC และท่อ HDPE', 2125, 6, 112), + (3, 'LP3-WS-TP-010', 'มาตรฐานการบรรจบท่อชนิดต่างๆ', 2125, 6, 113), + (3, 'LP3-WS-TP-011', 'รูปอุปกรณ์ท่อเหล็กหล่อ', 2125, 6, 114), + (3, 'LP3-WS-TP-012', 'มาตรฐานข้อต่อยใบลท์', 2125, 6, 115), + (3, 'LP3-WS-TP-013', 'รายละเอียดการต่อเชื่อมท่อเมนประปา', 2125, 6, 116), + (3, 'LP3-WS-TP-014', 'มาตรฐานการแขวนท่อประปา', 2125, 6, 117), + (3, 'LP3-WS-TP-015', 'การติดตั้งประตูน้ำชนิดใต้ดิน', 2125, 6, 118), + (3, 'LP3-DW-GN-001', 'สารบัญ แผนที่ 1/2', 2126, 6, 1), + (3, 'LP3-DW-GN-002', 'สารบัญ แผนที่ 2/2', 2126, 6, 2), + (3, 'LP3-DW-GN-003', 'หมายเหตุทั่วไปงานโยธา', 2126, 6, 3), + (3, 'LP3-DW-GN-004', 'สัญลักษณ์และอักษรยองานโยธา', 2126, 6, 4), + (3, 'LP3-DW-DS-001', 'ผังระบบระบายน้ำหลักของโครงการ', 2126, 6, 5), + (3, 'LP3-DW-DS-002', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-3 กม. 0+000 - กม. 0+500', 2127, 6, 6), + (3, 'LP3-DW-DS-003', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-3 กม. 0+500 - กม. 1+000', 2127, 6, 7), + (3, 'LP3-DW-DS-004', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-3 กม. 1+000 - กม.1+500', 2127, 6, 8), + (3, 'LP3-DW-DS-005', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-3 กม. 1+500 - กม.2+000', 2127, 6, 9), + (3, 'LP3-DW-DS-006', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-3 กม. 2+000 - กม. 2+158.328', 2127, 6, 10), + (3, 'LP3-DW-DS-007', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 0+000 - กม. 0+500', 2127, 6, 11), + (3, 'LP3-DW-DS-008', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 0+500 - กม. 1+000', 2127, 6, 12), + (3, 'LP3-DW-DS-009', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 1+000 - กม. 1+500', 2127, 6, 13), + (3, 'LP3-DW-DS-010', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 1+500 - กม. 2+000', 2127, 6, 14), + (3, 'LP3-DW-DS-011', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 2+000 - กม. 2+500', 2127, 6, 15), + (3, 'LP3-DW-DS-012', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 2+500 - กม.3+000', 2127, 6, 16), + (3, 'LP3-DW-DS-013', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 3+000 - กม. 3+500', 2127, 6, 17), + (3, 'LP3-DW-DS-014', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 3+500 - กม. 4+000', 2127, 6, 18), + (3, 'LP3-DW-DS-015', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-4 กม. 4+000 - กม. 4+406.126', 2127, 6, 19), + (3, 'LP3-DW-DS-016', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-5 กม. 0+000 - กม. 0+500', 2127, 6, 20), + (3, 'LP3-DW-DS-017', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-5 กม. 0+500 - กม. 1+000', 2127, 6, 21), + (3, 'LP3-DW-DS-018', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-5 กม. 1+000 - กม. 1+500', 2127, 6, 22), + (3, 'LP3-DW-DS-019', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-5 กม. 1+500 - กม. 2+000', 2127, 6, 23), + (3, 'LP3-DW-DS-020', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-5 กม. 2+000 - กม. 2+175.480', 2127, 6, 24), + (3, 'LP3-DW-DS-021', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 0+000 - กม. 0+500', 2127, 6, 25), + (3, 'LP3-DW-DS-022', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 0+500 - กม. 1+000', 2127, 6, 26), + (3, 'LP3-DW-DS-023', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 1+000 - กม. 1+500', 2127, 6, 27), + (3, 'LP3-DW-DS-024', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 1+500 - กม. 2+000', 2127, 6, 28), + (3, 'LP3-DW-DS-025', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 2+000 - กม. 2+500', 2127, 6, 29), + (3, 'LP3-DW-DS-026', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 2+500 - กม. 3+000', 2127, 6, 30), + (3, 'LP3-DW-DS-027', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 3+000 - กม. 3+500', 2127, 6, 31), + (3, 'LP3-DW-DS-028', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6LT กม. 3+500 - กม. 3+840.21', 2127, 6, 32), + (3, 'LP3-DW-DS-029', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 0+000 - กม. 0+500', 2127, 6, 33), + (3, 'LP3-DW-DS-030', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 0+500 - กม. 1+000', 2127, 6, 34), + (3, 'LP3-DW-DS-031', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 1+000 - กม. 1+500', 2127, 6, 35), + (3, 'LP3-DW-DS-032', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 1+500 - กม. 2+000', 2127, 6, 36), + (3, 'LP3-DW-DS-033', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 2+000 - กม. 2+500', 2127, 6, 37), + (3, 'LP3-DW-DS-034', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 2+500 - กม. 3+000', 2127, 6, 38), + (3, 'LP3-DW-DS-035', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 3+000 - กม. 3+500', 2127, 6, 39), + (3, 'LP3-DW-DS-036', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ ถนน RN-6RT กม. 3+500 - กม. 3+826.956', 2127, 6, 40), + (3, 'LP3-DW-DS-037', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 2+652.785 - กม. 3+000 ', 2127, 6, 41), + (3, 'LP3-DW-DS-038', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 3+000 - กม. 3+500 ', 2127, 6, 42), + (3, 'LP3-DW-DS-039', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 3+500 - กม. 4+000', 2127, 6, 43), + (3, 'LP3-DW-DS-040', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 4+000 - กม. 4+500', 2127, 6, 44), + (3, 'LP3-DW-DS-041', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 4+500 - กม. 5+000', 2127, 6, 45), + (3, 'LP3-DW-DS-042', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 5+000 - กม. 5+500', 2127, 6, 46), + (3, 'LP3-DW-DS-043', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 5+500 - กม. 6+000', 2127, 6, 47), + (3, 'LP3-DW-DS-044', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 6+000 - กม. 6+500', 2127, 6, 48), + (3, 'LP3-DW-DS-045', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 6+500 - กม. 7+000', 2127, 6, 49), + (3, 'LP3-DW-DS-046', 'แปลนและรูปตัดตามยาวระบบระบายน้ำ พื้นที่ว่าง กม. 7+000 - กม. 47+103.661', 2127, 6, 50), + (3, 'LP3-DW-DS-047', 'ขนาดและรายละเอียดการเสริมเหล็กสำหรับทอกลม', 2127, 6, 51), + (3, 'LP3-DW-DS-048', 'การชุดวางท่อระบายน้ำ การรองพื้นท่อ และการต่อท่อสำหรับท่อกลม', 2127, 6, 52), + (3, 'LP3-DW-DS-049', 'มาตรฐานบอพักทอระบายน้ำสำหรับทอกลม', 2127, 6, 53), + (3, 'LP3-DW-DS-050', 'ทอ ค.ส.ล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ผิวจราจร วัสดุถมน้อยกว่า 0.60 ม.', 2127, 6, 54), + (3, 'LP3-DW-DS-051', 'ทอ ค.ส.ล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ผิวจราจร วัสดุถมระหว่าง 0.60 ม. ถึง 3.00 ม.', 2127, 6, 55), + (3, 'LP3-DW-DS-052', 'ทอ ค.ส.ล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำได้ทางเท้า วัสดุถมระหว่าง 0.60 ม. ถึง 3.00 ม.', 2127, 6, 56), + (3, 'LP3-DW-DS-053', 'ทอ ค.ส.ล. รูปสี่เหลียม ชนิดเสริมพิเศษ', 2127, 6, 57), + (3, 'LP3-DW-DS-054', 'การขุดวางทอระบายน้ำ การรองพื้นท่อ และการต่อท่อสำหรับท่อเหลี่ยม', 2127, 6, 58), + (3, 'LP3-DW-DS-055', 'มาตรฐานบ่อพักทอระบายน้ำสำหรับท่อเหลี่ยม', 2127, 7, 59), + (3, 'LP3-DW-DS-056', 'รายละเอียดรางระบายน้ำ ค.ส.ล. พร้อมฝาตะแกรงเหล็ก', 2127, 7, 60), + (3, 'LP3-DW-RP-001', 'แปลนและรูปตัดบอหน่วงน้ำ', 2128, 7, 61), + (3, 'LP3-DW-RP-002', 'ขยายรูปตัดบอหน่วงน้ำ', 2128, 7, 62), + (3, 'LP3-DW-RP-003', 'แปลนบ่อหน่วงน้ำและรูปตัด 1-1. รูปตัด 2-2', 2129, 7, 63), + (3, 'LP3-DW-RP-004', 'รายละเอียดการเสริมเหล็ก', 2129, 7, 64), + (3, 'LP3-DW-RP-005', 'การติดตั้งเครื่องสูบน้ำ และขยายตะแกรงดักขยะ', 2129, 7, 65), + (3, 'LP3-DW-RP-006', 'แปลนบ่อหน่วงน้ำและรูปตัด 1-1, รูปตัด 2-2', 2129, 7, 66), + (3, 'LP3-DW-RP-007', 'รายละเอียดการเสริมเหล็ก', 2130, 7, 67), + (3, 'LP3-DW-RP-008', 'การติดตั้งเครื่องสูบน้ำ และขยายตะแกรงดักขยะ', 2130, 7, 68), + (3, 'LP3-DW-RP-009', 'SINGLE LINE DIAGRAM 1/3', 2131, 7, 69), + (3, 'LP3-DW-RP-010', 'SINGLE LINE DIAGRAM 2/3', 2132, 7, 70), + (3, 'LP3-DW-RP-011', 'SINGLE LINE DIAGRAM 3/3', 2132, 7, 71), + (3, 'LP3-DW-RP-012', 'รายละเอียดการติดตั้งทั่วไป', 2132, 7, 72), + (3, 'LP3-DW-PS-001', 'ผังบริเวณสถานีสูบระบายน้ำ', 2133, 7, 73), + (3, 'LP3-DW-PS-002', 'แปลนสถานีสูบระบายน้ำ (ระดับ +4.20 ม.รทก.)', 2133, 7, 74), + (3, 'LP3-DW-PS-003', 'แปลนสถานีสูบระบายน้ำ (ระดับ +3.60 ม.รทก.)', 2133, 7, 75), + (3, 'LP3-DW-PS-004', 'รูปตัด ก-ก. รูปติด 8-8', 2133, 7, 76), + (3, 'LP3-DW-PS-005', 'รูปติด ค-ค. รูปตัด ง-ง', 2133, 7, 77), + (3, 'LP3-DW-PS-006', 'แปลนเสาเข็ม', 2134, 7, 78), + (3, 'LP3-DW-PS-007', 'แปลนคาน (ระดับ +4.20 ม.รทก.)', 2134, 7, 79), + (3, 'LP3-DW-PS-008', 'รายละเอียดการเสริมเหล็ก รูปตัด ก-ก. รูปตัด ข-ช', 2134, 7, 80), + (3, 'LP3-DW-PS-009', 'รายละเอียดการเสริมเหล็ก รูปตัด ค-ค, รูปตัด ง-ง', 2134, 7, 81), + (3, 'LP3-DW-PS-010', 'รายละเอียดการเสริมเหล็กเสา, คาน และเหล็กเสริมพิเศษ', 2134, 7, 82), + (3, 'LP3-DW-PS-011', 'รายละเอียดตะแกรงดักขยะ', 2134, 7, 83), + (3, 'LP3-DW-PS-012', 'ราวกันตก, บันไดลิง และฝาตะแกรงเหล็ก', 2134, 7, 84), + (3, 'LP3-DW-PS-013', 'GANTRY CRANE ขนาด 5 ตัน', 2134, 7, 85), + (3, 'LP3-DW-PS-014', 'แปลนอาคารรับน้ำ และรูปตัด 1-1. รูปตัด 2-2', 2134, 7, 86), + (3, 'LP3-DW-PS-015', 'รายละเอียดการเสริมเหล็กอาคารรับน้ำ', 2134, 7, 87), + (3, 'LP3-DW-PS-016', 'แปลนอาคารระบายน้ำ และรูปตัด 1-1, รูปตัด 2-2', 2134, 7, 88), + (3, 'LP3-DW-PS-017', 'รายละเอียดการเสริมเหล็กอาคารระบายน้ำ', 2134, 7, 89), + (3, 'LP3-DW-PS-018', 'รายละเอียดระบบควบคุมเครื่องสูบน้ำ ST2', 2135, 7, 90), + (3, 'LP3-DW-PS-019', 'ตัวอยางกราฟิกบนจอ TOUCH SCREEN ที่ตู้ควบคุม PLC2', 2135, 7, 91), + (3, 'LP3-DW-CW-001', 'ข้อกำหนดทั่วไปงานโครงสร้าง', 2136, 7, 92), + (3, 'LP3-DW-CW-002', 'ผังแสดงน้ำหนักบรรทุกจร', 2136, 7, 93), + (3, 'LP3-DW-CW-003', 'ผังโครงสร้างอาคาร', 2136, 7, 94), + (3, 'LP3-DW-CW-004', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1/3', 2136, 7, 95), + (3, 'LP3-DW-CW-005', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2/3', 2136, 7, 96), + (3, 'LP3-DW-CW-006', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3/3', 2136, 7, 97), + (3, 'LP3-DW-CW-007', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2136, 7, 98), + (3, 'LP3-DW-CW-008', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2137, 7, 99), + (3, 'LP3-DW-CW-009', 'ผังแม่บทท่าเรือขึ้นที่ 3', 2137, 7, 100), + (3, 'LP3-DW-CW-010', 'ผังบริเวณอาคาร', 2137, 7, 101), + (3, 'LP3-DW-CW-011', 'แปลนพื้นชั้นที่ 1. แปลนหลังคา, แปลนผ้า-เพดาน', 2137, 7, 102), + (3, 'LP3-DW-CW-012', 'รูปด้าน 1, 2, 3, 4, รุปตัด A, B', 2137, 7, 103), + (3, 'LP3-DW-CW-013', 'ขยายห้องน้ำ 1', 2137, 7, 104), + (3, 'LP3-DW-CW-014', 'ขยายประตู-หน้าต่าง', 2137, 7, 105), + (3, 'LP3-DW-CW-015', 'แปลนผ้า-เพดานชั้นที่ 1', 2137, 7, 106), + (3, 'LP3-DW-CW-016', 'แปลนแสดงครุภัณฑ์ ชั้น 1', 2137, 7, 107), + (3, 'LP3-DW-CW-017', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2137, 7, 108), + (3, 'LP3-DW-CW-018', 'สัญลักษณ์ระบบไฟฟ้า', 2137, 7, 109), + (3, 'LP3-DW-CW-019', 'สัญลักษณ์ระบบสื่อสาร', 2138, 7, 110), + (3, 'LP3-DW-CW-020', 'สัญลักษณ์ตารางโคม', 2138, 7, 111), + (3, 'LP3-DW-CW-021', 'SINGLE LINE DIAGRAM 1/2', 2138, 7, 112), + (3, 'LP3-DW-CW-022', 'SINGLE LINE DIAGRAM 2/2', 2138, 7, 113), + (3, 'LP3-DW-CW-023', 'RISER DIAGRAM และตารางโทลด', 2138, 7, 114), + (3, 'LP3-DW-CW-024', 'แปลนโคมไฟ', 2138, 7, 115), + (3, 'LP3-DW-CW-025', 'แปลนเต้ารับไฟฟ้า, โทรศัพท์และคอมพิวเตอร์', 2138, 7, 116), + (3, 'LP3-DW-CW-026', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์', 2138, 7, 117), + (3, 'LP3-DW-CW-027', 'แปลนแจ้งเหตุเพลิงไหม้', 2138, 7, 118), + (3, 'LP3-DW-CW-028', 'แปลน์โทรทัศน์วงจรปิด', 2138, 7, 119), + (3, 'LP3-DW-CW-029', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 1', 2138, 7, 120), + (3, 'LP3-DW-CW-030', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 2', 2138, 7, 121), + (3, 'LP3-DW-CW-031', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 3', 2138, 7, 122), + (3, 'LP3-DW-CW-032', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 4', 2138, 7, 123), + (3, 'LP3-DW-CW-033', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 5', 2138, 7, 124), + (3, 'LP3-DW-CW-034', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 6', 2138, 7, 125), + (3, 'LP3-DW-CW-035', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 7', 2138, 7, 126), + (3, 'LP3-DW-CW-036', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 8', 2138, 7, 127), + (3, 'LP3-DW-CW-037', 'รายละเอียดการติดตั้งทั่วไป แผ่นที่ 9', 2138, 7, 128), + (3, 'LP3-DW-CW-038', 'สัญลักษณ์และอักษรยอ', 2138, 7, 129), + (3, 'LP3-DW-CW-039', 'รายการวัสดุและอุปกรณ์ 1/2', 2139, 7, 130), + (3, 'LP3-DW-CW-040', 'รายการวัสดุและอุปกรณ์ 2/2', 2139, 7, 131), + (3, 'LP3-DW-CW-041', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้นที่ 1', 2139, 7, 132), + (3, 'LP3-DW-CW-042', 'ขยายการติดตั้งทั่วไป 1/2', 2139, 7, 133), + (3, 'LP3-DW-CW-043', 'ขยายการติดตั้งทั่วไป 2/2', 2139, 7, 134), + (3, 'LP3-DW-CW-044', 'สัญลักษณ์และอักษรย่อ', 2139, 7, 135), + (3, 'LP3-DW-CW-045', 'ตารางแสดงรายการประกอบ', 2140, 7, 136), + (3, 'LP3-DW-CW-046', 'ไดอะแกรมระบบสุขาภิบาล', 2140, 7, 137), + (3, 'LP3-DW-CW-047', 'แปลนระบบสุขาภิบาล ชั้นที่ 1', 2140, 7, 138), + (3, 'LP3-DW-CW-048', 'แปลนระบบระบายน้ำ ชั้นที่ 1 และชั้นหลังคา', 2140, 7, 139), + (3, 'LP3-DW-CW-049', 'ขยายห้องน้ำ', 2140, 7, 140), + (3, 'LP3-DW-CW-050', 'ขยายมาตรฐานการติดตั้งทั่วไป 1/3', 2140, 7, 141), + (3, 'LP3-DW-CW-051', 'ขยายมาตรฐานการติดตั้งทั่วไป 2/3', 2140, 7, 142), + (3, 'LP3-DW-CW-052', 'ขยายมาตรฐานการติดตั้งทั่วไป 3/3', 2140, 7, 143), + (3, 'LP3-WW-GN-001', 'สารบัญ', 2141, 7, 1), + (3, 'LP3-WW-GN-002', 'รายการสัญลักษณ์ อักษรย่อและรายการอุปกรณ์', 2141, 7, 2), + (3, 'LP3-WW-GN-003', 'ไดอะแกรมระบบบำบัดน้ำเสีย', 2141, 7, 3), + (3, 'LP3-WW-GN-004', 'ผังบริเวณระบบบำบัดน้ำเสีย', 2141, 7, 4), + (3, 'LP3-WW-G5-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย (แผ่นที่ 1/2)', 2142, 7, 5), + (3, 'LP3-WW-G5-002', 'ขยายตำแหน่งถังบำบัดน้ำเสีย (แผ่นที่ 2/2)', 2142, 7, 6), + (3, 'LP3-WW-G5-003', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย (แผ่นที่ 1/2)', 2142, 7, 7), + (3, 'LP3-WW-G5-004', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย (แผ่นที่ 2/2)', 2142, 7, 8), + (3, 'LP3-WW-HV-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2143, 7, 9), + (3, 'LP3-WW-HV-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2143, 7, 10), + (3, 'LP3-WW-S6-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2144, 7, 11), + (3, 'LP3-WW-S6-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2144, 7, 12), + (3, 'LP3-WW-S7-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2145, 7, 13), + (3, 'LP3-WW-S7-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2145, 7, 14), + (3, 'LP3-WW-SW-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2146, 7, 15), + (3, 'LP3-WW-SW-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2146, 7, 16), + (3, 'LP3-WW-MD-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย (แผ่นที่ 1/2)', 2147, 7, 17), + (3, 'LP3-WW-MD-002', 'ขยายตำแหน่งถังบำบัดน้ำเสีย (แผ่นที่ 2/2)', 2147, 7, 18), + (3, 'LP3-WW-MD-003', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย (แผ่นที่ 1/3)', 2147, 7, 19), + (3, 'LP3-WW-MD-004', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย (แผ่นที่ 2/3)', 2147, 7, 20), + (3, 'LP3-WW-MD-005', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย (แผ่นที่ 3/3)', 2147, 7, 21), + (3, 'LP3-WW-WS-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2148, 7, 22), + (3, 'LP3-WW-WS-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2148, 7, 23), + (3, 'LP3-WW-CW-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2149, 7, 24), + (3, 'LP3-WW-CW-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2149, 7, 25), + (3, 'LP3-WW-CH-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2150, 7, 26), + (3, 'LP3-WW-CH-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2150, 7, 27), + (3, 'LP3-WW-SD-001', 'อยายตำแหน่งถังบำบัดน้ำเสีย', 2151, 7, 28), + (3, 'LP3-WW-SD-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2151, 7, 29), + (3, 'LP3-WW-BA-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2152, 7, 30), + (3, 'LP3-WW-BA-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเลีย', 2152, 7, 31), + (3, 'LP3-WW-TO-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2153, 7, 32), + (3, 'LP3-WW-TO-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2153, 7, 33), + (3, 'LP3-WW-WT-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2154, 7, 34), + (3, 'LP3-WW-WT-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2154, 7, 35), + (3, 'LP3-WW-WO-001', 'ขยายตำแหน่งถังบำบัดน้ำเสีย', 2155, 7, 36), + (3, 'LP3-WW-WO-002', 'รายละเอียดการติดตั้งถังบำบัดน้ำเสีย', 2155, 7, 37), + (3, 'LP3-WW-WO-003', 'รายละเอียดถังแยกน้ำมัน ขนาด 2 ลบ.ม. (แผ่นที่ 1/2)', 2155, 7, 38), + (3, 'LP3-WW-WO-004', 'รายละเอียดถังแยกน้ำมัน ขนาด 2 ลบ.ม. (แผ่นที่ 2/2)', 2155, 7, 39), + (3, 'LP3-WW-WO-005', 'รายละเอียดบ่อสูบน้ำเสีย (แผ่นที่ 1/3)', 2155, 7, 40), + (3, 'LP3-WW-WO-006', 'รายละเอียดบ่อสูบน้ำเสีย (แผ่นที่ 2/3)', 2155, 7, 41), + (3, 'LP3-WW-WO-007', 'รายละเอียดบ่อสูบน้ำเสีย (แผ่นที่ 3/3)', 2155, 7, 42), + (3, 'LP3-WW-WO-008', 'รายละเอียดถังปฏิกิริยา (BATCH REACTOR) (แผ่นที่ 1/4)', 2155, 7, 43), + (3, 'LP3-WW-WO-009', 'รายละเอียดถังปฏิกิริยา (BATCH REACTOR) (แผนที่ 2/4)', 2155, 7, 44), + (3, 'LP3-WW-WO-010', 'รายละเอียดถังปฏิกิริยา (BATCH REACTOR) (แผ่นที่ 3/4)', 2155, 7, 45), + (3, 'LP3-WW-WO-011', 'รายละเอียดถังปฏิกิริยา (BATCH REACTOR) (แผ่นที่ 4/4)', 2155, 7, 46), + (3, 'LP3-WW-WO-012', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 2 ลบ.ม./วัน (แผ่นที่ 1/2)', 2155, 7, 47), + (3, 'LP3-WW-WO-013', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 2 ลบ.ม./วัน (แผ่นที่ 2/2)', 2155, 7, 48), + (3, 'LP3-WW-WO-014', 'รายละเอียดถังเก็บตะกอน (แผ่นที่ 1/2)', 2155, 7, 49), + (3, 'LP3-WW-WO-015', 'รายละเอียดถังเก็บตะกอน (แผ่นที่ 2/2)', 2155, 7, 50), + (3, 'LP3-WW-WO-016', 'รายละเอียดรั้วสำหรับระบบบำบัดน้ำเสีย', 2155, 7, 51), + (3, 'LP3-WW-WO-017', 'รายละเอียดการติดตั้งโคมไฟภายนอกอาคาร (แผ่นที่ 1/2)', 2155, 7, 52), + (3, 'LP3-WW-WO-018', 'รายละเอียดการติดตั้งโคมไฟภายนอกอาคาร (แผ่นที่ 2/2)', 2155, 7, 53), + (3, 'LP3-WW-TP-001', 'รายละเอียดถังดักไขมัน ขนาด 2 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 54), + (3, 'LP3-WW-TP-002', 'รายละเอียดถังดักไขมัน ขนาด 2 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 55), + (3, 'LP3-WW-TP-003', 'รายละเอียดถังดักไขมัน ขนาด 4 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 56), + (3, 'LP3-WW-TP-004', 'รายละเอียดถังดักไขมัน ขนาด 4 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 57), + (3, 'LP3-WW-TP-005', 'รายละเอียดถังเกรอะ ขนาด 1 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 58), + (3, 'LP3-WW-TP-006', 'รายละเอียดถังเกรอะ ขนาด 1 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 59), + (3, 'LP3-WW-TP-007', 'รายละเอียดถังเกรอะ ขนาด 2.5 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 60), + (3, 'LP3-WW-TP-008', 'รายละเอียดถังเกรอะ ขนาด 2.5 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 61), + (3, 'LP3-WW-TP-009', 'รายละเอียดถังเกรอะ ขนาด 5 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 62), + (3, 'LP3-WW-TP-010', 'รายละเอียดถังเกรอะ ขนาด 5 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 63), + (3, 'LP3-WW-TP-011', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 1 ลบ.ม./วัน (แผ่นที่ 1/2)', 2156, 7, 64), + (3, 'LP3-WW-TP-012', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 1 ลบ.ม./วัน (แผ่นที่ 2/2)', 2156, 7, 65), + (3, 'LP3-WW-TP-013', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 2 ลบ.ม./วัน (แผ่นที่ 1/2)', 2156, 7, 66), + (3, 'LP3-WW-TP-014', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 2 ลบ.ม./วัน (แผ่นที่ 2/2)', 2156, 7, 67), + (3, 'LP3-WW-TP-015', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 5 ลบ.ม./วัน (แผ่นที่ 1/2)', 2156, 7, 68), + (3, 'LP3-WW-TP-016', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 5 ลบ.ม./วัน (แผ่นที่ 2/2)', 2156, 7, 69), + (3, 'LP3-WW-TP-017', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 10 ลบ.ม./วัน (แผ่นที่ 1/2)', 2156, 7, 70), + (3, 'LP3-WW-TP-018', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 10 ลบ.ม./วัน (แผ่นที่ 2/2)', 2156, 7, 71), + (3, 'LP3-WW-TP-019', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 12 ลบ.ม./วัน (แผ่นที่ 1/2)', 2156, 7, 72), + (3, 'LP3-WW-TP-020', 'รายละเอียดถังบำบัดน้ำเสียสำเร็จรูป - ขนาด 12 ลบ.ม./วัน (แผ่นที่ 2/2)', 2156, 7, 73), + (3, 'LP3-WW-TP-021', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 1 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 74), + (3, 'LP3-WW-TP-022', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 1 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 75), + (3, 'LP3-WW-TP-023', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 2 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 76), + (3, 'LP3-WW-TP-024', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 2 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 77), + (3, 'LP3-WW-TP-025', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 5 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 78), + (3, 'LP3-WW-TP-026', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 5 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 79), + (3, 'LP3-WW-TP-027', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 10 ลบ.ม. (แผ่นที่ 1/2)', 2156, 7, 80), + (3, 'LP3-WW-TP-028', 'รายละเอียดถังเก็บน้ำทิ้ง ขนาด 10 ลบ.ม. (แผ่นที่ 2/2)', 2156, 7, 81), + (3, 'LP3-WW-TP-029', 'รายละเอียดบ่อตรวจสอบน้ำทิ้ง', 2156, 7, 82), + (3, 'LP3-UT-LA-001', 'สารบัญรายละเอียดสัญลักษณ์ประกอบและค่ายอ', 2157, 7, 1), + (3, 'LP3-UT-LA-101', 'ผังตำแหน่งแนวรั้วใครงการ', 2157, 7, 2), + (3, 'LP3-UT-LA-301', 'ขยายรั้วโครงการ TYPE 1', 2157, 7, 3), + (3, 'LP3-UT-LA-302', 'ขยายริ้วโครงการ TYPE 2', 2157, 7, 4), + (3, 'LP3-UT-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2158, 7, 5), + (3, 'LP3-UT-ST-002', 'ข้อกำหนดทั่วไป', 2158, 7, 6), + (3, 'LP3-UT-ST-101', 'ผังแม่บทท่าเรือชั้นที่ 3', 2158, 7, 7), + (3, 'LP3-UT-ST-102', 'ผังแสดงตำแหน่งอาคาร', 2158, 7, 8), + (3, 'LP3-UT-ST-103', 'ผังแสดงตำแหน่งริ้ว', 2158, 7, 9), + (3, 'LP3-UT-ST-201', 'ผังบริเวณ อาคารประตูตรวจสอบ 5', 2158, 7, 10), + (3, 'LP3-UT-ST-202', 'ผังบริเวณ อาคารสูบจ่ายน้ำประปา', 2158, 7, 11), + (3, 'LP3-UT-ST-203', 'ผังบริเวณ อาคารสถานีไฟฟ้าย่อย 115 kV.', 2158, 7, 12), + (3, 'LP3-UT-ST-204', 'ผังบริเวณ อาคารสถานีไฟฟ้าย่อย 22 kV. No.6', 2158, 7, 13), + (3, 'LP3-UT-ST-205', 'ผังบริเวณ อาคารสถานีไฟฟ้าย่อย 22 kV. No. 7', 2158, 7, 14), + (3, 'LP3-UT-ST-206', 'ผังบริเวณ อาคารพักขยะอันตราย, อาคารพักขยะทั่วไป', 2158, 7, 15), + (3, 'LP3-UT-ST-207', 'ผังบริเวณ อาคารร้านอาหารและจำหน่ายสินค้าปลอดภาษี', 2158, 7, 16), + (3, 'LP3-UT-ST-208', 'ผังบริเวณ อาคารควบคุมสถานีสูบระบายน้ำ', 2158, 7, 17), + (3, 'LP3-UT-ST-209', 'ผังบริเวณ สำนักงานท่าเรือบริการและห้องพักเจ้าหน้าที่, อาคารสื่อสารและหอสังเกตการณ์, โรงนอนพนักงาน', 2158, 7, 18), + (3, 'LP3-UT-ST-210', 'ผังบริเวณ อาคารสำนักงานปฏิบัติการท่าเรือชายฝั่ง, ด่านทางเข้าท่าเรือชายฝั่ง, โรงซ่อมบำรุงส่วนท่าเรือชายฝั่ง, โรงไฟฟ้าย่อยขนาด 6.6 KV', 2158, 7, 19), + (3, 'LP3-UT-ST-301', 'ขยายทางเดิน, ทางลาดคนพิการ', 2158, 7, 20), + (3, 'LP3-UT-ST-311', 'ขยายถนน TYPE 1', 2158, 7, 21), + (3, 'LP3-UT-ST-321', 'อยายถนน TYPE 2 แผ่นที่ 1', 2158, 7, 22), + (3, 'LP3-UT-ST-322', 'อยายถนน TYPE 2 แผ่นที่ 2', 2158, 7, 23), + (3, 'LP3-UT-ST-323', 'อยายถนน TYPE 2 แผ่นที่ 3', 2158, 7, 24), + (3, 'LP3-UT-ST-401', 'อยายรั้วโปร่ง', 2158, 7, 25), + (3, 'LP3-UT-ST-411', 'ขยายริ้วทับ', 2158, 7, 26), + (3, 'LP3-UT-GN-001', 'สารบัญ รายละเอียดสัญลักษณ์ประกอบและคำย่อ', 2159, 7, 27), + (3, 'LP3-UT-iN-001', 'อาคารสถานีไฟฟ้าย่อย ขนาด 115 kV. ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 28), + (3, 'LP3-UT-iN-002', 'อาคารสถานีไฟฟ้าย่อยขนาด 22 kV. No.6 - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 29), + (3, 'LP3-UT-iN-003', 'อาคารสถานีไฟฟ้าย่อยขนาด 22 kV. No.7 - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 30), + (3, 'LP3-UT-iN-004', 'อาคารพักขยะอันตราย และขยะทั่วไป - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 31), + (3, 'LP3-UT-iN-005', 'อาคารร้านอาหาร และจำหน่ายสินค้าปลอดภาษี - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 32), + (3, 'LP3-UT-iN-006', 'อาคารสถานีสูบจ่ายน้ำประปา - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 33), + (3, 'LP3-UT-iN-007', 'อาคารสถานีสูบระบายน้ำ - ฟังระบบประปาและระบบระบายน้ำ', 2159, 7, 34), + (3, 'LP3-UT-iN-008', 'กลุ่มอาคารในท่าเรือบริการ - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 35), + (3, 'LP3-UT-iN-009', 'กลุ่มอาคารในท่าเรือชายฝั่ง - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 36), + (3, 'LP3-UT-iN-010', 'อาคารประตูตรวจสอบ 5 - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 37), + (3, 'LP3-UT-iN-011', 'อาคารควบคุมสถานีสูบน้ำทะเล - ผังระบบประปาและระบบระบายน้ำ', 2159, 7, 38), + (3, 'LP3-CW-TP-101', 'รายละเอียดการต่อท่อประปาของโครงการ และท่อจ่ายน้ำประปาสำหรับอาคาร', 2160, 7, 39), + (3, 'LP3-CW-TP-102', 'รายละเอียดการติดตั้งหัวดับเพลิง', 2160, 7, 40), + (3, 'LP3-CW-TP-103', 'มาตราฐานการวางท่อในร่องดิน', 2160, 7, 41), + (3, 'LP3-DN-TP-101', 'ขนาดและรายละเอียดการเสริมเหล็กสำหรับท่อกลม', 2160, 7, 42), + (3, 'LP3-DN-TP-102', 'มาตรฐานบ่อพักท่อระบายน้ำสำหรับท่อกลม', 2160, 7, 43), + (3, 'LP3-DN-TP-103', 'การขุดวางท่อระบายน้ำ การรองพื้นท่อ และการต่อท่อสำหรับท่อกลม', 2160, 7, 44), + (3, 'LP3-DN-TP-104', 'ท่อ ค.ส.ล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ผิวจราจร วัสดุถมน้อยกว่า 0.60 ม', 2160, 7, 45), + (3, 'LP3-DN-TP-105', 'ท่อ ค.ส.ล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ผิวจราจร วัสดุถมระหว่าง 0.60 ม ถึง 3.00 ม', 2160, 7, 46), + (3, 'LP3-DN-TP-106', 'ท่อ ค.ส.ล. รูปสี่เหลี่ยม สำหรับงานระบายน้ำใต้ทางเท้า วัสดุถมระหว่าง 0.60 ม. ถึง 3.00 ม', 2160, 7, 47), + (3, 'LP3-DN-TP-107', 'มาตรฐานบ่อพักท่อระบายน้ำสำหรับท่อเหลี่ยมเชื่อมต่อท่อเหลี่ยม', 2160, 7, 48), + (3, 'LP3-DN-TP-108', 'การชุดวางท่อระบายน้ำ การรองพื้นท่อ และการต่อพ่อสำหรับท่อเหลี่ยม', 2160, 7, 49), + (3, 'LP3-DN-TP-112', 'รายละเอียดรางระบายน้ำ ค.ส.ล. พร้อมฝาตะแกรงเหล็ก', 2160, 7, 50), + (3, 'LP3-HV-AR-001', 'สารบัญ', 2161, 8, 1), + (3, 'LP3-HV-AR-002', 'สัญลักษณ์ประกอบ, ตารางวัสดุประกอบ', 2161, 8, 2), + (3, 'LP3-HV-AR-003', 'ผังแม่บททาเรือชั้นที่ 3', 2161, 8, 3), + (3, 'LP3-HV-AR-004', 'ผังบริเวณอาคาร', 2161, 8, 4), + (3, 'LP3-HV-AR-101', 'แปลนพื้นชั้นที่ 1', 2161, 8, 5), + (3, 'LP3-HV-AR-102', 'แปลนพื้นชั้นที่ 2', 2161, 8, 6), + (3, 'LP3-HV-AR-103', 'แปลนพื้นชั้นที่ 3', 2161, 8, 7), + (3, 'LP3-HV-AR-104', 'แปลนหลังคา', 2161, 8, 8), + (3, 'LP3-HV-AR-201', 'รูปด้าน 1.2', 2161, 8, 9), + (3, 'LP3-HV-AR-202', 'รูปด้าน 3,4', 2161, 8, 10), + (3, 'LP3-HV-AR-301', 'รูปตัด AB', 2161, 8, 11), + (3, 'LP3-HV-AR-302', 'รูปตัด C', 2161, 8, 12), + (3, 'LP3-HV-AR-401', 'ขยายบันได 1', 2161, 8, 13), + (3, 'LP3-HV-AR-402', 'ขยายบันไดลิง LADDER', 2161, 8, 14), + (3, 'LP3-HV-AR-403', 'ขยายทางลาด', 2161, 8, 15), + (3, 'LP3-HV-AR-501', 'ขยายห้องน้ำ TL-01', 2161, 8, 16), + (3, 'LP3-HV-AR-601', 'ขยายประตู หนาตาง 1/3', 2161, 8, 17), + (3, 'LP3-HV-AR-602', 'ขยายประตู หนาดาง 2/3', 2161, 8, 18), + (3, 'LP3-HV-AR-603', 'ขยายประตู หนาดาง 3/3', 2161, 8, 19), + (3, 'LP3-HV-AR-604', 'ตารางรายการวัสดุประตู', 2161, 8, 20), + (3, 'LP3-HV-AR-605', 'รายการอุปกรณ์ประตู-หน้าต่าง 1/3', 2161, 8, 21), + (3, 'LP3-HV-AR-606', 'รายการอุปกรณ์ประตู-หน้าต่าง 2/3', 2161, 8, 22), + (3, 'LP3-HV-AR-607', 'รายการอุปกรณ์ประตู-หน้าต่าง 3/3', 2161, 8, 23), + (3, 'LP3-HV-AR-608', 'แสดงรายละเอียดประตู-หน้าต่าง 1/3', 2161, 8, 24), + (3, 'LP3-HV-AR-609', 'แสดงรายละเอียดประตู-หน้าต่าง 2/3', 2161, 8, 25), + (3, 'LP3-HV-AR-610', 'แสดงรายละเอียดประตู-หน้าต่าง 3/3', 2161, 8, 26), + (3, 'LP3-HV-AR-701', 'รูปตัดผนัง', 2161, 8, 27), + (3, 'LP3-HV-AR-702', 'อยายประตูรั้วใครงการ ขยายขอบคันหิน', 2161, 8, 28), + (3, 'LP3-HV-AR-801', 'แปลนผ้า-เพดานชิ้นที่ 1', 2161, 8, 29), + (3, 'LP3-HV-AR-802', 'แปลนฝา-เพดานชิ้นที่ 2', 2161, 8, 30), + (3, 'LP3-HV-AR-803', 'แปลนผ้า-เพดานชิ้นที่ 3', 2161, 8, 31), + (3, 'LP3-HV-ID-001', 'สารบัญ', 2162, 8, 32), + (3, 'LP3-HV-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 2', 2162, 8, 33), + (3, 'LP3-HV-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2162, 8, 34), + (3, 'LP3-HV-ID-103', 'แปลนแสดงตำแหน่งป้าย ชั้น 2', 2162, 8, 35), + (3, 'LP3-HV-ID-104', 'แปลนแสดงตำแหน่งป้าย ชั้น 3', 2162, 8, 36), + (3, 'LP3-HV-ID-501', 'ตารางข้อกำหนดการใช้ครุภัณฑ์', 2162, 8, 37), + (3, 'LP3-HV-ID-502', 'ตารางครุภัณฑ์', 2162, 8, 38), + (3, 'LP3-HV-ID-503', 'ตารางครุภัณฑ์', 2162, 8, 39), + (3, 'LP3-HV-ID-504', 'ตารางครุภัณฑ์', 2162, 8, 40), + (3, 'LP3-HV-ID-601', 'ขยายห้องเตรียมอาหาร 81 ชั้น 2', 2162, 8, 41), + (3, 'LP3-HV-ID-701', 'ตารางรายการและสัญลักษณ์ประกอบงานป้าย', 2162, 8, 42), + (3, 'LP3-HV-ID-702', 'ขยายป้าย', 2162, 8, 43), + (3, 'LP3-HV-ID-703', 'อยายป้าย', 2162, 8, 44), + (3, 'LP3-HV-ID-704', 'ขยายป้าย', 2162, 8, 45), + (3, 'LP3-HV-ID-705', 'ตารางแสดงรายชื่อห้อง', 2162, 8, 46), + (3, 'LP3-HV-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2163, 8, 47), + (3, 'LP3-HV-ST-002', 'ข้อกำหนดทั่วไป', 2163, 8, 48), + (3, 'LP3-HV-ST-003', 'รายละเอียดการคิดตั้งพื้นสำเร็จรูป', 2163, 8, 49), + (3, 'LP3-HV-ST-011', 'ผังแสดงน้ำหนักบรรทุก ชั้นที่ 1', 2163, 8, 50), + (3, 'LP3-HV-ST-012', 'ผังแสดงน้ำหนักบรรทุก ชั้นที่ 2', 2163, 8, 51), + (3, 'LP3-HV-ST-013', 'ผังแสดงน้ำหนักบรรทุก ชั้นที่ 3', 2163, 8, 52), + (3, 'LP3-HV-ST-014', 'ผังแสดงน้ำหนักบรรทุก ชิ้นหลังคา', 2163, 8, 53), + (3, 'LP3-HV-ST-101', 'ผังฐานราก และ ตอม่อ', 2163, 8, 54), + (3, 'LP3-HV-ST-102', 'ผังโครงสร้างชั้นที่ 1', 2163, 8, 55), + (3, 'LP3-HV-ST-103', 'ผังโครงสร้างชั้นที่ 2', 2163, 8, 56), + (3, 'LP3-HV-ST-104', 'ผังโครงสร้างชั้นที่ 3', 2163, 8, 57), + (3, 'LP3-HV-ST-005', 'ผังโครงสร้างหลังคา', 2163, 8, 58), + (3, 'LP3-HV-ST-111', 'รูปตัด GRID LINE 4', 2163, 8, 59), + (3, 'LP3-HV-ST-201', 'ขยายฐานราก แผนที่ 1', 2163, 8, 60), + (3, 'LP3-HV-ST-202', 'ขยายฐานราก แผ่นที่ 2', 2163, 8, 61), + (3, 'LP3-HV-ST-301', 'ขยายเสา', 2163, 8, 62), + (3, 'LP3-HV-ST-401', 'TYPICAL BEAM DETAILS', 2163, 8, 63), + (3, 'LP3-HV-ST-402', 'ขยายคาน', 2163, 8, 64), + (3, 'LP3-HV-ST-501', 'อยายพื้น', 2163, 8, 65), + (3, 'LP3-HV-ST-601', 'ขยายบันได', 2163, 8, 66), + (3, 'LP3-HV-ST-701', 'MISCELLANEOUS DETAILS', 2163, 8, 67), + (3, 'LP3-HV-ST-801', 'ขยาย CATWALK', 2163, 8, 68), + (3, 'LP3-HV-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2164, 8, 69), + (3, 'LP3-HV-SN-002', 'ตารางแสดงรายการประกอบ', 2164, 8, 70), + (3, 'LP3-HV-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2164, 8, 71), + (3, 'LP3-HV-SN-201', 'แปลนระบบระบายน้ำ ชั้นที่ 1', 2164, 8, 72), + (3, 'LP3-HV-SN-202', 'แปลนระบบสุขาภิบาล ชั้นที่ 1', 2164, 8, 73), + (3, 'LP3-HV-SN-203', 'แปลนระบบสุขาภิบาล ชั้นที่ 2', 2164, 8, 74), + (3, 'LP3-HV-SN-204', 'แปลนระบบสุขาภิบาล ชั้นที่ 3', 2164, 8, 75), + (3, 'LP3-HV-SN-205', 'แปลนระบบสุขาภิบาล ชั้นหลังคา', 2164, 8, 76), + (3, 'LP3-HV-SN-301', 'ขยายห้องน้ำ', 2164, 8, 77), + (3, 'LP3-HV-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2164, 8, 78), + (3, 'LP3-HV-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2164, 8, 79), + (3, 'LP3-HV-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2164, 8, 80), + (3, 'LP3-HV-SN-404', 'ขยายมาตรฐานการติดตั้งทั่วไป 4', 2164, 8, 81), + (3, 'LP3-HV-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2165, 8, 82), + (3, 'LP3-HV-HV-101', 'รายการวัสดุและอุปกรณ์ 1/3', 2165, 8, 83), + (3, 'LP3-HV-HV-102', 'รายการวัสดุและอุปกรณ์ 2/3', 2165, 8, 84), + (3, 'LP3-HV-HV-103', 'รายการวัสดุและอุปกรณ์ 3/3', 2165, 8, 85), + (3, 'LP3-HV-HV-201', 'แปลนระบบปรับอากาศ ชั้น 1', 2165, 8, 86), + (3, 'LP3-HV-HV-202', 'แปลนระบบปรับอากาศ ชั้น 2', 2165, 8, 87), + (3, 'LP3-HV-HV-203', 'แปลนระบบปรับอากาศ ชั้น 3', 2165, 8, 88), + (3, 'LP3-HV-HV-204', 'แปลนระบบระบายอากาศ ชั้น 1', 2165, 8, 89), + (3, 'LP3-HV-HV-205', 'แปลนระบบระบายอากาศ ชั้น 2', 2165, 8, 90), + (3, 'LP3-HV-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2165, 8, 91), + (3, 'LP3-HV-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2165, 8, 92), + (3, 'LP3-HV-EE-001', 'สารบัญ', 2166, 8, 93), + (3, 'LP3-HV-EE-002', 'สัญลักษณ์ระบบไฟฟ้า', 2166, 8, 94), + (3, 'LP3-HV-EE-003', 'สัญลักษณ์ระบบสื่อสาร', 2166, 8, 95), + (3, 'LP3-HV-EE-004', 'สัญลักษณ์โคมไฟ', 2166, 8, 96), + (3, 'LP3-HV-EE-101', '115 kV SINGLE LINE DIAGRAM', 2166, 8, 97), + (3, 'LP3-HV-EE-102', '115 KV EQUIPMENT SPECIFICATIONS', 2166, 8, 98), + (3, 'LP3-HV-EE-103', '115 KV RELAYING AND METERING DIAGRAM', 2166, 8, 99), + (3, 'LP3-HV-EE-104', 'PROTECTIVE DEVICE FUNCTION FOR 115 kV', 2166, 8, 100), + (3, 'LP3-HV-EE-105', '22 KV SINGLE LINE DIAGRAM', 2166, 8, 101), + (3, 'LP3-HV-EE-106', '22 KV EQUTPMENT SPECIFICAION', 2166, 8, 102), + (3, 'LP3-HV-EE-107', '22 kV RELAYING AND METERING DIAGRAM', 2166, 8, 103), + (3, 'LP3-HV-EE-108', 'PROTECTIVE DEVICE PUNCTION FOR 22 kV', 2166, 8, 104), + (3, 'LP3-HV-EE-109', 'OVERALL AC DISTRIBUTION BOARD AND DC CISTRIBUTJON BOARD SINGLE LINE DIAGRAM', 2166, 8, 105), + (3, 'LP3-HV-EE-110', 'AC DISTRIBUTION BOARD NOT SINGLE LINE DIAGRAM', 2166, 8, 106), + (3, 'LP3-HV-EE-111', 'AC DISTRIBUTION BOARD NO2 SINGLE LINE DIAGRAM', 2166, 8, 107), + (3, 'LP3-HV-EE-112', 'DC DISTRIBUTION BOARD NOT SINGLE LINE DIAGRAM', 2166, 8, 108), + (3, 'LP3-HV-EE-113', 'DC DISTRIBUTION BOARD NO2 SINGLE LINE DIAGRAM', 2166, 8, 109), + (3, 'LP3-HV-EE-114', 'ตารางโหลดไฟฟ้า', 2166, 8, 110), + (3, 'LP3-HV-EE-115', 'ไรเซอร์ไดอะแกรมระบบโทรศัพท์ ระบบคอมพิวเตอร์ และระบบโทรทัศน์วงจรปิด', 2166, 8, 111), + (3, 'LP3-HV-EE-116', 'ไรเซอร์ไดอะแกรมระบบแจ้งเหตุเพลิงไหม้', 2166, 8, 112), + (3, 'LP3-HV-EE-201', 'แปลน์โคมไฟ ชิ้นที่ 1', 2166, 8, 113), + (3, 'LP3-HV-EE-202', 'แปลน์โคมไฟ ชั้นที่ 2', 2166, 8, 114), + (3, 'LP3-HV-EE-203', 'แปลน์โคมไฟ ชั้นที่ 3', 2166, 8, 115), + (3, 'LP3-HV-EE-301', 'แปลนเต้ารับไฟฟ้า เต้ารับโทรศัพท์ เต้ารับคอมพิวเตอร์และโทรทัศน์วงจรปิด ชั้นที่ 1', 2166, 8, 116), + (3, 'LP3-HV-EE-302', 'แปลนเต้ารับไฟฟ้า เต้ารับโทรศัพท์ เต้ารับคอมพิวเตอร์และโทรทัศน์วงจรปิด ชั้นที่ 2', 2166, 8, 117), + (3, 'LP3-HV-EE-303', 'แปลนเต้ารับไฟฟ้า เต้ารับโทรศัพท์ เต้ารับคอมพิวเตอร์และไทรทัศน์วงจรปิด ชั้นที่ 3', 2166, 8, 118), + (3, 'LP3-HV-EE-401', 'แปลนระบบป้องกันฟ้าผ่า', 2166, 8, 119), + (3, 'LP3-HV-EE-402', 'แปลนระบบกราวด์', 2166, 8, 120), + (3, 'LP3-HV-EE-403', 'แปลนระบบกราวด์ชั้นที่ 1', 2166, 8, 121), + (3, 'LP3-HV-EE-404', 'แปลนระบบกราวด์ชั้นที่ 2', 2166, 8, 122), + (3, 'LP3-HV-EE-501', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 1', 2166, 8, 123), + (3, 'LP3-HV-EE-502', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้นที่ 2', 2166, 8, 124), + (3, 'LP3-HV-EE-601', 'แปลนตำแหน่งอุปกรณ์ไฟฟ้า ชั้นที่ 1', 2166, 8, 125), + (3, 'LP3-HV-EE-602', 'แปลนตำแหน่งอุปกรณ์ไฟฟ้า ชั้นที่ 2', 2166, 8, 126), + (3, 'LP3-HV-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2166, 8, 127), + (3, 'LP3-HV-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2166, 8, 128), + (3, 'LP3-HV-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2166, 8, 129), + (3, 'LP3-HV-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2166, 8, 130), + (3, 'LP3-HV-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2166, 8, 131), + (3, 'LP3-HV-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6', 2166, 8, 132), + (3, 'LP3-HV-EE-707', 'รายละเอียดการติดตั้งแผ่นที่ 7', 2166, 8, 133), + (3, 'LP3-HV-EE-708', 'รายละเอียดการติดตั้งแผ่นที่ 8', 2166, 8, 134), + (3, 'LP3-HV-EE-801', 'รายละเอียด OIL SEPERATOR แผ่นที่ 1', 2166, 8, 135), + (3, 'LP3-HV-EE-802', 'รายละเอียด OIL SEPERATOR แผนที่ 2', 2166, 8, 136), + (3, 'LP3-HV-EE-803', 'รายละเอียด OIL SEPERATOR แผ่นที่ 3', 2166, 8, 137), + (3, 'LP3-S6-AR-001', 'สารบัญ', 2167, 8, 1), + (3, 'LP3-S6-AR-002', 'สัญลักษณ์ประกอบ', 2167, 8, 2), + (3, 'LP3-S6-AR-003', 'ผังแม่บททาเรือชั้นที่ 3', 2167, 8, 3), + (3, 'LP3-S6-AR-004', 'ผังบริเวณอาคาร', 2167, 8, 4), + (3, 'LP3-S6-AR-101', 'แปลนพื้นระดับ +0.15, แปลนพื้นชั้นที่ 1 แปลนหลังคา', 2167, 8, 5), + (3, 'LP3-S6-AR-201', 'รูปค้าน 1, 2, 3, 4, รูปตัด A,B', 2167, 8, 6), + (3, 'LP3-S6-AR-401', 'อยายบันได 1, ขยายบันได 2', 2167, 8, 7), + (3, 'LP3-S6-AR-501', 'ขยายห้องน้ำ TL-01', 2167, 8, 8), + (3, 'LP3-S6-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2167, 8, 9), + (3, 'LP3-S6-AR-701', 'ขยายประตูรั้วโครงการ,ขยายทางเดินบล็อกคอนกรีต', 2167, 8, 10), + (3, 'LP3-S6-AR-801', 'แปลนผ้าเพดาน', 2167, 8, 11), + (3, 'LP3-S6-ID-001', 'สารบัญ', 2168, 8, 12), + (3, 'LP3-S6-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1', 2168, 8, 13), + (3, 'LP3-S6-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2168, 8, 14), + (3, 'LP3-S6-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2169, 8, 15), + (3, 'LP3-S6-ST-002', 'ข้อกำหนดทั่วไป', 2169, 8, 16), + (3, 'LP3-S6-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2169, 8, 17), + (3, 'LP3-S6-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2169, 8, 18), + (3, 'LP3-S6-ST-101', 'ผังโครงสร้างอาคาร', 2169, 8, 19), + (3, 'LP3-S6-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2169, 8, 20), + (3, 'LP3-S6-ST-202', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2169, 8, 21), + (3, 'LP3-S6-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2169, 8, 22), + (3, 'LP3-S6-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2170, 8, 23), + (3, 'LP3-S6-SN-002', 'ตารางแสดงรายการประกอบ', 2170, 8, 24), + (3, 'LP3-S6-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2170, 8, 25), + (3, 'LP3-S6-SN-201', 'แปลนระบบสุขาภิบาลชั้นที่ 1', 2170, 8, 26), + (3, 'LP3-S6-SN-202', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1 และชั้นหลังคา', 2170, 8, 27), + (3, 'LP3-S6-SN-301', 'ขยายห้องน้ำ', 2170, 8, 28), + (3, 'LP3-S6-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2170, 8, 29), + (3, 'LP3-S6-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2170, 8, 30), + (3, 'LP3-S6-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2170, 8, 31), + (3, 'LP3-S6-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2171, 8, 32), + (3, 'LP3-S6-HV-101', 'รายการวัสดุและอุปกรณ์ 1/3', 2170, 8, 33), + (3, 'LP3-S6-HV-102', 'รายการวัสดุและอุปกรณ์ 2/3', 2170, 8, 34), + (3, 'LP3-S6-HV-103', 'รายการวัสดุและอุปกรณ์ 3/3', 2170, 8, 35), + (3, 'LP3-S6-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1', 2170, 8, 36), + (3, 'LP3-S6-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2170, 8, 37), + (3, 'LP3-S6-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2170, 8, 38), + (3, 'LP3-S6-EE-001', 'สารบัญ', 2172, 8, 39), + (3, 'LP3-S6-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2172, 8, 40), + (3, 'LP3-S6-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2172, 8, 41), + (3, 'LP3-S6-EE-004', 'สัญลักษณ์ตารางโคม', 2172, 8, 42), + (3, 'LP3-S6-EE-101', 'SINGLE LINE DIAGRAM', 2172, 8, 43), + (3, 'LP3-S6-EE-102', 'ไรเซอร์ไดอะแกรม และตารางโหลด', 2172, 8, 44), + (3, 'LP3-S6-EE-201', 'EQUIPMENT LAYOUT', 2172, 8, 45), + (3, 'LP3-S6-EE-202', 'แปลนระบบไฟฟ้าแสงสว่าง', 2172, 8, 46), + (3, 'LP3-S6-EE-301', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์', 2172, 8, 47), + (3, 'LP3-S6-EE-401', 'แปลนระบบป้องกันฟ้าผ่าและกราวด', 2172, 8, 48), + (3, 'LP3-S6-EE-402', 'แปลนระบบกราวด์ฐานรากใต้อาคาร SUBSTATION 22 KV.', 2172, 8, 49), + (3, 'LP3-S6-EE-403', 'แปลนระบบกราวด์พื้นห้อง SUBSTATION 22 KV.', 2172, 8, 50), + (3, 'LP3-S6-EE-501', 'แปลนระบบสัญญาณเตือนอัคคีภัย', 2172, 8, 51), + (3, 'LP3-S6-EE-601', 'แปลนกล้องโทรทัศน์วงจรปิด', 2172, 8, 52), + (3, 'LP3-S6-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2172, 8, 53), + (3, 'LP3-S6-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2172, 8, 54), + (3, 'LP3-S6-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2172, 8, 55), + (3, 'LP3-S6-EE-704', 'รายละเอียดการติดตั้งแผนที่ 4', 2172, 8, 56), + (3, 'LP3-S6-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2172, 8, 57), + (3, 'LP3-S6-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6', 2172, 8, 58), + (3, 'LP3-S6-EE-707', 'รายละเอียดการติดตั้งแผ่นที่ 7', 2172, 8, 59), + (3, 'LP3-S6-EE-708', 'รายละเอียดการติดตั้งแผ่นที่ 8', 2172, 8, 60), + (3, 'LP3-S6-EE-709', 'รายละเอียดการติดตั้งแผ่นที่ 9', 2172, 8, 61), + (3, 'LP3-S7-AR-001', 'สารบัญ', 2173, 8, 1), + (3, 'LP3-S7-AR-002', 'สัญลักษณ์ประกอบ', 2173, 8, 2), + (3, 'LP3-S7-AR-003', 'ผังแม่บทท่าเรือชั้นที่ 3', 2173, 8, 3), + (3, 'LP3-S7-AR-004', 'ผังบริเวณอาคาร', 2173, 8, 4), + (3, 'LP3-S7-AR-101', 'แปลนพื้นชั้นที่ 1 แปลนหลังคา, แปลนพื้นระดับ +0.15', 2173, 8, 5), + (3, 'LP3-S7-AR-201', 'รูปด้าน 1, 2, 3, 4, รูปตัด A,B', 2173, 8, 6), + (3, 'LP3-S7-AR-401', 'ขยายบันได 1, ขยายบันได 2', 2173, 8, 7), + (3, 'LP3-S7-AR-501', 'ขยายห้องน้ำ TL-01', 2173, 8, 8), + (3, 'LP3-S7-AR-601', 'ขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง', 2173, 8, 9), + (3, 'LP3-S7-AR-701', 'ขยายประตูรั้วโครงการ,ขยายขอบคันหิน', 2173, 8, 10), + (3, 'LP3-S7-AR-801', 'แปลนฝ้าเพดาน', 2173, 8, 11), + (3, 'LP3-S7-ID-001', 'สารบัญ', 2174, 8, 12), + (3, 'LP3-S7-ID-101', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1', 2174, 8, 13), + (3, 'LP3-S7-ID-102', 'แปลนแสดงตำแหน่งป้าย ชั้น 1', 2174, 8, 14), + (3, 'LP3-S7-ST-001', 'สารบัญ, สัญลักษณ์ประกอบ', 2175, 8, 15), + (3, 'LP3-S7-ST-002', 'ข้อกำหนดทั่วไป', 2175, 8, 16), + (3, 'LP3-S7-ST-003', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป', 2175, 8, 17), + (3, 'LP3-S7-ST-011', 'ผังแสดงน้ำหนักบรรทุกจร', 2175, 8, 18), + (3, 'LP3-S7-ST-101', 'ผังโครงสร้างอาคาร', 2175, 8, 19), + (3, 'LP3-S7-ST-201', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1', 2175, 8, 20), + (3, 'LP3-S7-ST-202', 'ลยายรายละเอียดงานโครงสร้าง แผ่นที่ 2', 2175, 8, 21), + (3, 'LP3-S7-ST-203', 'ขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3', 2175, 8, 22), + (3, 'LP3-S7-SN-001', 'สารบัญ สัญลักษณ์ และอักษรย่อ', 2176, 8, 23), + (3, 'LP3-S7-SN-002', 'ตารางแสดงรายการประกอบ', 2176, 8, 24), + (3, 'LP3-S7-SN-101', 'ไดอะแกรมระบบสุขาภิบาล', 2176, 8, 25), + (3, 'LP3-S7-SN-201', 'แปลนระบบสุขาภิบาลชั้นที่ 1', 2176, 8, 26), + (3, 'LP3-S7-SN-202', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1 และชั้นหลังคา', 2176, 8, 27), + (3, 'LP3-S7-SN-301', 'ขยายห้องน้ำ', 2176, 8, 28), + (3, 'LP3-S7-SN-401', 'ขยายมาตรฐานการติดตั้งทั่วไป 1', 2176, 8, 29), + (3, 'LP3-S7-SN-402', 'ขยายมาตรฐานการติดตั้งทั่วไป 2', 2176, 8, 30), + (3, 'LP3-S7-SN-403', 'ขยายมาตรฐานการติดตั้งทั่วไป 3', 2176, 8, 31), + (3, 'LP3-S7-HV-001', 'สารบัญ สัญลักษณ์และอักษรย่อ', 2177, 8, 32), + (3, 'LP3-S7-HV-101', 'รายการวัสดุและอุปกรณ์ 1/3', 2177, 8, 33), + (3, 'LP3-S7-HV-102', 'รายการวัสดุและอุปกรณ์ 2/3', 2177, 8, 34), + (3, 'LP3-S7-HV-103', 'รายการวัสดุและอุปกรณ์ 3/3', 2177, 8, 35), + (3, 'LP3-S7-HV-201', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1', 2177, 8, 36), + (3, 'LP3-S7-HV-301', 'ขยายการติดตั้งทั่วไป 1/2', 2177, 8, 37), + (3, 'LP3-S7-HV-302', 'ขยายการติดตั้งทั่วไป 2/2', 2177, 8, 38), + (3, 'LP3-S7-EE-001', 'สารบัญ', 2178, 8, 39), + (3, 'LP3-S7-EE-002', 'สัญลักษณ์งานระบบไฟฟ้า', 2178, 8, 40), + (3, 'LP3-S7-EE-003', 'สัญลักษณ์งานระบบสื่อสาร', 2178, 8, 41), + (3, 'LP3-S7-EE-004', 'สัญลักษณ์ตารางโคม', 2178, 8, 42), + (3, 'LP3-S7-EE-101', 'SINGLE LINE DIAGRAM SHEET 1', 2178, 8, 43), + (3, 'LP3-S7-EE-102', 'SINGLE LINE DIAGRAM SHEET 2', 2178, 8, 44), + (3, 'LP3-S7-EE-103', 'ไรเซอร์ไดอะแกรม และตารางโหลด', 2178, 8, 45), + (3, 'LP3-S7-EE-201', 'EQUIPMENT LAYOUT', 2178, 8, 46), + (3, 'LP3-S7-EE-202', 'แปลนระบบไฟฟ้าแสงสว่าง', 2178, 8, 47), + (3, 'LP3-S7-EE-301', 'แปลนเต้ารับไฟฟ้าโทรศัพท์และคอมพิวเตอร์', 2178, 8, 48), + (3, 'LP3-S7-EE-401', 'แปลนระบบป้องกันฟ้าผ่าและกราวด', 2178, 8, 49), + (3, 'LP3-S7-EE-402', 'แปลนระบบกราวด์ฐานรากใต้อาคาร SUBSTATION 22 KV.', 2178, 8, 50), + (3, 'LP3-S7-EE-403', 'แปลนระบบกราวด์พื้นห้อง SUBSTATION 22 KV.', 2178, 8, 51), + (3, 'LP3-S7-EE-501', 'แปลนระบบสัญญาณเตือนอัคคีภัย', 2178, 8, 52), + (3, 'LP3-S7-EE-601', 'แปลนกล้องโทรทัศน์วงจรปิด', 2178, 8, 53), + (3, 'LP3-S7-EE-701', 'รายละเอียดการติดตั้งแผ่นที่ 1', 2178, 8, 54), + (3, 'LP3-S7-EE-702', 'รายละเอียดการติดตั้งแผ่นที่ 2', 2178, 8, 55), + (3, 'LP3-S7-EE-703', 'รายละเอียดการติดตั้งแผ่นที่ 3', 2178, 8, 56), + (3, 'LP3-S7-EE-704', 'รายละเอียดการติดตั้งแผ่นที่ 4', 2178, 8, 57), + (3, 'LP3-S7-EE-705', 'รายละเอียดการติดตั้งแผ่นที่ 5', 2178, 8, 58), + (3, 'LP3-S7-EE-706', 'รายละเอียดการติดตั้งแผ่นที่ 6', 2178, 8, 59), + (3, 'LP3-S7-EE-707', 'รายละเอียดการติดตั้งแผ่นที่ 7', 2178, 8, 60), + (3, 'LP3-S7-EE-708', 'รายละเอียดการติดตั้งแผ่นที่ 8', 2178, 8, 61), + (3, 'LP3-S7-EE-709', 'รายละเอียดการติดตั้งแผ่นที่ 9', 2178, 8, 62), + (3, 'LP3-UT-CT-001', 'สารบัญระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด', 2179, 8, 1), + (3, 'LP3-UT-CT-002', 'KEY MAP PLAN ระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด', 2179, 8, 2), + (3, 'LP3-UT-CT-003', 'สัญลักษณ์ระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด', 2179, 8, 3), + (3, 'LP3-UT-CT-004', 'NETWORK SYSTEM DIAGRAM', 2179, 8, 4), + (3, 'LP3-UT-CT-005', 'ไดอะแกรมระบบกล้องโทรทัศน์วงจรปิด CCTV SYSTEM DIAGRAM', 2179, 8, 5), + (3, 'LP3-UT-CT-006', 'ไดอะแกรมระบบแจ้งเหตุเพลิงไหม้ FIRE ALARM SYSTEM DIAGRAM', 2179, 8, 6), + (3, 'LP3-UT-CT-007', 'ยังระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด', 2179, 8, 7), + (3, 'LP3-UT-CT-008', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (1/15)', 2179, 8, 8), + (3, 'LP3-UT-CT-009', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (2/15)', 2179, 8, 9), + (3, 'LP3-UT-CT-010', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที (3/15)', 2179, 8, 10), + (3, 'LP3-UT-CT-011', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (4/15)', 2179, 8, 11), + (3, 'LP3-UT-CT-012', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที (5/15)', 2179, 8, 12), + (3, 'LP3-UT-CT-013', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (6/15)', 2179, 8, 13), + (3, 'LP3-UT-CT-014', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (7/15)', 2179, 8, 14), + (3, 'LP3-UT-CT-015', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (8/15)', 2179, 8, 15), + (3, 'LP3-UT-CT-016', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (9/15)', 2179, 8, 16), + (3, 'LP3-UT-CT-017', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (10/15)', 2179, 8, 17), + (3, 'LP3-UT-CT-018', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (11/15)', 2179, 8, 18), + (3, 'LP3-UT-CT-019', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (12/15)', 2179, 8, 19), + (3, 'LP3-UT-CT-020', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (13/15)', 2179, 8, 20), + (3, 'LP3-UT-CT-021', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (14/15)', 2179, 8, 21), + (3, 'LP3-UT-CT-022', 'แปลนระบบสื่อสารและระบบกล้องโทรทัศน์วงจรปิด แผ่นที่ (15/15)', 2179, 8, 22), + (3, 'LP3-UT-CT-023', 'TYPICAL SEMI DIRECT BURIAL CONSTRUCTION FOR COMMUNICATION DUCT BANK', 2179, 8, 23), + (3, 'LP3-UT-CT-024', 'COMMUNICATION HAND HOLE CONSTRUCTION DETAIL', 2179, 8, 24), + (3, 'LP3-UT-EE-001', 'สารบัญ', 2180, 8, 1), + (3, 'LP3-UT-EE-002', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 1', 2180, 8, 2), + (3, 'LP3-UT-EE-003', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 2', 2180, 8, 3), + (3, 'LP3-UT-EE-004', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 3', 2180, 8, 4), + (3, 'LP3-UT-EE-005', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 4', 2180, 8, 5), + (3, 'LP3-UT-EE-006', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 5', 2180, 8, 6), + (3, 'LP3-UT-EE-007', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 6', 2180, 8, 7), + (3, 'LP3-UT-EE-008', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 7', 2180, 8, 8), + (3, 'LP3-UT-EE-009', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 8', 2180, 8, 9), + (3, 'LP3-UT-EE-010', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 9', 2180, 8, 10), + (3, 'LP3-UT-EE-011', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 10', 2180, 8, 11), + (3, 'LP3-UT-EE-012', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 11', 2180, 8, 12), + (3, 'LP3-UT-EE-013', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 12', 2180, 8, 13), + (3, 'LP3-UT-EE-014', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 13', 2180, 8, 14), + (3, 'LP3-UT-EE-015', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 14', 2180, 8, 15), + (3, 'LP3-UT-EE-016', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 15', 2180, 8, 16), + (3, 'LP3-UT-EE-017', 'แนวสายเคเบิ้ลใต้ดินแรงสูง แผ่นที่ 16', 2180, 8, 17), + (3, 'LP3-UT-EE-018', 'รายละเอียดการติดตั้ง แผ่นที่ 1', 2180, 8, 18), + (3, 'LP3-UT-EE-019', 'รายละเอียดการติดตั้ง แผ่นที่ 2', 2180, 8, 19), + (3, 'LP3-UT-EE-020', 'รายละเอียดการติดตั้ง แผ่นที่ 3', 2180, 8, 20), + (3, 'LP3-UT-EE-021', 'รายละเอียดการติดตั้ง แผ่นที่ 4', 2180, 8, 21), + (3, 'LP3-UT-EE-022', 'รายละเอียดการติดตั้ง แผ่นที่ 5', 2180, 8, 22), + (3, 'LP3-UT-EE-023', 'รายละเอียดการติดตั้ง แผ่นที่ 6', 2180, 8, 23), + (3, 'LP3-UT-EE-024', 'รายละเอียดการติดตั้ง แผ่นที่ 7', 2180, 8, 24), + (3, 'LP3-UT-EE-025', 'รายละเอียดการติดตั้ง แผ่นที่ 8', 2180, 8, 25); diff --git a/specs/99-archives/lcbp3-v1.7.0-seed-permissions.sql b/specs/99-archives/lcbp3-v1.7.0-seed-permissions.sql new file mode 100644 index 0000000..0def6ae --- /dev/null +++ b/specs/99-archives/lcbp3-v1.7.0-seed-permissions.sql @@ -0,0 +1,1067 @@ +-- ========================================================== +-- DMS v1.6.0 - Permissions Seed Data (REORGANIZED) +-- File: specs/07-database/permissions-seed-data.sql +-- Total Permissions: 85 (Reorganized with systematic ID allocation) +-- Created: 2025-12-13 +-- ========================================================== +-- Clear existing data +TRUNCATE TABLE role_permissions; + +DELETE FROM permissions; + +-- ========================================================== +-- SECTION 1: PERMISSIONS INSERT STATEMENTS +-- ========================================================== +-- ========================================================== +-- 1. System & Global Permissions (ID 1-10) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 1, + 'system.manage_all', + 'ทำทุกอย่างในระบบ (Superadmin Power)', + 'system', + 1 + ), + ( + 2, + 'system.impersonate', + 'แอบอ้างผู้ใช้อื่น (For Support/Debug)', + 'system', + 1 + ), + ( + 3, + 'system.maintenance_mode', + 'เปิด/ปิด Maintenance Mode', + 'system', + 1 + ), + ( + 4, + 'system.view_logs', + 'ดู System Logs', + 'system', + 1 + ), + ( + 5, + 'system.manage_cache', + 'จัดการ Cache (Clear/Flush)', + 'system', + 1 + ); + +-- ========================================================== +-- 2. Organization Management (ID 11-20) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 11, + 'organization.create', + 'สร้างองค์กรใหม่', + 'organization', + 1 + ), + ( + 12, + 'organization.view', + 'ดูรายการองค์กร', + 'organization', + 1 + ), + ( + 13, + 'organization.edit', + 'แก้ไขข้อมูลองค์กร', + 'organization', + 1 + ), + ( + 14, + 'organization.delete', + 'ลบองค์กร', + 'organization', + 1 + ), + ( + 15, + 'organization.manage_members', + 'จัดการสมาชิกในองค์กร', + 'organization', + 1 + ); + +-- ========================================================== +-- 3. User & Role Management (ID 21-40) - PRIORITIZED +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 21, + 'user.create', + 'สร้างผู้ใช้งานใหม่', + 'user', + 1 + ), + (22, 'user.view', 'ดูข้อมูลผู้ใช้งาน', 'user', 1), + ( + 23, + 'user.edit', + 'แก้ไขข้อมูลผู้ใช้งาน', + 'user', + 1 + ), + ( + 24, + 'user.delete', + 'ลบ/ปิดการใช้งานผู้ใช้', + 'user', + 1 + ), + ( + 25, + 'user.manage_assignments', + 'มอบหมาย Role/Project ให้ผู้ใช้', + 'user', + 1 + ), + ( + 26, + 'role.create', + 'สร้างบทบาท (Role) ใหม่', + 'role', + 1 + ), + (27, 'role.view', 'ดูบทบาท', 'role', 1), + (28, 'role.edit', 'แก้ไขบทบาท', 'role', 1), + (29, 'role.delete', 'ลบบทบาท', 'role', 1), + ( + 30, + 'role.assign_permissions', + 'มอบสิทธิ์ให้กับบทบาท', + 'role', + 1 + ); + +-- ========================================================== +-- 4. Master Data Management (ID 41-50) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 41, + 'master_data.view', + 'ดูข้อมูลหลัก (Read-Only Dropdowns)', + 'master', + 1 + ), + ( + 42, + 'master_data.manage', + 'จัดการข้อมูลหลักทั่วไป', + 'master', + 1 + ), + ( + 43, + 'master_data.correspondence_type.manage', + 'จัดการประเภทเอกสาร', + 'master', + 1 + ), + ( + 44, + 'master_data.document_status.manage', + 'จัดการสถานะเอกสาร', + 'master', + 1 + ), + ( + 45, + 'master_data.drawing_category.manage', + 'จัดการหมวดหมู่แบบ', + 'master', + 1 + ), + ( + 46, + 'master_data.tag.manage', + 'จัดการ Tags', + 'master', + 1 + ), + ( + 47, + 'master_data.discipline.manage', + 'จัดการสาขางาน (Disciplines)', + 'master', + 1 + ), + ( + 48, + 'master_data.number_format.manage', + 'จัดการ Document Number Format', + 'master', + 1 + ); + +-- ========================================================== +-- 5. Document Management - Generic (ID 51-70) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 51, + 'document.view', + 'ดูเอกสาร (ทุกประเภท)', + 'document', + 1 + ), + ( + 52, + 'document.create', + 'สร้างเอกสาร (Draft)', + 'document', + 1 + ), + ( + 53, + 'document.edit', + 'แก้ไขเอกสาร', + 'document', + 1 + ), + (54, 'document.delete', 'ลบเอกสาร', 'document', 1), + ( + 55, + 'document.submit', + 'ส่งเอกสาร (Submitted)', + 'document', + 1 + ), + ( + 56, + 'document.admin_edit', + 'แก้ไข/ถอน/ยกเลิกเอกสารที่ส่งแล้ว (Admin Power)', + 'document', + 1 + ), + ( + 57, + 'document.attach_files', + 'จัดการไฟล์แนบ (Upload/Delete)', + 'document', + 1 + ), + ( + 58, + 'document.manage_references', + 'จัดการการอ้างอิงเอกสาร', + 'document', + 1 + ); + +-- ========================================================== +-- 6. Correspondence Module (ID 71-80) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 71, + 'correspondence.create', + 'สร้างเอกสารโต้ตอบ', + 'correspondence', + 1 + ), + ( + 72, + 'correspondence.view', + 'ดูเอกสารโต้ตอบ', + 'correspondence', + 1 + ), + ( + 73, + 'correspondence.edit', + 'แก้ไขเอกสารโต้ตอบ', + 'correspondence', + 1 + ), + ( + 74, + 'correspondence.delete', + 'ลบเอกสารโต้ตอบ', + 'correspondence', + 1 + ), + ( + 75, + 'correspondence.submit', + 'ส่งเอกสารโต้ตอบ', + 'correspondence', + 1 + ); + +-- ========================================================== +-- 7. RFA Module (ID 81-90) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES (81, 'rfa.create', 'สร้างเอกสาร RFA', 'rfa', 1), + (82, 'rfa.view', 'ดูเอกสาร RFA', 'rfa', 1), + (83, 'rfa.edit', 'แก้ไขเอกสาร RFA', 'rfa', 1), + (84, 'rfa.delete', 'ลบเอกสาร RFA', 'rfa', 1), + ( + 85, + 'rfa.submit', + 'ส่ง RFA เข้า Workflow', + 'rfa', + 1 + ), + ( + 86, + 'rfa.manage_items', + 'จัดการ RFA Items (Link Drawings)', + 'rfa', + 1 + ); + +-- ========================================================== +-- 8. Drawing Module (ID 91-100) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 91, + 'drawing.view', + 'ดูข้อมูลแบบ (Shop/Contract)', + 'drawing', + 1 + ), + ( + 92, + 'drawing.create', + 'สร้าง/แก้ไขแบบ', + 'drawing', + 1 + ), + (93, 'drawing.delete', 'ลบแบบ', 'drawing', 1), + ( + 94, + 'drawing.manage_revisions', + 'จัดการ Revisions แบบ', + 'drawing', + 1 + ), + ( + 95, + 'drawing.link_contract', + 'เชื่อมโยง Shop Drawing กับ Contract Drawing', + 'drawing', + 1 + ); + +-- ========================================================== +-- 9. Circulation Module (ID 101-110) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 101, + 'circulation.create', + 'สร้างใบเวียน', + 'circulation', + 1 + ), + ( + 102, + 'circulation.view', + 'ดูใบเวียน', + 'circulation', + 1 + ), + ( + 103, + 'circulation.respond', + 'ตอบกลับใบเวียน (Main/Action)', + 'circulation', + 1 + ), + ( + 104, + 'circulation.acknowledge', + 'รับทราบใบเวียน (Information)', + 'circulation', + 1 + ), + ( + 105, + 'circulation.close', + 'ปิดใบเวียน', + 'circulation', + 1 + ); + +-- ========================================================== +-- 10. Transmittal Module (ID 111-120) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 111, + 'transmittal.create', + 'สร้าง Transmittal', + 'transmittal', + 1 + ), + ( + 112, + 'transmittal.view', + 'ดู Transmittal', + 'transmittal', + 1 + ), + ( + 113, + 'transmittal.edit', + 'แก้ไข Transmittal', + 'transmittal', + 1 + ), + ( + 114, + 'transmittal.delete', + 'ลบ Transmittal', + 'transmittal', + 1 + ), + ( + 115, + 'transmittal.print', + 'พิมพ์ Transmittal Letter', + 'transmittal', + 1 + ); + +-- ========================================================== +-- 11. Workflow Engine (ID 121-130) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 121, + 'workflow.view_definitions', + 'ดู Workflow Definitions', + 'workflow', + 1 + ), + ( + 122, + 'workflow.manage_definitions', + 'จัดการ Workflow Definitions', + 'workflow', + 1 + ), + ( + 123, + 'workflow.action_review', + 'ดำเนินการในขั้นตอนปัจจุบัน (Approve/Reject)', + 'workflow', + 1 + ), + ( + 124, + 'workflow.force_proceed', + 'บังคับไปยังขั้นตอนถัดไป (Document Control Power)', + 'workflow', + 1 + ), + ( + 125, + 'workflow.revert', + 'ย้อนกลับไปยังขั้นตอนก่อนหน้า (Document Control Power)', + 'workflow', + 1 + ); + +-- ========================================================== +-- 12. Document Numbering (ID 131-140) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 131, + 'numbering.view_formats', + 'ดู Number Formats', + 'numbering', + 1 + ), + ( + 132, + 'numbering.manage_formats', + 'จัดการ Number Formats', + 'numbering', + 1 + ), + ( + 133, + 'numbering.view_counters', + 'ดู Counters', + 'numbering', + 1 + ), + ( + 134, + 'numbering.reset_counter', + 'Reset Counter (Dangerous Operation)', + 'numbering', + 1 + ); + +-- ========================================================== +-- 13. Search & Reporting (ID 141-150) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES (141, 'search.basic', 'ค้นหาพื้นฐาน', 'search', 1), + ( + 142, + 'search.advanced', + 'ใช้งานการค้นหาขั้นสูง', + 'search', + 1 + ), + ( + 143, + 'search.export', + 'Export ผลการค้นหา', + 'search', + 1 + ), + (144, 'report.view', 'ดูรายงาน', 'report', 1), + ( + 145, + 'report.generate', + 'สร้างรายงานสรุป', + 'report', + 1 + ), + ( + 146, + 'report.schedule', + 'กำหนดรายงานอัตโนมัติ', + 'report', + 1 + ); + +-- ========================================================== +-- 14. Notification & Dashboard (ID 151-160) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 151, + 'notification.view', + 'ดูการแจ้งเตือนของตัวเอง', + 'notification', + 1 + ), + ( + 152, + 'notification.manage_all', + 'จัดการการแจ้งเตือนทั้งหมด (Admin)', + 'notification', + 1 + ), + ( + 153, + 'dashboard.view_own', + 'ดู Dashboard ของตัวเอง', + 'dashboard', + 1 + ), + ( + 154, + 'dashboard.view_all', + 'ดู Dashboard ทุกคน (Admin)', + 'dashboard', + 1 + ), + ( + 155, + 'dashboard.view_analytics', + 'ดู Analytics & Statistics', + 'dashboard', + 1 + ); + +-- ========================================================== +-- 15. JSON Schema Management (ID 161-170) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 161, + 'json_schema.view', + 'ดู JSON Schemas', + 'json_schema', + 1 + ), + ( + 162, + 'json_schema.manage', + 'จัดการ JSON Schemas', + 'json_schema', + 1 + ), + ( + 163, + 'json_schema.migrate_data', + 'Migrate Data ระหว่าง Schema Versions', + 'json_schema', + 1 + ); + +-- ========================================================== +-- 16. Monitoring & Admin Tools (ID 171-180) +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 171, + 'monitoring.view_health', + 'ดู Health Check Status', + 'monitoring', + 1 + ), + ( + 172, + 'monitoring.view_metrics', + 'ดู System Metrics', + 'monitoring', + 1 + ), + ( + 173, + 'monitoring.manage_maintenance', + 'จัดการ Maintenance Mode', + 'monitoring', + 1 + ), + ( + 174, + 'audit.view_own', + 'ดู Audit Logs ของตัวเอง', + 'audit', + 1 + ), + ( + 175, + 'audit.view_all', + 'ดู Audit Logs ทั้งหมด (Admin)', + 'audit', + 1 + ); + +-- ========================================================== +-- 17. Project & Contract Management (ID 201-220) - DEPRIORITIZED +-- ========================================================== +INSERT INTO permissions ( + permission_id, + permission_name, + description, + module, + is_active + ) +VALUES ( + 201, + 'project.create', + 'สร้างโครงการใหม่', + 'project', + 1 + ), + ( + 202, + 'project.view', + 'ดูรายการโครงการ', + 'project', + 1 + ), + ( + 203, + 'project.edit', + 'แก้ไขข้อมูลโครงการ', + 'project', + 1 + ), + (204, 'project.delete', 'ลบโครงการ', 'project', 1), + ( + 205, + 'project.manage_members', + 'จัดการสมาชิกในโครงการ', + 'project', + 1 + ), + ( + 211, + 'contract.create', + 'สร้างสัญญา', + 'contract', + 1 + ), + ( + 212, + 'contract.view', + 'ดูข้อมูลสัญญา', + 'contract', + 1 + ), + ( + 213, + 'contract.edit', + 'แก้ไขสัญญา', + 'contract', + 1 + ), + (214, 'contract.delete', 'ลบสัญญา', 'contract', 1), + ( + 215, + 'contract.manage_members', + 'จัดการสมาชิกในสัญญา', + 'contract', + 1 + ); + +-- ========================================================== +-- SECTION 2: ROLE-PERMISSION MAPPINGS +-- ========================================================== +-- ========================================================== +-- Role 1: Superadmin - Gets ALL Permissions +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +SELECT 1, + permission_id +FROM permissions +WHERE is_active = 1; + +-- ========================================================== +-- Role 2: Org Admin (Organization Scope) +-- Permissions: 22 total +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +VALUES -- User Management + (2, 21), + -- user.create + (2, 22), + -- user.view + (2, 23), + -- user.edit + (2, 24), + -- user.delete + (2, 25), + -- user.manage_assignments + -- Organization + (2, 12), + -- organization.view + -- Master Data + (2, 46), + -- master_data.tag.manage + -- Documents + (2, 51), + -- document.view + -- Project/Contract + (2, 202), + -- project.view + (2, 212), + -- contract.view + -- Search & Reports + (2, 141), + -- search.basic + (2, 142), + -- search.advanced + (2, 144), + -- report.view + (2, 145), + -- report.generate + -- Dashboard & Notification + (2, 153), + -- dashboard.view_own + (2, 151), + -- notification.view + -- Audit + (2, 174); + +-- audit.view_own +-- ========================================================== +-- Role 3: Document Control (Organization Scope) +-- Permissions: 50+ total +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +VALUES -- All Document Operations + (3, 51), + (3, 52), + (3, 53), + (3, 54), + (3, 55), + (3, 56), + (3, 57), + (3, 58), + -- All Correspondence + (3, 71), + (3, 72), + (3, 73), + (3, 74), + (3, 75), + -- All RFA + (3, 81), + (3, 82), + (3, 83), + (3, 84), + (3, 85), + (3, 86), + -- All Drawing + (3, 91), + (3, 92), + (3, 93), + (3, 94), + (3, 95), + -- All Circulation + (3, 101), + (3, 102), + (3, 103), + (3, 104), + (3, 105), + -- All Transmittal + (3, 111), + (3, 112), + (3, 113), + (3, 114), + (3, 115), + -- Workflow Actions + (3, 123), + (3, 124), + (3, 125), + -- Master Data + (3, 41), + (3, 42), + (3, 43), + (3, 44), + (3, 45), + (3, 46), + (3, 47), + (3, 48), + -- Search & Report + (3, 141), + (3, 142), + (3, 143), + (3, 144), + (3, 145), + -- Dashboard + (3, 153), + (3, 154), + -- Notification + (3, 151); + +-- ========================================================== +-- Role 4: Editor (Organization Scope) +-- Permissions: 30 total +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +VALUES -- Document + (4, 51), + (4, 52), + (4, 53), + (4, 55), + (4, 57), + -- Correspondence + (4, 71), + (4, 72), + (4, 73), + (4, 75), + -- RFA + (4, 81), + (4, 82), + (4, 83), + (4, 85), + (4, 86), + -- Drawing + (4, 91), + (4, 92), + (4, 94), + -- Circulation + (4, 101), + (4, 102), + (4, 103), + (4, 104), + -- Transmittal + (4, 111), + (4, 112), + (4, 113), + -- Search + (4, 141), + (4, 142), + -- Dashboard & Notification + (4, 153), + (4, 151); + +-- ========================================================== +-- Role 5: Viewer (Organization Scope) +-- Permissions: 15 total +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +VALUES -- View Only + (5, 51), + -- document.view + (5, 72), + -- correspondence.view + (5, 82), + -- rfa.view + (5, 91), + -- drawing.view + (5, 102), + -- circulation.view + (5, 104), + -- circulation.acknowledge + (5, 112), + -- transmittal.view + (5, 41), + -- master_data.view + (5, 141), + -- search.basic + (5, 153), + -- dashboard.view_own + (5, 151); + +-- notification.view +-- ========================================================== +-- Role 6: Project Manager (Project Scope) +-- Permissions: All Editor + Project Management + Reports +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +SELECT 6, + permission_id +FROM role_permissions +WHERE role_id = 4 -- Copy all Editor permissions +UNION +VALUES -- Project Management + (6, 201), + (6, 202), + (6, 203), + (6, 204), + (6, 205), + -- Reports & Analytics + (6, 144), + (6, 145), + (6, 155); + +-- ========================================================== +-- Role 7: Contract Admin (Contract Scope) +-- Permissions: All Editor + Contract Management + Workflow +-- ========================================================== +INSERT INTO role_permissions (role_id, permission_id) +SELECT 7, + permission_id +FROM role_permissions +WHERE role_id = 4 -- Copy all Editor permissions +UNION +VALUES -- Contract Management + (7, 211), + (7, 212), + (7, 213), + (7, 214), + (7, 215), + -- Workflow + (7, 123), + -- All Drawings + (7, 91), + (7, 92), + (7, 93), + (7, 94), + (7, 95); + +-- ========================================================== +-- VERIFICATION: Run permissions-verification.sql after this +-- ========================================================== diff --git a/specs/99-archives/lcbp3-v1.7.0-seed-shopdrawing.sql b/specs/99-archives/lcbp3-v1.7.0-seed-shopdrawing.sql new file mode 100644 index 0000000..e51dfdc --- /dev/null +++ b/specs/99-archives/lcbp3-v1.7.0-seed-shopdrawing.sql @@ -0,0 +1,5626 @@ +INSERT INTO shop_drawing_sub_categories( + project_id, + sub_category_code, + sub_category_name, + description + ) +VALUES ( + 3, + 'ARC', + ' Arichitectural Work', + 'งานสถาปัตยกรรม' + ), + ( + 3, + 'BST', + ' Building Structural Work', + 'งานโครงสร้างอาคาร' + ), + (3, 'EPW', ' Electrical Work', 'งานระบบไฟฟ้า'), + ( + 3, + 'ECM', + ' Electrical Communications System Work', + 'งานระบบไฟฟ้าสื่อสาร' + ), + (3, 'ENV', ' Environment', 'งานสิ่งแวดล้อม'), + (3, 'SAN', ' Sanitary', 'งานระบบสุขาภิบาล'), + (3, 'MEC', ' Mechanical', 'งานเครื่องกล'), + (3, 'ST', ' Structure', 'งานโครงสร้าง'); + +INSERT INTO shop_drawing_main_categories( + project_id, + main_category_code, + main_category_name, + description + ) +VALUES (3, 'BA', 'Barrack Building', 'โรงนอนพนักงาน'), + ( + 3, + 'CO', + 'Communication Building and Observation Tower', + 'อาคารสื่อสารและหอสังเกตการณ์' + ), + ( + 3, + 'CW', + 'Storm Water Pump House', + 'อาคารควบคุมสถานีสูบระบายน้ำ' + ), + (3, 'DW', 'Drainage system', 'ระบบระบายน้ำ'), + ( + 3, + 'DW-CP', + 'Coastal port area drainage system', + 'ระบบระบายน้ำพื้นที่ท่าเรือชายฝั่ง' + ), + ( + 3, + 'DW-CW', + 'Drain pump station control building', + 'อาคารควบคุมสถานีสูบระบายน้ำ' + ), + ( + 3, + 'DW-DS', + 'Reinforced concrete drainage pipe', + 'ท่อระบายน้ำ คสล.' + ), + ( + 3, + 'DW-PS', + 'Drainage pump station', + 'สถานีสูบระบายน้ำ' + ), + ( + 3, + 'DW-RPS', + 'An earthen water retention pond dug with stones arranged.', + 'บ่อหน่วงน้ำดินขุดพร้อมเรียงหิน' + ), + ( + 3, + 'DW-RPC', + 'Reinforced concrete water retention pond', + 'บ่อหน่วงน้ำ คสล' + ), + ( + 3, + 'G05', + 'Gate 5Building', + 'อาคารประตูตรวจสอบ 5' + ), + ( + 3, + 'HV', + '115 kV Substation', + 'อาคารสถานีไฟฟ้าย่อย 155 kV' + ), + ( + 3, + 'HW', + 'Hazardous Waste Building', + 'อาคารพักขยะอันตราย' + ), + ( + 3, + 'MD1', + 'Duty Free Building', + 'อาคารจำหน่ายสินค้าปลอดภาษี' + ), + (3, 'MD2', 'Marine Club', 'อาคารร้านอาหาร'), + (3, 'OP11', 'Overpass 11', 'สะพานยกระดับ 11'), + (3, 'OP12', 'Overpass 12', 'สะพานยกระดับ 12'), + ( + 3, + 'OP12.1', + 'Overpass 12.1', + 'สะพานยกระดับ 12.1' + ), + ( + 3, + 'OP12.2', + 'Overpass 12.2', + 'สะพานยกระดับ 12.2' + ), + (3, 'OP3', 'Overpass 3', 'สะพานยกระดับ 3'), + (3, 'OP4', 'Overpass 4', 'สะพานยกระดับ 4'), + (3, 'OP5', 'Overpass 5', 'สะพานยกระดับ 5'), + ( + 3, + 'OP6-LT', + 'Overpass 6-LT', + 'สะพานยกระดับ 6-LT' + ), + ( + 3, + 'OP6-RT', + 'Overpass 6-RT', + 'สะพานยกระดับ 6-RT' + ), + (3, 'OP7', 'Overpass 7', 'สะพานยกระดับ 7'), + (3, 'OP8', 'Overpass 8', 'สะพานยกระดับ 8'), + (3, 'OP9', 'Overpass 9', 'สะพานยกระดับ 9'), + (3, 'RM1', 'Ramp 1', 'สะพานต่างระดับขาที่ 1'), + (3, 'RM3', 'Ramp 3', 'สะพานต่างระดับขาที่ 3'), + (3, 'RN1', 'Road RN1', 'ถนนสาย RN1'), + (3, 'RN2-LT', 'Road RN-2 LT', 'ถนนสาย RN-2 LT'), + (3, 'RN3-LT1', 'Road RN3-LT1', 'ถนนสาย RN3-LT1'), + (3, 'RN3-LT2', 'Road RN3-LT2', 'ถนนสาย RN3-LT2'), + (3, 'RN3-RT', 'Road RN3 RT', 'ถนนสาย RN3 RT'), + (3, 'RN4', 'Road RN4', 'ถนนสาย RN4'), + (3, 'RN5', 'Road RN5', 'ถนนสาย RN5'), + (3, 'RN6-LT', 'Road RN6-LT', 'ถนนสาย RN6-LT'), + (3, 'RN6-RT', 'Road RN6-RT', 'ถนนสาย RN6-RT'), + (3, 'RN7', 'Road RN7', 'ถนนสาย RN7'), + ( + 3, + 'S6', + '22 kV Substation No.6', + 'อาคารสถานีไฟฟ้าย่อย 22 kV No.6' + ), + ( + 3, + 'S7', + '22 kV Substation No.7', + 'อาคารสถานีไฟฟ้าย่อย 22 kV No.7' + ), + ( + 3, + 'SD', + 'Service office & Dormitory Building', + 'สำนักงานท่าเรือบริการและห้องพักเจ้าหน้าที่' + ), + ( + 3, + 'SW', + 'Solid Waste Building', + 'อาคารพักขยะทั่วไป' + ), + ( + 3, + 'TM', + 'Terminal Building Terminal Entrance Gate', + 'ด่านทางเข้าท่าเรือชายฝั่ง' + ), + ( + 3, + 'TO', + 'Terminal Operator Office Coastal', + 'สำนักงานปฏิบัติการท่าเรือชายฝั่ง' + ), + ( + 3, + 'TS', + 'Terminal Substation', + 'โรงไฟฟ้าย่อย 6.6 kV.' + ), + (3, 'UT1', 'U-Turn 1', 'สะพานกลับรถ 1'), + (3, 'UT3', 'U-Turn 2', 'สะพานกลับรถ 2'), + ( + 3, + 'WO', + 'Terminal Work Shop', + 'โรงซ่อมบำรุงส่วนท่าเรือชายฝั่ง' + ), + ( + 3, + 'WS', + 'Water Supply Station', + 'อาคารสูบจ่ายน้ำประปา' + ), + ( + 3, + 'WS-FE', + 'Water supply and fire extinguishing system', + 'ระบบจ่ายน้ำประปาและดับเพลิง' + ), + ( + 3, + 'WS-CW', + 'Clear water tank 4200 cubic meters', + 'ถังน้ำใส 4200 ลบ.ม' + ), + (3, 'WS-ET', 'Tall tank tower', 'หอถังสูง'), + ( + 3, + 'WS-TP', + 'Water supply pipe system', + 'ระบบท่อจ่ายน้ำประปา' + ), + ( + 3, + 'WS-WS', + 'Water Supply Station', + 'อาคารสูบจ่ายน้ำประปา' + ), + ( + 3, + 'WW', + 'Wastewater treatment systems of various buildings', + 'ระบบบำบัดน้ำเสียของอาคารต่างๆ' + ); + +INSERT INTO shop_drawings( + project_id, + drawing_number, + main_category_id, + sub_category_id, + created_at + ) +VALUES (3, 'LP3-HW-ST-001', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-002', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-003', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-004', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-005', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-101', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-102', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-103', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-201', 13, 8, '2025-01-24 00:00:00'), + (3, 'LP3-HW-ST-202', 13, 8, '2025-01-24 00:00:00'), + ( + 3, + 'LCBP3-C2-SDW-HW-BST-102', + 13, + 2, + '2025-04-26 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-001', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-002', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-003', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-004', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-005', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-006', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-101', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-102', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-103', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-201', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-202', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-203', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-204', + 43, + 2, + '2025-01-24 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-BST-104', + 43, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-001', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-002', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-003', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-004', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-005', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-006', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-007', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-MEC-008', + 43, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-001', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-002', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-003', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-004', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-005', + 43, + 2, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-006', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-007', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-008', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-009', + 12, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-010', + 12, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-MEC-011', + 12, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-SAN-001', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-SAN-002', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-SAN-003', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-SAN-004', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-SAN-005', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-SAN-006', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-001', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-002', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-003', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-004', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-005', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-006', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-007', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-008', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-009', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-010', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-011', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-012', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-SAN-013', + 12, + 7, + '2025-02-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-001', + 12, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-002', + 12, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-003', + 12, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-101', + 12, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-201', + 12, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-301', + 12, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-401', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-501', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-601', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-602', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-603', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-701', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-1001', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-1002', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-1003', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-801', + 43, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-802', + 43, + 7, + '2025-07-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-EPW-1004', + 43, + 7, + '2025-07-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0001', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0002', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0101', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0201', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0301', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0401', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0501', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-1001', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0601', + 43, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-0602', + 43, + 7, + '2025-07-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ECM-1002', + 43, + 7, + '2025-07-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0001', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0002', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0003', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0101', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0201', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0301', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0401', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0501', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0601', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0602', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0603', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0701', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-1001', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-1002', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-1003', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-1004', + 43, + 7, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0801', + 43, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-1005', + 43, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-0802', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-10001', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-10002', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-10003', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-10004', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-EPW-10005', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0001', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0002', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0101', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0201', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0401', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0501', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-1001', + 13, + 6, + '2025-02-14 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0301', + 13, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0601', + 13, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ECM-0602', + 13, + 6, + '2025-07-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0001', + 13, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0002', + 13, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0003', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0004', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0005', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0006', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0007', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0008', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0009', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0010', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HW-ARC-0011', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0001', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0002', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0003', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0004', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0005', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0101', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0007', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0201', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0301', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0401', + 43, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SW-ARC-0102', + 43, + 6, + '2025-07-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0001', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0002', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0003', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0101', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0201', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0301', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0401', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0402', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0501', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0502', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0601', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0602', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-0701', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-1001', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-1002', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-1003', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-1004', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-1005', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-EPW-1006', + 43, + 6, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0001', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0002', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0101', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0201', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0301', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0302', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0401', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0402', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0501', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0601', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-0602', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-1001', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ECM-1002', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-001', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-002', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-003', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-101', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-102', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-201', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-202', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-203', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-301', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-302', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-401', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-402', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-501', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-601', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-602', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-603', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-604', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-605', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-606', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-607', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-608', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-701', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-702', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-703', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-801', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-802', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-803', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-804', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-805', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-901', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-902', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-ARC-903', + 43, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-001', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-002', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-003', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-004', + 43, + 3, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-005', + 43, + 4, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-006', + 43, + 4, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-007', + 43, + 4, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-008', + 43, + 4, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-MEC-009', + 43, + 4, + '2025-03-11 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-001', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-002', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-003', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-004', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-005', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-006', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-007', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-008', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-009', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-010', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-011', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-012', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-013', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-014', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-015', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-016', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-017', + 43, + 4, + '2025-03-25 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-SD-SAN-018', + 43, + 4, + '2025-03-25 00:00:00' + ), + (3, 'LP3-SD-ST-001', 43, 4, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-002', 43, 4, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-003', 43, 4, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-004', 43, 4, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-005', 43, 4, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-006', 13, 3, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-007', 13, 3, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-008', 13, 3, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-009', 13, 3, '2025-03-11 00:00:00'), + (3, 'LP3-SD-ST-010', 13, 3, '2025-03-11 00:00:00'), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0003', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0004', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0101', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0102', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0201', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0301', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0302', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0401', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ARC-0402', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0003', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0011', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0101', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0111', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0112', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0201', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0202', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0203', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-BST-0204', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0003', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0101', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0201', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0301', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0302', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0401', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0501', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0601', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-0701', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-1001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-1002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-1003', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-EPW-1004', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0101', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0201', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0301', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0401', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-0501', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-ECM-1001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0003', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0004', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0005', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0006', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0007', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0008', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0009', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0010', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0011', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0012', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-SAN-0013', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0002', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0003', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0004', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0005', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0006', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0007', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-BA-MEC-0008', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0001', + 13, + 3, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0002', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0003', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0004', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0101', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0102', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0103', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0104', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0105', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0106', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0107', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0201', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0202', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0301', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0401', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0402', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0501', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ARC-0601', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0001', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0002', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0003', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0011', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0101', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0201', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0202', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0203', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-BST-0204', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0001', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0002', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0003', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0101', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0201', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0301', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0401', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0501', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-0601', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-1001', + 13, + 4, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-1002', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-EPW-1003', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0001', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0002', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0101', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0201', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0301', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0401', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0501', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-0601', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-1001', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-1002', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-ECM-1003', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0001', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0002', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0003', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0004', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0005', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0006', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0007', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0008', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0009', + 13, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0010', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0011', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0012', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0013', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-SAN-0014', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0001', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0002', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0003', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0004', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0005', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0006', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-CO-MEC-0007', + 43, + 1, + '2025-04-08 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-011', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-012', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-013', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-014', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-015', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-016', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-018', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-019', + 43, + 1, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-020', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-021', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-022', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-BST-023', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-023', + 42, + 3, + '2025-08-06 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-005', + 42, + 3, + '2025-08-06 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-SAN-023', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-SAN-024', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-SAN-025', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-SAN-026', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-SAN-027', + 42, + 3, + '2025-04-09 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-001', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-002', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-003', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-004', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-005', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-006', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-007', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-008', + 42, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-009', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-010', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-011', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-012', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-013', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-014', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-015', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-016', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-017', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-018', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-019', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-020', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-021', + 42, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-022', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-023', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-024', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-025', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-026', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-027', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-028', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-029', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-030', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-031', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-032', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-033', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-034', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-035', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-036', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-037', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-038', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-039', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-040', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-041', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-042', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-043', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-044', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-045', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-046', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-051.1', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-053', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-054', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-055', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-056', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-057', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-061', + 42, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-063', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-065', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-067', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-068', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-071', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-072', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-073', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-074', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-075', + 42, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-076', + 42, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-077', + 42, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-051', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-BST-052', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-056', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-057', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-061', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-063', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-065', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-067', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-068', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-071', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-072', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-073', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-074', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-075', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-076', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-077', + 42, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-078', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-079', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-080', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-081', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-082', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-083', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-084', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-085', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-086', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-087', + 42, + 8, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-088', + 1, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-089', + 1, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-090', + 1, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-001', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0002', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0003', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0004', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0005', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0011', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0101', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0102', + 1, + 1, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0103', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0111', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0112', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0113', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0114', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0121', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0122', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0123', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0124', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0131', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0141', + 1, + 2, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0201', + 1, + 3, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0202', + 1, + 3, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0203', + 1, + 3, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0204', + 1, + 3, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0301', + 1, + 3, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-G05-BST-0302', + 1, + 3, + '2025-06-05 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-001', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-002', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-003', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-004', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-006', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-007', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TS-ARC-008', + 1, + 3, + '2025-06-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0001', + 1, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0002', + 1, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0003', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0004', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0005', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0006', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0007', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0008', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0009', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-MEC-0010', + 1, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0001', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0002', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0102', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0111', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0112', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0121', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0122', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-HV-ARC-0201', + 1, + 6, + '2025-08-19 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD2-BST-0001', + 1, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD2-ARC-0002', + 1, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD2-ARC-0003', + 1, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD2-ARC-0004', + 1, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD2-ARC-0005', + 1, + 6, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0001', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0002', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0003', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0004', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0005', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0006', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0007', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-MEC-0008', + 1, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0001', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0002', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0101', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0102', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0201', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0202', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0203', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0204', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-BST-0001', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-BST-0002', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-BST-0101', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-BST-0102', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-BST-0203', + 2, + 1, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0001', + 2, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0002', + 2, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0003', + 2, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0004', + 2, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0005', + 2, + 1, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0006', + 2, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0007', + 2, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0008', + 2, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0009', + 2, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-MEC-0010', + 2, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-BST-0001', + 2, + 2, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-BST-0002', + 2, + 2, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-BST-0121', + 2, + 2, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-BST-0122', + 2, + 2, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-MD1-BST-0201', + 2, + 3, + '2025-08-07 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-ARC-0001', + 2, + 3, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-ARC-0002', + 2, + 3, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-ARC-0101', + 2, + 3, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TM-ARC-0201', + 2, + 3, + '2025-08-02 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0001', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0002', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0003', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0004', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0005', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0006', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0007', + 2, + 3, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0008', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0009', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0010', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0011', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0012', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0013', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0014', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0015', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0016', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0017', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0018', + 2, + 4, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0019', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0020', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0021', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0022', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0023', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0024', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0025', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0026', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0027', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-SAN-0028', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-MEC-0001', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-ARC-0002', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-ARC-0003', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-TO-ARC-0004', + 2, + 6, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0005', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0006', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0007', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0008', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0009', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0010', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0011', + 2, + 7, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0012', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0013', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0014', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0015', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0016', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0017', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0018', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0019', + 46, + 2, + '2025-04-10 00:00:00' + ), + ( + 3, + 'LCBP3-C2-SDW-WO-ARC-0020', + 46, + 2, + '2025-04-10 00:00:00' + ); + +INSERT INTO shop_drawing_revisions ( shop_drawing_id, revision_number, revision_label, revision_date, title ) +VALUES +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-001'), 0, '0', '2025-01-24 00:00:00', 'สารบัญแบบ ,รายละเอียดสัญลักษณ์ประกอบแบบและคำย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-002'), 0, '0', '2025-01-24 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-003'), 0, '0', '2025-01-24 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-004'), 0, '0', '2025-01-24 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-005'), 0, '0', '2025-01-24 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-101'), 0, '0', '2025-01-24 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-102'), 0, '0', '2025-01-24 00:00:00', 'แบบผังโครงสร้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-103'), 0, '0', '2025-01-24 00:00:00', 'แบบรูปตัดสร้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-201'), 0, '0', '2025-01-24 00:00:00', 'แบบขยายรายละเอียดโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-HW-ST-202'), 0, '0', '2025-01-24 00:00:00', 'แบบขยายรายละเอียดโครงสร้าง แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-BST-102'), 1, '1', '2025-04-26 00:00:00', 'ตารางพิกัดเสาเข็ม (PILE COORDINATE)'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-001'), 0, '0', '2025-01-24 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-002'), 0, '0', '2025-01-24 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-003'), 0, '0', '2025-01-24 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-004'), 0, '0', '2025-01-24 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-005'), 0, '0', '2025-01-24 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-006'), 0, '0', '2025-01-24 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-101'), 0, '0', '2025-01-24 00:00:00', 'แบบผังโครงสร้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-102'), 0, '0', '2025-01-24 00:00:00', 'รูปตัด A'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-103'), 0, '0', '2025-01-24 00:00:00', 'รูปตัด B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-201'), 0, '0', '2025-01-24 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-202'), 0, '0', '2025-01-24 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผนที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-203'), 0, '0', '2025-01-24 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-204'), 0, '0', '2025-01-24 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-002'), 1, '1', '2025-04-10 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-003'), 1, '1', '2025-04-10 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-004'), 1, '1', '2025-04-10 00:00:00', 'ข้อกำหนดทั่วไป แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-005'), 1, '1', '2025-04-10 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-006'), 1, '1', '2025-04-10 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-101'), 1, '1', '2025-04-10 00:00:00', 'แบบผังโครงสร้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-102'), 1, '1', '2025-04-10 00:00:00', 'ตารางพิกัดเสาเข็ม (PILE COORDINATE)'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-103'), 1, '1', '2025-04-10 00:00:00', 'รูปตัด A'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-104'), 1, '1', '2025-04-10 00:00:00', 'รูปตัด B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-201'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-202'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผนที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-203'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-BST-204'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-001'), 0, '0', '2025-02-05 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-002'), 0, '0', '2025-02-05 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-003'), 0, '0', '2025-02-05 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-004'), 0, '0', '2025-02-05 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-005'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-006'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-007'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-003'), 1, '1', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-004'), 1, '1', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-005'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-006'), 1, '1', '2025-04-10 00:00:00', 'รายละเอียดงานติดตั้งระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-007'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-008'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-001'), 2, '2', '2025-07-03 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-002'), 2, '2', '2025-07-03 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-003'), 2, '2', '2025-07-03 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-004'), 2, '2', '2025-07-03 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-005'), 2, '2', '2025-07-03 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-006'), 2, '2', '2025-07-03 00:00:00', 'รายละเอียดงานติดตั้งระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-007'), 2, '2', '2025-07-03 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-008'), 2, '2', '2025-07-03 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-001'), 3, '3', '2025-08-01 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-002'), 3, '3', '2025-08-01 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-003'), 3, '3', '2025-08-01 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-004'), 3, '3', '2025-08-01 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-005'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-006'), 3, '3', '2025-08-01 00:00:00', 'รายละเอียดงานติดตั้งระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-007'), 3, '3', '2025-08-01 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-MEC-008'), 3, '3', '2025-08-01 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-001'), 0, '0', '2025-02-05 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-002'), 0, '0', '2025-02-05 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-003'), 0, '0', '2025-02-05 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-004'), 0, '0', '2025-02-05 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-005'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-006'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-007'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-008'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-003'), 1, '1', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-004'), 1, '1', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-005'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-006'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-007'), 1, '1', '2025-04-10 00:00:00', 'รูปตัดระบบระบายอากาศ-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-008'), 1, '1', '2025-04-10 00:00:00', 'รูปตัดระบบระบายอากาศ-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-009'), 1, '1', '2025-04-10 00:00:00', 'รายละเอียดงานติดตั้งระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-010'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-011'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-001'), 2, '2', '2025-07-03 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-002'), 2, '2', '2025-07-03 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-003'), 2, '2', '2025-07-03 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-004'), 2, '2', '2025-07-03 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-005'), 2, '2', '2025-07-03 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-006'), 2, '2', '2025-07-03 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-007'), 2, '2', '2025-07-03 00:00:00', 'รูปตัดระบบระบายอากาศ-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-008'), 2, '2', '2025-07-03 00:00:00', 'รูปตัดระบบระบายอากาศ-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-009'), 2, '2', '2025-07-03 00:00:00', 'รายละเอียดงานติดตั้งระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-010'), 2, '2', '2025-07-03 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-011'), 2, '2', '2025-07-03 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-001'), 3, '3', '2025-08-01 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-002'), 3, '3', '2025-08-01 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-003'), 3, '3', '2025-08-01 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-004'), 3, '3', '2025-08-01 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-005'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-006'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-007'), 3, '3', '2025-08-01 00:00:00', 'รูปตัดระบบระบายอากาศ-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-008'), 3, '3', '2025-08-01 00:00:00', 'รูปตัดระบบระบายอากาศ-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-009'), 3, '3', '2025-08-01 00:00:00', 'รายละเอียดงานติดตั้งระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-010'), 3, '3', '2025-08-01 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-MEC-011'), 3, '3', '2025-08-01 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-001'), 0, '0', '2025-02-05 00:00:00', 'สารบัญแบบ สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-002'), 0, '0', '2025-02-05 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-003'), 0, '0', '2025-02-05 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-004'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-005'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-006'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-002'), 1, '1', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-003'), 1, '1', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-004'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-005'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-006'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-001'), 2, '2', '2025-07-07 00:00:00', 'สารบัญแบบ สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-002'), 2, '2', '2025-07-07 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-003'), 2, '2', '2025-07-07 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-004'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-005'), 2, '2', '2025-07-07 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-SAN-006'), 2, '2', '2025-07-07 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-001'), 0, '0', '2025-02-05 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-002'), 0, '0', '2025-02-05 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-003'), 0, '0', '2025-02-05 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-004'), 0, '0', '2025-02-05 00:00:00', 'ไดอะแกรมระบบสุขาภิบาล'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-005'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบสุขาภิบาลชิ้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-006'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบสุขาภิบาลชั้นหลังดา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-007'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบระบายน้ำเสีย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-008'), 0, '0', '2025-02-05 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-009'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายระบบน้ำประปาและระบบน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-010'), 0, '0', '2025-02-05 00:00:00', 'รูปตัดระบบจ่ายน้ำประปาและระบบน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-011'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-012'), 0, '0', '2025-02-05 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-013'), 0, '0', '2025-02-05 00:00:00', 'แบบอยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-003'), 1, '1', '2025-04-10 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-004'), 1, '1', '2025-04-10 00:00:00', 'ไดอะแกรมระบบสุขาภิบาล'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-005'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบสุขาภิบาลชิ้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-006'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบสุขาภิบาลชั้นหลังดา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-007'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบระบายน้ำเสีย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-008'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-009'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายระบบน้ำประปาและระบบน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-010'), 1, '1', '2025-04-10 00:00:00', 'รูปตัดระบบจ่ายน้ำประปาและระบบน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-011'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-012'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-013'), 1, '1', '2025-04-10 00:00:00', 'แบบอยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-001'), 2, '2', '2025-07-07 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-002'), 2, '2', '2025-07-07 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-003'), 2, '2', '2025-07-07 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-004'), 2, '2', '2025-07-07 00:00:00', 'ไดอะแกรมระบบสุขาภิบาล'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-005'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบสุขาภิบาลชิ้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-006'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบสุขาภิบาลชั้นหลังดา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-007'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบระบายน้ำเสีย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-008'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-009'), 2, '2', '2025-07-07 00:00:00', 'แบบขยายระบบน้ำประปาและระบบน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-010'), 2, '2', '2025-07-07 00:00:00', 'รูปตัดระบบจ่ายน้ำประปาและระบบน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-011'), 2, '2', '2025-07-07 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-012'), 2, '2', '2025-07-07 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-SAN-013'), 2, '2', '2025-07-07 00:00:00', 'แบบอยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-001'), 0, '0', '2025-02-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-002'), 0, '0', '2025-02-14 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-003'), 0, '0', '2025-02-14 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-101'), 0, '0', '2025-02-14 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-201'), 0, '0', '2025-02-14 00:00:00', 'ตารางโหลด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-301'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบการจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-401'), 0, '0', '2025-02-14 00:00:00', 'แปลนโคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-501'), 0, '0', '2025-02-14 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-601'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-602'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-603'), 0, '0', '2025-02-14 00:00:00', 'รูปด้านระบบป้องกันฟ้าผ่าและกราวด์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-701'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบการจ่ายไฟฟ้าและเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1001'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1002'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1003'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-003'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-101'), 1, '1', '2025-04-10 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-201'), 1, '1', '2025-04-10 00:00:00', 'ตารางโหลด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-301'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบการจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-401'), 1, '1', '2025-04-10 00:00:00', 'แปลนโคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-501'), 1, '1', '2025-04-10 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-601'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-602'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-603'), 1, '1', '2025-04-10 00:00:00', 'รูปด้านระบบป้องกันฟ้าผ่าและกราวด์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-701'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบการจ่ายไฟฟ้าและเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-801'), 1, '1', '2025-04-10 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1001'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1002'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1003'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-001'), 2, '2', '2025-07-07 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-002'), 2, '2', '2025-07-07 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-003'), 2, '2', '2025-07-07 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-101'), 2, '2', '2025-07-07 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-201'), 2, '2', '2025-07-07 00:00:00', 'ตารางโหลด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-301'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบการจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-401'), 2, '2', '2025-07-07 00:00:00', 'แปลนโคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-501'), 2, '2', '2025-07-07 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-601'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-602'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-603'), 2, '2', '2025-07-07 00:00:00', 'รูปด้านระบบป้องกันฟ้าผ่าและกราวด์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-701'), 2, '2', '2025-07-07 00:00:00', 'แปลนระบบการจ่ายไฟฟ้าและเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-801'), 2, '2', '2025-07-07 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-802'), 2, '2', '2025-07-07 00:00:00', 'COMBINE PANEL AND WALL'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1001'), 2, '2', '2025-07-07 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1002'), 2, '2', '2025-07-07 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1003'), 2, '2', '2025-07-07 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-EPW-1004'), 2, '2', '2025-07-07 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ LP-SW11/FCP/SW'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0001'), 0, '0', '2025-02-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0002'), 0, '0', '2025-02-14 00:00:00', 'สัญลักษณ์งานระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0101'), 0, '0', '2025-02-14 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0201'), 0, '0', '2025-02-14 00:00:00', 'ไรเซอร์ไดอะแกรมงานไฟฟ้าสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0301'), 0, '0', '2025-02-14 00:00:00', 'แปลนเต้ารับโทรศัพท์และคอมพิวเตอร์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0401'), 0, '0', '2025-02-14 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0501'), 0, '0', '2025-02-14 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-1001'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0001'), 1, '1', '2025-02-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์งานระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0101'), 1, '1', '2025-04-10 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0201'), 1, '1', '2025-04-10 00:00:00', 'ไรเซอร์ไดอะแกรมงานไฟฟ้าสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0301'), 1, '1', '2025-04-10 00:00:00', 'แปลนเต้ารับโทรศัพท์และคอมพิวเตอร์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0401'), 1, '1', '2025-04-10 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0501'), 1, '1', '2025-04-10 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0601'), 1, '1', '2025-04-10 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-1001'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0001'), 2, '2', '2025-07-07 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0002'), 2, '2', '2025-07-07 00:00:00', 'สัญลักษณ์งานระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0101'), 2, '2', '2025-07-07 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0201'), 2, '2', '2025-07-07 00:00:00', 'ไรเซอร์ไดอะแกรมงานไฟฟ้าสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0301'), 2, '2', '2025-07-07 00:00:00', 'แปลนเต้ารับโทรศัพท์และคอมพิวเตอร์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0401'), 2, '2', '2025-07-07 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0501'), 2, '2', '2025-07-07 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0601'), 2, '2', '2025-07-07 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-0602'), 2, '2', '2025-07-07 00:00:00', 'COMBINE PANEL AND WALL'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-1001'), 2, '2', '2025-07-07 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ECM-1002'), 2, '2', '2025-07-07 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ LP-SW11/FCP/SW'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0001'), 0, '0', '2025-02-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0002'), 0, '0', '2025-02-14 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0003'), 0, '0', '2025-02-14 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0101'), 0, '0', '2025-02-14 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0201'), 0, '0', '2025-02-14 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0301'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0401'), 0, '0', '2025-02-14 00:00:00', 'แปลน์โคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0501'), 0, '0', '2025-02-14 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0601'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ และ แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0602'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ และ แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0603'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ และ แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0701'), 0, '0', '2025-02-14 00:00:00', 'แปลนระบบไฟฟ้าสำหรับเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1001'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1002'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1003'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1004'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0003'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0101'), 1, '1', '2025-04-10 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0201'), 1, '1', '2025-04-10 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0301'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0401'), 1, '1', '2025-04-10 00:00:00', 'แปลน์โคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0501'), 1, '1', '2025-04-10 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0601'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ และ แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0602'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบป้องกันฟ้าผ้าและกราวด์ แปลนภาพด้านช้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0603'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบป้องกันฟ้าผ้าและกราวด์ แปลนภาพด้านช้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0701'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบไฟฟ้าสำหรับเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0801'), 1, '1', '2025-04-10 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1001'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1002'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1003'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1004'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1005'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0001'), 2, '2', '2025-07-02 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0002'), 2, '2', '2025-07-02 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0003'), 2, '2', '2025-07-02 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0101'), 2, '2', '2025-07-02 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0201'), 2, '2', '2025-07-02 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0301'), 2, '2', '2025-07-02 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0401'), 2, '2', '2025-07-02 00:00:00', 'แปลน์โคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0501'), 2, '2', '2025-07-02 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0601'), 2, '2', '2025-07-02 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์ และ แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0602'), 2, '2', '2025-07-02 00:00:00', 'แปลนระบบป้องกันฟ้าผ้าและกราวด์ แปลนภาพด้านช้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0603'), 2, '2', '2025-07-02 00:00:00', 'แปลนระบบป้องกันฟ้าผ้าและกราวด์ แปลนภาพด้านช้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0701'), 2, '2', '2025-07-02 00:00:00', 'แปลนระบบไฟฟ้าสำหรับเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0801'), 2, '2', '2025-07-02 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0802'), 2, '2', '2025-07-02 00:00:00', 'COMBINE PANEL AND WALL'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-10001'), 2, '2', '2025-07-02 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-10002'), 2, '2', '2025-07-02 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-10003'), 2, '2', '2025-07-02 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-10004'), 2, '2', '2025-07-02 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-10005'), 2, '2', '2025-07-02 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0001'), 3, '3', '2025-08-01 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0002'), 3, '3', '2025-08-01 00:00:00', 'สัญลักษณ์ระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0003'), 3, '3', '2025-08-01 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0101'), 3, '3', '2025-08-01 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0201'), 3, '3', '2025-08-01 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0301'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0401'), 3, '3', '2025-08-01 00:00:00', 'แปลน์โคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0501'), 3, '3', '2025-08-01 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0601'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0602'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบป้องกันฟ้าผ้าและกราวด์ แปลนภาพด้านช้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0603'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบป้องกันฟ้าผ้าและกราวด์ แปลนภาพด้านช้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0701'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบไฟฟ้าสำหรับเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0801'), 3, '3', '2025-08-01 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-0802'), 3, '3', '2025-08-01 00:00:00', 'COMBINE PANEL AND WALL'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1001'), 3, '3', '2025-08-01 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1002'), 3, '3', '2025-08-01 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1003'), 3, '3', '2025-08-01 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1004'), 3, '3', '2025-08-01 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-EPW-1005'), 3, '3', '2025-08-01 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0001'), 0, '0', '2025-02-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0002'), 0, '0', '2025-02-14 00:00:00', 'สัญลักษณ์ระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0101'), 0, '0', '2025-02-14 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0201'), 0, '0', '2025-02-14 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0401'), 0, '0', '2025-02-14 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0501'), 0, '0', '2025-02-14 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-1001'), 0, '0', '2025-02-14 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0101'), 1, '1', '2025-04-10 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0201'), 1, '1', '2025-04-10 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0301'), 1, '1', '2025-04-10 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0401'), 1, '1', '2025-04-10 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0501'), 1, '1', '2025-04-10 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0601'), 1, '1', '2025-04-10 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-1001'), 1, '1', '2025-04-10 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0001'), 2, '2', '2025-07-02 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0002'), 2, '2', '2025-07-02 00:00:00', 'สัญลักษณ์ระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0101'), 2, '2', '2025-07-02 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0201'), 2, '2', '2025-07-02 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0301'), 2, '2', '2025-07-02 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0401'), 2, '2', '2025-07-02 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0501'), 2, '2', '2025-07-02 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0601'), 2, '2', '2025-07-02 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0602'), 2, '2', '2025-07-02 00:00:00', 'COMBINE PANEL AND WALL'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-1001'), 2, '2', '2025-07-02 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0001'), 3, '3', '2025-08-01 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0002'), 3, '3', '2025-08-01 00:00:00', 'สัญลักษณ์ระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0101'), 3, '3', '2025-08-01 00:00:00', 'แผนผังแม่บท'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0201'), 3, '3', '2025-08-01 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0301'), 3, '3', '2025-08-01 00:00:00', 'แปลนระบบจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0401'), 3, '3', '2025-08-01 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0501'), 3, '3', '2025-08-01 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0601'), 3, '3', '2025-08-01 00:00:00', 'COMBINE CEILING PLAN'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-0602'), 3, '3', '2025-08-01 00:00:00', 'COMBINE PANEL AND WALL'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ECM-1001'), 3, '3', '2025-08-01 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0003'), 0, '0', '2025-04-10 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0004'), 0, '0', '2025-04-10 00:00:00', 'ผังบริเวณแสดงหมดที่ดิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0005'), 0, '0', '2025-04-10 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0006'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นชั้นล่าง, แปลนหลังคา แปลนผ้าเพดาน, แบบขยาย DE-1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0007'), 0, '0', '2025-04-10 00:00:00', 'รูปด้าน 1, รูปด้าน 2, รูปด้าน 3, รูปด้าน 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0008'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด A, รูปตัด B, แบบขยายทางลาด, แบบขยาย DE-2, DE-3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0009'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตู-หน้าต่าง ตารางรายการวัสดประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0010'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตูรั้วโครงการ,แบบขยายขอคันหิน,แบบขยายร่องหยดน้ำ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0011'), 0, '0', '2025-04-10 00:00:00', 'แบบแสดงตำแหน่งป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0001'), 1, '1', '2025-07-07 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0002'), 1, '1', '2025-07-07 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0003'), 1, '1', '2025-07-07 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0004'), 1, '1', '2025-07-07 00:00:00', 'ผังบริเวณแสดงหมดที่ดิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0005'), 1, '1', '2025-07-07 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0006'), 1, '1', '2025-07-07 00:00:00', 'แปลนพื้นชั้นล่าง, แปลนหลังคา แปลนผ้าเพดาน, แบบขยาย DE-1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0007'), 1, '1', '2025-07-07 00:00:00', 'รูปด้าน 1, รูปด้าน 2, รูปด้าน 3, รูปด้าน 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0008'), 1, '1', '2025-07-07 00:00:00', 'รูปตัด A, รูปตัด B, แบบขยายทางลาด, แบบขยาย DE-2, DE-3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0009'), 1, '1', '2025-07-07 00:00:00', 'แบบขยายประตู-หน้าต่าง ตารางรายการวัสดประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0010'), 1, '1', '2025-07-07 00:00:00', 'แบบขยายประตูรั้วโครงการ,แบบขยายขอคันหิน,แบบขยายร่องหยดน้ำ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HW-ARC-0011'), 1, '1', '2025-07-07 00:00:00', 'แบบแสดงตำแหน่งป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0001'), 1, '1', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0002'), 1, '1', '2025-04-10 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0003'), 1, '1', '2025-04-10 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0004'), 1, '1', '2025-04-10 00:00:00', 'ผังบริเวณแสดงหมุดที่ดิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0005'), 1, '1', '2025-04-10 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0101'), 1, '1', '2025-04-10 00:00:00', 'แปลนพื้นชั้นลาง, แปลนหลังคา, แปลนฝ้าเพดาน, แผนผังรูปแบบพื้นชั้นล่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0007'), 1, '1', '2025-04-10 00:00:00', 'แปลนแสดงงานครกัณฑ์ ชั้น 1, แปลนแสดงตำแหน่งป้าย ชั้น 1, แบบขยาย DE-1,DE-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0201'), 1, '1', '2025-04-10 00:00:00', 'รูปด้าน 1, รูปด้าน 2, รูปด้าน 3, รูปด้าน 4. รูปตัด A, รูปตัด B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0301'), 1, '1', '2025-04-10 00:00:00', 'รายการเครื่องสุขภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0401'), 1, '1', '2025-04-10 00:00:00', 'แบบขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0001'), 2, '2', '2025-07-07 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0002'), 2, '2', '2025-07-07 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0003'), 2, '2', '2025-07-07 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0004'), 2, '2', '2025-07-07 00:00:00', 'ผังบริเวณแสดงหมุดที่ดิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0005'), 2, '2', '2025-07-07 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0101'), 2, '2', '2025-07-07 00:00:00', 'แปลนพื้นชั้นลาง, แปลนหลังคา, แปลนฝ้าเพดาน, แผนผังรูปแบบพื้นชั้นล่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0102'), 2, '2', '2025-07-07 00:00:00', 'แปลนแสดงงานครกัณฑ์ ชั้น 1, แปลนแสดงตำแหน่งป้าย ชั้น 1, แบบขยาย DE-1,DE-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0201'), 2, '2', '2025-07-07 00:00:00', 'รูปด้าน 1, รูปด้าน 2, รูปด้าน 3, รูปด้าน 4. รูปตัด A, รูปตัด B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0301'), 2, '2', '2025-07-07 00:00:00', 'รายการเครื่องสุขภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SW-ARC-0401'), 2, '2', '2025-07-07 00:00:00', 'แบบขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0001'), 0, '0', '2025-03-11 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0002'), 0, '0', '2025-03-11 00:00:00', 'สัญลักษณ์งานระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0003'), 0, '0', '2025-03-11 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0101'), 0, '0', '2025-03-11 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0201'), 0, '0', '2025-03-11 00:00:00', 'ไดอะแกรมเชิงเดี่ยวและตารางโหลด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0301'), 0, '0', '2025-03-11 00:00:00', 'แปลนระบบการจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0401'), 0, '0', '2025-03-11 00:00:00', 'แปลนโคมไฟชั่น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0402'), 0, '0', '2025-03-11 00:00:00', 'แปลนโคมไฟชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0501'), 0, '0', '2025-03-11 00:00:00', 'แปลนเต้ารับไฟฟ้า ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0502'), 0, '0', '2025-03-11 00:00:00', 'แปลนเต้ารับไฟฟ้า ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0601'), 0, '0', '2025-03-11 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและ ระบบกราวด์ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0602'), 0, '0', '2025-03-11 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและ ระบบกราวด์ ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-0701'), 0, '0', '2025-03-11 00:00:00', 'แปลนระบบไฟฟ้าสำหรับเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-1001'), 0, '0', '2025-03-11 00:00:00', 'แบบแสดงการติดตั้งหม้อแปลงไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-1002'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-1003'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-1004'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-1005'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-EPW-1006'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0001'), 0, '0', '2025-03-11 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0002'), 0, '0', '2025-03-11 00:00:00', 'สัญลักษณ์งานระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0101'), 0, '0', '2025-03-11 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0201'), 0, '0', '2025-03-11 00:00:00', 'ไดอะแกรมงานไฟฟ้าสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0301'), 0, '0', '2025-03-11 00:00:00', 'แปลนเต้ารับคอมพิวเตอร์ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0302'), 0, '0', '2025-03-11 00:00:00', 'แปลนเต้ารับคอมพิวเตอร์ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0401'), 0, '0', '2025-03-11 00:00:00', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0402'), 0, '0', '2025-03-11 00:00:00', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0501'), 0, '0', '2025-03-11 00:00:00', 'แปลนอุปกรณ์กล้องโทรทัศน์วงจรปิด ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0601'), 0, '0', '2025-03-11 00:00:00', 'แปลนเสียงประกาศสาธารณะ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-0602'), 0, '0', '2025-03-11 00:00:00', 'แปลนเสียงประกาศสาธารณะ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-1001'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ECM-1002'), 0, '0', '2025-03-11 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-003'), 0, '0', '2025-04-10 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-101'), 0, '0', '2025-04-10 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-102'), 0, '0', '2025-04-10 00:00:00', 'ผังบริเวณอาการแสดงหมุดที่ดิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-201'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นชั้นล่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-202'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นชั้นบน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-203'), 0, '0', '2025-04-10 00:00:00', 'แปลนหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-301'), 0, '0', '2025-04-10 00:00:00', 'รูปด้าน 1, รูปด้าน 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-302'), 0, '0', '2025-04-10 00:00:00', 'รูปด้าน 3, รูปด้าน 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-401'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด A, รูปตัด B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-402'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด C'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-501'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายบันได 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-601'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายห้องน้ำ TL-01, TL-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-602'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด A1, A2 ห้องน้ำ TL-01, รูปตัด A1, B1 ห้องน้ำ TL-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-603'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด A1, A2 ห้องน้ำ TL-01, รูปตัด A1, B1 ห้องน้ำ TL-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-604'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด B1, B2 ห้องน้ำ TL-01, รูปตัด A2, B2 ห้องน้ำ TL-02'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-605'), 0, '0', '2025-04-10 00:00:00', 'แบบขายหองน้ำ TL-03'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-606'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด A1, B1 ห้องน้ำ TL-03'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-607'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด A2, B2 ห้องน้ำ TL-03'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-608'), 0, '0', '2025-04-10 00:00:00', 'รายการเครื่องสุขภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-701'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตู-หน้าต่าง 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-702'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตู-หน้าต่าง 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-703'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นวัสดุชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-801'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นวัสดุชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-802'), 0, '0', '2025-04-10 00:00:00', 'ตารางรายการวัสดุประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-803'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายรายละเอียด DE-1, DE-2, DE-3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-804'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายรายละเอียด DE-6, DE-7, DE-8'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-805'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายรายละเอียด DE-4, DE-5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-901'), 0, '0', '2025-04-10 00:00:00', 'แปลนฝ้าเพดานชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-902'), 0, '0', '2025-04-10 00:00:00', 'แปลนฝ้าเพดานชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-ARC-903'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายรายละเอียดการติดตั้งดวงโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-001'), 0, '0', '2025-03-11 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-002'), 0, '0', '2025-03-11 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-003'), 0, '0', '2025-03-11 00:00:00', 'รายการวัสดุ และอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-004'), 0, '0', '2025-03-11 00:00:00', 'รายการวัสดุ และอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-005'), 0, '0', '2025-03-11 00:00:00', 'ผังอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-006'), 0, '0', '2025-03-11 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-007'), 0, '0', '2025-03-11 00:00:00', 'แปลนระบบระบายบอากาศ ชั้น 1-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-008'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-MEC-009'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-001'), 0, '0', '2025-03-25 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-002'), 0, '0', '2025-03-25 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-003'), 0, '0', '2025-03-25 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-004'), 0, '0', '2025-03-25 00:00:00', 'ไดอะแกรมระบบจ่ายน้ำประปา และระบบระบายน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-005'), 0, '0', '2025-03-25 00:00:00', 'ไดอะแกรมระบบระบายน้ำฝน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-006'), 0, '0', '2025-03-25 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-007'), 0, '0', '2025-03-25 00:00:00', 'แปลนระบบจ่ายน้ำประปานอกอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-008'), 0, '0', '2025-03-25 00:00:00', 'แปลนระบบระบายน้ำเสียและน้ำฝนนอกอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-009'), 0, '0', '2025-03-25 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้น 1-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-010'), 0, '0', '2025-03-25 00:00:00', 'แปลนระบบระบายน้ำเสีย ชั้น 1-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-011'), 0, '0', '2025-03-25 00:00:00', 'แปลนระบบระบายน้ำฝน ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-012'), 0, '0', '2025-03-25 00:00:00', 'แปลนระบบระบายน้ำฝน ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-013'), 0, '0', '2025-03-25 00:00:00', 'แบบขยายห้องน้ำ TL1 ระบบจ่ายน้ำประปาและระบบระบายน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-014'), 0, '0', '2025-03-25 00:00:00', 'แบบขยายห้องน้ำ TL2 ระบบจ่ายน้ำประปาและระบบระบายน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-015'), 0, '0', '2025-03-25 00:00:00', 'แบบขยายห้องน้ำ TL3 ระบบจายน้ำประปาและระบบระบายน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-016'), 0, '0', '2025-03-25 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-017'), 0, '0', '2025-03-25 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-SD-SAN-018'), 0, '0', '2025-03-25 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-001'), 0, '0', '2025-03-11 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-002'), 0, '0', '2025-03-11 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-003'), 0, '0', '2025-03-11 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-004'), 0, '0', '2025-03-11 00:00:00', 'ผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-005'), 0, '0', '2025-03-11 00:00:00', 'ผังฐานราก และ ตอม่อ ผังโครงสร้าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-006'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-007'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-008'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-009'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LP3-SD-ST-010'), 0, '0', '2025-03-11 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0003'), 0, '0', '2025-04-08 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0004'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0101'), 0, '0', '2025-04-08 00:00:00', 'แปลนพื้นชั้นที่ 1, แปลนหลังคา, แปลนฝ้า-เพดาน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0102'), 0, '0', '2025-04-08 00:00:00', 'แปลนแสดงงานครุภัณฑ์ ชั้น 1, แปลนแสดงตำแหน่งป้าย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0201'), 0, '0', '2025-04-08 00:00:00', 'รูปด้าน 1, 2, 3, 4 แบบรูปตัด A,B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0301'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายห้องน้ำชาย-หญิง TL-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0302'), 0, '0', '2025-04-08 00:00:00', 'ตารางสุขภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0401'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ARC-0402'), 0, '0', '2025-04-08 00:00:00', 'ตารางรายการวัสดุประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0002'), 0, '0', '2025-04-08 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0003'), 0, '0', '2025-04-08 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0011'), 0, '0', '2025-04-08 00:00:00', 'ผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0101'), 0, '0', '2025-04-08 00:00:00', 'แบบผังโครงสร้างฐานราก - ตอมอ, ชั้น 1, หลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0111'), 0, '0', '2025-04-08 00:00:00', 'รูปตัด A, B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0112'), 0, '0', '2025-04-08 00:00:00', 'รูปตัด S1, S2, 53, 54 และแบบขยาย FACADE'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0201'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผนที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0202'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผนที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0203'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผนที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-BST-0204'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผนที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์งานระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0003'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0101'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0201'), 0, '0', '2025-04-08 00:00:00', 'ไดอะแกรมเส้นเดียว และตารางโหลด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0301'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบการจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0302'), 0, '0', '2025-04-08 00:00:00', 'แบบแสดงการติดตั้งหม้อแปลงไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0401'), 0, '0', '2025-04-08 00:00:00', 'แปลนโคมไฟ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0501'), 0, '0', '2025-04-08 00:00:00', 'แปลนเต้ารับไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0601'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบป้องกันฟ้าผ่าและกราวด์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-0701'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบการจ่ายไฟฟ้าเครื่องปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-1001'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-1002'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-1003'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-EPW-1004'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์งานระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0101'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0201'), 0, '0', '2025-04-08 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสารและตารางโหลดไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0301'), 0, '0', '2025-04-08 00:00:00', 'แปลนเต้ารับไฟฟ้า/โทรศัพท์/คอมพิวเตอร์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0401'), 0, '0', '2025-04-08 00:00:00', 'แปลนแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-0501'), 0, '0', '2025-04-08 00:00:00', 'แปลนกล้องโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-ECM-1001'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0003'), 0, '0', '2025-04-08 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0004'), 0, '0', '2025-04-08 00:00:00', 'ไดอะแกรมระบบสุขาภิบาล'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0005'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0006'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0007'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบระบายน้ำเสียและน้ำฝน ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0008'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบระบายน้ำฝน ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0009'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบระบายน้ำฝน ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0010'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายห้องน้ำ ระบบจ่ายน้ำประปาและระบบระบายน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0011'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0012'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-SAN-0013'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0003'), 0, '0', '2025-04-08 00:00:00', 'รายการวัสดุ และอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0004'), 0, '0', '2025-04-08 00:00:00', 'รายการวัสดุ และอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0005'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบปรับอากาศ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0006'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบระบายบอากาศ ชั้น'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0007'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-BA-MEC-0008'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0003'), 0, '0', '2025-04-08 00:00:00', 'ผังแม่บทท่าเรือขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0004'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0101'), 0, '0', '2025-04-08 00:00:00', 'แปลนพื้นชั้นที่ 1, แปลนพื้นชั้นที่ 2, แปลนพื้นชั้นที่ 3, แปลนพื้นชั้นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0102'), 0, '0', '2025-04-08 00:00:00', 'แปลนพื้นชั้นที่ 5, แปลนหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0103'), 0, '0', '2025-04-08 00:00:00', 'แผนผังรูปเบบพื้นชั้นที่ 1,2, 3 และ แผนผังรูปแบบพื้นชั้นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0104'), 0, '0', '2025-04-08 00:00:00', 'แผนผังรูปแบบพื้นชั้นที่ 5, แผนผังรูปแบบพื้นชั้นหลังคา, แบบขยาย DE-3,4 และ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0105'), 0, '0', '2025-04-08 00:00:00', 'แปลนฝ้าเพลานพื้นขึ้นที่ 1,2, 3, 4 และ แปลนฝ้านขึ้นขึ้นขึ้นชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0106'), 0, '0', '2025-04-08 00:00:00', 'แปลนแสดงงานครุภัณฑ์ชั้นที่ 1.2,34 และ แปลนแสดงงานครุภัณฑ์ชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0107'), 0, '0', '2025-04-08 00:00:00', 'แปลนแสดงตำแหน่งป้ายชั้นที่ 1.2.3,4 และ แปลนแสดงตำแหน่งป้ายชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0201'), 0, '0', '2025-04-08 00:00:00', 'รูปด้าน 1, รูปด้าน 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0202'), 0, '0', '2025-04-08 00:00:00', 'รูปด้าน 3, รูปด้าน 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0301'), 0, '0', '2025-04-08 00:00:00', 'รูปตัด A, B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0401'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายบันได ST-1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0402'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายราวกันตก DE-1, แบบขยายจมูกบันได DE-2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0501'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายห้องน้ำ TL-1, รายการเครื่องสุขภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ARC-0601'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายประตู - หน้าต่าง,ตารางรายการวัสดุประตู - หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0002'), 0, '0', '2025-04-08 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0003'), 0, '0', '2025-04-08 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0011'), 0, '0', '2025-04-08 00:00:00', 'ผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0101'), 0, '0', '2025-04-08 00:00:00', 'ผังฐานราก และ ตอม่อ ผังโครงสร้าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0201'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0202'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0203'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-BST-0204'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์งานระบบไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0003'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ตารางโคม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0101'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0201'), 0, '0', '2025-04-08 00:00:00', 'ไดอะแกรมเส้นเดียว&ตารางโหลด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0301'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบการจ่ายไฟฟ้า'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0401'), 0, '0', '2025-04-08 00:00:00', 'แปลนโคมไฟชั้น 1 - ชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0501'), 0, '0', '2025-04-08 00:00:00', 'แปลนเต้ารับไฟฟ้า ชั้นที่ 1 - ชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-0601'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบป้องกันไฟฟ้าและระบบกราวด์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-1001'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-1002'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-EPW-1003'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์งานระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0101'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0201'), 0, '0', '2025-04-08 00:00:00', 'ไรเซอร์ไดอะแกรมระบบแจ้งเหตุเพลิงไหม้'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0301'), 0, '0', '2025-04-08 00:00:00', 'ไรเซอร์ไดอะแกรมระบบสื่อสาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0401'), 0, '0', '2025-04-08 00:00:00', 'แปลนเต้ารับโทรศัพท์/คอมพิวเตอร์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0501'), 0, '0', '2025-04-08 00:00:00', 'แปลนอุปกรณ์แจ้งเหตุเพลิงไหม้ ชั้น 1 - ชั้น 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-0601'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบโทรทัศน์วงจรปิด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-1001'), 0, '0', '2025-04-08 00:00:00', 'แปลนไฟสัญญาณเตือนสิ่งกีดขวาง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-1002'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-ECM-1003'), 0, '0', '2025-04-08 00:00:00', 'แบบรายละเอียดการติดตั้งแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0003'), 0, '0', '2025-04-08 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0004'), 0, '0', '2025-04-08 00:00:00', 'ไดอะแกรมระบบจ่ายน้ำประปา และระบบระบายน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0005'), 0, '0', '2025-04-08 00:00:00', 'ไดอะแกรมระบบระบายน้ำฝน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0006'), 0, '0', '2025-04-08 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0007'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบจ่ายน้ำประปานอกอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0008'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบระบายน้ำเสียและน้ำฝนนอกอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0009'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้น 1-4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0010'), 0, '0', '2025-04-08 00:00:00', 'แปลนสุชาภิบาลชั้น 5 และระบบระบายน้ำฝนชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0011'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายห้องน้ำ ระบบระบายน้ำเสียและระระบจ่ายน้ำยน้ำประปา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0012'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0013'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-SAN-0014'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0001'), 0, '0', '2025-04-08 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0002'), 0, '0', '2025-04-08 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0003'), 0, '0', '2025-04-08 00:00:00', 'รายการวัสดุ และอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0004'), 0, '0', '2025-04-08 00:00:00', 'รายการวัสดุ และอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0005'), 0, '0', '2025-04-08 00:00:00', 'แปลนระบบปรับอากาศและระบายอากาศชั้น 1 - 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0006'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-CO-MEC-0007'), 0, '0', '2025-04-08 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-011'), 0, '0', '2025-04-09 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-012'), 0, '0', '2025-04-09 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-013'), 0, '0', '2025-04-09 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-014'), 0, '0', '2025-04-09 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-015'), 0, '0', '2025-04-09 00:00:00', 'แบบผังโครงสร้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-016'), 0, '0', '2025-04-09 00:00:00', 'แบบผังงานเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-018'), 0, '0', '2025-04-09 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-019'), 0, '0', '2025-04-09 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-020'), 0, '0', '2025-04-09 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-021'), 0, '0', '2025-04-09 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-022'), 0, '0', '2025-04-09 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-023'), 0, '0', '2025-04-09 00:00:00', 'แสดงตำแหน่งเทียบหมุดพิกัดอ้างอิง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-011'), 1, '1', '2025-08-06 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-012'), 1, '1', '2025-08-06 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-013'), 1, '1', '2025-08-06 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-014'), 1, '1', '2025-08-06 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุกจร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-015'), 1, '1', '2025-08-06 00:00:00', 'แบบผังโครงสร้างอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-016'), 1, '1', '2025-08-06 00:00:00', 'แบบผังงานเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-018'), 1, '1', '2025-08-06 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-019'), 1, '1', '2025-08-06 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-020'), 1, '1', '2025-08-06 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-021'), 1, '1', '2025-08-06 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-BST-022'), 1, '1', '2025-08-06 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-023'), 1, '1', '2025-08-06 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 6'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-005'), 1, '1', '2025-08-06 00:00:00', 'แสดงตำแหน่งเทียบหมุดพิกัดอ้างอิง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-SAN-023'), 0, '0', '2025-04-09 00:00:00', 'สารบัญแบบ สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-SAN-024'), 0, '0', '2025-04-09 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-SAN-025'), 0, '0', '2025-04-09 00:00:00', 'ไดอะแกรมระบบระบายน้ำฝน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-SAN-026'), 0, '0', '2025-04-09 00:00:00', 'แปลนระบบสุขาภิบาล ชั้นที่ 1 และชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-SAN-027'), 0, '0', '2025-04-09 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-003'), 0, '0', '2025-04-10 00:00:00', 'ผังแม่บททาเรือชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-004'), 0, '0', '2025-04-10 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-005'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-006'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-007'), 0, '0', '2025-04-10 00:00:00', 'แปลนพื้นชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-008'), 0, '0', '2025-04-10 00:00:00', 'แปลนหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-009'), 0, '0', '2025-04-10 00:00:00', 'รูปด้าน 1.2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-010'), 0, '0', '2025-04-10 00:00:00', 'รูปด้าน 3,4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-011'), 0, '0', '2025-04-10 00:00:00', 'แบบรูปตัด AB'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-012'), 0, '0', '2025-04-10 00:00:00', 'แบบรูปตัด C'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-013'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายบันได 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-014'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายบันไดลิง LADDER'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-015'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายทางลาด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-016'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายห้องน้ำ TL-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-017'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตู หนาตาง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-018'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตู หนาดาง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-019'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายประตู หนาดาง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-020'), 0, '0', '2025-04-10 00:00:00', 'ตารางรายการวัสดุประตู'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-021'), 0, '0', '2025-04-10 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-022'), 0, '0', '2025-04-10 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-023'), 0, '0', '2025-04-10 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-024'), 0, '0', '2025-04-10 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-025'), 0, '0', '2025-04-10 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-026'), 0, '0', '2025-04-10 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-027'), 0, '0', '2025-04-10 00:00:00', 'แบบรูปตัดผนัง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-028'), 0, '0', '2025-04-10 00:00:00', 'แบบอยายประตูรั้วใครงการ แบบขยายขอบคันหิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-029'), 0, '0', '2025-04-10 00:00:00', 'แปลนผ้า-เพดานชิ้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-030'), 0, '0', '2025-04-10 00:00:00', 'แปลนฝา-เพดานชิ้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-031'), 0, '0', '2025-04-10 00:00:00', 'แปลนผ้า-เพดานชิ้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-032'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-033'), 0, '0', '2025-04-10 00:00:00', 'แปลนแสดงงานครุภัณฑ์ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-034'), 0, '0', '2025-04-10 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-035'), 0, '0', '2025-04-10 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-036'), 0, '0', '2025-04-10 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-037'), 0, '0', '2025-04-10 00:00:00', 'ตารางข้อกำหนดการใช้ครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-038'), 0, '0', '2025-04-10 00:00:00', 'ตารางครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-039'), 0, '0', '2025-04-10 00:00:00', 'ตารางครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-040'), 0, '0', '2025-04-10 00:00:00', 'ตารางครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-041'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายห้องเตรียมอาหาร 81 ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-042'), 0, '0', '2025-04-10 00:00:00', 'ตารางรายการและสัญลักษณ์ประกอบงานป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-043'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-044'), 0, '0', '2025-04-10 00:00:00', 'แบบอยายป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-045'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-046'), 0, '0', '2025-04-10 00:00:00', 'ตารางแสดงรายชื่อห้อง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-001'), 1, '1', '2025-06-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-002'), 1, '1', '2025-06-14 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-003'), 1, '1', '2025-06-14 00:00:00', 'ผังแม่บททาเรือชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-004'), 1, '1', '2025-06-14 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-005'), 1, '1', '2025-06-14 00:00:00', 'แปลนพื้นชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-006'), 1, '1', '2025-06-14 00:00:00', 'แปลนพื้นชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-007'), 1, '1', '2025-06-14 00:00:00', 'แปลนพื้นชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-008'), 1, '1', '2025-06-14 00:00:00', 'แปลนหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-009'), 1, '1', '2025-06-14 00:00:00', 'รูปด้าน 1.2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-010'), 1, '1', '2025-06-14 00:00:00', 'รูปด้าน 3,4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-011'), 1, '1', '2025-06-14 00:00:00', 'แบบรูปตัด AB'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-012'), 1, '1', '2025-06-14 00:00:00', 'แบบรูปตัด C'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-013'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายบันได 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-014'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายบันไดลิง LADDER'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-015'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายทางลาด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-016'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายห้องน้ำ TL-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-017'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายประตู หนาตาง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-018'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายประตู หนาดาง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-019'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายประตู หนาดาง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-020'), 1, '1', '2025-06-14 00:00:00', 'ตารางรายการวัสดุประตู'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-021'), 1, '1', '2025-06-14 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-022'), 1, '1', '2025-06-14 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-023'), 1, '1', '2025-06-14 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-024'), 1, '1', '2025-06-14 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-025'), 1, '1', '2025-06-14 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-026'), 1, '1', '2025-06-14 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-027'), 1, '1', '2025-06-14 00:00:00', 'แบบรูปตัดผนัง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-028'), 1, '1', '2025-06-14 00:00:00', 'แบบอยายประตูรั้วใครงการ แบบขยายขอบคันหิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-029'), 1, '1', '2025-06-14 00:00:00', 'แปลนผ้า-เพดานชิ้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-030'), 1, '1', '2025-06-14 00:00:00', 'แปลนฝา-เพดานชิ้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-031'), 1, '1', '2025-06-14 00:00:00', 'แปลนผ้า-เพดานชิ้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-032'), 1, '1', '2025-06-14 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-033'), 1, '1', '2025-06-14 00:00:00', 'แปลนแสดงงานครุภัณฑ์ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-034'), 1, '1', '2025-06-14 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-035'), 1, '1', '2025-06-14 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-036'), 1, '1', '2025-06-14 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-037'), 1, '1', '2025-06-14 00:00:00', 'ตารางข้อกำหนดการใช้ครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-038'), 1, '1', '2025-06-14 00:00:00', 'ตารางครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-039'), 1, '1', '2025-06-14 00:00:00', 'ตารางครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-040'), 1, '1', '2025-06-14 00:00:00', 'ตารางครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-041'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายห้องเตรียมอาหาร 81 ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-042'), 1, '1', '2025-06-14 00:00:00', 'ตารางรายการและสัญลักษณ์ประกอบงานป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-043'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-044'), 1, '1', '2025-06-14 00:00:00', 'แบบอยายป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-045'), 1, '1', '2025-06-14 00:00:00', 'แบบขยายป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-046'), 1, '1', '2025-06-14 00:00:00', 'ตารางแสดงรายชื่อห้อง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-001'), 2, '2', '2025-08-07 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-002'), 2, '2', '2025-08-07 00:00:00', 'สัญลักษณ์ประกอบแบบ, ตารางวัสดุประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-003'), 2, '2', '2025-08-07 00:00:00', 'ผังแม่บททาเรือชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-004'), 2, '2', '2025-08-07 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-005'), 2, '2', '2025-08-07 00:00:00', 'แปลนพื้นชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-006'), 2, '2', '2025-08-07 00:00:00', 'แปลนพื้นชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-007'), 2, '2', '2025-08-07 00:00:00', 'แปลนพื้นชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-008'), 2, '2', '2025-08-07 00:00:00', 'แปลนหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-009'), 2, '2', '2025-08-07 00:00:00', 'รูปด้าน 1.2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-010'), 2, '2', '2025-08-07 00:00:00', 'รูปด้าน 3,4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-011'), 2, '2', '2025-08-07 00:00:00', 'แบบรูปตัด AB'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-012'), 2, '2', '2025-08-07 00:00:00', 'แบบรูปตัด C'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-013'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายบันได 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-014'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายบันไดลิง LADDER'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-015'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายทางลาด'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-016'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายห้องน้ำ TL-01'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-017'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายประตู หนาตาง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-018'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายประตู หนาดาง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-019'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายประตู หนาดาง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-020'), 2, '2', '2025-08-07 00:00:00', 'ตารางรายการวัสดุประตู'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-021'), 2, '2', '2025-08-07 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-022'), 2, '2', '2025-08-07 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-023'), 2, '2', '2025-08-07 00:00:00', 'รายการอุปกรณ์ประตู-หน้าต่าง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-024'), 2, '2', '2025-08-07 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-025'), 2, '2', '2025-08-07 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-026'), 2, '2', '2025-08-07 00:00:00', 'แบบแสดงรายละเอียดประตู-หน้าต่าง 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-027'), 2, '2', '2025-08-07 00:00:00', 'แบบรูปตัดผนัง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-028'), 2, '2', '2025-08-07 00:00:00', 'แบบอยายประตูรั้วใครงการ แบบขยายขอบคันหิน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-029'), 2, '2', '2025-08-07 00:00:00', 'แปลนผ้า-เพดานชิ้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-030'), 2, '2', '2025-08-07 00:00:00', 'แปลนฝา-เพดานชิ้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-031'), 2, '2', '2025-08-07 00:00:00', 'แปลนผ้า-เพดานชิ้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-032'), 2, '2', '2025-08-07 00:00:00', 'แปลนแสดงงานครุภัณฑ์ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-033'), 2, '2', '2025-08-07 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-034'), 2, '2', '2025-08-07 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-035'), 2, '2', '2025-08-07 00:00:00', 'แปลนแสดงตำแหน่งป้าย ชั้น 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-036'), 2, '2', '2025-08-07 00:00:00', 'ตารางข้อกำหนดการใช้ครุภัณฑ์'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-037'), 2, '2', '2025-08-07 00:00:00', 'ตารางครุภัณฑ์ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-038'), 2, '2', '2025-08-07 00:00:00', 'ตารางครุภัณฑ์ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-039'), 2, '2', '2025-08-07 00:00:00', 'ตารางครุภัณฑ์ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-040'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายห้องเตรียมอาหาร 81 ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-041'), 2, '2', '2025-08-07 00:00:00', 'ตารางรายการและสัญลักษณ์ประกอบงานป้าย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-042'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายป้าย 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-043'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายป้าย 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-044'), 2, '2', '2025-08-07 00:00:00', 'แบบขยายป้าย 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-045'), 2, '2', '2025-08-07 00:00:00', 'ตารางแสดงรายชื่อห้อง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-051.1'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-053'), 0, '0', '2025-04-10 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-054'), 0, '0', '2025-04-10 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-055'), 0, '0', '2025-04-10 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-056'), 0, '0', '2025-04-10 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-057'), 0, '0', '2025-04-10 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-061'), 0, '0', '2025-04-10 00:00:00', 'แบบผังโครงสร้างชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-063'), 0, '0', '2025-04-10 00:00:00', 'แบบผังโครงสร้างชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-065'), 0, '0', '2025-04-10 00:00:00', 'แบบผังโครงสร้างชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-067'), 0, '0', '2025-04-10 00:00:00', 'แบบผังโครงสร้างชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-068'), 0, '0', '2025-04-10 00:00:00', 'รูปตัด GRID LINE 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-071'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายเสา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-072'), 0, '0', '2025-04-10 00:00:00', 'TYICAL BEAM DETAILS'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-073'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายคาน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-074'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายพื้น'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-075'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายบันได'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-076'), 0, '0', '2025-04-10 00:00:00', 'MISCELLANEOUS DETAILS'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-077'), 0, '0', '2025-04-10 00:00:00', 'แบบขยาย CATWALK'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-051'), 1, '1', '2025-08-07 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-052'), 1, '1', '2025-08-07 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-053'), 1, '1', '2025-08-07 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-054'), 1, '1', '2025-08-07 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-BST-055'), 1, '1', '2025-08-07 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-056'), 1, '1', '2025-08-07 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-057'), 1, '1', '2025-08-07 00:00:00', 'แบบผังแสดงน้ำหนักบรรทุก ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-061'), 1, '1', '2025-08-07 00:00:00', 'แบบผังโครงสร้างชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-063'), 1, '1', '2025-08-07 00:00:00', 'แบบผังโครงสร้างชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-065'), 1, '1', '2025-08-07 00:00:00', 'แบบผังโครงสร้างชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-067'), 1, '1', '2025-08-07 00:00:00', 'แบบผังโครงสร้างชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-068'), 1, '1', '2025-08-07 00:00:00', 'รูปตัด GRID LINE 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-071'), 1, '1', '2025-08-07 00:00:00', 'แบบขยายเสา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-072'), 1, '1', '2025-08-07 00:00:00', 'TYICAL BEAM DETAILS'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-073'), 1, '1', '2025-08-07 00:00:00', 'แบบขยายคาน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-074'), 1, '1', '2025-08-07 00:00:00', 'แบบขยายพื้น'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-075'), 1, '1', '2025-08-07 00:00:00', 'แบบขยายบันได'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-076'), 1, '1', '2025-08-07 00:00:00', 'MISCELLANEOUS DETAILS'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-077'), 1, '1', '2025-08-07 00:00:00', 'แบบขยาย CATWALK'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-078'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-079'), 0, '0', '2025-04-10 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-080'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมระบบสุขาภิบาล'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-081'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน้ำ ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-082'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบสุขาภิบาล ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-083'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบสุขาภิบาล ชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-084'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบสุขาภิบาล ชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-085'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบสุขาภิบาล ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-086'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายห้องน้ำ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-087'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-088'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-089'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-090'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-001'), 0, '0', '2025-06-05 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0002'), 0, '0', '2025-06-05 00:00:00', 'ข้อกำหนดทั่วไปแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0003'), 0, '0', '2025-06-05 00:00:00', 'ข้อกำหนดทั่วไปแผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0004'), 0, '0', '2025-06-05 00:00:00', 'ข้อกำหนดทั่วไปแผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0005'), 0, '0', '2025-06-05 00:00:00', 'รายละเอียดการติดตั้งพื้นสำเร็จรูป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0011'), 0, '0', '2025-06-05 00:00:00', 'ส่วนสำนักงาน แบบฝังแสดงน้ำหนักบรรทุกจร ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0101'), 0, '0', '2025-06-05 00:00:00', 'ส่วนสำนักงาน แบบผังฐานราก และ ตอม่อ, แบบผังโครงสร้างชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0102'), 0, '0', '2025-06-05 00:00:00', 'ส่วนสำนักงาน ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0103'), 0, '0', '2025-06-05 00:00:00', 'ส่วนสำนักงาน แบบผังโครงสร้างชั้นอะเส, ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0111'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบขาเข้า แบบผังฐานราก และ ตอม่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0112'), 0, '0', '2025-06-05 00:00:00', 'ส่วนค่านตรวจสอบขาเข้า ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0113'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบขาเข้า แบบผังโครงสร้างขั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0114'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบขาเข้า แบบผังโครงสร้างขั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0121'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบชายยก แบบฝังฐานรากและตอม่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0122'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบขาออก ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0123'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบขาออก แบบผังโครงสร้างขั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0124'), 0, '0', '2025-06-05 00:00:00', 'ส่วนด่านตรวจสอบขาออก แบบฝั่งไครงสร้างขั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0131'), 0, '0', '2025-06-05 00:00:00', 'รูปตัด A'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0141'), 0, '0', '2025-06-05 00:00:00', 'แบบขยายตู้ตรวจสอบ แผงกันชน คศล. TYPE-1,2,3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0201'), 0, '0', '2025-06-05 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0202'), 0, '0', '2025-06-05 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0203'), 0, '0', '2025-06-05 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0204'), 0, '0', '2025-06-05 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0301'), 0, '0', '2025-06-05 00:00:00', 'แบบผังพื้นทางเดินเชื่อมด่านตรวจสอบ ขาเข้า-ขาออก'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-G05-BST-0302'), 0, '0', '2025-06-05 00:00:00', 'แบบขยายทางเดินเชื่อมด่านตรวจสอบ ขาเข้า-ขาออก'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-001'), 0, '0', '2025-06-19 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-002'), 0, '0', '2025-06-19 00:00:00', 'สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-003'), 0, '0', '2025-06-19 00:00:00', 'ผังแม่บทท่าเรือชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-004'), 0, '0', '2025-06-19 00:00:00', 'ผังบริเวณอาคาร'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-005'), 0, '0', '2025-06-19 00:00:00', 'แปลนพื้นชั้นที่ 1 แปลนหลังคา, แปลนพื้นระดับ +0.15'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-006'), 0, '0', '2025-06-19 00:00:00', 'รูปด้าน 1, 2, 3, 4, รูปตัด A,B'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-007'), 0, '0', '2025-06-19 00:00:00', 'แบบขยายบันได 1, แบบขยายบันได 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TS-ARC-008'), 0, '0', '2025-06-19 00:00:00', 'แบบขยายประตู-หน้าต่าง ตารางรายการวัสดุประตู-หน้าต่าง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0003'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0004'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0005'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0006'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0007'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0008'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายตู้ตรวจสอบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0009'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-MEC-0010'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0001'), 0, '0', '2025-08-19 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0002'), 0, '0', '2025-08-19 00:00:00', 'ข้อกำหนดทั่วไปแผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0102'), 0, '0', '2025-08-19 00:00:00', 'ส่วนสำนักงาน ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0111'), 0, '0', '2025-08-19 00:00:00', 'ส่วนด่านตรวจสอบขาเข้า แบบผังฐานราก และ ตอม่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0112'), 0, '0', '2025-08-19 00:00:00', 'ส่วนด่านตรวจสอบขาเข้า ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0121'), 0, '0', '2025-08-19 00:00:00', 'ส่วนด่านตรวจสอบขาออก แบบผังฐานรากและตอม่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0122'), 0, '0', '2025-08-19 00:00:00', 'ส่วนด่านตรวจสอบขาออก ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-HV-ARC-0201'), 0, '0', '2025-08-19 00:00:00', 'แบบขยายรายละเอียดงานโครงสร้าง แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD2-BST-0001'), 0, '0', '2025-08-07 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD2-ARC-0002'), 0, '0', '2025-08-07 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD2-ARC-0003'), 0, '0', '2025-08-07 00:00:00', 'แบบผังฐานราก และ ตอมอ (MARINE CLUB)'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD2-ARC-0004'), 0, '0', '2025-08-07 00:00:00', 'ตารางค่าพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD2-ARC-0005'), 0, '0', '2025-08-07 00:00:00', 'แบบขยายฐานราก และ เสา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0003'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0004'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0005'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0006'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0007'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-MEC-0008'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0001'), 0, '0', '2025-08-02 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0002'), 0, '0', '2025-08-02 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0101'), 0, '0', '2025-08-02 00:00:00', 'แบบผังฐานราก และ ตอมอ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0102'), 0, '0', '2025-08-02 00:00:00', 'ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0201'), 0, '0', '2025-08-02 00:00:00', 'แบบขยายฐานราก แผ่นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0202'), 0, '0', '2025-08-02 00:00:00', 'แบบขยายฐานราก แผ่นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0203'), 0, '0', '2025-08-02 00:00:00', 'แบบขยายฐานราก แผ่นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0204'), 0, '0', '2025-08-02 00:00:00', 'แบบขยายฐานราก แผ่นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-BST-0001'), 0, '0', '2025-08-02 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-BST-0002'), 0, '0', '2025-08-02 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-BST-0101'), 0, '0', '2025-08-02 00:00:00', 'ผังฐานราก และ ตอม่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-BST-0102'), 0, '0', '2025-08-02 00:00:00', 'ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-BST-0203'), 0, '0', '2025-08-02 00:00:00', 'แบบขยายฐานราก'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0003'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0004'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0005'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0006'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0007'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ZONE A'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0008'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ZONE A'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0009'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-MEC-0010'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-BST-0001'), 0, '0', '2025-08-07 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-BST-0002'), 0, '0', '2025-08-07 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-BST-0121'), 0, '0', '2025-08-07 00:00:00', 'ผังฐานราก และ ตอม่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-BST-0122'), 0, '0', '2025-08-07 00:00:00', 'ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-MD1-BST-0201'), 0, '0', '2025-08-07 00:00:00', 'แบบขยายฐานราก'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-ARC-0001'), 0, '0', '2025-08-02 00:00:00', 'สารบัญแบบ, สัญลักษณ์ประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-ARC-0002'), 0, '0', '2025-08-02 00:00:00', 'ข้อกำหนดทั่วไป'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-ARC-0101'), 0, '0', '2025-08-02 00:00:00', 'แบบผังฐานราก และ ตารางพิกัดเสาเข็ม'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TM-ARC-0201'), 0, '0', '2025-08-02 00:00:00', 'แบบขยายรายละเอียดฐานราก'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์ และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0003'), 0, '0', '2025-04-10 00:00:00', 'ตารางแสดงรายการประกอบแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0004'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมระบบจ่ายน้ำประปาและดับเพลิง'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0005'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมระบบระบายน้ำเสีย'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0006'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมระบบระบายน้ำฝน'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0007'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0008'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0009'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบจ่ายน้ำประปา ชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0010'), 0, '0', '2025-04-10 00:00:00', 'ผังบริเวณระบบระบายน้ำ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0011'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0012'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0013'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน่าเสีย และน้ำฝน ชั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0014'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0015'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน้ำเสีย และน้ำฝน ชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0016'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายน่าเสีย และน้ำฝน ชั้นหลังคา'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0017'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายห้องน้ำ ชั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0018'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายห้องน้ำ ชั้นที่ 2-3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0019'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบดับเพลิง ขั้นที่ 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0020'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบดับเพลิง ขั้นที่ 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0021'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบดับเพลิง ขั้นที่ 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0022'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบดับเพลิง ชั้นที่ 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0023'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบดับเพลิง ชั้นที่ 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0024'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0025'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0026'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0027'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-SAN-0028'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายมาตรฐานการติดตั้งทั่วไป 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-MEC-0001'), 0, '0', '2025-04-10 00:00:00', 'สารบัญแบบ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-ARC-0002'), 0, '0', '2025-04-10 00:00:00', 'สัญลักษณ์และอักษรย่อ'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-ARC-0003'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-TO-ARC-0004'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0005'), 0, '0', '2025-04-10 00:00:00', 'รายการวัสดุและอุปกรณ์ 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0006'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมท่อน้ำยา 1/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0007'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมท่อน้ำยา 2/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0008'), 0, '0', '2025-04-10 00:00:00', 'ไดอะแกรมท่อน้ำยา 3/3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0009'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0010'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0011'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0012'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0013'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบปรับอากาศ ชั้น 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0014'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 1'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0015'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0016'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 3'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0017'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชั้น 4'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0018'), 0, '0', '2025-04-10 00:00:00', 'แปลนระบบระบายอากาศ ชิ้น 5'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0019'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 1/2'), +((SELECT id FROM shop_drawings WHERE drawing_number = 'LCBP3-C2-SDW-WO-ARC-0020'), 0, '0', '2025-04-10 00:00:00', 'แบบขยายการติดตั้งทั่วไป 2/2'); + + -- ===================================================== + -- Set is_current = TRUE for the latest revision of each shop_drawing + -- ===================================================== +UPDATE shop_drawing_revisions sdr + JOIN ( + SELECT shop_drawing_id, + MAX(revision_number) AS max_rev + FROM shop_drawing_revisions + GROUP BY shop_drawing_id + ) latest ON sdr.shop_drawing_id = latest.shop_drawing_id + AND sdr.revision_number = latest.max_rev +SET sdr.is_current = TRUE;