SML

FireCheck — เข้าสู่ระบบ

ระบบตรวจถังดับเพลิง สยามกลการโลจิสติกส์ จำกัด

ผลการตรวจประจำเดือน —
0
ถังทั้งหมด
0
ผ่าน/อนุมัติแล้ว
0
พบ NG
0
รออนุมัติ
รหัสไม่ถูกต้อง กรุณาลองใหม่
Demo: กรอกรหัสอะไรก็ได้ (ระบบจริงจะเช็คผ่าน Microsoft 365 SSO)
🔒
TW
⚠️ ไฟล์นี้เป็น Demo/Prototype — ชื่อ อีเมล และข้อมูลผู้ใช้ทั้งหมดเป็นข้อมูลสมมติ ไม่ใช่ข้อมูลพนักงานจริง (ถูกแทนที่จากข้อมูลต้นฉบับแล้วเพื่อ PDPA)

FireCheck

ระบบตรวจถังดับเพลิง SML · ตัวอย่าง Demo
92%
อัตราผ่านตรวจ
86
ถังทั้งหมด
54
ตรวจแล้ว
4
พบ NG
0
รออนุมัติ
0
เกินกำหนดตรวจ
0
ใกล้ครบกำหนด (≤7 วัน)

รายการล่าสุดที่พบปัญหา

อัปเดตอัตโนมัติ

สแกน QR Code ที่ถัง หรือเลือกจากรายการด้านล่าง

FE-000
เดือนที่ตรวจต้องตรงกับรอบรายงานที่จะส่งอีเมล
📷 แตะเพื่อแนบภาพประกอบการตรวจ

ทะเบียนถังดับเพลิงทั้งหมด

86 รายการ
กติกาที่ใช้คำนวณ: รอบตรวจมาตรฐาน 30 วัน นับจากวันที่ตรวจล่าสุด · ถ้าเหลือ ≤7 วันจัดเป็น "ใกล้ครบกำหนด" · ถ้าเลยกำหนดแล้วจัดเป็น "เกินกำหนดตรวจ" (ข้อมูล ณ วันที่ 10 ก.ค. 2569)
จุดที่รหัสทรัพย์สินZone / สถานที่ประเภท / น้ำหนักผู้ตรวจรอบตรวจ (30 วัน)สถานะ

การแจ้งเตือน

เรียงจากล่าสุด

รอการอนุมัติจากผู้บังคับบัญชา

0 รายการ
นี่คือ "ข้อมูลชุดเดียวกับที่ส่งแจ้งผู้บังคับบัญชา" (ผ่านอีเมล/LINE จาก Power Automate) — กดรายการเพื่อดูรายละเอียดครบทุกจุดตรวจก่อนกดอนุมัติหรือตีกลับ

ส่งรายงานผลตรวจ

เลือกถังที่ต้องการรวมในรายงาน แล้วส่งได้ในคลิกเดียว
เดือนรายงานกรองเฉพาะผลตรวจของเดือนนี้ ให้ตรงกับอีเมลที่จะส่ง
จุดที่Zone / สถานที่ประเภท / น้ำหนักเดือนที่ตรวจสถานะ
ผู้รับรายงาน:
ส่งเพิ่มถึง (ระบุเอง):
0 ถังถูกเลือกติ๊กเลือกถังในตารางด้านบนก่อน ปุ่มถึงจะกดได้

ภาพรวมทั้งระบบ

