Skip to content

ภาพรวมและขอบเขตของระบบ

หน้านี้อธิบายว่าระบบนี้ เกี่ยวกับอะไร ด้วยภาษาที่โรงงานใช้จริง ส่วนโครงสร้างตารางฐานข้อมูลอยู่ที่ Data model (ภาษาอังกฤษ)

เนื้อหาทั้งหมดอธิบายพฤติกรรมที่มีอยู่จริงในปัจจุบัน ส่วนที่สร้างแล้วแต่ยังปิดใช้งานอยู่ จะกำกับด้วย ปิดใช้งานอยู่ พร้อมชื่อสวิตช์ที่ควบคุม ไม่มีข้อความใดในหน้านี้ที่พูดถึงสิ่งที่ยังไม่มี

ระบบนี้ในหนึ่งประโยค

ผู้รับเหมา ขออนุญาตทำงานอันตรายในโรงงาน จป. ตัดสินว่าปลอดภัยพอจะให้ทำหรือไม่ และ ผู้ตรวจสอบ ยืนยันที่หน้างานว่าสิ่งที่รับปากไว้คือสิ่งที่เกิดขึ้นจริง ใบอนุญาต คือการอนุญาตนั้น และ บันทึกการตรวจสอบ คือหลักฐานที่แก้ไขไม่ได้ว่าการอนุญาตเกิดขึ้นอย่างตรงไปตรงมา

ส่วนต่าง ๆ ของระบบ และกฎที่แต่ละส่วนเป็นเจ้าของ

แต่ละส่วนเป็นเจ้าของกฎหนึ่งข้อที่ส่วนอื่นละเมิดไม่ได้ ความเป็นเจ้าของนี้คือเหตุผลของการแบ่งขอบเขต ถ้าสองส่วนตัดสินกฎเดียวกันได้ ก็แปลว่าไม่มีใครเป็นเจ้าของจริง

ใบอนุญาต — เป็นเจ้าของวงจรสถานะ

เป็นศูนย์กลางของระบบ ใบอนุญาตหนึ่งใบบรรจุ JSA ผู้ปฏิบัติงานและ PPE ภาพหลักฐาน ค่าตรวจวัดความปลอดภัย และรายการตรวจสอบตอนปิดงาน ทั้งหมดนี้ไม่มีอยู่แยกจากใบอนุญาต

กฎที่เป็นเจ้าของ สถานะเปลี่ยนได้ตามวงจรเท่านั้น และเซิร์ฟเวอร์เป็นผู้ตัดสินเสมอ ฝั่งหน้าจออาจตรวจซ้ำเพื่อให้ผู้ใช้เห็นผลทันที แต่ห้ามใช้เป็นด่านตัดสิน

การปิดงานเป็นหน้าที่ของ จป. ตั้งแต่รอบที่ 4 (2026-09-11) และต้องมีเหตุผลทุกครั้ง ผู้รับเหมา (เฉพาะใบอนุญาตของตนเอง) หรือผู้ตรวจสอบทำได้เพียง ขอปิดงาน ซึ่งเป็นแค่เครื่องหมายบนใบอนุญาต ไม่เปลี่ยนสถานะ การปิดใบอนุญาตที่อับอากาศทั้งที่ยังมีคนเช็คอินอยู่จะสำเร็จ และระบบจะเช็คเอาต์คนเหล่านั้นให้อัตโนมัติ โดยบันทึกว่าเป็นการกระทำของระบบ บนหน้าจอเรื่องนี้ยังมาไม่ครบ แอปผู้รับเหมายังไม่มีปุ่มขอปิดงาน และรายการตรวจสอบก่อนปิดแบบเดิมจะถูกเซิร์ฟเวอร์ปฏิเสธ ส่วนแอป จป. ยังแสดงการปิดงานเป็นทางสำรอง และยังไม่มีคิวคำขอปิดงาน

บัตรความปลอดภัย — เป็นเจ้าของวันหมดอายุ