หน้าจอนี้ (FireCheck) + ระบบหลังบ้านที่มีอยู่แล้ว
ยืนยันแล้วว่าฐานข้อมูลจริงอยู่ใน SharePoint List บน Microsoft 365 (ชื่อลิสต์: FireExtinguisherInspections) หน้าจอนี้ผูก field ตามชื่อคอลัมน์จริงในลิสต์ทั้งหมด ไม่ใช่ชื่อสมมติแล้วครับ
ฝั่งหน้างาน — PowerApps
1️⃣ Safety ตรวจถัง
เปิดแอป FireCheck กรอกเช็คลิสต์ 7 คอลัมน์
2️⃣ บันทึกลง SharePoint List
CheckingStatus = Done/Failed, InspectorName, InspectionDate
3️⃣ ส่งอนุมัติ
ApprovalStatus = Pending → แจ้งเตือนหัวหน้างาน
ฝั่งหลังบ้าน — Power Automate
4️⃣ หัวหน้า Approve
Trigger: When an item is modified → Condition ApprovalStatus = Approved
5️⃣ เช็คว่าเดือนนี้มี PDF แล้วหรือยัง
Get items จาก Report Library กรองด้วย ReportMonth ปัจจุบัน
6️⃣ Condition: ยังไม่มี → สร้าง PDF
รวมทุกถังที่ Approved ในเดือนนี้ → HTML to PDF
7️⃣ เก็บ PDF ใน SharePoint Report Library
Create file: FM-ASH-0004_{เดือน}{ปี}.pdf
8️⃣ ส่งอีเมล / แนบลิงก์
ถึงผู้รับรายงานเริ่มต้น + ผู้อนุมัติ พร้อมลิงก์ไฟล์ใน Library
⚠️ จุดที่ต้องตัดสินใจก่อนสร้างจริง (ขั้นตอนที่ 5-6): ถ้าเดือนนี้มี PDF อยู่แล้วตอนถังตัวที่ 2, 3, ... ในเดือนเดียวกันเพิ่งได้รับอนุมัติ ระบบควรทำยังไงต่อ — เลือกได้ 2 แบบ:
แบบ A (สร้างครั้งเดียว/เดือน): ข้ามการสร้าง PDF ไปเลย ส่งแค่อีเมลแจ้งผลรายถังแทน แล้วค่อยไปรวมเป็น PDF ทีเดียวตอนสิ้นเดือน (ต้องมี trigger แบบ Scheduled เพิ่มอีกตัว)
แบบ B (อัปเดตทับทุกครั้ง): ลบไฟล์ PDF เดิมแล้วสร้างใหม่ทับทุกครั้งที่มีการอนุมัติเพิ่มในเดือนนั้น เพื่อให้ PDF ล่าสุดมีข้อมูลครบเสมอ (เปลืองการรันมากกว่า แต่ข้อมูลสดกว่า)
แนะนำ แบบ B เพราะข้อมูลจะไม่ตกหล่น — ในแอปตัวอย่างด้านล่างผมจำลองแบบ B ไว้ให้ดูครับ (ดูหัวข้อ "คลัง PDF รายเดือน" ในหน้า "ส่งรายงาน")

คอลัมน์จริงใน SharePoint List (จากไฟล์ backup)

คอลัมน์ใช้ทำอะไรค่าที่พบ
ID / หมายเลขถัง / จุดที่ตั้งรหัสอ้างอิงแถว / เลขถัง / ลำดับจุดติดตั้งตัวเลข
Zone / Locationfireโซนและจุดติดตั้งจริง (ผูกกับแผนที่ได้)เช่น PDI & Yard Operation
TypeofFire / น้ำหนักของถังชนิดสารดับเพลิง และขนาดถังDry Chemical, BF2000, 15 lbs.
7 คอลัมน์ตรวจ (สลัก, สายฉีด, เข็มวัด ฯลฯ)ผลตรวจแต่ละจุดOK / NG
CheckingStatusสถานะรวมของการตรวจDone / Failed
InspectorName / InspectionDate / InspectorEmailผู้ตรวจและวันที่ตรวจข้อความ / วันที่
ApproverName / ApprovalDate / ApprovalStatusขั้นตอนอนุมัติผลตรวจ (2-step: ตรวจ → อนุมัติ)Pending / Approved
สิ่งที่เพิ่งค้นพบจากไฟล์จริง: ระบบเดิมมี "ขั้นตอนอนุมัติ" (Inspector → Approver) ที่ผมพลาดไปตอนร่างแรก ตอนนี้แก้ให้แอปมีปุ่ม "อนุมัติ" ในหน้าทะเบียนถังสำหรับรายการที่รออนุมัติแล้วครับ — ลองไปกด "ตรวจถัง" แล้วบันทึกผล จะเห็นว่าสถานะขึ้นเป็น "รออนุมัติ" ก่อนเสมอ ตรงตามที่ข้อมูลจริงมี ApproverName/ApprovalDate แยกจาก InspectorName/InspectionDate

จัดการสิทธิ์ผู้ใช้งาน

เทียบเท่า SharePoint List "UserRoles" ที่คุยกันไว้
เฉพาะ Admin System เข้าหน้านี้ได้ — กำหนดได้ว่าแต่ละคนมีบทบาท (Role) อะไร และเปิด/ปิดสิทธิ์การใช้งานได้โดยไม่ต้องลบบัญชี
ชื่ออีเมลโซนที่รับผิดชอบบทบาท (Role)ใช้งานอยู่