บัตรคือคำรับรองว่าบุคคลที่ระบุชื่อผ่านการประเมินความสามารถจนถึงวันหนึ่ง กฎที่เป็นเจ้าของ บัตรหมดอายุหรือไม่มีบัตร = ทำงานไม่ได้ ทั้งตอนส่งใบอนุญาตและตอนเข้าพื้นที่จริง โดยข้ามไม่ได้ที่หน้างาน

มีสามเรื่องที่ควรอ่านให้ละเอียด เพราะทั้งสามเรื่องเพิ่งเปลี่ยนไปจากเดิม

  • ผู้ปฏิบัติงานคือ "ข้อมูลหนึ่งรายการ" ไม่ใช่ชื่อ และยังคงไม่ใช่บัญชีผู้ใช้ ตอนนี้ผู้ปฏิบัติงานเป็นข้อมูลของระบบ มีผู้รับเหมาที่ลงทะเบียนเป็นเจ้าของ ทั้งบัตร รายชื่อบนใบอนุญาต และการสแกนเข้าพื้นที่ ล้วนอ้างถึง รหัสผู้ปฏิบัติงาน ไม่มีตารางใดเก็บชื่อไว้เป็นตัวระบุอีกแล้ว พวกเขายังไม่ได้ล็อกอิน ตัวตนเดินทางไปกับบัตร QR ที่พิมพ์ออกมา ซึ่งบรรจุรหัสนั้นไว้ เพราะเครื่องสแกนที่ไม่มีสัญญาณไม่มีอะไรให้เทียบชื่อด้วย ชื่อห้ามซ้ำ ภายในผู้รับเหมารายเดียวกัน โดยไม่สนตัวพิมพ์ใหญ่เล็กและช่องว่าง ดังนั้น "Somchai" กับ "somchai " คือคนเดียวกัน และบัตรของผู้รับเหมารายหนึ่งไม่ผ่านด่านของอีกรายอีกต่อไป
  • ชนิดของบัตรมีผลต่อเมื่อเปิดใช้งานเท่านั้น ปิดใช้งานอยู่ ชนิดบัตรมีหนึ่งชนิดต่อหนึ่งประเภทงานพอดี คือ งานร้อน ที่อับอากาศ และทำงานบนที่สูง (Gas Testing ถูกตัดออกในรอบที่ 4) ถ้าไม่ตั้ง CERT_TYPE_REQUIRED ซึ่งเป็นค่าเริ่มต้น บัตรที่ยังไม่หมดอายุชนิดใดก็ได้ผ่านทุกประเภทงาน ถ้าตั้งไว้ ประเภทของใบอนุญาตจะต้องการบัตรชนิดที่ตรงกัน ทั้งตอนตรวจก่อนส่งใบอนุญาตและตอนสแกนเข้าพื้นที่ ชุดคำศัพท์นี้ฝังอยู่ในโค้ด ไม่ใช่ตารางที่ผู้ดูแลแก้ได้
  • บัตรต้องมีเลขที่ใบอนุญาต หรือไฟล์แนบ หรือทั้งสองอย่าง อย่างน้อยหนึ่งอย่าง

ผู้ปฏิบัติงานคือชื่อ ส่วนหน้าที่เป็นของงาน ผู้ปฏิบัติงานไม่มีตำแหน่งประจำตัวอีกแล้ว (ถูกลบในรอบที่ 4) สิ่งที่แต่ละคนทำจะเลือกเป็นรายใบอนุญาต คือ หน้าที่ในใบอนุญาต เลือกจากรายการแม่แบบที่กรองตามประเภทงาน หรือพิมพ์เองก็ได้ แผนที่ตำแหน่ง→ชนิดบัตรแบบเดิมถูกตัดออกไปพร้อมกัน ประเภทใบอนุญาตอย่างเดียวเป็นตัวกำหนดว่าต้องใช้บัตรชนิดใด

แผนผังพื้นที่และหมุด — เป็นเจ้าของชุดสถานที่ที่ใช้ร่วมกัน