ผู้รับรายงานเริ่มต้น (หน้า "ส่งรายงาน")

กำหนดได้ว่าเวลากด "ส่งรายงาน" จะมีใครเป็นผู้รับตายตัวบ้าง โดยไม่ต้องพิมพ์ใหม่ทุกครั้ง — แก้ไขที่นี่จะเปลี่ยนทันทีในหน้าส่งรายงาน
ข้อควรระวังด้านความปลอดภัย: การกำหนดสิทธิ์ในหน้านี้เป็นแค่ UX ของ PowerApps เท่านั้น เวลาทำจริงต้องล็อกอีกชั้นที่ Power Automate (เช็ค email เทียบกับ UserRoles list ก่อนยอมให้ update ApprovalStatus) และที่ SharePoint List permission โดยตรง ไม่งั้นคนที่รู้ URL ตรงๆ ยังเข้าถึงข้อมูลได้อยู่ดี

PDPA — บันทึกการรับทราบ/ยินยอม (Consents Log)

จำลองสิ่งที่ควรเป็น SharePoint List "Consents" — บันทึกทุกครั้งที่มีคนกดรับทราบประกาศความเป็นส่วนบุคคล (เก็บเฉพาะใน session นี้เท่านั้น รีเฟรชแล้วหาย เพราะยังไม่ต่อ backend จริง)
เวลาชื่ออีเมลบทบาทเวอร์ชันนโยบายยินยอมใช้ภาพเพื่ออบรม
— ยังไม่มีการรับทราบใน session นี้ —

PDPA — Audit Log การกระทำสำคัญ

จำลองสิ่งที่ควรเป็น SharePoint List "AuditLog" — บันทึกการอนุมัติ/ตีกลับ และการเปลี่ยนสิทธิ์ผู้ใช้ เพื่อตรวจสอบย้อนหลังได้ตามหลัก accountability ของ PDPA
เวลาผู้กระทำบทบาทการกระทำรายละเอียด
— ยังไม่มีรายการ —

สิทธิของเจ้าของข้อมูล (Data Subject Rights)

พนักงานที่ต้องการขอเข้าถึง แก้ไข หรือลบข้อมูลส่วนบุคคลของตนเองในระบบนี้ ติดต่อเจ้าหน้าที่คุ้มครองข้อมูลส่วนบุคคล (DPO) ได้ที่ — ของจริงคำขอเหล่านี้ควรเข้าคิวผ่าน Power Automate flow แล้วมีผู้ดูแลระบบเป็นผู้ดำเนินการลบ/แก้ไขใน SharePoint List ให้ (ไม่ให้ผู้ใช้ลบข้อมูลเองโดยตรง เพื่อกันการลบผิดพลาด/ตั้งใจทำลายหลักฐาน)

เก็บผลตรวจ/ภาพถ่ายไม่เกิน 3 ปีตามนโยบาย — ของจริงรันเป็น scheduled flow อัตโนมัติ ไม่ใช่ปุ่มกดเอง

จัดการทะเบียนถัง (เพิ่ม / แก้ไข / ลบ)

0 ถัง
เพิ่ม/แก้ไข/ลบถังที่นี่จะสะท้อนไปทุกหน้าในแอปทันที (ภาพรวม, ทะเบียน, ตรวจถัง, ส่งรายงาน) — ฟิลด์ที่มีค่าให้เลือกซ้ำได้ (Zone/ประเภท/น้ำหนัก) ทำเป็น dropdown เพื่อกันข้อมูลพิมพ์ผิด · สิทธิ์นี้เปิดให้ทั้ง Safety และ Admin System

เพิ่มถังใหม่

รายการถังทั้งหมด — แก้ไข/ลบได้ที่นี่

จุดที่รหัสทรัพย์สินZone / สถานที่ประเภท / น้ำหนักผู้ตรวจ

ดูรายงานย้อนหลัง

0 รายงาน
ดึงจาก Report Library จริง (SharePoint Document Library) — เห็นได้ทุก role แต่แก้ไข/ส่งใหม่ไม่ได้ ต้องไปที่หน้า "ส่งรายงาน" เท่านั้น