แผนผังพื้นที่ คือสถานที่ที่มีชื่อ (เช่น "ชั้น 1" "ลานถังเก็บ") พร้อมภาพที่แก้ไม่ได้ การสแกนแผนผังใหม่คือแผนผังใหม่ และแผนผังเดิมจะถูกปิดใช้งาน ไม่มีการแก้ไข ไม่มีการลบ และเปิดใช้งานพร้อมกันได้หลายแผนผัง หมุด คือตำแหน่งที่มีชื่อบนแผนผัง จป. เป็นผู้ปัก เปลี่ยนชื่อได้ แต่ตำแหน่งตายตัว (ถ้าจะย้ายหมุดต้องปักหมุดใหม่) และปิดใช้งานได้แต่ไม่ถูกลบ ผู้รับเหมา เลือก หมุดที่มีอยู่ ไม่มีใครเสนอสถานที่อีกแล้ว กฎที่เป็นเจ้าของ สถานที่มีอยู่ได้เพราะ จป. ปักและตั้งชื่อมันเท่านั้น หนึ่งหมุดหมายถึงหนึ่งที่สำหรับทุกคน ซึ่งเป็นสิ่งที่ทำให้คำถาม "มีสองทีมบนหมุดเดียวกันไหม" ตอบได้ ผู้รับเหมาทุกรายเห็นหมุดทุกอัน

ส่วนนี้มาแทน พื้นที่ทำงาน ซึ่งถูกลบในรอบที่ 4 (2026-09-11) พร้อมขั้นตอนเสนอ/อนุมัติ การให้สิทธิ์มองเห็นรายผู้รับเหมา และสวิตช์ทั้งสองตัวของมัน (AREA_VISIBILITY_SCOPED, PERMIT_AREA_REQUIRED) ตอนนี้ใบอนุญาตเก็บเพียง pinId ตำแหน่งบนแผนผังแบบเดิม (planId/planX/planY) และพิกัดภูมิศาสตร์ถูกลบไปแล้ว การบังคับให้ต้องเลือกหมุดก่อนส่งจะเริ่มก็ต่อเมื่อ มี หมุดที่ใช้งานอยู่บนแผนผังที่ใช้งานอยู่ แล้วเท่านั้น ซึ่งเป็นการกระทำโดยตั้งใจสามอย่างของ จป. ไม่ใช่ผลข้างเคียงของการย้ายข้อมูล

การตรวจสอบหน้างาน — เป็นเจ้าของหลักฐานการอยู่หน้างาน

ขอบเขตของผู้ตรวจสอบ สแกน QR เพื่อดูสถานะ ปัจจุบัน เช็คอินและเช็คเอาต์ผู้เข้าปฏิบัติงาน บันทึกค่าก๊าซ กฎที่เป็นเจ้าของ การสแกนพิสูจน์ว่าอยู่ตรงนั้นในขณะนั้น และไม่มีอย่างอื่นพิสูจน์ได้ การเปิดดูประวัติจึงไม่ให้สิทธิ์ในการกระทำใด ๆ รอบที่ 4 ขยายคำว่า "ในขณะนั้น" ออกไปสำหรับการกระทำเดียว คือเซิร์ฟเวอร์ยอมให้ผู้ตรวจสอบเริ่มการตรวจเยี่ยมจากประวัติได้ ตราบที่การสแกนใบอนุญาตนั้นครั้งล่าสุดของตนยังใหม่อยู่ — ภายใน 12 ชั่วโมง หรือจนสิ้นสุดช่วงทำงาน แล้วแต่ว่าอะไรถึงก่อน โดยบันทึกไว้ในบันทึกการสแกนที่เพิ่มได้อย่างเดียว การสแกนยังคงพิสูจน์การอยู่หน้างาน เพียงแต่พิสูจน์ได้ทั้งวันแทนที่จะเป็นครั้งเดียว แอปยังไม่มีให้ใช้

การสแกนหนึ่งครั้งเริ่ม รอบการตรวจ หนึ่งรอบ คือบันทึกหนึ่งรายการต่อการไปหน้างานหนึ่งครั้ง เพิ่มได้อย่างเดียว บรรจุรายการตรวจ PPE บันทึกข้อความ และภาพถ่ายของครั้งนั้น รอบการตรวจคือการไปหน้างานหนึ่งครั้ง ไม่ใช่ตลอดอายุของใบอนุญาต และใบอนุญาตแสดงไทม์ไลน์ของทุกรอบ ตั้งแต่รอบที่ 4 ผู้ตรวจสอบทำงานในรอบการตรวจจาก เมนูการดำเนินการ แทนลำดับตายตัว ได้แก่ เข้า / ออก (รายการเดียวที่ต้องทำก่อนส่ง และถือว่าทำแล้วเมื่อ เปิดดู ตารางผู้ปฏิบัติงาน ไม่ต้องเปลี่ยนอะไร) ตรวจ PPE ค่าอากาศ (เฉพาะที่อับอากาศ) บันทึก และ แจ้งปิด อิสระนี้ปลอดภัยได้เพราะนาฬิกาค่าอากาศเป็นของเซิร์ฟเวอร์ ต้องวัดซ้ำทุก 120 นาที มีเวลาผ่อนผัน 30 นาที และระบบของเซิร์ฟเวอร์จะแจ้งเตือนและยกระดับเองไม่ว่ารอบการตรวจจะบันทึกอะไรไว้ ผู้ปฏิบัติงานที่ไม่อยู่หน้างานจะถูกทำเครื่องหมาย ไม่พร้อมปฏิบัติงาน ที่รายชื่อของเขาบนใบอนุญาต ซึ่งเป็นการบันทึกการไม่อยู่ ไม่ใช่รายการเข้า-ออก

ผู้ตรวจสอบตรวจ PPE ที่ผู้รับเหมา แจ้งไว้ และแจ้งรายการที่ไม่ได้แจ้งไว้ว่าขาดได้ โดยต้องมีบันทึกประเภท สั่งแก้ไข ฉุกเฉิน หรือเหตุการณ์ กำกับ บันทึกข้อความมีชนิดกำกับ ได้แก่ GENERAL WARNING CORRECTIVE_ACTION EMERGENCY และ INCIDENT โดย EMERGENCY และ INCIDENT แจ้งเตือน จป. และเจ้าของใบอนุญาต CORRECTIVE_ACTION แจ้งเตือนเจ้าของใบอนุญาตเท่านั้น ส่วน GENERAL และ WARNING ไม่แจ้งใคร อ่านได้ในไทม์ไลน์ ผู้รับเหมาเจ้าของใบอนุญาตอ่านบันทึกรอบการตรวจ ทั้งหมดของใบอนุญาตตนเองได้ผ่าน API แต่แอปผู้รับเหมายังไม่แสดงรอบการตรวจ

กฎข้อที่สองของขอบเขตนี้ รอบการตรวจไม่เปลี่ยนข้อมูลใดของใบอนุญาตเลย ผู้ตรวจสอบเป็นพยานและ ขอปิดงาน ได้ จป. เป็นผู้ปิด บทบาทเดียวไม่ได้ทั้ง "ฉันเห็นแล้ว" และ "ฉันจบมันแล้ว" การแยกนี้คือสิ่งที่ห่วงโซ่บันทึกการตรวจสอบมีไว้เพื่อรักษา การให้ผู้ตรวจสอบสั่งระงับงานถูกพิจารณาและตัดออก เพราะเหตุฉุกเฉินจริงคือการเรียกวิทยุ และฟีเจอร์นี้จะทำให้กดพลาดครั้งเดียวหยุดทั้งทีมได้ ใบอนุญาตที่ปิดแล้วหรือหมดอายุแล้วตรวจไม่ได้เลย ทุกการกระทำหน้างานจะถูกปฏิเสธถ้าสถานะไม่ใช่ ACTIVE/FIRE_MONITOR แต่การอ่าน QR ยังตอบได้ เพราะหน้าที่ของมันคือบอกว่าใบอนุญาตปิดแล้ว

เป็นส่วนเดียวที่ต้องทำงานได้โดยไม่มีสัญญาณ การกระทำจะเข้าคิวในเครื่องและซิงค์เมื่อสัญญาณกลับมา โดยแสดงข้อขัดแย้งให้ผู้ใช้เห็น ไม่ตัดสินใจแทนเงียบ ๆ คิวนั้นมีอยู่จริงแล้ว แต่เปลือกแอปที่โหลดได้เองตอนไม่มีสัญญาณยังไม่มี จึงควรถือว่า "ทำงานได้โดยไม่มีสัญญาณ" เป็นข้อกำหนดที่กำลังสร้างไปสู่ ไม่ใช่สิ่งที่ส่งมอบแล้ว

บันทึกการตรวจสอบ — เป็นเจ้าของห่วงโซ่แฮช

เป็นห่วงโซ่เดียวของทั้งโรงงาน เพิ่มได้อย่างเดียว ทุกการกระทำที่เปลี่ยนสถานะเชื่อมกับค่าแฮชของรายการก่อนหน้า การลบหรือแก้รายการใดจะทำให้การตรวจสอบตั้งแต่จุดนั้นเป็นต้นไปล้มเหลวอย่างเห็นได้ชัด กฎที่เป็นเจ้าของ ไม่มีช่องทางแก้ไขและไม่มีช่องทางลบ ที่ไหนก็ตาม สำหรับใครก็ตาม

นี่คือเหตุผลที่บัญชีถูกปิดใช้งานแทนการลบ เพราะบันทึกอ้างถึงผู้กระทำ การลบบัญชีจะทำให้ประวัติของทุกใบอนุญาตที่คนนั้นเคยแตะชี้ไปยังสิ่งที่ไม่มีอยู่

บัญชีและสิทธิ์ — เป็นเจ้าของบทบาทและการปิดใช้งาน

หนึ่งบัญชีมีหนึ่งบทบาทเท่านั้น กำหนดโดย จป. และปิดการสมัครสมาชิกเองไว้ แอปแสดงเฉพาะสิ่งที่บทบาทนั้นทำได้ ไม่ใช่สวิตช์ที่ผู้ใช้เลือกเอง กฎที่เป็นเจ้าของ บัญชีถูกปิดใช้งาน ไม่เคยถูกลบ

สิ่งที่ข้ามขอบเขต และข้ามด้วยอะไร

จากไปส่งผ่านด้วยหมายเหตุ
ใบอนุญาตแผนผังพื้นที่และหมุดpinIdเว้นว่างได้ บังคับตอนส่งก็ต่อเมื่อมีหมุดที่ใช้งานอยู่บนแผนผังที่ใช้งานอยู่แล้ว หมุดรู้เองว่าอยู่บนแผนผังใด
ใบอนุญาตบัตรความปลอดภัยworkerIdการเชื่อมโยงเชิงโครงสร้างจริง คนไม่มีบัตรอ่านว่า "ไม่มีบัตร" แต่การพิมพ์ผิดสร้างคนที่สองขึ้นมาไม่ได้อีกแล้ว
การตรวจสอบหน้างานใบอนุญาตรอบการตรวจอ้างถึงใบอนุญาต แต่ไม่เปลี่ยนข้อมูลใดของใบอนุญาต
การตรวจสอบหน้างานใบอนุญาตโทเคนใน QRอ่านสถานะปัจจุบันเสมอ ไม่ใช่ภาพนิ่งตอนออกบัตร
ทุกส่วนบันทึกการตรวจสอบผู้กระทำ + ข้อมูลข้อมูลอยู่ในค่าแฮชด้วย จึงตรวจจับการแก้ไขได้โดยอัตโนมัติ

ศัพท์ที่ใช้ร่วมกัน

คำที่มีความหมายเฉพาะในระบบนี้ การใช้อย่างหลวม ๆ คือจุดเริ่มต้นของการที่สองคนสร้างระบบคนละอย่าง

คำหมายถึงไม่ได้ หมายถึง
ใบอนุญาตการอนุญาตให้ทำงานอันตรายหนึ่งงาน ในหนึ่งที่ ในหนึ่งช่วงเวลาแบบฟอร์มเอกสาร
ผู้ควบคุมงานผู้รับเหมาที่สร้างใบอนุญาต ตั้งแต่รอบที่ 4 ไม่ได้เป็นคนปิดงานแล้วตำแหน่งในระบบ — ไม่มีบทบาทนี้
ผู้ปฏิบัติงานบุคคลที่ผู้รับเหมาลงทะเบียนไว้ พร้อมบัตร QR ที่บรรจุรหัสของเขา เป็นชื่อ ส่วนหน้าที่เลือกเป็นรายใบอนุญาตบัญชีผู้ใช้ ผู้ปฏิบัติงานไม่ล็อกอิน
ช่วงเวลาทำงานช่วงวันที่ บวกเวลาเริ่ม–สิ้นสุดรายวันหนึ่งชุดที่ใช้ซ้ำทุกวันในช่วงนั้นหนึ่งวัน หรือคนละช่วงเวลาในแต่ละวัน
รอบการตรวจการไปหน้างานหนึ่งครั้งที่เริ่มจากการสแกน ทำงานผ่านเมนูการดำเนินการ พร้อมบันทึกและภาพของครั้งนั้นมุมมองของผู้ตรวจสอบตลอดอายุใบอนุญาต
ผู้เข้าปฏิบัติงานผู้ที่เช็คอินเข้าที่อับอากาศอยู่ ในขณะนี้ทุกคนที่มีชื่อบนใบอนุญาต
เฝ้าระวังไฟช่วง 30 นาที หลัง งานร้อนหยุดตัวบุคคลที่เฝ้า
แผนผังพื้นที่สถานที่ที่มีชื่อพร้อมภาพที่แก้ไม่ได้ เป็นของ จป.เวอร์ชันหนึ่งของแบบรวมทั้งไซต์
หมุดตำแหน่งที่มีชื่อบนแผนผังพื้นที่ จป. เป็นผู้ปัก ผู้รับเหมาเลือกใช้ตำแหน่งที่ผู้รับเหมาปักเอง
พื้นที่ถูกลบในรอบที่ 4 หมุดเข้ามาแทน
ปิดงานการกระทำของ จป. พร้อมเหตุผล ผู้รับเหมาหรือผู้ตรวจสอบ ขอปิดงาน ได้ ซึ่งเป็นเครื่องหมายบนใบอนุญาต ไม่ใช่สถานะรายการตรวจสอบของผู้ควบคุมงาน (เคยเป็นจนถึงรอบที่ 4)
หมดอายุช่วงเวลาทำงานสิ้นสุดขณะใบอนุญาตยังเปิดอยู่ถูกยกเลิก หรือถูกปฏิเสธ
ถูกปฏิเสธจป. ไม่อนุมัติ พร้อมเหตุผลเป็นข้อความถูกลบ — แก้ไขและส่งใหม่ได้
สแกนอ่าน QR ที่หน้างาน ในตอนนี้เปิดดูใบอนุญาตบนหน้าจอ

กฎที่ใช้กับทุกส่วน

  1. คำตัดสินของเซิร์ฟเวอร์คือข้อยุติ หน้าจอแปลรหัสข้อผิดพลาดเป็นภาษาไทยและอังกฤษ ไม่เคยแสดงข้อความภาษาอังกฤษที่เซิร์ฟเวอร์ส่งมาตรง ๆ
  2. บันทึกการตรวจสอบเพิ่มได้อย่างเดียวและเชื่อมด้วยแฮช ไม่มีข้อยกเว้น
  3. บัญชีถูกปิดใช้งาน ไม่เคยถูกลบ
  4. ค่าความปลอดภัยถูกตรวจซ้ำที่เซิร์ฟเวอร์เสมอ LEL 0%, O₂ 19.5–23.5%, CO ≤50 ppm, ความเร็วลม ≤25 กม./ชม. ตามประเภทงาน
  5. ไม่มีการเรียกบริการภายนอกขณะทำงานในทั้งสองแอป ซึ่งเป็นเหตุผลที่แผนที่แบบเลือกจุดถูกปฏิเสธด้วย เพราะการเลื่อนแผนที่แต่ละครั้งคือการดึงไทล์จากผู้ให้บริการภายนอก (พิกัดที่แปลงจากลิงก์แผนที่ซึ่งเคยใช้แทนนั้นถูกลบในรอบที่ 4 แล้ว สถานที่ของใบอนุญาตคือหมุดของมัน)
  6. ทุกข้อความมีทั้งไทยและอังกฤษ ค่าเริ่มต้นเป็นไทย เวลาเก็บเป็น UTC และแสดงผลตามเวลาไทย

อ่านต่อ