[2026-04-09 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-09 16:00:00","cutoff_time":"2026-04-09 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-09 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2604-011","SMP2604-012"]} 
[2026-04-10 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-10 00:00:00","cutoff_time":"2026-04-09 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-10 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2604-011","SMP2604-012"]} 
[2026-04-10 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-10 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to mk18@spunindo.com {"approver":"Vivi Alayda","samples_count":1,"sample_ids":["SMP2604-018"]} 
[2026-04-10 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-10 08:00:00","cutoff_time":"2026-04-10 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-10 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2604-011","SMP2604-012"]} 
[2026-04-10 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-10 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk18@spunindo.com {"approver":"Vivi Alayda","samples_count":1,"sample_ids":["SMP2604-018"]} 
[2026-04-10 09:14:19] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"C65edrX0Q5oR7F4ZIS5zhgXEt6fBWboRr05dEdEdvHye1g793OW8VNtlpd1taa1n","decision_count":1} 
[2026-04-10 09:14:19] production.INFO: SampleApproval: [SMP2604-018] set to [Accepted] by [Vivi Alayda] {"level":1,"approver_id":"018"} 
[2026-04-10 09:14:19] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2604-018"],"current_level":1} 
[2026-04-10 09:14:19] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-018"]}} 
[2026-04-10 09:14:19] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-018  
[2026-04-10 09:15:08] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"EfkPH2DGJmYjbqEa6FIzfWSA39z3pKliFKDhd9F0mqTHh6Py88V1Cl7fWElqk0wp","decision_count":1} 
[2026-04-10 09:15:08] production.INFO: SampleApproval: [SMP2604-018] set to [Accepted] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-10 09:15:08] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-018"],"current_level":2} 
[2026-04-10 09:15:08] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-018"]}} 
[2026-04-10 09:15:08] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-018  
[2026-04-10 10:06:12] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"1sUC0k3lfJIF24SdeDfZ4JXb4Rrh28Ke1yvrto8sdXwOydP3HnAb620pjH8HgRsl","decision_count":1} 
[2026-04-10 10:06:12] production.INFO: SampleApproval: [SMP2604-018] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-10 10:06:12] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-018"],"current_level":3} 
[2026-04-10 10:06:12] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-018","current_level":3} 
[2026-04-10 10:06:12] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-018"],"samples_by_next_level":[]} 
[2026-04-10 10:06:15] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-018  
[2026-04-10 10:09:57] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"gMyYMEgPm7HRtY6eBrYTip4srK8Y6WSFhhtMMiMCW7upjiiog38KbnkCDhWoOaXJ","count":1,"approvals":[{"id":1037,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-10 10:06:15"}]} 
[2026-04-10 10:09:57] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"gMyYMEgPm7HRtY6eBrYTip4srK8Y6WSFhhtMMiMCW7upjiiog38KbnkCDhWoOaXJ","found":"YES","approval":{"id":1037,"id_approval":"016","status":"Pending"}} 
[2026-04-10 10:09:57] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-018","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-10 10:09:57] production.INFO: QCApprovalController: QC form access (no login required) {"token":"gMyYMEgPm7HRtY6eBrYTip4srK8Y6WSFhhtMMiMCW7upjiiog38KbnkCDhWoOaXJ","approval_id":1037,"id_sample":"SMP2604-018"} 
[2026-04-10 10:09:57] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-018","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-018","aplikasi":"APK085","id_detail":"DET010","color":"WHITE W15","item":"PET Spunbond 20 gsm white - A4","size_gsm":"20","size_length":"0.297","size_width":"0.21","qty":"3","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-09 11:27:16","updated_at":"2026-04-09 11:27:16","item_number":null,"item_color":"WHITE W15","aplikasi_name":"TAPES","detail_name_mst_joined":"PET"}} 
[2026-04-10 10:10:48] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"gMyYMEgPm7HRtY6eBrYTip4srK8Y6WSFhhtMMiMCW7upjiiog38KbnkCDhWoOaXJ","approval_id":1037,"id_sample":"SMP2604-018"} 
[2026-04-10 10:10:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-018"],"current_level":5} 
[2026-04-10 10:10:48] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-10 10:10:48] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-018  
[2026-04-10 10:10:51] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-018","token":"Bl0sNb3Z5IfDxdogGaBppUJYM2m5w4vDEr1D46yzVbrOCZqt86RELde2pyqDgMxi"} 
[2026-04-10 10:34:35] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-018"],"current_level":6} 
[2026-04-10 10:34:35] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-10 12:12:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-020"],"current_level":0} 
[2026-04-10 12:12:58] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-10 12:12:58] production.INFO: NextLevel Notification: Sending level 1 to Selvie Chandra (mk01@spunindo.com) for samples: SMP2604-020  
[2026-04-10 13:23:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-019"],"current_level":0} 
[2026-04-10 13:23:23] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-10 13:23:23] production.INFO: NextLevel Notification: Sending level 1 to Gwen Sijangga (mk11@spunindo.com) for samples: SMP2604-019  
[2026-04-10 13:24:26] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"wNOJWcjBAtmnvgOg57AFxmQM9fxKXhN44iQSNXRQ501kbzEBwvTadYgThUYpoMfX","decision_count":1} 
[2026-04-10 13:24:26] production.INFO: SampleApproval: [SMP2604-019] set to [Accepted] by [Gwen Sijangga] {"level":1,"approver_id":"004"} 
[2026-04-10 13:24:26] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-019"],"current_level":1} 
[2026-04-10 13:24:26] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-019"]}} 
[2026-04-10 13:24:26] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-019  
[2026-04-10 13:26:24] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"KKCdZa13yAtECx3pdEbwrTlxMeblKupd4556UJYs14OH9hmo3xnEJPHoOxOKQcOZ","decision_count":1} 
[2026-04-10 13:26:24] production.INFO: SampleApproval: [SMP2604-020] set to [Accepted] by [Selvie Chandra] {"level":1,"approver_id":"001"} 
[2026-04-10 13:26:24] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2604-020"],"current_level":1} 
[2026-04-10 13:26:24] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-020"]}} 
[2026-04-10 13:26:24] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-020  
[2026-04-10 13:41:29] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"1A3kKO1fQfbhLTfBnqZg0LJevMihWYub2IuAz4PoQR78EzMLO6uM4zflja3RZZ2h","decision_count":1} 
[2026-04-10 13:41:29] production.INFO: SampleApproval: [SMP2604-019] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-10 13:41:29] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-019"],"current_level":2} 
[2026-04-10 13:41:29] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-019"]}} 
[2026-04-10 13:41:29] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-019  
[2026-04-10 13:44:04] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"qK2UuRtP6v4Spp3jGhyVZCuh78gxbDCvuiJCkcm6zjFmTPw4bvwGiXV9K9IWHtH8","decision_count":1} 
[2026-04-10 13:44:04] production.INFO: SampleApproval: [SMP2604-020] set to [Accepted] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-10 13:44:04] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-020"],"current_level":2} 
[2026-04-10 13:44:04] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-020"]}} 
[2026-04-10 13:44:04] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-020  
[2026-04-10 14:27:53] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"ZwgKFnOsgJIlfT3bDOoJBVz1JdNxhngK5k4isMbUtKDqF7nZNkaRIjWcYY42Qjfh","decision_count":1} 
[2026-04-10 14:27:53] production.INFO: SampleApproval: [SMP2604-020] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-10 14:27:53] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-020"],"current_level":3} 
[2026-04-10 14:27:53] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-020","current_level":3} 
[2026-04-10 14:27:53] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-020"],"samples_by_next_level":[]} 
[2026-04-10 14:27:53] production.INFO: Level 4 Notification: Sending to Santi Dwi Esthiningrum (santi.de@spunindo.com) for sample SMP2604-020  
[2026-04-10 14:46:00] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"03XDcI06JStdc6ZdlFObEbHYBeHOukEACAYyum06MhoXyMwQwd4yiROzVhyd9OCI","count":1,"approvals":[{"id":1045,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-10 14:27:53"}]} 
[2026-04-10 14:46:00] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"03XDcI06JStdc6ZdlFObEbHYBeHOukEACAYyum06MhoXyMwQwd4yiROzVhyd9OCI","found":"YES","approval":{"id":1045,"id_approval":"015","status":"Pending"}} 
[2026-04-10 14:46:00] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-020","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-10 14:46:00] production.INFO: QCApprovalController: QC form access (no login required) {"token":"03XDcI06JStdc6ZdlFObEbHYBeHOukEACAYyum06MhoXyMwQwd4yiROzVhyd9OCI","approval_id":1045,"id_sample":"SMP2604-020"} 
[2026-04-10 14:46:00] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-020","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-020","aplikasi":"APK086","id_detail":"DET008","color":"WHITE W20","item":"SMS PHILIC , 15gsm 

LAB Test untuk buat inner layer paper tray.","size_gsm":"15","size_length":"1.5","size_width":"3","qty":"1","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-10 12:12:49","updated_at":"2026-04-10 12:12:49","item_number":null,"item_color":"WHITE W20","aplikasi_name":"INNER LAYER PAPER TRAY","detail_name_mst_joined":"SSMMS Philic"}} 
[2026-04-10 14:48:36] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"03XDcI06JStdc6ZdlFObEbHYBeHOukEACAYyum06MhoXyMwQwd4yiROzVhyd9OCI","approval_id":1045,"id_sample":"SMP2604-020"} 
[2026-04-10 14:48:36] production.INFO: QCApproval: [SMP2604-020] set to [Accepted] by [Santi Dwi Esthiningrum] {"approval_id":1045,"level":4} 
[2026-04-10 14:48:36] production.INFO: QCApprovalController: Status otomatis → OnProgress {"id_sample":"SMP2604-020","classify":"Improved","qcLevel":4,"doneL123":"3/3","doneQC":"1/1"} 
[2026-04-10 14:48:36] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-020"],"current_level":4} 
[2026-04-10 14:48:36] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":4,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-10 14:48:36] production.INFO: SendNextApprovalEmail.handleSampleApproval: Level 4 approved. No level 5 notification (already sent as CC after level 3).  
[2026-04-10 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-10 16:00:00","cutoff_time":"2026-04-10 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-10 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2604-011","SMP2604-012"]} 
[2026-04-10 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-11 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-11 00:00:01","cutoff_time":"2026-04-10 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-04-11 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-11 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-11 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-11 08:00:00","cutoff_time":"2026-04-11 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-11 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-11 16:00:00","cutoff_time":"2026-04-11 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-11 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-11 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-12 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-12 00:00:00","cutoff_time":"2026-04-11 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-12 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-12 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-12 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-12 08:00:00","cutoff_time":"2026-04-12 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-12 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-12 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-12 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-12 16:00:00","cutoff_time":"2026-04-12 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-12 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-12 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-13 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-13 00:00:00","cutoff_time":"2026-04-12 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-13 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-13 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-13 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-13 08:00:00","cutoff_time":"2026-04-13 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-13 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"]} 
[2026-04-13 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-016"]} 
[2026-04-13 08:15:32] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"WgTSychvHwypCDPZvdYV9nhgaPPXDE8bBeYhjWLitVhsek3WJVN9YjGccZJG7qs4","decision_count":1} 
[2026-04-13 08:15:32] production.INFO: SampleApproval: [SMP2604-016] set to [Rejected] by [Latifa Algha] {"level":1,"approver_id":"003"} 
[2026-04-13 08:15:32] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-016"],"current_level":1} 
[2026-04-13 08:15:32] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-016"]}} 
[2026-04-13 09:29:26] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"zS8rpmcDRHllzYat8v7JQiIP9xCndSyNMeHAq6Mpi4vnK5DNO8TXXrQN2bGSFnjb","decision_count":3} 
[2026-04-13 09:29:26] production.INFO: SampleApproval: [SMP2604-011] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-13 09:29:26] production.INFO: SampleApproval: [SMP2604-012] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-13 09:29:26] production.INFO: SampleApproval: [SMP2604-019] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-13 09:29:26] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-011","SMP2604-012","SMP2604-019"],"current_level":3} 
[2026-04-13 09:29:26] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-011","current_level":3} 
[2026-04-13 09:29:26] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-012","current_level":3} 
[2026-04-13 09:29:26] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-019","current_level":3} 
[2026-04-13 09:29:26] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-011","SMP2604-012","SMP2604-019"],"samples_by_next_level":[]} 
[2026-04-13 09:29:26] production.INFO: Level 4 Notification: Sending to Maulana Adi Wibowo (qe01@spunindo.com) for sample SMP2604-011  
[2026-04-13 09:29:33] production.INFO: Level 4 Notification: Sending to Santi Dwi Esthiningrum (santi.de@spunindo.com) for sample SMP2604-012  
[2026-04-13 09:29:37] production.INFO: Level 4 Notification: Sending to Santi Dwi Esthiningrum (santi.de@spunindo.com) for sample SMP2604-019  
[2026-04-13 09:34:13] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","count":1,"approvals":[{"id":1048,"id_approval":"014","level":4,"status":"Pending","updated_at":"2026-04-13 09:29:26"}]} 
[2026-04-13 09:34:13] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","found":"YES","approval":{"id":1048,"id_approval":"014","status":"Pending"}} 
[2026-04-13 09:34:13] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-011","approver":"Maulana Adi Wibowo","level":"4","classify":"Improved"} 
[2026-04-13 09:34:13] production.INFO: QCApprovalController: QC form access (no login required) {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","approval_id":1048,"id_sample":"SMP2604-011"} 
[2026-04-13 09:34:13] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-011","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-011","aplikasi":"APK083","id_detail":"DET002","color":"BROWN N12","item":"sample soft ASF warna N12 mirip sample FPAL kompetitor.","size_gsm":"15","size_length":"0.42","size_width":"0.297","qty":"5","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-07 13:52:04","updated_at":"2026-04-07 13:52:04","item_number":null,"item_color":"BROWN N12","aplikasi_name":"POPOK HEWAN","detail_name_mst_joined":"S"}} 
[2026-04-13 09:35:01] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","count":1,"approvals":[{"id":1048,"id_approval":"014","level":4,"status":"Pending","updated_at":"2026-04-13 09:29:26"}]} 
[2026-04-13 09:35:01] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","found":"YES","approval":{"id":1048,"id_approval":"014","status":"Pending"}} 
[2026-04-13 09:35:01] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-011","approver":"Maulana Adi Wibowo","level":"4","classify":"Improved"} 
[2026-04-13 09:35:01] production.INFO: QCApprovalController: QC form access (no login required) {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","approval_id":1048,"id_sample":"SMP2604-011"} 
[2026-04-13 09:35:01] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-011","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-011","aplikasi":"APK083","id_detail":"DET002","color":"BROWN N12","item":"sample soft ASF warna N12 mirip sample FPAL kompetitor.","size_gsm":"15","size_length":"0.42","size_width":"0.297","qty":"5","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-07 13:52:04","updated_at":"2026-04-07 13:52:04","item_number":null,"item_color":"BROWN N12","aplikasi_name":"POPOK HEWAN","detail_name_mst_joined":"S"}} 
[2026-04-13 09:37:21] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"dYjMNhyJ6ecTPfvZiVWLi9JFd1hJF5F1ETrcKstAA5J2g1yamggPiMHwIKHSe6Ex","approval_id":1048,"id_sample":"SMP2604-011"} 
[2026-04-13 09:37:21] production.INFO: QCApproval: [SMP2604-011] set to [Accepted] by [Maulana Adi Wibowo] {"approval_id":1048,"level":4} 
[2026-04-13 09:37:21] production.INFO: QCApprovalController: Status otomatis → OnProgress {"id_sample":"SMP2604-011","classify":"Improved","qcLevel":4,"doneL123":"1/1","doneQC":"1/1"} 
[2026-04-13 09:37:21] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2604-011"],"current_level":4} 
[2026-04-13 09:37:21] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":4,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-13 09:37:21] production.INFO: SendNextApprovalEmail.handleSampleApproval: Level 4 approved. No level 5 notification (already sent as CC after level 3).  
[2026-04-13 09:45:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-021"],"current_level":0} 
[2026-04-13 09:45:51] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-13 09:45:51] production.INFO: NextLevel Notification: Sending level 1 to Latifa Algha (mk15@spunindo.com) for samples: SMP2604-021  
[2026-04-13 10:15:22] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-022"],"current_level":0} 
[2026-04-13 10:15:22] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-13 10:15:22] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-022  
[2026-04-13 10:15:52] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"9L5XX2hWHawFtiXVSMQhsbaec7DpPlrISXF8RUQ3CRp5sEQZUOd5O7eD8kXh28MK","decision_count":1} 
[2026-04-13 10:15:52] production.INFO: SampleApproval: [SMP2604-022] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-13 10:15:52] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-022"],"current_level":2} 
[2026-04-13 10:15:52] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-022"]}} 
[2026-04-13 10:15:52] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-022  
[2026-04-13 13:07:50] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"VIapaKz1WPoMJAFpP1VwB5ZefOLbHAbmCXZcVuVKE230rg3HzY2272uF8tVQ5vYp","decision_count":1} 
[2026-04-13 13:07:50] production.INFO: SampleApproval: [SMP2604-022] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-13 13:07:50] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-022"],"current_level":3} 
[2026-04-13 13:07:50] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-022","current_level":3} 
[2026-04-13 13:07:50] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-022"],"samples_by_next_level":[]} 
[2026-04-13 13:07:53] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-022  
[2026-04-13 13:25:04] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"eApgN5KYrSV5bOQpz9Qr3yzeD6CPvh8FUSIvm2vn9d7uhGeQlX4EEHYo8seWzN88","count":1,"approvals":[{"id":1063,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-13 13:07:53"}]} 
[2026-04-13 13:25:04] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"eApgN5KYrSV5bOQpz9Qr3yzeD6CPvh8FUSIvm2vn9d7uhGeQlX4EEHYo8seWzN88","found":"YES","approval":{"id":1063,"id_approval":"016","status":"Pending"}} 
[2026-04-13 13:25:04] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-022","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-13 13:25:04] production.INFO: QCApprovalController: QC form access (no login required) {"token":"eApgN5KYrSV5bOQpz9Qr3yzeD6CPvh8FUSIvm2vn9d7uhGeQlX4EEHYo8seWzN88","approval_id":1063,"id_sample":"SMP2604-022"} 
[2026-04-13 13:25:04] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-022","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-022","aplikasi":"APK016","id_detail":"DET024","color":"WHITE W20","item":"sample PP hydrophilic 25 gsm / 20 gsm A4 size = 2 sheet","size_gsm":"20","size_length":"0.297","size_width":"0.21","qty":"2","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-13 10:14:58","updated_at":"2026-04-13 10:14:58","item_number":null,"item_color":"WHITE W20","aplikasi_name":"MEDICAL","detail_name_mst_joined":"SSS PHILIC"}} 
[2026-04-13 13:25:35] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"eApgN5KYrSV5bOQpz9Qr3yzeD6CPvh8FUSIvm2vn9d7uhGeQlX4EEHYo8seWzN88","approval_id":1063,"id_sample":"SMP2604-022"} 
[2026-04-13 13:25:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-022"],"current_level":5} 
[2026-04-13 13:25:35] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-13 13:25:35] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-022  
[2026-04-13 13:25:38] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-022","token":"WT8vZ2hSDSjhduVozferuiPxRCdjBUqatWOEmLWRtfD36vGTshomkvqHY0pTZuGi"} 
[2026-04-13 13:42:55] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-022"],"current_level":6} 
[2026-04-13 13:42:55] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-13 14:47:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-023"],"current_level":0} 
[2026-04-13 14:47:50] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,3]} 
[2026-04-13 14:47:50] production.INFO: NextLevel Notification: Sending level 1 to Gwen Sijangga (mk11@spunindo.com) for samples: SMP2604-023  
[2026-04-13 14:53:54] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"jBjFB8zqhu9EPV8GvGRks8kAnyHDLPYbowrg4RCTJln3lCvhzXqn2tMPEE4VkcVm","decision_count":1} 
[2026-04-13 14:53:54] production.INFO: SampleApproval: [SMP2604-023] set to [Accepted] by [Gwen Sijangga] {"level":1,"approver_id":"004"} 
[2026-04-13 14:53:54] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-023"],"current_level":1} 
[2026-04-13 14:53:54] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-023"]}} 
[2026-04-13 14:53:55] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-023  
[2026-04-13 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-13 16:00:00","cutoff_time":"2026-04-13 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-13 16:40:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-024"],"current_level":0} 
[2026-04-13 16:40:30] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-13 16:40:30] production.INFO: NextLevel Notification: Sending level 1 to Latifa Algha (mk15@spunindo.com) for samples: SMP2604-024  
[2026-04-13 16:43:07] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","count":1,"approvals":[{"id":1054,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-13 09:29:37"}]} 
[2026-04-13 16:43:08] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","found":"YES","approval":{"id":1054,"id_approval":"015","status":"Pending"}} 
[2026-04-13 16:43:08] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-019","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-13 16:43:08] production.INFO: QCApprovalController: QC form access (no login required) {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","approval_id":1054,"id_sample":"SMP2604-019"} 
[2026-04-13 16:43:08] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-019","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-019","aplikasi":"APK036","id_detail":"DET026","color":"WHITE W20","item":"NW Topsheet SSS Soft Philic 240mm 13gsm

Max OD 800mm (Minim per roll panjang 5,250m)","size_gsm":"13","size_length":"8500","size_width":"0.24","qty":"4","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-10 13:23:15","updated_at":"2026-04-10 13:23:15","item_number":null,"item_color":"WHITE W20","aplikasi_name":"TOP SHEET","detail_name_mst_joined":"SSS SOFT PHILIC"}} 
[2026-04-13 16:46:46] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","count":1,"approvals":[{"id":1051,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-13 09:29:33"}]} 
[2026-04-13 16:46:46] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","found":"YES","approval":{"id":1051,"id_approval":"015","status":"Pending"}} 
[2026-04-13 16:46:46] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-012","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-13 16:46:46] production.INFO: QCApprovalController: QC form access (no login required) {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","approval_id":1051,"id_sample":"SMP2604-012"} 
[2026-04-13 16:46:46] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-012","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-012","aplikasi":"APK035","id_detail":"DET005","color":"WHITE W10","item":"SSMMS 33gsm - improvement dari lot BB21C7S003","size_gsm":"33","size_length":"5","size_width":"3","qty":"1","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-07 16:07:25","updated_at":"2026-04-07 16:07:25","item_number":null,"item_color":"WHITE W10","aplikasi_name":"BACK EAR","detail_name_mst_joined":"SSMMS"}} 
[2026-04-14 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-14 00:00:00","cutoff_time":"2026-04-13 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-14 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2604-012","SMP2604-019"]} 
[2026-04-14 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2604-021"]} 
[2026-04-14 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-023"]} 
[2026-04-14 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-14 08:00:00","cutoff_time":"2026-04-14 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-14 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2604-012","SMP2604-019"]} 
[2026-04-14 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":2,"sample_ids":["SMP2604-021","SMP2604-024"]} 
[2026-04-14 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-023"]} 
[2026-04-14 08:26:39] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"Y7pX0RB3sB2EXwRx4x7RrvQfmaKkKIV7QN3k9fJIRxjDmm4kiSIX08IIpxC0AXLC","decision_count":2} 
[2026-04-14 08:26:39] production.INFO: SampleApproval: [SMP2604-021] set to [Accepted] by [Latifa Algha] {"level":1,"approver_id":"003"} 
[2026-04-14 08:26:39] production.INFO: SampleApproval: [SMP2604-024] set to [Accepted] by [Latifa Algha] {"level":1,"approver_id":"003"} 
[2026-04-14 08:26:39] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-021","SMP2604-024"],"current_level":1} 
[2026-04-14 08:26:39] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-021","SMP2604-024"]}} 
[2026-04-14 08:26:39] production.INFO: NextLevel Notification: Sending level 2 to Dwie Zesta (mk07@spunindo.com) for samples: SMP2604-021, SMP2604-024  
[2026-04-14 08:35:05] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"jiBNQ6CHgIBswDRz2shBtD7ODNbLTTK7wLRXjPNYhTtCrv8NV4FlMwSCpEc9zL8B","decision_count":2} 
[2026-04-14 08:35:05] production.INFO: SampleApproval: [SMP2604-021] set to [Rejected] by [Dwie Zesta] {"level":2,"approver_id":"002"} 
[2026-04-14 08:35:05] production.INFO: SampleApproval: [SMP2604-024] set to [Accepted] by [Dwie Zesta] {"level":2,"approver_id":"002"} 
[2026-04-14 08:35:06] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-021","SMP2604-024"],"current_level":2} 
[2026-04-14 08:35:06] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-021","SMP2604-024"]}} 
[2026-04-14 08:35:06] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-024  
[2026-04-14 08:37:03] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"Gzre0wJ49j1y2ul5gd6NF37fI25fXxGpXXJjmZU8wYmGZpPenYpr0rWcGzVxbjIR","decision_count":1} 
[2026-04-14 08:37:03] production.INFO: SampleApproval: [SMP2604-024] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-14 08:37:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-024"],"current_level":3} 
[2026-04-14 08:37:03] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-024","current_level":3} 
[2026-04-14 08:37:03] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-024"],"samples_by_next_level":[]} 
[2026-04-14 08:37:05] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-024  
[2026-04-14 08:44:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-021"],"current_level":0} 
[2026-04-14 08:44:35] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-14 08:44:36] production.INFO: NextLevel Notification: Sending level 1 to Latifa Algha (mk15@spunindo.com) for samples: SMP2604-021  
[2026-04-14 08:45:51] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"8Y2h6d5hmXNqIirrWdcUxJiKnirLRI9KIpilHgtFs4HJixZlpXooJQwTevgVaEwf","decision_count":1} 
[2026-04-14 08:45:51] production.INFO: SampleApproval: [SMP2604-021] set to [Accepted] by [Latifa Algha] {"level":1,"approver_id":"003"} 
[2026-04-14 08:45:51] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-021"],"current_level":1} 
[2026-04-14 08:45:51] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-021"]}} 
[2026-04-14 08:45:51] production.INFO: NextLevel Notification: Sending level 2 to Dwie Zesta (mk07@spunindo.com) for samples: SMP2604-021  
[2026-04-14 08:52:38] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"ggMQXPdNmlDX3LPZGL1EC9RCwCv863qhGsQAdckdpEdv4DchyjYgrixIbXkQEbZl","decision_count":1} 
[2026-04-14 08:52:38] production.INFO: SampleApproval: [SMP2604-021] set to [Accepted] by [Dwie Zesta] {"level":2,"approver_id":"002"} 
[2026-04-14 08:52:38] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-021"],"current_level":2} 
[2026-04-14 08:52:38] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-021"]}} 
[2026-04-14 08:52:38] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-021  
[2026-04-14 08:56:54] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"VZln47CSSZAiPLa8TsRKcOfXGpRzbQlvhVvMKIHbeGcK0fdki9T0DSq0SoShzA9t","decision_count":1} 
[2026-04-14 08:56:54] production.INFO: SampleApproval: [SMP2604-021] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-14 08:56:54] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-021"],"current_level":3} 
[2026-04-14 08:56:54] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-021","current_level":3} 
[2026-04-14 08:56:54] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-021"],"samples_by_next_level":[]} 
[2026-04-14 08:56:57] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-021  
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","count":1,"approvals":[{"id":1071,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-14 08:37:05"}]} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","found":"YES","approval":{"id":1071,"id_approval":"016","status":"Pending"}} 
[2026-04-14 08:58:44] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-024","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController: QC form access (no login required) {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","approval_id":1071,"id_sample":"SMP2604-024"} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-024","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-024","aplikasi":"APK021","id_detail":"DET002","color":"WHITE W10","item":"P0RAH0-W20 30,40,50,60gsm uk. A45 (masing-masing 2 pcs)","size_gsm":"30","size_length":"0.297","size_width":"0.21","qty":"2","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-13 16:40:17","updated_at":"2026-04-13 16:40:17","item_number":null,"item_color":"WHITE W10","aplikasi_name":"HOTEL AMENITIES","detail_name_mst_joined":"S"}} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","count":1,"approvals":[{"id":1071,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-14 08:37:05"}]} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","found":"YES","approval":{"id":1071,"id_approval":"016","status":"Pending"}} 
[2026-04-14 08:58:44] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-024","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController: QC form access (no login required) {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","approval_id":1071,"id_sample":"SMP2604-024"} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-024","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-024","aplikasi":"APK021","id_detail":"DET002","color":"WHITE W10","item":"P0RAH0-W20 30,40,50,60gsm uk. A45 (masing-masing 2 pcs)","size_gsm":"30","size_length":"0.297","size_width":"0.21","qty":"2","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-13 16:40:17","updated_at":"2026-04-13 16:40:17","item_number":null,"item_color":"WHITE W10","aplikasi_name":"HOTEL AMENITIES","detail_name_mst_joined":"S"}} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","count":1,"approvals":[{"id":1071,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-14 08:37:05"}]} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","found":"YES","approval":{"id":1071,"id_approval":"016","status":"Pending"}} 
[2026-04-14 08:58:44] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-024","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController: QC form access (no login required) {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","approval_id":1071,"id_sample":"SMP2604-024"} 
[2026-04-14 08:58:44] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-024","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-024","aplikasi":"APK021","id_detail":"DET002","color":"WHITE W10","item":"P0RAH0-W20 30,40,50,60gsm uk. A45 (masing-masing 2 pcs)","size_gsm":"30","size_length":"0.297","size_width":"0.21","qty":"2","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-13 16:40:17","updated_at":"2026-04-13 16:40:17","item_number":null,"item_color":"WHITE W10","aplikasi_name":"HOTEL AMENITIES","detail_name_mst_joined":"S"}} 
[2026-04-14 09:01:11] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","approval_id":1071,"id_sample":"SMP2604-024"} 
[2026-04-14 09:01:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-024"],"current_level":5} 
[2026-04-14 09:01:11] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 09:01:11] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-024  
[2026-04-14 09:01:14] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-024","token":"tnkAz5xzrOLWAdqe9puUmwAGqCySGypUj2wcVCpWhkApI2GrKrvpSTUaxFEf5Vl2"} 
[2026-04-14 09:01:15] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","count":1,"approvals":[{"id":1071,"id_approval":"016","level":5,"status":"Accepted","updated_at":"2026-04-14 09:01:11"}]} 
[2026-04-14 09:01:15] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","found":"NO","approval":null} 
[2026-04-14 09:01:15] production.WARNING: QCApprovalController.showQCForm: No Pending approval, using fallback {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","fallback_status":"Accepted"} 
[2026-04-14 09:01:15] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-024","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-14 09:01:15] production.INFO: QCApprovalController: QC form access (no login required) {"token":"KxSbuGTJcjmODOA2trS1wg5fvRVJ9JkNw9m603gXNNyxf9uZqx9ijhNDpcpOj169","approval_id":1071,"id_sample":"SMP2604-024"} 
[2026-04-14 09:01:15] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-024","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-024","aplikasi":"APK021","id_detail":"DET002","color":"WHITE W10","item":"P0RAH0-W20 30,40,50,60gsm uk. A45 (masing-masing 2 pcs)","size_gsm":"30","size_length":"0.297","size_width":"0.21","qty":"2","uom":"sheet","sumber_material":"Backup QA/PPIC","jadwal_produksi":null,"qc_note":null,"line_produksi":"10","kode_material":null,"nomor_roll":null,"nomor_jumbo":"9P0RAH0-000W20-00030-0000210A","tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-13 16:40:17","updated_at":"2026-04-14 09:01:11","item_number":null,"item_color":"WHITE W10","aplikasi_name":"HOTEL AMENITIES","detail_name_mst_joined":"S"}} 
[2026-04-14 09:01:33] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"HPUvtTVYuYNc3R4oJwaaCQcGHXCxGpWxtvYIrpKReG9s03xEXcfDhc0lpBWer5Uf","count":1,"approvals":[{"id":1073,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-14 08:56:57"}]} 
[2026-04-14 09:01:33] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"HPUvtTVYuYNc3R4oJwaaCQcGHXCxGpWxtvYIrpKReG9s03xEXcfDhc0lpBWer5Uf","found":"YES","approval":{"id":1073,"id_approval":"016","status":"Pending"}} 
[2026-04-14 09:01:33] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-021","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-14 09:01:33] production.INFO: QCApprovalController: QC form access (no login required) {"token":"HPUvtTVYuYNc3R4oJwaaCQcGHXCxGpWxtvYIrpKReG9s03xEXcfDhc0lpBWer5Uf","approval_id":1073,"id_sample":"SMP2604-021"} 
[2026-04-14 09:01:33] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-021","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-021","aplikasi":"APK087","id_detail":"DET010","color":"WHITE W15","item":"Sample keperluan trip","size_gsm":"40","size_length":"1","size_width":"0.3","qty":"2","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-14 08:44:25","updated_at":"2026-04-14 08:44:25","item_number":null,"item_color":"WHITE W15","aplikasi_name":"FRAME PROTECTION","detail_name_mst_joined":"PET"}} 
[2026-04-14 09:02:07] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"HPUvtTVYuYNc3R4oJwaaCQcGHXCxGpWxtvYIrpKReG9s03xEXcfDhc0lpBWer5Uf","approval_id":1073,"id_sample":"SMP2604-021"} 
[2026-04-14 09:02:07] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-021"],"current_level":5} 
[2026-04-14 09:02:07] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 09:02:07] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-021  
[2026-04-14 09:02:11] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-021","token":"aGkga8W34G095iOGmpndN4p9FhAOARPz18VZzXPQBQpiP5pNow2IfixzgfzdZRYe"} 
[2026-04-14 09:14:35] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-024"],"current_level":6} 
[2026-04-14 09:14:35] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 09:15:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-021"],"current_level":6} 
[2026-04-14 09:15:46] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 09:43:49] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-025"],"current_level":0} 
[2026-04-14 09:43:49] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-14 09:43:49] production.INFO: NextLevel Notification: Sending level 1 to Nike Pusparini (mk03@spunindo.com) for samples: SMP2604-025  
[2026-04-14 09:48:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-026"],"current_level":0} 
[2026-04-14 09:48:12] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-14 09:48:12] production.INFO: NextLevel Notification: Sending level 1 to Vivi Alayda (mk18@spunindo.com) for samples: SMP2604-026  
[2026-04-14 09:53:51] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","count":1,"approvals":[{"id":1054,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-14 08:00:00"}]} 
[2026-04-14 09:53:51] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","found":"YES","approval":{"id":1054,"id_approval":"015","status":"Pending"}} 
[2026-04-14 09:53:51] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-019","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-14 09:53:51] production.INFO: QCApprovalController: QC form access (no login required) {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","approval_id":1054,"id_sample":"SMP2604-019"} 
[2026-04-14 09:53:51] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-019","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-019","aplikasi":"APK036","id_detail":"DET026","color":"WHITE W20","item":"NW Topsheet SSS Soft Philic 240mm 13gsm

Max OD 800mm (Minim per roll panjang 5,250m)","size_gsm":"13","size_length":"8500","size_width":"0.24","qty":"4","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-10 13:23:15","updated_at":"2026-04-10 13:23:15","item_number":null,"item_color":"WHITE W20","aplikasi_name":"TOP SHEET","detail_name_mst_joined":"SSS SOFT PHILIC"}} 
[2026-04-14 09:56:12] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"yAOVyNVCkGDn2lpQpkutfJXOsO5ZmAZN5gbvOcigZquRANH1IuEslZrVBk1nfYCI","approval_id":1054,"id_sample":"SMP2604-019"} 
[2026-04-14 10:09:52] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"xrnASt973iPKrcYXYURktWxEexmWwYXFzaLgTXmzK2AV89YR0g7RFYuI8uXrRQic","decision_count":1} 
[2026-04-14 10:09:52] production.INFO: SampleApproval: [SMP2604-026] set to [Accepted] by [Vivi Alayda] {"level":1,"approver_id":"018"} 
[2026-04-14 10:09:52] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2604-026"],"current_level":1} 
[2026-04-14 10:09:52] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-026"]}} 
[2026-04-14 10:09:52] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-026  
[2026-04-14 10:18:45] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"J6QcjUJ0xk6SLpAkROtE4wKNknVENBpzLk76LxMuLyumzAFoWp4WuqqBqSEvwTAL","decision_count":1} 
[2026-04-14 10:18:45] production.INFO: SampleApproval: [SMP2604-026] set to [Accepted] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-14 10:18:45] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-026"],"current_level":2} 
[2026-04-14 10:18:45] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-026"]}} 
[2026-04-14 10:18:45] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-026  
[2026-04-14 10:20:50] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"85P8MVG5iy5zqWW0oElZE6jHxBgYZ5Tx3wn6LJMh6rWubdTpMNviJptVC1pR1VcU","decision_count":1} 
[2026-04-14 10:20:50] production.INFO: SampleApproval: [SMP2604-026] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-14 10:20:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-026"],"current_level":3} 
[2026-04-14 10:20:50] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-026","current_level":3} 
[2026-04-14 10:20:50] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-026"],"samples_by_next_level":[]} 
[2026-04-14 10:20:54] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-026  
[2026-04-14 10:34:20] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-019"],"current_level":0} 
[2026-04-14 10:34:20] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-14 10:34:20] production.INFO: NextLevel Notification: Sending level 1 to Gwen Sijangga (mk11@spunindo.com) for samples: SMP2604-019  
[2026-04-14 10:54:41] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","count":1,"approvals":[{"id":1051,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-14 08:00:00"}]} 
[2026-04-14 10:54:41] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","found":"YES","approval":{"id":1051,"id_approval":"015","status":"Pending"}} 
[2026-04-14 10:54:41] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-012","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-14 10:54:41] production.INFO: QCApprovalController: QC form access (no login required) {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","approval_id":1051,"id_sample":"SMP2604-012"} 
[2026-04-14 10:54:41] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-012","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-012","aplikasi":"APK035","id_detail":"DET005","color":"WHITE W10","item":"SSMMS 33gsm - improvement dari lot BB21C7S003","size_gsm":"33","size_length":"5","size_width":"3","qty":"1","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-07 16:07:25","updated_at":"2026-04-07 16:07:25","item_number":null,"item_color":"WHITE W10","aplikasi_name":"BACK EAR","detail_name_mst_joined":"SSMMS"}} 
[2026-04-14 10:55:23] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"yytHSfILu1zofWTKHyb3PAZBvTIOb5vvInQ3n4N0e2mcCjy8ZGoOVK5EmMCOa7P3","decision_count":1} 
[2026-04-14 10:55:23] production.INFO: SampleApproval: [SMP2604-025] set to [Accepted] by [Nike Pusparini] {"level":1,"approver_id":"005"} 
[2026-04-14 10:55:24] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-025"],"current_level":1} 
[2026-04-14 10:55:24] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-025"]}} 
[2026-04-14 10:55:24] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-025  
[2026-04-14 10:58:25] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"VsLCDt7Zw1Gn57wnNIWaPgv2FUovk7CRoDGFhUe77pD0Z4ElcbQcEkVA5OVLcxJl","approval_id":1051,"id_sample":"SMP2604-012"} 
[2026-04-14 10:58:25] production.INFO: QCApproval: [SMP2604-012] set to [Accepted] by [Santi Dwi Esthiningrum] {"approval_id":1051,"level":4} 
[2026-04-14 10:58:25] production.INFO: QCApprovalController: Status otomatis → OnProgress {"id_sample":"SMP2604-012","classify":"Improved","qcLevel":4,"doneL123":"3/3","doneQC":"1/1"} 
[2026-04-14 10:58:25] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-012"],"current_level":4} 
[2026-04-14 10:58:25] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":4,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 10:58:25] production.INFO: SendNextApprovalEmail.handleSampleApproval: Level 4 approved. No level 5 notification (already sent as CC after level 3).  
[2026-04-14 11:15:09] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"PidPyRYaR6bfT1Kazl5C4gWSYXEEFrTErHY0eVgrMBqye4TXFkE5DnkSkB1uRbmV","count":1,"approvals":[{"id":1083,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-14 10:20:54"}]} 
[2026-04-14 11:15:09] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"PidPyRYaR6bfT1Kazl5C4gWSYXEEFrTErHY0eVgrMBqye4TXFkE5DnkSkB1uRbmV","found":"YES","approval":{"id":1083,"id_approval":"016","status":"Pending"}} 
[2026-04-14 11:15:09] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-026","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-14 11:15:09] production.INFO: QCApprovalController: QC form access (no login required) {"token":"PidPyRYaR6bfT1Kazl5C4gWSYXEEFrTErHY0eVgrMBqye4TXFkE5DnkSkB1uRbmV","approval_id":1083,"id_sample":"SMP2604-026"} 
[2026-04-14 11:15:09] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-026","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-026","aplikasi":"APK023","id_detail":"DET018","color":"WHITE W10","item":"HEITECT A4","size_gsm":"60","size_length":"0.297","size_width":"0.21","qty":"2","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-14 09:47:56","updated_at":"2026-04-14 09:47:56","item_number":null,"item_color":"WHITE W10","aplikasi_name":"DESICANT PACK","detail_name_mst_joined":"S LAMINASI"}} 
[2026-04-14 11:16:42] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"lTtNgZO9ttjHB4cn4Autn7JAOy0tMmWNdwRyDjvFQDIb3ccpnlexPX6AScd9Qg9L","decision_count":1} 
[2026-04-14 11:16:42] production.INFO: SampleApproval: [SMP2604-025] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-14 11:16:42] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-025"],"current_level":2} 
[2026-04-14 11:16:42] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-025"]}} 
[2026-04-14 11:16:42] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-025  
[2026-04-14 11:17:29] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"PidPyRYaR6bfT1Kazl5C4gWSYXEEFrTErHY0eVgrMBqye4TXFkE5DnkSkB1uRbmV","approval_id":1083,"id_sample":"SMP2604-026"} 
[2026-04-14 11:17:29] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-026"],"current_level":5} 
[2026-04-14 11:17:29] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 11:17:29] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-026  
[2026-04-14 11:17:33] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-026","token":"2bnZEWxLXSsWidCyn9z9mGVgMwklSoFnPKBnkWEbtXNS2e3L6eP39FeIKHWoIviL"} 
[2026-04-14 13:39:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-027"],"current_level":0} 
[2026-04-14 13:39:39] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-14 13:39:39] production.INFO: NextLevel Notification: Sending level 2 to Dwie Zesta (mk07@spunindo.com) for samples: SMP2604-027  
[2026-04-14 13:56:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-028"],"current_level":0} 
[2026-04-14 13:56:48] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-14 13:56:48] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-028  
[2026-04-14 14:01:55] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"3ziHakqacqEcmLp1wCEKWojYsaEPN0l37V5S3yEqaxdEdJHgUlJYtbfsTV8zBFJX","decision_count":1} 
[2026-04-14 14:01:55] production.INFO: SampleApproval: [SMP2604-027] set to [Rejected] by [Dwie Zesta] {"level":2,"approver_id":"002"} 
[2026-04-14 14:01:55] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-027"],"current_level":2} 
[2026-04-14 14:01:55] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-027"]}} 
[2026-04-14 14:08:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-027"],"current_level":0} 
[2026-04-14 14:08:29] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-14 14:08:29] production.INFO: NextLevel Notification: Sending level 2 to Dwie Zesta (mk07@spunindo.com) for samples: SMP2604-027  
[2026-04-14 14:19:35] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"RsMvGHEsa0tSmXxrLr7xgNKqUPEtZ0LaXHRFtCUmHd9Mviw5qemCc4JKeyQw9Wpb","decision_count":1} 
[2026-04-14 14:19:35] production.INFO: SampleApproval: [SMP2604-027] set to [Accepted] by [Dwie Zesta] {"level":2,"approver_id":"002"} 
[2026-04-14 14:19:35] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-027"],"current_level":2} 
[2026-04-14 14:19:35] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-027"]}} 
[2026-04-14 14:19:35] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-027  
[2026-04-14 14:35:58] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"s5RJefIjI4PdJWUWqnVIlNLCJx7N3lJHK2J9MQliFIGvLaQ5ASNYUMH10YTP5M8y","decision_count":1} 
[2026-04-14 14:35:58] production.INFO: SampleApproval: [SMP2604-019] set to [Rejected] by [Gwen Sijangga] {"level":1,"approver_id":"004"} 
[2026-04-14 14:35:58] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-019"],"current_level":1} 
[2026-04-14 14:35:58] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-019"]}} 
[2026-04-14 15:02:31] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"XQPvCWa5rH1hCNAUfCQk0TPYtVhhgsOr9Y6W5vUuxCKYqzbpdvC7jxJ6iOkpe89F","decision_count":1} 
[2026-04-14 15:02:31] production.INFO: SampleApproval: [SMP2604-027] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-14 15:02:32] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-027"],"current_level":3} 
[2026-04-14 15:02:32] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-027","current_level":3} 
[2026-04-14 15:02:32] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-027"],"samples_by_next_level":[]} 
[2026-04-14 15:02:32] production.INFO: Level 4 Notification: Sending to Dian Agus (spv.qc1@spunindo.com) for sample SMP2604-027  
[2026-04-14 15:14:37] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"JiwHBlSJKW2mNJdAQgEigNvoC03B3ieCf5kGanDER70UMqQKrAT32x2HsLpo92So","count":1,"approvals":[{"id":1089,"id_approval":"013","level":4,"status":"Pending","updated_at":"2026-04-14 15:02:32"}]} 
[2026-04-14 15:14:37] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"JiwHBlSJKW2mNJdAQgEigNvoC03B3ieCf5kGanDER70UMqQKrAT32x2HsLpo92So","found":"YES","approval":{"id":1089,"id_approval":"013","status":"Pending"}} 
[2026-04-14 15:14:37] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-027","approver":"Dian Agus","level":"4","classify":"Improved"} 
[2026-04-14 15:14:37] production.INFO: QCApprovalController: QC form access (no login required) {"token":"JiwHBlSJKW2mNJdAQgEigNvoC03B3ieCf5kGanDER70UMqQKrAT32x2HsLpo92So","approval_id":1089,"id_sample":"SMP2604-027"} 
[2026-04-14 15:14:37] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-027","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-027","aplikasi":"APK015","id_detail":"DET001","color":"WHITE W15","item":"TERCF0-000W15-00025, Width 1.05 m, Length 200 m untuk project Soin dan Okamoto (BICO FLAT)","size_gsm":"25","size_length":"200","size_width":"1.05","qty":"2","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-14 14:08:18","updated_at":"2026-04-14 14:08:18","item_number":null,"item_color":"WHITE W15","aplikasi_name":"Dry Pot","detail_name_mst_joined":"Bico"}} 
[2026-04-14 15:15:43] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"JiwHBlSJKW2mNJdAQgEigNvoC03B3ieCf5kGanDER70UMqQKrAT32x2HsLpo92So","approval_id":1089,"id_sample":"SMP2604-027"} 
[2026-04-14 15:15:43] production.INFO: QCApproval: [SMP2604-027] set to [Accepted] by [Dian Agus] {"approval_id":1089,"level":4} 
[2026-04-14 15:15:43] production.INFO: QCApprovalController: Status otomatis → OnProgress {"id_sample":"SMP2604-027","classify":"Improved","qcLevel":4,"doneL123":"2/2","doneQC":"1/1"} 
[2026-04-14 15:15:43] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2604-027"],"current_level":4} 
[2026-04-14 15:15:43] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":4,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 15:15:43] production.INFO: SendNextApprovalEmail.handleSampleApproval: Level 4 approved. No level 5 notification (already sent as CC after level 3).  
[2026-04-14 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-14 16:00:00","cutoff_time":"2026-04-14 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-14 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-023"]} 
[2026-04-14 16:22:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-026"],"current_level":6} 
[2026-04-14 16:22:30] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-14 16:23:15] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"XlRKwglk8mESpVPSWEEEDCgsuWat9ER5DkHQQ7ZUj8Yp6zN7UPl13EFVcwwcHiLh","decision_count":1} 
[2026-04-14 16:23:15] production.INFO: SampleApproval: [SMP2604-028] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-14 16:23:15] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-028"],"current_level":2} 
[2026-04-14 16:23:15] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-028"]}} 
[2026-04-14 16:23:15] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-028  
[2026-04-15 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-15 00:00:00","cutoff_time":"2026-04-14 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-15 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2604-023","SMP2604-025"]} 
[2026-04-15 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-15 08:00:00","cutoff_time":"2026-04-15 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-15 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-023","SMP2604-025","SMP2604-028"]} 
[2026-04-15 12:21:50] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"FB3uBOKBevKjyDddwM3sZjeT2iTmWpoPtq99cwLZsNK8wlHutlfBxDD78XycCmW0","decision_count":3} 
[2026-04-15 12:21:50] production.INFO: SampleApproval: [SMP2604-023] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-15 12:21:50] production.INFO: SampleApproval: [SMP2604-025] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-15 12:21:50] production.INFO: SampleApproval: [SMP2604-028] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-15 12:21:50] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-023","SMP2604-025","SMP2604-028"],"current_level":3} 
[2026-04-15 12:21:50] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-023","current_level":3} 
[2026-04-15 12:21:50] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-025","current_level":3} 
[2026-04-15 12:21:50] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-028","current_level":3} 
[2026-04-15 12:21:50] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-023","SMP2604-025","SMP2604-028"],"samples_by_next_level":[]} 
[2026-04-15 12:21:54] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-023  
[2026-04-15 12:21:57] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-025  
[2026-04-15 12:22:00] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-028  
[2026-04-15 13:47:12] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"ee6B3JAfa7Mwm6ym4aGb6lie2RD6HR8G3PaOjOAGiC0a06Wjd8K5zo8C0REgRHK9","count":1,"approvals":[{"id":1093,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-15 12:21:54"}]} 
[2026-04-15 13:47:12] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"ee6B3JAfa7Mwm6ym4aGb6lie2RD6HR8G3PaOjOAGiC0a06Wjd8K5zo8C0REgRHK9","found":"YES","approval":{"id":1093,"id_approval":"016","status":"Pending"}} 
[2026-04-15 13:47:12] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-023","approver":"Slamet Wahyudi","level":"5","classify":"PD"} 
[2026-04-15 13:47:12] production.INFO: QCApprovalController: QC form access (no login required) {"token":"ee6B3JAfa7Mwm6ym4aGb6lie2RD6HR8G3PaOjOAGiC0a06Wjd8K5zo8C0REgRHK9","approval_id":1093,"id_sample":"SMP2604-023"} 
[2026-04-15 13:47:12] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-023","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-023","aplikasi":"APK081","id_detail":"DET015","color":"WHITE W10","item":"meltblown 40 gsm emboss line 8","size_gsm":"40","size_length":"0.42","size_width":"0.297","qty":"10","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-13 14:47:23","updated_at":"2026-04-13 14:47:23","item_number":null,"item_color":"WHITE W10","aplikasi_name":"SURGICAL CAP","detail_name_mst_joined":"Meltblown"}} 
[2026-04-15 13:48:24] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"ee6B3JAfa7Mwm6ym4aGb6lie2RD6HR8G3PaOjOAGiC0a06Wjd8K5zo8C0REgRHK9","approval_id":1093,"id_sample":"SMP2604-023"} 
[2026-04-15 13:48:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-023"],"current_level":5} 
[2026-04-15 13:48:24] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-15 13:48:24] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-023  
[2026-04-15 13:48:27] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-023","token":"ZjTjbytqOVCRSifvMxreOhd74joR2WxR9zsi7M7GA5lF5mWUvy6UhS4w5FG0D9aC"} 
[2026-04-15 13:48:39] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"37GkQsoVgmGFRM76aTzrFejYlyDwmwpJeh9x3ovWVHDYxHUqTcXqwaMV9FUvU2S9","count":1,"approvals":[{"id":1095,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-15 12:21:57"}]} 
[2026-04-15 13:48:39] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"37GkQsoVgmGFRM76aTzrFejYlyDwmwpJeh9x3ovWVHDYxHUqTcXqwaMV9FUvU2S9","found":"YES","approval":{"id":1095,"id_approval":"016","status":"Pending"}} 
[2026-04-15 13:48:39] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-025","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-15 13:48:39] production.INFO: QCApprovalController: QC form access (no login required) {"token":"37GkQsoVgmGFRM76aTzrFejYlyDwmwpJeh9x3ovWVHDYxHUqTcXqwaMV9FUvU2S9","approval_id":1095,"id_sample":"SMP2604-025"} 
[2026-04-15 13:48:39] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-025","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-025","aplikasi":"APK016","id_detail":"DET005","color":"BLUE U19","item":"NO TREATMENT / NORMAL","size_gsm":"41","size_length":"1","size_width":"1","qty":"1","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-14 09:43:34","updated_at":"2026-04-14 09:43:34","item_number":null,"item_color":"BLUE U19","aplikasi_name":"MEDICAL","detail_name_mst_joined":"SSMMS"}} 
[2026-04-15 13:49:44] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"37GkQsoVgmGFRM76aTzrFejYlyDwmwpJeh9x3ovWVHDYxHUqTcXqwaMV9FUvU2S9","approval_id":1095,"id_sample":"SMP2604-025"} 
[2026-04-15 13:49:53] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"CrfApzXxtz7dhP8qhXiI6I7OaUiVBAwG9LQ9EuH0X3sg46qMxQtD24ygUutP9wWt","count":1,"approvals":[{"id":1097,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-15 12:22:00"}]} 
[2026-04-15 13:49:53] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"CrfApzXxtz7dhP8qhXiI6I7OaUiVBAwG9LQ9EuH0X3sg46qMxQtD24ygUutP9wWt","found":"YES","approval":{"id":1097,"id_approval":"016","status":"Pending"}} 
[2026-04-15 13:49:53] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-028","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-15 13:49:53] production.INFO: QCApprovalController: QC form access (no login required) {"token":"CrfApzXxtz7dhP8qhXiI6I7OaUiVBAwG9LQ9EuH0X3sg46qMxQtD24ygUutP9wWt","approval_id":1097,"id_sample":"SMP2604-028"} 
[2026-04-15 13:49:53] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-028","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-028","aplikasi":"APK002","id_detail":"DET022","color":"WHITE W20","item":"tukar guling 4 roll di UCI Ngoro","size_gsm":"13","size_length":"11000","size_width":"0.515","qty":"4","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-14 13:56:35","updated_at":"2026-04-14 13:56:35","item_number":null,"item_color":"WHITE W20","aplikasi_name":"Baby Diapers","detail_name_mst_joined":"SSS SOFT"}} 
[2026-04-15 13:51:27] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"CrfApzXxtz7dhP8qhXiI6I7OaUiVBAwG9LQ9EuH0X3sg46qMxQtD24ygUutP9wWt","approval_id":1097,"id_sample":"SMP2604-028"} 
[2026-04-15 13:51:27] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-028"],"current_level":5} 
[2026-04-15 13:51:27] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-15 13:51:27] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-028  
[2026-04-15 13:51:30] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-028","token":"BNOJWdbjGFSG6U0186EBO65AjsqpU2pxbthwZBTCGsDQpLQM4JAJAbqlXQUhxq18"} 
[2026-04-15 14:23:44] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-023"],"current_level":6} 
[2026-04-15 14:23:44] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-15 14:24:03] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-028"],"current_level":6} 
[2026-04-15 14:24:03] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":6,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-15 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-15 16:00:00","cutoff_time":"2026-04-15 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-15 17:15:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-029"],"current_level":0} 
[2026-04-15 17:15:48] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-15 17:15:48] production.INFO: NextLevel Notification: Sending level 1 to Gwen Sijangga (mk11@spunindo.com) for samples: SMP2604-029  
[2026-04-15 17:16:57] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-025"],"current_level":0} 
[2026-04-15 17:16:57] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-15 17:16:57] production.INFO: NextLevel Notification: Sending level 1 to Nike Pusparini (mk03@spunindo.com) for samples: SMP2604-025  
[2026-04-15 17:20:57] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-030"],"current_level":0} 
[2026-04-15 17:20:57] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-15 17:20:57] production.INFO: NextLevel Notification: Sending level 1 to Nike Pusparini (mk03@spunindo.com) for samples: SMP2604-030  
[2026-04-16 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-16 00:00:00","cutoff_time":"2026-04-15 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-16 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-16 08:00:00","cutoff_time":"2026-04-16 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-16 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2604-029"]} 
[2026-04-16 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":2,"sample_ids":["SMP2604-025","SMP2604-030"]} 
[2026-04-16 08:39:39] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"8DrbKYcNyIJ5M6by8SpQDNzyI3ZRH2rG7dFjqk2Z3tStDeJJ5zzClGz37q2bToGm","decision_count":1} 
[2026-04-16 08:39:39] production.INFO: SampleApproval: [SMP2604-029] set to [Accepted] by [Gwen Sijangga] {"level":1,"approver_id":"004"} 
[2026-04-16 08:39:39] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-029"],"current_level":1} 
[2026-04-16 08:39:39] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-029"]}} 
[2026-04-16 08:39:39] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-029  
[2026-04-16 08:44:00] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"NGpnQvKaM6EEVQaCrXk6W3r8aZGXXChdIBLnSoaBjG7nhY06GP0QOmMvhq4cPqOV","decision_count":1} 
[2026-04-16 08:44:00] production.INFO: SampleApproval: [SMP2604-029] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-16 08:44:00] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-029"],"current_level":2} 
[2026-04-16 08:44:00] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-029"]}} 
[2026-04-16 08:44:00] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-029  
[2026-04-16 09:41:21] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"o6aMkVNpy496MLX3KAKRqnMtTjyNumPHbROFcjIjTCMkGvof5BtLSo6fxHghnWJe","decision_count":1} 
[2026-04-16 09:41:21] production.INFO: SampleApproval: [SMP2604-029] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-16 09:41:21] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-029"],"current_level":3} 
[2026-04-16 09:41:21] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-029","current_level":3} 
[2026-04-16 09:41:21] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-029"],"samples_by_next_level":[]} 
[2026-04-16 09:41:21] production.INFO: Level 4 Notification: Sending to Santi Dwi Esthiningrum (santi.de@spunindo.com) for sample SMP2604-029  
[2026-04-16 09:52:28] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","count":1,"approvals":[{"id":1106,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-16 09:41:21"}]} 
[2026-04-16 09:52:28] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","found":"YES","approval":{"id":1106,"id_approval":"015","status":"Pending"}} 
[2026-04-16 09:52:28] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-029","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-16 09:52:28] production.INFO: QCApprovalController: QC form access (no login required) {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","approval_id":1106,"id_sample":"SMP2604-029"} 
[2026-04-16 09:52:28] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-029","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-029","aplikasi":"APK036","id_detail":"DET024","color":"WHITE W20","item":"spray manual dg OPU = 0.4%","size_gsm":"13","size_length":"0.297","size_width":"0.21","qty":"5","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-15 17:15:19","updated_at":"2026-04-15 17:15:19","item_number":null,"item_color":"WHITE W20","aplikasi_name":"TOP SHEET","detail_name_mst_joined":"SSS PHILIC"}} 
[2026-04-16 09:54:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-031"],"current_level":0} 
[2026-04-16 09:54:12] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-16 09:54:12] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-031  
[2026-04-16 10:04:54] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","approval_id":1106,"id_sample":"SMP2604-029"} 
[2026-04-16 10:04:54] production.INFO: QCApproval: [SMP2604-029] set to [Accepted] by [Santi Dwi Esthiningrum] {"approval_id":1106,"level":4} 
[2026-04-16 10:04:54] production.INFO: QCApprovalController: Status otomatis → OnProgress {"id_sample":"SMP2604-029","classify":"Improved","qcLevel":4,"doneL123":"3/3","doneQC":"1/1"} 
[2026-04-16 10:04:54] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-029"],"current_level":4} 
[2026-04-16 10:04:54] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":4,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-16 10:04:54] production.INFO: SendNextApprovalEmail.handleSampleApproval: Level 4 approved. No level 5 notification (already sent as CC after level 3).  
[2026-04-16 10:15:17] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"s0kAnbf4ZgJlThRs8341z0aGpsKUXmYVQuKklF510WauxyZvxfqogA8eWckbukYI","decision_count":1} 
[2026-04-16 10:15:17] production.INFO: SampleApproval: [SMP2604-031] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-16 10:15:17] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-031"],"current_level":2} 
[2026-04-16 10:15:17] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-031"]}} 
[2026-04-16 10:15:17] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-031  
[2026-04-16 10:19:08] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"ijkOvUyu9SKyuyMnHBXuGPvXPbzqb5Fn1Ub3g1i5b8uQCxMWBCCnEOWqyR0hcGmd","decision_count":1} 
[2026-04-16 10:19:08] production.INFO: SampleApproval: [SMP2604-031] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-16 10:19:08] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-031"],"current_level":3} 
[2026-04-16 10:19:08] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-031","current_level":3} 
[2026-04-16 10:19:08] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-031"],"samples_by_next_level":[]} 
[2026-04-16 10:19:11] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-031  
[2026-04-16 10:26:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-019"],"current_level":0} 
[2026-04-16 10:26:46] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-16 10:26:46] production.INFO: NextLevel Notification: Sending level 1 to Gwen Sijangga (mk11@spunindo.com) for samples: SMP2604-019  
[2026-04-16 10:28:15] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"XzjQOqgelEuIAdYLAI6U8GAhN3ptlqKDLtSftvj0BF4zfMMOXfieyMpkOWr6KMh7","decision_count":1} 
[2026-04-16 10:28:15] production.INFO: SampleApproval: [SMP2604-019] set to [Accepted] by [Gwen Sijangga] {"level":1,"approver_id":"004"} 
[2026-04-16 10:28:15] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-019"],"current_level":1} 
[2026-04-16 10:28:15] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-019"]}} 
[2026-04-16 10:28:15] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-019  
[2026-04-16 10:29:08] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"4qxaCk3LhEGx4oQE3UGc65ZPnwoFQ6usQCNbCFsyE5jlsfsbWnXmbG3DvC8lGR3Z","decision_count":1} 
[2026-04-16 10:29:08] production.INFO: SampleApproval: [SMP2604-019] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-16 10:29:08] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-019"],"current_level":2} 
[2026-04-16 10:29:08] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-019"]}} 
[2026-04-16 10:29:08] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-019  
[2026-04-16 10:54:05] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","count":1,"approvals":[{"id":1106,"id_approval":"015","level":4,"status":"Accepted","updated_at":"2026-04-16 10:04:54"}]} 
[2026-04-16 10:54:05] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","found":"NO","approval":null} 
[2026-04-16 10:54:05] production.WARNING: QCApprovalController.showQCForm: No Pending approval, using fallback {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","fallback_status":"Accepted"} 
[2026-04-16 10:54:05] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-029","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-16 10:54:05] production.INFO: QCApprovalController: QC form access (no login required) {"token":"Sk2AloACi3sSGThIrdMwTR6O1Qoo6aa8DDpZ7mygVLeNVHKZlNJ1Gxkh3wvK4Col","approval_id":1106,"id_sample":"SMP2604-029"} 
[2026-04-16 10:54:05] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-029","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-029","aplikasi":"APK036","id_detail":"DET024","color":"WHITE W20","item":"spray manual dg OPU = 0.4%","size_gsm":"13","size_length":"0.297","size_width":"0.21","qty":"5","uom":"sheet","sumber_material":"Backup QA/PPIC","jadwal_produksi":null,"qc_note":"P0RA00-H00W20-00013; OPU aktual 0.4%","line_produksi":"L12","kode_material":"9P0RA00-H00W20-00013-0000210A","nomor_roll":null,"nomor_jumbo":"BD06G1S005","tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":"eki","created_at":"2026-04-15 17:15:19","updated_at":"2026-04-16 10:28:24","item_number":null,"item_color":"WHITE W20","aplikasi_name":"TOP SHEET","detail_name_mst_joined":"SSS PHILIC"}} 
[2026-04-16 10:54:32] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"XDCWrvfA4kBieY5hUhIfLRx6CExyfNijpoCQqhC5c1iBgVVMV2ljYMQwUwlQUX0A","decision_count":1} 
[2026-04-16 10:54:32] production.INFO: SampleApproval: [SMP2604-019] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-16 10:54:32] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-019"],"current_level":3} 
[2026-04-16 10:54:32] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-019","current_level":3} 
[2026-04-16 10:54:32] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-019"],"samples_by_next_level":[]} 
[2026-04-16 10:54:32] production.INFO: Level 4 Notification: Sending to Santi Dwi Esthiningrum (santi.de@spunindo.com) for sample SMP2604-019  
[2026-04-16 10:57:00] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"D1TTK2qjB9sMBuE6jb4HaWLAdmgLN1c4TqXdOzOiTX6tn1ByO44DsGET5ws0K4l0","count":1,"approvals":[{"id":1054,"id_approval":"015","level":4,"status":"Pending","updated_at":"2026-04-16 10:54:32"}]} 
[2026-04-16 10:57:00] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"D1TTK2qjB9sMBuE6jb4HaWLAdmgLN1c4TqXdOzOiTX6tn1ByO44DsGET5ws0K4l0","found":"YES","approval":{"id":1054,"id_approval":"015","status":"Pending"}} 
[2026-04-16 10:57:00] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-019","approver":"Santi Dwi Esthiningrum","level":"4","classify":"Improved"} 
[2026-04-16 10:57:00] production.INFO: QCApprovalController: QC form access (no login required) {"token":"D1TTK2qjB9sMBuE6jb4HaWLAdmgLN1c4TqXdOzOiTX6tn1ByO44DsGET5ws0K4l0","approval_id":1054,"id_sample":"SMP2604-019"} 
[2026-04-16 10:57:00] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-019","items_count":1,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-019","aplikasi":"APK036","id_detail":"DET024","color":"WHITE W20","item":"NW Topsheet SSS Philic 240mm 13gsm

Max OD 800mm (Minim per roll panjang 5,250m)","size_gsm":"13","size_length":"5300","size_width":"0.24","qty":"4","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-16 10:26:36","updated_at":"2026-04-16 10:26:36","item_number":null,"item_color":"WHITE W20","aplikasi_name":"TOP SHEET","detail_name_mst_joined":"SSS PHILIC"}} 
[2026-04-16 11:17:06] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"D1TTK2qjB9sMBuE6jb4HaWLAdmgLN1c4TqXdOzOiTX6tn1ByO44DsGET5ws0K4l0","approval_id":1054,"id_sample":"SMP2604-019"} 
[2026-04-16 11:17:06] production.INFO: QCApproval: [SMP2604-019] set to [Accepted] by [Santi Dwi Esthiningrum] {"approval_id":1054,"level":4} 
[2026-04-16 11:17:06] production.INFO: QCApprovalController: Status otomatis → OnProgress {"id_sample":"SMP2604-019","classify":"Improved","qcLevel":4,"doneL123":"3/3","doneQC":"1/1"} 
[2026-04-16 11:17:06] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-019"],"current_level":4} 
[2026-04-16 11:17:06] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":4,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-16 11:17:06] production.INFO: SendNextApprovalEmail.handleSampleApproval: Level 4 approved. No level 5 notification (already sent as CC after level 3).  
[2026-04-16 11:34:45] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"BtX2n71CxtlCZiL21thKXS1LskYFL21vFVwT0YWzGtwuSQoidghQTKgSVRcjpOzA","count":1,"approvals":[{"id":1112,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-16 10:19:11"}]} 
[2026-04-16 11:34:45] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"BtX2n71CxtlCZiL21thKXS1LskYFL21vFVwT0YWzGtwuSQoidghQTKgSVRcjpOzA","found":"YES","approval":{"id":1112,"id_approval":"016","status":"Pending"}} 
[2026-04-16 11:34:45] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-031","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-16 11:34:45] production.INFO: QCApprovalController: QC form access (no login required) {"token":"BtX2n71CxtlCZiL21thKXS1LskYFL21vFVwT0YWzGtwuSQoidghQTKgSVRcjpOzA","approval_id":1112,"id_sample":"SMP2604-031"} 
[2026-04-16 11:34:45] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-031","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-031","aplikasi":"APK009","id_detail":"DET002","color":"WHITE W10","item":"Spundbond White (25gsm) White dengan width 25Cm panjang 2,500 mtr = 1  roll

Untuk project KF94","size_gsm":"25","size_length":"2500","size_width":"0.25","qty":"1","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-16 09:53:54","updated_at":"2026-04-16 09:53:54","item_number":null,"item_color":"WHITE W10","aplikasi_name":"Masker","detail_name_mst_joined":"S"}} 
[2026-04-16 11:35:34] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"BtX2n71CxtlCZiL21thKXS1LskYFL21vFVwT0YWzGtwuSQoidghQTKgSVRcjpOzA","approval_id":1112,"id_sample":"SMP2604-031"} 
[2026-04-16 14:32:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-031"],"current_level":0} 
[2026-04-16 14:32:12] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-16 14:32:12] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-031  
[2026-04-16 14:46:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-032"],"current_level":0} 
[2026-04-16 14:46:47] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-16 14:46:47] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-032  
[2026-04-16 14:51:45] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"b4pcQxX70yfGWF6c6RP5HJZJE1TN7u7Ve78nkOfRysEjiLJkfntQJbUduTpnu8ZH","decision_count":1} 
[2026-04-16 14:51:45] production.INFO: SampleApproval: [SMP2604-032] set to [Rejected] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-16 14:51:45] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-032"],"current_level":2} 
[2026-04-16 14:51:45] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-032"]}} 
[2026-04-16 15:07:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-032"],"current_level":0} 
[2026-04-16 15:07:52] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-16 15:07:52] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-032  
[2026-04-16 15:18:50] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"dCbyk9onywJQIqq0TQFmJxro1fR8Atja5Jt5KsI6NbyLlXBDNvPAau7yFiYN9Vkb","decision_count":1} 
[2026-04-16 15:18:50] production.INFO: SampleApproval: [SMP2604-032] set to [Rejected] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-16 15:18:50] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-032"],"current_level":2} 
[2026-04-16 15:18:50] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-032"]}} 
[2026-04-16 15:23:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-032"],"current_level":0} 
[2026-04-16 15:23:09] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-16 15:23:09] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-032  
[2026-04-16 15:47:40] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"VWj3SmAVdpjMtRRnKeQmgxk5ZusLW6xvcBfIdjkbBWXZsCOARfo7Hfph6AmTIEaU","decision_count":1} 
[2026-04-16 15:47:40] production.INFO: SampleApproval: [SMP2604-032] set to [Accepted] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-16 15:47:40] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-032"],"current_level":2} 
[2026-04-16 15:47:40] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-032"]}} 
[2026-04-16 15:47:40] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-032  
[2026-04-16 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-16 16:00:00","cutoff_time":"2026-04-16 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-16 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":2,"sample_ids":["SMP2604-025","SMP2604-030"]} 
[2026-04-16 16:01:24] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"utgyEkWcVtFbUaoZzf2hpfKfNidGMMWPwjL09Kp9L4RYOQtBfdERylWtDB6WU3mQ","decision_count":2} 
[2026-04-16 16:01:24] production.INFO: SampleApproval: [SMP2604-025] set to [Accepted] by [Nike Pusparini] {"level":1,"approver_id":"005"} 
[2026-04-16 16:01:24] production.INFO: SampleApproval: [SMP2604-030] set to [Accepted] by [Nike Pusparini] {"level":1,"approver_id":"005"} 
[2026-04-16 16:01:25] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-025","SMP2604-030"],"current_level":1} 
[2026-04-16 16:01:25] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-025","SMP2604-030"]}} 
[2026-04-16 16:01:25] production.INFO: NextLevel Notification: Sending level 2 to Ika Sari (sales88@spunindo.com) for samples: SMP2604-025, SMP2604-030  
[2026-04-16 18:07:42] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"L7ykx9DGH6fI1AKRikw2WEHNjg6RRsGlM8tJ7AF7n4CMlpjYUbeE5bvvNGrRvIWB","decision_count":1} 
[2026-04-16 18:07:42] production.INFO: SampleApproval: [SMP2604-032] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-16 18:07:42] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-032"],"current_level":3} 
[2026-04-16 18:07:42] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-032","current_level":3} 
[2026-04-16 18:07:42] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-032"],"samples_by_next_level":[]} 
[2026-04-16 18:07:45] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-032  
[2026-04-17 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-17 00:00:00","cutoff_time":"2026-04-16 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-17 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2604-031"]} 
[2026-04-17 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-17 08:00:00","cutoff_time":"2026-04-17 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-17 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-025","SMP2604-030","SMP2604-031"]} 
[2026-04-17 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-032"]} 
[2026-04-17 08:06:54] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"BZBxTsx0yJR64WVe00a1oo8mIq4wD0W1z9TyQKbkBzvYx3t2JjmCcFc57RzRdzxA","decision_count":3} 
[2026-04-17 08:06:54] production.INFO: SampleApproval: [SMP2604-025] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-17 08:06:54] production.INFO: SampleApproval: [SMP2604-030] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-17 08:06:54] production.INFO: SampleApproval: [SMP2604-031] set to [Accepted] by [Ika Sari] {"level":2,"approver_id":"006"} 
[2026-04-17 08:06:54] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-025","SMP2604-030","SMP2604-031"],"current_level":2} 
[2026-04-17 08:06:54] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-025","SMP2604-030","SMP2604-031"]}} 
[2026-04-17 08:06:54] production.INFO: NextLevel Notification: Sending level 3 to Oko Setiaboedi (mk88@spunindo.com) for samples: SMP2604-025, SMP2604-030, SMP2604-031  
[2026-04-17 08:11:07] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","count":1,"approvals":[{"id":1116,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-17 08:00:00"}]} 
[2026-04-17 08:11:07] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","found":"YES","approval":{"id":1116,"id_approval":"016","status":"Pending"}} 
[2026-04-17 08:11:07] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-032","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-17 08:11:07] production.INFO: QCApprovalController: QC form access (no login required) {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","approval_id":1116,"id_sample":"SMP2604-032"} 
[2026-04-17 08:11:07] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-032","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-032","aplikasi":"APK023","id_detail":"DET001","color":"WHITE W15","item":"50gsm , BICO (PET/Co-PET) --> 7CTRCT0-000W15

Co-PET 30%","size_gsm":"50","size_length":"550","size_width":"0.37","qty":"1","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-16 15:23:01","updated_at":"2026-04-16 15:23:01","item_number":null,"item_color":"WHITE W15","aplikasi_name":"DESICANT PACK","detail_name_mst_joined":"Bico"}} 
[2026-04-17 09:02:57] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","count":1,"approvals":[{"id":1116,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-17 08:00:00"}]} 
[2026-04-17 09:02:57] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","found":"YES","approval":{"id":1116,"id_approval":"016","status":"Pending"}} 
[2026-04-17 09:02:57] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-032","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-17 09:02:57] production.INFO: QCApprovalController: QC form access (no login required) {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","approval_id":1116,"id_sample":"SMP2604-032"} 
[2026-04-17 09:02:57] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-032","items_count":3,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-032","aplikasi":"APK023","id_detail":"DET001","color":"WHITE W15","item":"50gsm , BICO (PET/Co-PET) --> 7CTRCT0-000W15

Co-PET 30%","size_gsm":"50","size_length":"550","size_width":"0.37","qty":"1","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-16 15:23:01","updated_at":"2026-04-16 15:23:01","item_number":null,"item_color":"WHITE W15","aplikasi_name":"DESICANT PACK","detail_name_mst_joined":"Bico"}} 
[2026-04-17 09:27:37] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"MnKJSonq8r0J4suXWBSM3ubbAKgdVmykNzt6vyQ4hnMfwQLNwLDf8OKcNOWECseF","approval_id":1116,"id_sample":"SMP2604-032"} 
[2026-04-17 09:27:37] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-032"],"current_level":5} 
[2026-04-17 09:27:37] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-17 09:27:37] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-032  
[2026-04-17 09:27:41] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-032","token":"GjuOJVPaphOKNHSwwCtYJu7lwJzM4DGg0P635MhmaOWM6ER7tGrWn3EOJzTAG79A"} 
[2026-04-17 10:27:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-033"],"current_level":0} 
[2026-04-17 10:27:56] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-17 10:27:56] production.INFO: NextLevel Notification: Sending level 1 to Selvie Chandra (mk01@spunindo.com) for samples: SMP2604-033  
[2026-04-17 10:30:32] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"ldGkH5HZ914OekD9a3yI7NQUEKhGXje7B1atU1rh68SpCJvw8MWBIfXGvo0AzyU7","decision_count":1} 
[2026-04-17 10:30:32] production.INFO: SampleApproval: [SMP2604-033] set to [Accepted] by [Selvie Chandra] {"level":1,"approver_id":"001"} 
[2026-04-17 10:30:32] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2604-033"],"current_level":1} 
[2026-04-17 10:30:32] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":1,"samples_to_trigger_qc":[],"samples_by_next_level":{"2":["SMP2604-033"]}} 
[2026-04-17 10:30:32] production.INFO: NextLevel Notification: Sending level 2 to Yohanes Kurniawan (yohanes.ku@spunindo.com) for samples: SMP2604-033  
[2026-04-17 10:37:08] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"57bvmUM0EWl0Gsj10tFNdBtteeVodqYvSu1zQ5FlokGwwBjWUC9H5VNhZgNjk3D3","decision_count":1} 
[2026-04-17 10:37:08] production.INFO: SampleApproval: [SMP2604-033] set to [Accepted] by [Yohanes Kurniawan] {"level":2,"approver_id":"008"} 
[2026-04-17 10:37:08] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-033"],"current_level":2} 
[2026-04-17 10:37:08] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-033"]}} 
[2026-04-17 10:37:08] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-033  
[2026-04-17 11:43:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-034"],"current_level":0} 
[2026-04-17 11:43:04] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[2,3]} 
[2026-04-17 11:43:04] production.INFO: NextLevel Notification: Sending level 2 to Dwie Zesta (mk07@spunindo.com) for samples: SMP2604-034  
[2026-04-17 12:52:34] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"3BXWbnnKl3yogCGKdPDx3oDk0cX8t0y01Q57iVUz5wrCA4Dto69khIYpVjneWneA","decision_count":3} 
[2026-04-17 12:52:35] production.INFO: SampleApproval: [SMP2604-025] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-17 12:52:35] production.INFO: SampleApproval: [SMP2604-030] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-17 12:52:35] production.INFO: SampleApproval: [SMP2604-031] set to [Accepted] by [Oko Setiaboedi] {"level":3,"approver_id":"010"} 
[2026-04-17 12:52:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-025","SMP2604-030","SMP2604-031"],"current_level":3} 
[2026-04-17 12:52:35] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-025","current_level":3} 
[2026-04-17 12:52:35] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-030","current_level":3} 
[2026-04-17 12:52:35] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-031","current_level":3} 
[2026-04-17 12:52:35] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-025","SMP2604-030","SMP2604-031"],"samples_by_next_level":[]} 
[2026-04-17 12:52:38] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-025  
[2026-04-17 12:52:40] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-030  
[2026-04-17 12:52:43] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-031  
[2026-04-17 13:11:04] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"NGXzV8A3LGZjB7dCDS47XDuwbXLfUUx9DS6abB4PdVUNuz61kndntVjwoqxfB0ZI","decision_count":1} 
[2026-04-17 13:11:04] production.INFO: SampleApproval: [SMP2604-033] set to [Accepted] by [Budi Kusuma] {"level":3,"approver_id":"009"} 
[2026-04-17 13:11:04] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-033"],"current_level":3} 
[2026-04-17 13:11:04] production.INFO: handleSampleApproval: No higher marketing level found, triggering QC/PD {"id_sample":"SMP2604-033","current_level":3} 
[2026-04-17 13:11:04] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":3,"samples_to_trigger_qc":["SMP2604-033"],"samples_by_next_level":[]} 
[2026-04-17 13:11:08] production.INFO: Level 5 Action Notification: Sending to Slamet Wahyudi (slamet.wa@spunindo.com) for sample SMP2604-033  
[2026-04-17 13:22:51] production.INFO: === BATCH SAMPLE APPROVAL SUBMIT START === {"token":"uIdaPiFUOUBV3NqM5XEvGe28VfT10pRQE5c3g1kH0M86GlyhiiK8lizv8lQ1wjpn","decision_count":1} 
[2026-04-17 13:22:51] production.INFO: SampleApproval: [SMP2604-034] set to [Accepted] by [Dwie Zesta] {"level":2,"approver_id":"002"} 
[2026-04-17 13:22:51] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-034"],"current_level":2} 
[2026-04-17 13:22:51] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":2,"samples_to_trigger_qc":[],"samples_by_next_level":{"3":["SMP2604-034"]}} 
[2026-04-17 13:22:51] production.INFO: NextLevel Notification: Sending level 3 to Budi Kusuma (budi.ks@spunindo.com) for samples: SMP2604-034  
[2026-04-17 13:37:50] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"LZU1vzXMUcMFpHNHgtEbCbja6RdrweefppOtnLj2n0a1M57vfWbt91ray9ptRH5L","count":1,"approvals":[{"id":1124,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-17 12:52:40"}]} 
[2026-04-17 13:37:50] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"LZU1vzXMUcMFpHNHgtEbCbja6RdrweefppOtnLj2n0a1M57vfWbt91ray9ptRH5L","found":"YES","approval":{"id":1124,"id_approval":"016","status":"Pending"}} 
[2026-04-17 13:37:50] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-030","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-17 13:37:50] production.INFO: QCApprovalController: QC form access (no login required) {"token":"LZU1vzXMUcMFpHNHgtEbCbja6RdrweefppOtnLj2n0a1M57vfWbt91ray9ptRH5L","approval_id":1124,"id_sample":"SMP2604-030"} 
[2026-04-17 13:37:50] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-030","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-030","aplikasi":"APK016","id_detail":"DET011","color":"WHITE W10","item":"sample Airlaid 30 atau 40 gsm size m2 (lebar seadanya )","size_gsm":"30","size_length":"1","size_width":"0.21","qty":"1","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-15 17:20:38","updated_at":"2026-04-15 17:20:38","item_number":null,"item_color":"WHITE W10","aplikasi_name":"MEDICAL","detail_name_mst_joined":"AIRLAID"}} 
[2026-04-17 13:37:52] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"gjCUXNM6eIyTJE3PYqbv4zJ2uaX859SZtWmbz7A6eTQmvcKMesUGQ1bDDju5ziN7","count":1,"approvals":[{"id":1095,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-17 12:52:38"}]} 
[2026-04-17 13:37:52] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"gjCUXNM6eIyTJE3PYqbv4zJ2uaX859SZtWmbz7A6eTQmvcKMesUGQ1bDDju5ziN7","found":"YES","approval":{"id":1095,"id_approval":"016","status":"Pending"}} 
[2026-04-17 13:37:52] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-025","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-17 13:37:52] production.INFO: QCApprovalController: QC form access (no login required) {"token":"gjCUXNM6eIyTJE3PYqbv4zJ2uaX859SZtWmbz7A6eTQmvcKMesUGQ1bDDju5ziN7","approval_id":1095,"id_sample":"SMP2604-025"} 
[2026-04-17 13:37:52] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-025","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-025","aplikasi":"APK016","id_detail":"DET005","color":"BLUE U19","item":"NO TREATMENT / NORMAL","size_gsm":"41","size_length":"1","size_width":"1","qty":"1","uom":"sheet","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-15 17:16:48","updated_at":"2026-04-15 17:16:48","item_number":null,"item_color":"BLUE U19","aplikasi_name":"MEDICAL","detail_name_mst_joined":"SSMMS"}} 
[2026-04-17 13:42:04] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"LZU1vzXMUcMFpHNHgtEbCbja6RdrweefppOtnLj2n0a1M57vfWbt91ray9ptRH5L","approval_id":1124,"id_sample":"SMP2604-030"} 
[2026-04-17 13:42:55] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"gjCUXNM6eIyTJE3PYqbv4zJ2uaX859SZtWmbz7A6eTQmvcKMesUGQ1bDDju5ziN7","approval_id":1095,"id_sample":"SMP2604-025"} 
[2026-04-17 13:42:55] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-025"],"current_level":5} 
[2026-04-17 13:42:55] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-17 13:42:55] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-025  
[2026-04-17 13:42:58] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-025","token":"CF3yFGSzSatRmZAw4E2aF13U3CmbGMnvjKDWLWzOl1gPDDaeuM3mDszj5rLAcEn7"} 
[2026-04-17 13:43:02] production.INFO: QCApprovalController.showQCForm: All approvals for token {"token":"OU3HWowhhhanY4db9K40DnlrGdA054IG2CCGh5TI22NDQW8F2vctE6AMASx200Uj","count":1,"approvals":[{"id":1112,"id_approval":"016","level":5,"status":"Pending","updated_at":"2026-04-17 12:52:43"}]} 
[2026-04-17 13:43:02] production.INFO: QCApprovalController.showQCForm: Pending approval selected {"token":"OU3HWowhhhanY4db9K40DnlrGdA054IG2CCGh5TI22NDQW8F2vctE6AMASx200Uj","found":"YES","approval":{"id":1112,"id_approval":"016","status":"Pending"}} 
[2026-04-17 13:43:02] production.INFO: QC Show Form Access Granted {"id_sample":"SMP2604-031","approver":"Slamet Wahyudi","level":"5","classify":"Regular"} 
[2026-04-17 13:43:02] production.INFO: QCApprovalController: QC form access (no login required) {"token":"OU3HWowhhhanY4db9K40DnlrGdA054IG2CCGh5TI22NDQW8F2vctE6AMASx200Uj","approval_id":1112,"id_sample":"SMP2604-031"} 
[2026-04-17 13:43:02] production.INFO: QCApprovalController.showQCForm: Items fetched {"id_sample":"SMP2604-031","items_count":2,"sample_data_0":{"id":"0000000001","id_sample":"SMP2604-031","aplikasi":"APK009","id_detail":"DET002","color":"WHITE W10","item":"Spundbond White (25gsm) White dengan width 25Cm panjang 2,500 mtr = 1  roll

Untuk project KF94","size_gsm":"25","size_length":"2500","size_width":"0.25","qty":"1","uom":"roll","sumber_material":null,"jadwal_produksi":null,"qc_note":null,"line_produksi":null,"kode_material":null,"nomor_roll":null,"nomor_jumbo":null,"tanggal_coa":null,"nomor_coa":null,"reason_qc":null,"timeline_qc":null,"quality_qc":null,"alternative_qc":null,"isactive":"1","user_create":"eki","user_update":null,"created_at":"2026-04-16 14:32:05","updated_at":"2026-04-16 14:32:05","item_number":null,"item_color":"WHITE W10","aplikasi_name":"Masker","detail_name_mst_joined":"S"}} 
[2026-04-17 13:44:26] production.INFO: QCApprovalController.handleQCApproval: Processing QC approval (no login required) {"token":"OU3HWowhhhanY4db9K40DnlrGdA054IG2CCGh5TI22NDQW8F2vctE6AMASx200Uj","approval_id":1112,"id_sample":"SMP2604-031"} 
[2026-04-17 13:44:26] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-031"],"current_level":5} 
[2026-04-17 13:44:26] production.INFO: SendNextApprovalEmail.handleSampleApproval: Samples grouped by action {"current_level":5,"samples_to_trigger_qc":[],"samples_by_next_level":[]} 
[2026-04-17 13:44:26] production.INFO: FinalAction Notification: Sending to Rizqi Tri (rizqi.ra@spunindo.com) for sample SMP2604-031  
[2026-04-17 13:44:29] production.INFO: triggerFinalApproval: Final Action email sent to Rizqi Tri (rizqi.ra@spunindo.com) {"sample":"SMP2604-031","token":"b5nGfaVG4DE96u2u0DYszF367qITvEDygIRsycxMrGot3VyZRJvoWo4Rq92K10wv"} 
[2026-04-17 13:58:05] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-030"],"current_level":0} 
[2026-04-17 13:58:05] production.INFO: handleSampleApproval: First levels found (Level 0) {"first_levels":[1,2,3]} 
[2026-04-17 13:58:05] production.INFO: NextLevel Notification: Sending level 1 to Nike Pusparini (mk03@spunindo.com) for samples: SMP2604-030  
[2026-04-17 15:07:50] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-030"],"current_level":1} 
[2026-04-17 15:09:14] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-030"],"current_level":2} 
[2026-04-17 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-17 16:00:00","cutoff_time":"2026-04-17 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-17 16:07:27] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-033"],"current_level":5} 
[2026-04-18 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-18 00:00:00","cutoff_time":"2026-04-17 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-18 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-18 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-18 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031"]} 
[2026-04-18 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-18 08:00:00","cutoff_time":"2026-04-18 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-18 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-18 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-18 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-18 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-18 16:00:00","cutoff_time":"2026-04-18 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-18 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-18 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-18 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-19 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-19 00:00:00","cutoff_time":"2026-04-18 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-19 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-19 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-19 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-19 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-19 08:00:00","cutoff_time":"2026-04-19 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-19 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-19 08:00:09] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-19 08:00:10] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-19 09:37:52] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-034"],"current_level":3} 
[2026-04-19 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-19 16:00:00","cutoff_time":"2026-04-19 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-19 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-19 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-20 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-20 00:00:00","cutoff_time":"2026-04-19 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-20 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-20 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-20 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-20 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-20 08:00:00","cutoff_time":"2026-04-20 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-20 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-030"]} 
[2026-04-20 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2604-032","SMP2604-025","SMP2604-031","SMP2604-033"]} 
[2026-04-20 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-034"]} 
[2026-04-20 08:10:45] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-034"],"current_level":5} 
[2026-04-20 08:17:04] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-032"],"current_level":6} 
[2026-04-20 08:21:17] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-025"],"current_level":6} 
[2026-04-20 08:21:35] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-031"],"current_level":6} 
[2026-04-20 08:32:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-035"],"current_level":0} 
[2026-04-20 08:35:26] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-035"],"current_level":3} 
[2026-04-20 08:41:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-034"],"current_level":6} 
[2026-04-20 09:07:20] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-030"],"current_level":3} 
[2026-04-20 09:27:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-035"],"current_level":5} 
[2026-04-20 09:29:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-030"],"current_level":5} 
[2026-04-20 13:39:45] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-035"],"current_level":6} 
[2026-04-20 13:40:39] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-030"],"current_level":6} 
[2026-04-20 14:01:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-036"],"current_level":0} 
[2026-04-20 15:08:38] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-036"],"current_level":1} 
[2026-04-20 15:12:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-036"],"current_level":0} 
[2026-04-20 15:13:07] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-036"],"current_level":1} 
[2026-04-20 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-20 16:00:00","cutoff_time":"2026-04-20 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-20 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-033"]} 
[2026-04-20 17:05:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-033"],"current_level":6} 
[2026-04-21 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-21 00:00:00","cutoff_time":"2026-04-20 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-21 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2604-036"]} 
[2026-04-21 06:51:30] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-036"],"current_level":2} 
[2026-04-21 07:26:59] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-036"],"current_level":3} 
[2026-04-21 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-21 08:00:00","cutoff_time":"2026-04-21 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-21 08:30:19] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-036"],"current_level":5} 
[2026-04-21 11:50:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-036"],"current_level":6} 
[2026-04-21 15:15:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-037"],"current_level":0} 
[2026-04-21 15:16:19] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-037"],"current_level":1} 
[2026-04-21 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-21 16:00:00","cutoff_time":"2026-04-21 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-21 17:11:40] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-037"],"current_level":0} 
[2026-04-21 17:13:49] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-037"],"current_level":1} 
[2026-04-22 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-22 00:00:00","cutoff_time":"2026-04-21 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-22 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-22 08:00:00","cutoff_time":"2026-04-22 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-22 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2604-037"]} 
[2026-04-22 08:03:37] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-037"],"current_level":2} 
[2026-04-22 08:55:36] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-037"],"current_level":3} 
[2026-04-22 08:58:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-038"],"current_level":0} 
[2026-04-22 09:01:29] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-038"],"current_level":1} 
[2026-04-22 09:58:22] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-037"],"current_level":5} 
[2026-04-22 10:52:00] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-037"],"current_level":6} 
[2026-04-22 10:54:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-039"],"current_level":0} 
[2026-04-22 10:58:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-040"],"current_level":0} 
[2026-04-22 10:58:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-041"],"current_level":0} 
[2026-04-22 10:58:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-038","SMP2604-039"],"current_level":2} 
[2026-04-22 11:03:04] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2604-041"],"current_level":1} 
[2026-04-22 11:04:28] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-040"],"current_level":1} 
[2026-04-22 11:13:03] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-040"],"current_level":2} 
[2026-04-22 11:31:45] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-041"],"current_level":2} 
[2026-04-22 11:41:56] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-041"],"current_level":3} 
[2026-04-22 13:07:42] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-038","SMP2604-039","SMP2604-040"],"current_level":3} 
[2026-04-22 13:54:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-042"],"current_level":0} 
[2026-04-22 13:57:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-043"],"current_level":0} 
[2026-04-22 14:17:24] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-042"],"current_level":1} 
[2026-04-22 14:19:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-042"],"current_level":0} 
[2026-04-22 14:30:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-041"],"current_level":5} 
[2026-04-22 14:31:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-038"],"current_level":5} 
[2026-04-22 14:41:04] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-041"],"current_level":6} 
[2026-04-22 14:50:36] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-038"],"current_level":6} 
[2026-04-22 15:09:43] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-043"],"current_level":1} 
[2026-04-22 15:21:41] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-042"],"current_level":1} 
[2026-04-22 15:47:37] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-043"],"current_level":2} 
[2026-04-22 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-22 16:00:00","cutoff_time":"2026-04-22 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-22 16:06:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-044"],"current_level":0} 
[2026-04-22 16:13:39] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2604-044"],"current_level":1} 
[2026-04-22 16:15:40] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-044"],"current_level":2} 
[2026-04-22 16:22:35] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-042"],"current_level":2} 
[2026-04-23 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-23 00:00:00","cutoff_time":"2026-04-22 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-23 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-043"]} 
[2026-04-23 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-040"]} 
[2026-04-23 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-039"]} 
[2026-04-23 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-23 08:00:00","cutoff_time":"2026-04-23 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-23 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2604-043","SMP2604-044"]} 
[2026-04-23 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2604-042"]} 
[2026-04-23 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-040"]} 
[2026-04-23 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-039"]} 
[2026-04-23 08:21:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-043","SMP2604-044"],"current_level":3} 
[2026-04-23 08:26:00] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-039"],"current_level":5} 
[2026-04-23 08:26:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-043"],"current_level":5} 
[2026-04-23 08:30:46] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-044"],"current_level":5} 
[2026-04-23 09:19:11] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-039"],"current_level":6} 
[2026-04-23 09:19:37] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-043"],"current_level":6} 
[2026-04-23 09:23:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-044"],"current_level":6} 
[2026-04-23 09:31:07] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-040"],"current_level":4} 
[2026-04-23 09:53:50] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-042"],"current_level":3} 
[2026-04-23 09:55:20] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-042"],"current_level":5} 
[2026-04-23 10:17:21] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-042"],"current_level":6} 
[2026-04-23 11:43:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-045"],"current_level":0} 
[2026-04-23 13:07:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-046"],"current_level":0} 
[2026-04-23 13:48:45] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-046"],"current_level":1} 
[2026-04-23 13:57:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-046"],"current_level":2} 
[2026-04-23 14:00:51] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-046"],"current_level":3} 
[2026-04-23 14:04:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-046"],"current_level":5} 
[2026-04-23 14:11:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-046"],"current_level":6} 
[2026-04-23 14:45:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-047"],"current_level":0} 
[2026-04-23 14:50:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-048"],"current_level":0} 
[2026-04-23 14:53:58] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-048"],"current_level":1} 
[2026-04-23 15:16:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-049"],"current_level":0} 
[2026-04-23 15:17:28] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-049"],"current_level":1} 
[2026-04-23 15:24:32] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-049"],"current_level":2} 
[2026-04-23 15:26:32] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-048","SMP2604-049"],"current_level":3} 
[2026-04-23 15:40:19] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2604-045"],"current_level":1} 
[2026-04-23 15:52:42] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-047"],"current_level":2} 
[2026-04-23 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-23 16:00:00","cutoff_time":"2026-04-23 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-23 16:20:49] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-049"],"current_level":5} 
[2026-04-23 16:29:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-048"],"current_level":0} 
[2026-04-23 16:47:09] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-048"],"current_level":1} 
[2026-04-23 16:49:59] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-048"],"current_level":3} 
[2026-04-23 16:56:01] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-047"],"current_level":3} 
[2026-04-23 16:56:05] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2604-048"],"current_level":4} 
[2026-04-23 17:04:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-047"],"current_level":0} 
[2026-04-23 17:24:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-045"],"current_level":0} 
[2026-04-24 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-24 00:00:00","cutoff_time":"2026-04-23 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-24 07:18:11] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2604-045"],"current_level":1} 
[2026-04-24 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-24 08:00:00","cutoff_time":"2026-04-24 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-24 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to yohanes.ku@spunindo.com {"approver":"Yohanes Kurniawan","samples_count":1,"sample_ids":["SMP2604-047"]} 
[2026-04-24 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-049"]} 
[2026-04-24 08:07:09] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-047","SMP2604-045"],"current_level":2} 
[2026-04-24 08:12:45] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-049"],"current_level":6} 
[2026-04-24 08:36:06] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-047","SMP2604-045"],"current_level":3} 
[2026-04-24 09:23:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-047"],"current_level":5} 
[2026-04-24 09:25:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-045"],"current_level":5} 
[2026-04-24 10:00:14] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-047"],"current_level":6} 
[2026-04-24 10:00:49] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-045"],"current_level":6} 
[2026-04-24 11:30:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-050"],"current_level":0} 
[2026-04-24 11:37:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-051"],"current_level":0} 
[2026-04-24 11:38:12] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2604-051"],"current_level":1} 
[2026-04-24 11:40:33] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-051"],"current_level":2} 
[2026-04-24 11:43:42] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-051"],"current_level":3} 
[2026-04-24 13:15:17] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-051"],"current_level":5} 
[2026-04-24 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-24 16:00:00","cutoff_time":"2026-04-24 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-24 16:28:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-051"],"current_level":6} 
[2026-04-24 16:45:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-052"],"current_level":0} 
[2026-04-24 16:57:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-053"],"current_level":0} 
[2026-04-24 17:01:13] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"],"current_level":1} 
[2026-04-25 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-25 00:00:00","cutoff_time":"2026-04-24 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-25 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-25 08:00:00","cutoff_time":"2026-04-25 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-25 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-25 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-25 16:00:00","cutoff_time":"2026-04-25 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-25 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-26 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-26 00:00:00","cutoff_time":"2026-04-25 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-26 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-26 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-26 08:00:00","cutoff_time":"2026-04-26 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-26 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-26 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-26 16:00:00","cutoff_time":"2026-04-26 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-26 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-27 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-27 00:00:00","cutoff_time":"2026-04-26 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-27 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-27 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-27 08:00:00","cutoff_time":"2026-04-27 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-27 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":3,"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"]} 
[2026-04-27 08:22:18] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053"],"current_level":2} 
[2026-04-27 14:20:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-054"],"current_level":0} 
[2026-04-27 14:25:02] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-054"],"current_level":1} 
[2026-04-27 14:26:44] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-054"],"current_level":2} 
[2026-04-27 14:57:11] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-050","SMP2604-052","SMP2604-053","SMP2604-054"],"current_level":3} 
[2026-04-27 15:36:54] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-050"],"current_level":4} 
[2026-04-27 15:42:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-054"],"current_level":5} 
[2026-04-27 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-27 16:00:00","cutoff_time":"2026-04-27 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-28 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-28 00:00:00","cutoff_time":"2026-04-27 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-28 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-054"]} 
[2026-04-28 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2604-052","SMP2604-053"]} 
[2026-04-28 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-28 08:00:00","cutoff_time":"2026-04-28 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-28 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-054"]} 
[2026-04-28 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2604-052","SMP2604-053"]} 
[2026-04-28 08:16:18] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-054"],"current_level":6} 
[2026-04-28 08:26:15] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-052"],"current_level":4} 
[2026-04-28 10:28:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-055"],"current_level":0} 
[2026-04-28 10:31:55] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2604-055"],"current_level":1} 
[2026-04-28 10:37:04] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-055"],"current_level":2} 
[2026-04-28 10:42:08] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-055"],"current_level":3} 
[2026-04-28 10:49:43] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-055"],"current_level":5} 
[2026-04-28 10:53:17] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-055"],"current_level":6} 
[2026-04-28 11:58:30] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-053"],"current_level":4} 
[2026-04-28 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-28 16:00:00","cutoff_time":"2026-04-28 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-29 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-29 00:00:00","cutoff_time":"2026-04-28 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-29 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-29 08:00:00","cutoff_time":"2026-04-29 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-29 10:37:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-056"],"current_level":0} 
[2026-04-29 10:46:08] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-056"],"current_level":2} 
[2026-04-29 13:32:13] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-056"],"current_level":3} 
[2026-04-29 13:53:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-056"],"current_level":0} 
[2026-04-29 15:17:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-057"],"current_level":0} 
[2026-04-29 15:17:47] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-057"],"current_level":1} 
[2026-04-29 15:34:17] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-056","SMP2604-057"],"current_level":2} 
[2026-04-29 15:38:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-058"],"current_level":0} 
[2026-04-29 15:51:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-059"],"current_level":0} 
[2026-04-29 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-29 16:00:00","cutoff_time":"2026-04-29 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-29 16:15:14] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-058"],"current_level":1} 
[2026-04-29 16:19:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-060"],"current_level":0} 
[2026-04-29 16:24:46] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-058"],"current_level":2} 
[2026-04-29 16:24:52] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-059"],"current_level":2} 
[2026-04-29 16:25:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-059"],"current_level":0} 
[2026-04-29 16:52:24] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-060"],"current_level":2} 
[2026-04-29 16:55:11] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-060"],"current_level":0} 
[2026-04-29 17:04:09] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2604-060"],"current_level":2} 
[2026-04-29 17:14:40] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-059"],"current_level":2} 
[2026-04-30 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-30 00:00:00","cutoff_time":"2026-04-29 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-30 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2604-056","SMP2604-057"]} 
[2026-04-30 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-30 08:00:00","cutoff_time":"2026-04-30 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-30 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2604-059","SMP2604-060"]} 
[2026-04-30 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-056","SMP2604-057","SMP2604-058"]} 
[2026-04-30 08:01:49] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-059","SMP2604-060"],"current_level":3} 
[2026-04-30 09:09:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-059"],"current_level":5} 
[2026-04-30 09:12:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-060"],"current_level":5} 
[2026-04-30 09:20:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-060"],"current_level":6} 
[2026-04-30 09:21:58] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-059"],"current_level":6} 
[2026-04-30 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-04-30 16:00:00","cutoff_time":"2026-04-30 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-04-30 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2604-056","SMP2604-057","SMP2604-058"]} 
[2026-04-30 16:11:06] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-056","SMP2604-057","SMP2604-058"],"current_level":3} 
[2026-04-30 16:38:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-057"],"current_level":5} 
[2026-04-30 16:53:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-061"],"current_level":0} 
[2026-04-30 16:58:11] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-062"],"current_level":0} 
[2026-05-01 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-01 00:00:00","cutoff_time":"2026-04-30 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-01 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-01 08:00:00","cutoff_time":"2026-05-01 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-01 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-01 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-01 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-01 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-01 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-01 14:12:33] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2604-061"],"current_level":2} 
[2026-05-01 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-01 16:00:00","cutoff_time":"2026-05-01 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-01 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-01 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-01 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-01 16:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-02 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-02 00:00:00","cutoff_time":"2026-05-01 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-02 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-02 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-02 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-02 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-02 00:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-02 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-02 08:00:00","cutoff_time":"2026-05-02 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-02 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-02 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-02 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-02 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-02 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-02 08:57:20] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2604-061"],"current_level":3} 
[2026-05-02 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-02 16:00:00","cutoff_time":"2026-05-02 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-02 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-02 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-02 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-02 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-03 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-03 00:00:00","cutoff_time":"2026-05-02 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-03 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-03 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-03 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-03 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-03 00:00:09] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-03 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-03 08:00:00","cutoff_time":"2026-05-03 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-03 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-03 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-03 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-03 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-03 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-03 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-03 16:00:00","cutoff_time":"2026-05-03 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-03 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-03 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-03 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-03 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-03 16:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-04 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-04 00:00:00","cutoff_time":"2026-05-03 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-04 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-04 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-04 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-04 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-04 00:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-04 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-04 08:00:00","cutoff_time":"2026-05-04 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-04 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-04 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2604-057"]} 
[2026-05-04 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2604-056"]} 
[2026-05-04 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2604-061"]} 
[2026-05-04 08:00:09] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2604-058"]} 
[2026-05-04 08:08:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2604-061"],"current_level":5} 
[2026-05-04 08:13:29] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-056"],"current_level":4} 
[2026-05-04 08:14:04] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2604-058"],"current_level":4} 
[2026-05-04 08:27:06] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-062"],"current_level":1} 
[2026-05-04 08:43:40] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-057"],"current_level":6} 
[2026-05-04 08:44:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2604-061"],"current_level":6} 
[2026-05-04 09:19:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2604-062"],"current_level":0} 
[2026-05-04 10:35:50] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2604-062"],"current_level":1} 
[2026-05-04 11:49:49] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-001"],"current_level":0} 
[2026-05-04 12:33:49] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2605-001"],"current_level":1} 
[2026-05-04 14:47:33] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-001"],"current_level":2} 
[2026-05-04 14:54:34] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-001"],"current_level":3} 
[2026-05-04 15:03:00] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-001"],"current_level":5} 
[2026-05-04 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-04 16:00:00","cutoff_time":"2026-05-04 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-04 16:58:21] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-001"],"current_level":6} 
[2026-05-05 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-05 00:00:00","cutoff_time":"2026-05-04 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-05 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2604-062"]} 
[2026-05-05 07:59:01] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2604-062"],"current_level":2} 
[2026-05-05 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-05 08:00:00","cutoff_time":"2026-05-05 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-05 09:41:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-002"],"current_level":0} 
[2026-05-05 09:41:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-003"],"current_level":0} 
[2026-05-05 09:46:09] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-002"],"current_level":1} 
[2026-05-05 09:54:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-004"],"current_level":0} 
[2026-05-05 11:09:18] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-002","SMP2605-004"],"current_level":2} 
[2026-05-05 11:24:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-004"],"current_level":0} 
[2026-05-05 11:36:07] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-004"],"current_level":2} 
[2026-05-05 13:12:12] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2604-062","SMP2605-002","SMP2605-004"],"current_level":3} 
[2026-05-05 13:42:15] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-004"],"current_level":4} 
[2026-05-05 13:45:32] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-002"],"current_level":4} 
[2026-05-05 13:47:36] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2604-062"],"current_level":4} 
[2026-05-05 15:02:31] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-003"],"current_level":2} 
[2026-05-05 15:03:16] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-003"],"current_level":3} 
[2026-05-05 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-05 16:00:00","cutoff_time":"2026-05-05 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-05 16:29:22] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-005"],"current_level":0} 
[2026-05-05 16:31:20] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-005"],"current_level":2} 
[2026-05-05 16:42:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-003"],"current_level":5} 
[2026-05-05 16:44:31] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-005"],"current_level":3} 
[2026-05-06 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-06 00:00:00","cutoff_time":"2026-05-05 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-06 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-06 08:00:00","cutoff_time":"2026-05-06 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-06 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2605-003"]} 
[2026-05-06 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-005"]} 
[2026-05-06 08:04:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-003"],"current_level":6} 
[2026-05-06 08:25:56] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-005"],"current_level":5} 
[2026-05-06 08:32:13] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-005"],"current_level":6} 
[2026-05-06 10:47:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-006","SMP2605-007"],"current_level":0} 
[2026-05-06 10:49:58] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2605-006","SMP2605-007"],"current_level":1} 
[2026-05-06 14:32:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-008"],"current_level":0} 
[2026-05-06 14:32:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-009"],"current_level":0} 
[2026-05-06 14:37:39] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-008"],"current_level":1} 
[2026-05-06 14:39:54] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-008"],"current_level":2} 
[2026-05-06 15:11:23] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-006","SMP2605-007","SMP2605-009"],"current_level":2} 
[2026-05-06 15:14:31] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-006","SMP2605-007","SMP2605-009"],"current_level":3} 
[2026-05-06 15:29:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-010"],"current_level":0} 
[2026-05-06 15:55:33] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-010"],"current_level":1} 
[2026-05-06 15:58:30] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-010"],"current_level":2} 
[2026-05-06 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-06 16:00:00","cutoff_time":"2026-05-06 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-06 16:14:29] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-006"],"current_level":5} 
[2026-05-06 16:18:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-007"],"current_level":5} 
[2026-05-06 16:19:50] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-009"],"current_level":5} 
[2026-05-06 16:29:22] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-008","SMP2605-010"],"current_level":3} 
[2026-05-06 16:58:41] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-006"],"current_level":6} 
[2026-05-06 16:59:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-007"],"current_level":6} 
[2026-05-06 16:59:44] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-009"],"current_level":6} 
[2026-05-07 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-07 00:00:00","cutoff_time":"2026-05-06 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-07 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-07 08:00:00","cutoff_time":"2026-05-07 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-07 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2605-008","SMP2605-010"]} 
[2026-05-07 08:09:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-008"],"current_level":5} 
[2026-05-07 08:16:59] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-010"],"current_level":5} 
[2026-05-07 09:00:00] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-008"],"current_level":6} 
[2026-05-07 09:00:22] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-010"],"current_level":6} 
[2026-05-07 15:21:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-011"],"current_level":0} 
[2026-05-07 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-07 16:00:00","cutoff_time":"2026-05-07 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-07 16:31:24] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-011"],"current_level":2} 
[2026-05-07 16:32:48] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-011"],"current_level":3} 
[2026-05-07 17:00:14] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-011"],"current_level":5} 
[2026-05-07 17:05:24] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-011"],"current_level":6} 
[2026-05-08 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-08 00:00:00","cutoff_time":"2026-05-07 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-08 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-08 08:00:00","cutoff_time":"2026-05-08 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-08 08:36:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-012"],"current_level":0} 
[2026-05-08 08:46:44] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-012"],"current_level":3} 
[2026-05-08 09:14:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-013"],"current_level":0} 
[2026-05-08 09:21:28] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-013"],"current_level":2} 
[2026-05-08 09:40:27] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-012"],"current_level":5} 
[2026-05-08 10:01:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-013"],"current_level":3} 
[2026-05-08 10:05:19] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2605-013"],"current_level":4} 
[2026-05-08 13:09:17] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-012"],"current_level":6} 
[2026-05-08 13:26:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-014"],"current_level":0} 
[2026-05-08 13:32:24] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-014"],"current_level":3} 
[2026-05-08 13:49:45] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-014"],"current_level":5} 
[2026-05-08 13:56:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-014"],"current_level":6} 
[2026-05-08 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-08 16:00:00","cutoff_time":"2026-05-08 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-09 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-09 00:00:00","cutoff_time":"2026-05-08 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-09 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-09 08:00:00","cutoff_time":"2026-05-09 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-09 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-09 16:00:00","cutoff_time":"2026-05-09 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-10 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-10 00:00:00","cutoff_time":"2026-05-09 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-10 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-10 08:00:00","cutoff_time":"2026-05-10 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-10 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-10 16:00:00","cutoff_time":"2026-05-10 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-11 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-11 00:00:00","cutoff_time":"2026-05-10 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-11 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-11 08:00:00","cutoff_time":"2026-05-11 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-11 15:59:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-015"],"current_level":0} 
[2026-05-11 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-11 16:00:00","cutoff_time":"2026-05-11 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-11 16:12:36] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2605-015"],"current_level":1} 
[2026-05-11 17:20:18] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-015"],"current_level":2} 
[2026-05-12 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-12 00:00:00","cutoff_time":"2026-05-11 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-12 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-12 08:00:00","cutoff_time":"2026-05-12 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-12 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2605-015"]} 
[2026-05-12 08:49:21] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-015"],"current_level":3} 
[2026-05-12 09:35:02] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-015"],"current_level":5} 
[2026-05-12 09:56:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-016"],"current_level":0} 
[2026-05-12 09:57:04] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-015"],"current_level":6} 
[2026-05-12 09:57:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-016"],"current_level":2} 
[2026-05-12 10:24:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-017"],"current_level":0} 
[2026-05-12 10:31:26] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-017"],"current_level":1} 
[2026-05-12 10:32:23] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-017"],"current_level":2} 
[2026-05-12 10:37:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-018"],"current_level":0} 
[2026-05-12 10:38:06] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-018"],"current_level":1} 
[2026-05-12 10:41:17] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-018"],"current_level":2} 
[2026-05-12 10:45:20] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-018"],"current_level":3} 
[2026-05-12 10:59:30] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-016","SMP2605-017"],"current_level":3} 
[2026-05-12 11:00:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-018"],"current_level":5} 
[2026-05-12 11:09:13] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-016"],"current_level":4} 
[2026-05-12 11:17:09] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-017"],"current_level":5} 
[2026-05-12 14:36:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-018"],"current_level":6} 
[2026-05-12 14:36:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-017"],"current_level":6} 
[2026-05-12 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-12 16:00:00","cutoff_time":"2026-05-12 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-13 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-13 00:00:00","cutoff_time":"2026-05-12 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-13 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-13 08:00:00","cutoff_time":"2026-05-13 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-13 13:28:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-019"],"current_level":0} 
[2026-05-13 13:32:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-020"],"current_level":0} 
[2026-05-13 14:17:59] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-020"],"current_level":1} 
[2026-05-13 14:38:36] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-020"],"current_level":2} 
[2026-05-13 15:01:57] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-019"],"current_level":2} 
[2026-05-13 15:09:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-023"],"current_level":0} 
[2026-05-13 15:30:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-021","SMP2605-022"],"current_level":0} 
[2026-05-13 15:33:06] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2605-021","SMP2605-022"],"current_level":1} 
[2026-05-13 15:49:59] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-020","SMP2605-023"],"current_level":3} 
[2026-05-13 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-13 16:00:00","cutoff_time":"2026-05-13 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-13 16:00:37] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-019"],"current_level":3} 
[2026-05-13 16:02:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-021","SMP2605-022"],"current_level":2} 
[2026-05-13 16:20:48] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2605-023"],"current_level":4} 
[2026-05-13 16:42:31] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2605-019"],"current_level":4} 
[2026-05-13 16:48:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-020"],"current_level":5} 
[2026-05-13 17:01:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-020"],"current_level":6} 
[2026-05-13 17:30:27] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-021","SMP2605-022"],"current_level":3} 
[2026-05-14 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-14 00:00:00","cutoff_time":"2026-05-13 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-14 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-14 08:00:00","cutoff_time":"2026-05-14 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-14 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-14 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-021"]} 
[2026-05-14 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-14 16:00:00","cutoff_time":"2026-05-14 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-14 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-14 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-021"]} 
[2026-05-15 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-15 00:00:00","cutoff_time":"2026-05-14 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-15 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-15 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-021"]} 
[2026-05-15 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-15 08:00:00","cutoff_time":"2026-05-15 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-15 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-15 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-021"]} 
[2026-05-15 10:33:32] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-021"],"current_level":5} 
[2026-05-15 10:49:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-024"],"current_level":0} 
[2026-05-15 10:54:06] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-024"],"current_level":3} 
[2026-05-15 10:59:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-025"],"current_level":0} 
[2026-05-15 11:01:07] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-025"],"current_level":1} 
[2026-05-15 11:01:52] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-025"],"current_level":2} 
[2026-05-15 11:11:20] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-025"],"current_level":3} 
[2026-05-15 13:11:57] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-027"],"current_level":0} 
[2026-05-15 13:14:01] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-027"],"current_level":2} 
[2026-05-15 13:15:11] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-027"],"current_level":3} 
[2026-05-15 13:15:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-026"],"current_level":0} 
[2026-05-15 13:31:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-024"],"current_level":5} 
[2026-05-15 14:00:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-027"],"current_level":5} 
[2026-05-15 14:24:33] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2605-026"],"current_level":1} 
[2026-05-15 14:35:25] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2605-025"],"current_level":4} 
[2026-05-15 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-15 16:00:00","cutoff_time":"2026-05-15 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-15 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-15 16:00:10] production.ERROR: SendApprovalReminder: Failed to send reminder to santi.de@spunindo.com {"error":"Connection could not be established with host \"ssl://smtp.gmail.com:465\": stream_socket_client(): php_network_getaddresses: getaddrinfo for smtp.gmail.com failed: Temporary failure in name resolution","trace":"#0 [internal function]: Symfony\\Component\\Mailer\\Transport\\Smtp\\Stream\\SocketStream->Symfony\\Component\\Mailer\\Transport\\Smtp\\Stream\\{closure}(2, 'stream_socket_c...', '/project/msjsam...', 157)
#1 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/Stream/SocketStream.php(157): stream_socket_client('ssl://smtp.gmai...', 0, '', 60.0, 4, Resource id #955)
#2 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(279): Symfony\\Component\\Mailer\\Transport\\Smtp\\Stream\\SocketStream->initialize()
#3 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(211): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->start()
#4 /project/msjsample/vendor/symfony/mailer/Transport/AbstractTransport.php(69): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->doSend(Object(Symfony\\Component\\Mailer\\SentMessage))
#5 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(138): Symfony\\Component\\Mailer\\Transport\\AbstractTransport->send(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))
#6 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(584): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->send(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))
#7 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(331): Illuminate\\Mail\\Mailer->sendSymfonyMessage(Object(Symfony\\Component\\Mime\\Email))
#8 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php(207): Illuminate\\Mail\\Mailer->send('emails.index', Array, Object(Closure))
#9 /project/msjsample/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php(19): Illuminate\\Mail\\Mailable->Illuminate\\Mail\\{closure}()
#10 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php(200): Illuminate\\Mail\\Mailable->withLocale(NULL, Object(Closure))
#11 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php(82): Illuminate\\Mail\\Mailable->send(Object(Illuminate\\Mail\\MailManager))
#12 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Mail\\SendQueuedMailable->handle(Object(Illuminate\\Mail\\MailManager))
#13 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#14 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#15 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#16 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Container.php(754): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#17 /project/msjsample/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\\Container\\Container->call(Array)
#18 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Bus\\Dispatcher->Illuminate\\Bus\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#19 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#20 /project/msjsample/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(136): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#21 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(125): Illuminate\\Bus\\Dispatcher->dispatchNow(Object(Illuminate\\Mail\\SendQueuedMailable), false)
#22 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Queue\\CallQueuedHandler->Illuminate\\Queue\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#23 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#24 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(120): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#25 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(68): Illuminate\\Queue\\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\\Queue\\Jobs\\SyncJob), Object(Illuminate\\Mail\\SendQueuedMailable))
#26 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\\Queue\\CallQueuedHandler->call(Object(Illuminate\\Queue\\Jobs\\SyncJob), Array)
#27 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(130): Illuminate\\Queue\\Jobs\\Job->fire()
#28 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(110): Illuminate\\Queue\\SyncQueue->executeJob(Object(Illuminate\\Mail\\SendQueuedMailable), '', NULL)
#29 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/Queue.php(63): Illuminate\\Queue\\SyncQueue->push(Object(Illuminate\\Mail\\SendQueuedMailable), '', NULL)
#30 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php(235): Illuminate\\Queue\\Queue->pushOn(NULL, Object(Illuminate\\Mail\\SendQueuedMailable))
#31 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(482): Illuminate\\Mail\\Mailable->queue(Object(Illuminate\\Queue\\QueueManager))
#32 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php(145): Illuminate\\Mail\\Mailer->queue(Object(App\\Mail\\ApprovalMail))
#33 /project/msjsample/app/Console/Commands/SendApprovalReminder.php(167): Illuminate\\Mail\\PendingMail->queue(Object(App\\Mail\\ApprovalMail))
#34 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\SendApprovalReminder->handle()
#35 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#36 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#37 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#38 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Container.php(754): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#39 /project/msjsample/vendor/laravel/framework/src/Illuminate/Console/Command.php(209): Illuminate\\Container\\Container->call(Array)
#40 /project/msjsample/vendor/symfony/console/Command/Command.php(318): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#41 /project/msjsample/vendor/laravel/framework/src/Illuminate/Console/Command.php(178): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#42 /project/msjsample/vendor/symfony/console/Application.php(1092): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#43 /project/msjsample/vendor/symfony/console/Application.php(341): Symfony\\Component\\Console\\Application->doRunCommand(Object(App\\Console\\Commands\\SendApprovalReminder), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#44 /project/msjsample/vendor/symfony/console/Application.php(192): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#45 /project/msjsample/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(197): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#46 /project/msjsample/artisan(35): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#47 {main}"} 
[2026-05-15 16:24:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-028"],"current_level":0} 
[2026-05-15 16:31:03] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-028"],"current_level":1} 
[2026-05-15 16:42:40] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-028"],"current_level":2} 
[2026-05-15 16:47:57] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-028"],"current_level":3} 
[2026-05-16 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-16 00:00:00","cutoff_time":"2026-05-15 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-16 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-16 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-16 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-16 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-16 08:00:00","cutoff_time":"2026-05-16 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-16 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-16 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-16 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-16 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-16 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-16 16:00:00","cutoff_time":"2026-05-16 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-16 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-16 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-16 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-16 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-17 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-17 00:00:00","cutoff_time":"2026-05-16 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-17 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-17 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-17 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-17 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-17 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-17 08:00:00","cutoff_time":"2026-05-17 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-17 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-17 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-17 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-17 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-17 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-17 16:00:00","cutoff_time":"2026-05-17 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-17 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-17 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-17 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-17 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-18 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-18 00:00:00","cutoff_time":"2026-05-17 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-18 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-18 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-18 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-18 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-18 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-18 08:00:00","cutoff_time":"2026-05-18 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-18 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-026"]} 
[2026-05-18 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2605-021","SMP2605-024","SMP2605-027"]} 
[2026-05-18 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2605-022"]} 
[2026-05-18 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-028"]} 
[2026-05-18 08:16:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-021"],"current_level":6} 
[2026-05-18 08:17:00] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-024"],"current_level":6} 
[2026-05-18 08:17:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-027"],"current_level":6} 
[2026-05-18 08:53:43] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-028"],"current_level":5} 
[2026-05-18 08:54:19] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-028"],"current_level":6} 
[2026-05-18 10:29:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-030"],"current_level":0} 
[2026-05-18 10:32:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-029"],"current_level":0} 
[2026-05-18 10:38:59] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-026"],"current_level":3} 
[2026-05-18 10:48:29] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-030"],"current_level":2} 
[2026-05-18 10:56:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-031"],"current_level":0} 
[2026-05-18 10:59:10] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2605-031"],"current_level":1} 
[2026-05-18 11:11:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-032"],"current_level":0} 
[2026-05-18 11:19:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-026"],"current_level":5} 
[2026-05-18 11:45:07] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-032"],"current_level":2} 
[2026-05-18 11:49:44] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-022"],"current_level":4} 
[2026-05-18 11:51:52] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-032"],"current_level":3} 
[2026-05-18 11:57:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-030"],"current_level":0} 
[2026-05-18 12:03:22] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-030"],"current_level":2} 
[2026-05-18 12:07:40] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-032"],"current_level":4} 
[2026-05-18 13:15:24] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-030"],"current_level":3} 
[2026-05-18 13:24:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-026"],"current_level":6} 
[2026-05-18 13:58:47] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-030"],"current_level":4} 
[2026-05-18 14:47:17] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-031"],"current_level":2} 
[2026-05-18 15:13:53] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-029"],"current_level":1} 
[2026-05-18 15:18:28] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-029"],"current_level":2} 
[2026-05-18 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-18 16:00:00","cutoff_time":"2026-05-18 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-18 17:11:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-029","SMP2605-031"],"current_level":3} 
[2026-05-19 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-19 00:00:00","cutoff_time":"2026-05-18 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-19 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-19 08:00:00","cutoff_time":"2026-05-19 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-19 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2605-029","SMP2605-031"]} 
[2026-05-19 08:06:51] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-031"],"current_level":5} 
[2026-05-19 08:30:21] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-031"],"current_level":6} 
[2026-05-19 09:35:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-029"],"current_level":0} 
[2026-05-19 09:43:32] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-029"],"current_level":1} 
[2026-05-19 10:09:20] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-029"],"current_level":2} 
[2026-05-19 12:11:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-033","SMP2605-034"],"current_level":0} 
[2026-05-19 12:13:22] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2605-033","SMP2605-034"],"current_level":1} 
[2026-05-19 12:36:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-029"],"current_level":3} 
[2026-05-19 13:56:54] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-029"],"current_level":5} 
[2026-05-19 14:02:42] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-033","SMP2605-034"],"current_level":2} 
[2026-05-19 14:04:20] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-029"],"current_level":6} 
[2026-05-19 14:24:39] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-033","SMP2605-034"],"current_level":3} 
[2026-05-19 14:37:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-035"],"current_level":0} 
[2026-05-19 15:28:29] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-035"],"current_level":2} 
[2026-05-19 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-19 16:00:00","cutoff_time":"2026-05-19 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-19 16:09:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-036"],"current_level":0} 
[2026-05-20 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-20 00:00:00","cutoff_time":"2026-05-19 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-20 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2605-035"]} 
[2026-05-20 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2605-033","SMP2605-034"]} 
[2026-05-20 06:57:53] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-035"],"current_level":3} 
[2026-05-20 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-20 08:00:00","cutoff_time":"2026-05-20 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-20 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2605-036"]} 
[2026-05-20 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2605-033","SMP2605-034"]} 
[2026-05-20 08:43:51] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-035"],"current_level":5} 
[2026-05-20 08:44:53] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-035"],"current_level":6} 
[2026-05-20 08:50:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-037"],"current_level":0} 
[2026-05-20 08:52:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-038"],"current_level":0} 
[2026-05-20 08:53:34] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-037"],"current_level":2} 
[2026-05-20 09:01:35] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-038"],"current_level":2} 
[2026-05-20 09:05:47] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-037"],"current_level":3} 
[2026-05-20 09:57:30] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-038"],"current_level":3} 
[2026-05-20 10:46:29] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2605-036"],"current_level":1} 
[2026-05-20 10:47:47] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-036"],"current_level":3} 
[2026-05-20 12:06:28] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2605-038"],"current_level":4} 
[2026-05-20 12:13:27] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-037"],"current_level":4} 
[2026-05-20 13:58:00] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-033"],"current_level":4} 
[2026-05-20 15:11:10] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2605-036"],"current_level":4} 
[2026-05-20 15:49:14] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2605-034"],"current_level":4} 
[2026-05-20 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-20 16:00:00","cutoff_time":"2026-05-20 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-21 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-21 00:00:00","cutoff_time":"2026-05-20 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-21 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-21 08:00:00","cutoff_time":"2026-05-21 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-21 11:23:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-039"],"current_level":0} 
[2026-05-21 15:19:48] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-039"],"current_level":1} 
[2026-05-21 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-21 16:00:00","cutoff_time":"2026-05-21 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-21 16:14:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-040"],"current_level":0} 
[2026-05-21 16:32:17] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-040"],"current_level":3} 
[2026-05-21 17:01:53] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-041"],"current_level":0} 
[2026-05-21 17:15:57] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-041"],"current_level":2} 
[2026-05-21 18:16:44] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-041"],"current_level":3} 
[2026-05-22 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-22 00:00:00","cutoff_time":"2026-05-21 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-22 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-22 08:00:00","cutoff_time":"2026-05-22 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-22 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-041"]} 
[2026-05-22 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2605-040"]} 
[2026-05-22 08:09:40] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-041"],"current_level":5} 
[2026-05-22 08:13:52] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2605-040"],"current_level":4} 
[2026-05-22 08:40:41] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-041"],"current_level":6} 
[2026-05-22 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-22 16:00:00","cutoff_time":"2026-05-22 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-23 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-23 00:00:00","cutoff_time":"2026-05-22 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-23 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-23 08:00:00","cutoff_time":"2026-05-23 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-23 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-23 16:00:00","cutoff_time":"2026-05-23 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-24 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-24 00:00:00","cutoff_time":"2026-05-23 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-24 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-24 08:00:00","cutoff_time":"2026-05-24 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-24 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-24 16:00:00","cutoff_time":"2026-05-24 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-25 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-25 00:00:00","cutoff_time":"2026-05-24 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-25 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-25 08:00:00","cutoff_time":"2026-05-25 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-25 13:48:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-042"],"current_level":0} 
[2026-05-25 14:01:29] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-042"],"current_level":2} 
[2026-05-25 14:59:50] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-042"],"current_level":3} 
[2026-05-25 15:13:26] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2605-042"],"current_level":4} 
[2026-05-25 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-25 16:00:00","cutoff_time":"2026-05-25 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-25 16:54:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-039"],"current_level":0} 
[2026-05-25 16:57:06] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-039"],"current_level":1} 
[2026-05-25 17:05:58] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-039"],"current_level":2} 
[2026-05-25 17:43:22] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-039"],"current_level":3} 
[2026-05-26 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-26 00:00:00","cutoff_time":"2026-05-25 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-26 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-26 08:00:00","cutoff_time":"2026-05-26 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-26 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-039"]} 
[2026-05-26 08:13:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-039"],"current_level":5} 
[2026-05-26 08:33:01] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-039"],"current_level":6} 
[2026-05-26 11:43:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-043"],"current_level":0} 
[2026-05-26 11:46:13] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-043"],"current_level":1} 
[2026-05-26 15:21:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-044"],"current_level":0} 
[2026-05-26 15:27:08] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-044"],"current_level":2} 
[2026-05-26 15:37:52] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-044"],"current_level":3} 
[2026-05-26 15:40:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-045"],"current_level":0} 
[2026-05-26 15:42:43] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-045"],"current_level":1} 
[2026-05-26 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-26 16:00:00","cutoff_time":"2026-05-26 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-26 16:06:45] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-045"],"current_level":2} 
[2026-05-26 16:07:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-044"],"current_level":5} 
[2026-05-26 16:09:09] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-045"],"current_level":3} 
[2026-05-26 16:38:21] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-045"],"current_level":5} 
[2026-05-27 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-27 00:00:00","cutoff_time":"2026-05-26 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-27 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2605-043"]} 
[2026-05-27 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-27 08:00:00","cutoff_time":"2026-05-27 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-27 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2605-043"]} 
[2026-05-27 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2605-044","SMP2605-045"]} 
[2026-05-27 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-27 16:00:00","cutoff_time":"2026-05-27 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-27 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2605-043"]} 
[2026-05-27 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2605-044","SMP2605-045"]} 
[2026-05-28 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-28 00:00:00","cutoff_time":"2026-05-27 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-28 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2605-043"]} 
[2026-05-28 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2605-044","SMP2605-045"]} 
[2026-05-28 07:55:51] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-043"],"current_level":2} 
[2026-05-28 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-28 08:00:00","cutoff_time":"2026-05-28 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-28 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2605-044","SMP2605-045"]} 
[2026-05-28 08:38:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-044"],"current_level":6} 
[2026-05-28 08:39:38] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-045"],"current_level":6} 
[2026-05-28 10:30:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-046"],"current_level":0} 
[2026-05-28 11:38:15] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-046"],"current_level":1} 
[2026-05-28 13:11:40] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-046"],"current_level":2} 
[2026-05-28 13:53:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-047"],"current_level":0} 
[2026-05-28 13:55:52] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-047"],"current_level":3} 
[2026-05-28 14:17:34] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2605-047"],"current_level":4} 
[2026-05-28 14:25:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-049"],"current_level":0} 
[2026-05-28 14:26:43] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2605-049"],"current_level":1} 
[2026-05-28 14:34:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-049"],"current_level":0} 
[2026-05-28 14:40:35] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2605-049"],"current_level":1} 
[2026-05-28 14:41:49] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-049"],"current_level":2} 
[2026-05-28 14:59:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-048"],"current_level":0} 
[2026-05-28 15:09:36] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2605-048"],"current_level":1} 
[2026-05-28 15:23:05] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2605-048"],"current_level":2} 
[2026-05-28 15:29:57] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-048"],"current_level":3} 
[2026-05-28 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-28 16:00:00","cutoff_time":"2026-05-28 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-28 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-043"]} 
[2026-05-28 16:34:07] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-048"],"current_level":5} 
[2026-05-28 16:46:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-050"],"current_level":0} 
[2026-05-28 16:47:55] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-050"],"current_level":1} 
[2026-05-28 16:49:18] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-050"],"current_level":2} 
[2026-05-28 19:33:06] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-043","SMP2605-046","SMP2605-049","SMP2605-050"],"current_level":3} 
[2026-05-29 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-29 00:00:00","cutoff_time":"2026-05-28 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-29 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-29 08:00:00","cutoff_time":"2026-05-29 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-29 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2605-048"]} 
[2026-05-29 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2605-043","SMP2605-046","SMP2605-050"]} 
[2026-05-29 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2605-049"]} 
[2026-05-29 08:09:20] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2605-049"],"current_level":4} 
[2026-05-29 08:33:41] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-043"],"current_level":5} 
[2026-05-29 08:35:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-046"],"current_level":5} 
[2026-05-29 08:36:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-050"],"current_level":5} 
[2026-05-29 08:52:04] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-048"],"current_level":6} 
[2026-05-29 08:53:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-043"],"current_level":6} 
[2026-05-29 08:53:56] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-046"],"current_level":6} 
[2026-05-29 08:56:34] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-050"],"current_level":6} 
[2026-05-29 11:00:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-046"],"current_level":0} 
[2026-05-29 11:38:56] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2605-046"],"current_level":1} 
[2026-05-29 13:10:27] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2605-046"],"current_level":2} 
[2026-05-29 13:33:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-051"],"current_level":0} 
[2026-05-29 13:36:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-052"],"current_level":0} 
[2026-05-29 13:49:40] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-051","SMP2605-052"],"current_level":1} 
[2026-05-29 13:50:46] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-051","SMP2605-052"],"current_level":2} 
[2026-05-29 14:11:39] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-051","SMP2605-052"],"current_level":3} 
[2026-05-29 15:47:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2605-051","SMP2605-052"],"current_level":0} 
[2026-05-29 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-29 16:00:00","cutoff_time":"2026-05-29 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-30 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-30 00:00:00","cutoff_time":"2026-05-29 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-30 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-05-30 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-05-30 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-30 08:00:00","cutoff_time":"2026-05-30 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-30 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-05-30 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-05-30 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-30 16:00:00","cutoff_time":"2026-05-30 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-30 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-05-30 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-05-31 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-31 00:00:00","cutoff_time":"2026-05-30 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-31 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-05-31 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-05-31 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-31 08:00:00","cutoff_time":"2026-05-31 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-31 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-05-31 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-05-31 13:12:52] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2605-052","SMP2605-051"],"current_level":1} 
[2026-05-31 14:27:02] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2605-051","SMP2605-052"],"current_level":2} 
[2026-05-31 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-05-31 16:00:00","cutoff_time":"2026-05-31 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-05-31 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-06-01 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-01 00:00:00","cutoff_time":"2026-05-31 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-01 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-06-01 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-06-01 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-01 08:00:00","cutoff_time":"2026-06-01 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-01 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-06-01 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-06-01 10:30:09] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2605-046"],"current_level":3} 
[2026-06-01 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-01 16:00:00","cutoff_time":"2026-06-01 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-01 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-06-01 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-06-02 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-02 00:00:00","cutoff_time":"2026-06-01 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-02 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-06-02 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-06-02 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-02 08:00:00","cutoff_time":"2026-06-02 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-02 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2605-051","SMP2605-052"]} 
[2026-06-02 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2605-046"]} 
[2026-06-02 08:52:40] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2605-051","SMP2605-052"],"current_level":3} 
[2026-06-02 09:10:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-046"],"current_level":5} 
[2026-06-02 09:16:25] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-051"],"current_level":5} 
[2026-06-02 09:17:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2605-052"],"current_level":5} 
[2026-06-02 09:48:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-046"],"current_level":6} 
[2026-06-02 09:51:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-051"],"current_level":6} 
[2026-06-02 09:52:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2605-052"],"current_level":6} 
[2026-06-02 11:59:57] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-001","SMP2606-002"],"current_level":0} 
[2026-06-02 12:35:35] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2606-001","SMP2606-002"],"current_level":1} 
[2026-06-02 12:50:38] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-001","SMP2606-002"],"current_level":2} 
[2026-06-02 12:55:48] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-001","SMP2606-002"],"current_level":3} 
[2026-06-02 13:31:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-001"],"current_level":5} 
[2026-06-02 13:33:09] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-001"],"current_level":6} 
[2026-06-02 13:35:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-002"],"current_level":5} 
[2026-06-02 13:51:38] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-002"],"current_level":6} 
[2026-06-02 13:57:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-003"],"current_level":0} 
[2026-06-02 15:39:42] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-003"],"current_level":2} 
[2026-06-02 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-02 16:00:00","cutoff_time":"2026-06-02 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-02 16:20:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-004"],"current_level":0} 
[2026-06-02 16:25:22] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-004"],"current_level":1} 
[2026-06-02 16:33:30] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-004"],"current_level":2} 
[2026-06-02 16:37:12] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-003","SMP2606-004"],"current_level":3} 
[2026-06-02 16:41:35] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2606-003"],"current_level":4} 
[2026-06-02 16:58:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-004"],"current_level":5} 
[2026-06-02 17:02:25] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-004"],"current_level":6} 
[2026-06-03 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-03 00:00:00","cutoff_time":"2026-06-02 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-03 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-03 08:00:00","cutoff_time":"2026-06-03 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-03 13:03:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-005"],"current_level":0} 
[2026-06-03 13:16:15] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-005"],"current_level":1} 
[2026-06-03 15:21:04] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-005"],"current_level":2} 
[2026-06-03 15:37:10] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-005"],"current_level":3} 
[2026-06-03 15:47:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-005"],"current_level":5} 
[2026-06-03 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-03 16:00:00","cutoff_time":"2026-06-03 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-03 16:25:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-006"],"current_level":0} 
[2026-06-03 16:44:19] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-006"],"current_level":2} 
[2026-06-03 16:46:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-007"],"current_level":0} 
[2026-06-03 16:46:49] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-006"],"current_level":3} 
[2026-06-03 16:49:25] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-006"],"current_level":5} 
[2026-06-04 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-04 00:00:00","cutoff_time":"2026-06-03 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-04 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-005"]} 
[2026-06-04 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-04 08:00:00","cutoff_time":"2026-06-04 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-04 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-007"]} 
[2026-06-04 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-005","SMP2606-006"]} 
[2026-06-04 08:17:20] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-005"],"current_level":6} 
[2026-06-04 08:22:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-006"],"current_level":6} 
[2026-06-04 09:04:43] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-007"],"current_level":1} 
[2026-06-04 13:28:20] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-008"],"current_level":0} 
[2026-06-04 13:29:31] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-008"],"current_level":1} 
[2026-06-04 14:05:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-007","SMP2606-008"],"current_level":3} 
[2026-06-04 14:16:04] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-007"],"current_level":5} 
[2026-06-04 14:20:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-009"],"current_level":0} 
[2026-06-04 14:35:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-007"],"current_level":6} 
[2026-06-04 14:44:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-010"],"current_level":0} 
[2026-06-04 14:47:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-008"],"current_level":0} 
[2026-06-04 15:02:23] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-008","SMP2606-010"],"current_level":1} 
[2026-06-04 15:06:23] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-008","SMP2606-009","SMP2606-010"],"current_level":3} 
[2026-06-04 15:21:25] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-008"],"current_level":5} 
[2026-06-04 15:34:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-009"],"current_level":0} 
[2026-06-04 15:34:30] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-010"],"current_level":4} 
[2026-06-04 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-04 16:00:00","cutoff_time":"2026-06-04 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-04 16:36:09] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-009"],"current_level":3} 
[2026-06-04 16:53:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-008"],"current_level":6} 
[2026-06-04 17:11:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-009"],"current_level":5} 
[2026-06-05 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-05 00:00:00","cutoff_time":"2026-06-04 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-05 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-05 08:00:00","cutoff_time":"2026-06-05 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-05 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-009"]} 
[2026-06-05 09:03:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-011"],"current_level":0} 
[2026-06-05 09:08:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-012"],"current_level":0} 
[2026-06-05 09:26:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-013"],"current_level":0} 
[2026-06-05 09:29:24] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-013"],"current_level":1} 
[2026-06-05 09:30:48] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-011"],"current_level":2} 
[2026-06-05 09:34:27] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-011"],"current_level":3} 
[2026-06-05 09:36:02] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-013"],"current_level":2} 
[2026-06-05 09:38:10] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-013"],"current_level":3} 
[2026-06-05 09:39:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-012"],"current_level":3} 
[2026-06-05 09:53:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-011"],"current_level":5} 
[2026-06-05 10:28:10] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2606-013"],"current_level":4} 
[2026-06-05 10:56:30] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-012"],"current_level":5} 
[2026-06-05 14:22:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-014"],"current_level":0} 
[2026-06-05 14:46:44] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-014"],"current_level":1} 
[2026-06-05 15:12:48] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-014"],"current_level":2} 
[2026-06-05 15:27:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-014"],"current_level":3} 
[2026-06-05 15:33:44] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-014"],"current_level":4} 
[2026-06-05 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-05 16:00:00","cutoff_time":"2026-06-05 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-05 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-009"]} 
[2026-06-06 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-06 00:00:00","cutoff_time":"2026-06-05 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-06 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-06 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-06 08:00:00","cutoff_time":"2026-06-06 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-06 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-06 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-06 16:00:00","cutoff_time":"2026-06-06 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-06 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-07 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-07 00:00:00","cutoff_time":"2026-06-06 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-07 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-07 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-07 08:00:00","cutoff_time":"2026-06-07 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-07 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-07 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-07 16:00:00","cutoff_time":"2026-06-07 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-07 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-08 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-08 00:00:00","cutoff_time":"2026-06-07 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-08 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-08 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-08 08:00:00","cutoff_time":"2026-06-08 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-08 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-009","SMP2606-011","SMP2606-012"]} 
[2026-06-08 08:25:56] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-009"],"current_level":6} 
[2026-06-08 08:26:43] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-011"],"current_level":6} 
[2026-06-08 08:31:45] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-012"],"current_level":6} 
[2026-06-08 11:10:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-015"],"current_level":0} 
[2026-06-08 11:16:09] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-015"],"current_level":2} 
[2026-06-08 11:26:04] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-015"],"current_level":3} 
[2026-06-08 11:41:56] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-015"],"current_level":5} 
[2026-06-08 11:49:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-016"],"current_level":0} 
[2026-06-08 12:56:42] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2606-016"],"current_level":1} 
[2026-06-08 13:39:26] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-016"],"current_level":2} 
[2026-06-08 13:52:08] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-016"],"current_level":3} 
[2026-06-08 14:17:04] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-016"],"current_level":5} 
[2026-06-08 14:24:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-016"],"current_level":6} 
[2026-06-08 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-08 16:00:00","cutoff_time":"2026-06-08 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-09 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-09 00:00:00","cutoff_time":"2026-06-08 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-09 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-015"]} 
[2026-06-09 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-09 08:00:00","cutoff_time":"2026-06-09 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-09 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-015"]} 
[2026-06-09 08:26:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-015"],"current_level":6} 
[2026-06-09 09:10:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-017"],"current_level":0} 
[2026-06-09 09:24:34] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2606-017"],"current_level":1} 
[2026-06-09 09:34:31] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-017"],"current_level":2} 
[2026-06-09 10:29:57] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-017"],"current_level":3} 
[2026-06-09 10:59:56] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-017"],"current_level":5} 
[2026-06-09 11:43:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-018"],"current_level":0} 
[2026-06-09 11:48:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-019"],"current_level":0} 
[2026-06-09 11:50:56] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-019"],"current_level":1} 
[2026-06-09 12:26:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-020"],"current_level":0} 
[2026-06-09 13:13:24] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-017"],"current_level":6} 
[2026-06-09 13:56:50] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-020"],"current_level":1} 
[2026-06-09 14:00:41] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-019"],"current_level":2} 
[2026-06-09 14:22:02] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-020"],"current_level":2} 
[2026-06-09 14:38:21] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-020"],"current_level":3} 
[2026-06-09 14:56:12] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-020"],"current_level":4} 
[2026-06-09 15:25:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-021"],"current_level":0} 
[2026-06-09 15:42:55] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-021"],"current_level":2} 
[2026-06-09 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-09 16:00:00","cutoff_time":"2026-06-09 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-09 16:25:44] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-018"],"current_level":2} 
[2026-06-09 16:25:51] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-019","SMP2606-021"],"current_level":3} 
[2026-06-09 16:40:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-018"],"current_level":0} 
[2026-06-09 16:42:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-022"],"current_level":0} 
[2026-06-09 16:44:23] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-022"],"current_level":1} 
[2026-06-09 16:47:18] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-018"],"current_level":2} 
[2026-06-09 16:49:25] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-018"],"current_level":3} 
[2026-06-09 16:55:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-019"],"current_level":5} 
[2026-06-09 16:57:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-021"],"current_level":5} 
[2026-06-09 16:59:26] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-018"],"current_level":5} 
[2026-06-09 17:08:06] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-022"],"current_level":2} 
[2026-06-09 17:20:40] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-022"],"current_level":3} 
[2026-06-10 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-10 00:00:00","cutoff_time":"2026-06-09 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-10 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-10 08:00:00","cutoff_time":"2026-06-10 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-10 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-019","SMP2606-021","SMP2606-018"]} 
[2026-06-10 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-022"]} 
[2026-06-10 08:19:59] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-019"],"current_level":6} 
[2026-06-10 08:20:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-021"],"current_level":6} 
[2026-06-10 08:22:09] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-018"],"current_level":6} 
[2026-06-10 08:26:27] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-022"],"current_level":4} 
[2026-06-10 08:53:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-023"],"current_level":0} 
[2026-06-10 09:25:53] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2606-023"],"current_level":1} 
[2026-06-10 09:43:49] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-023"],"current_level":2} 
[2026-06-10 10:00:15] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-023"],"current_level":3} 
[2026-06-10 10:20:44] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-023"],"current_level":5} 
[2026-06-10 14:48:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-024"],"current_level":0} 
[2026-06-10 14:51:54] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-024"],"current_level":2} 
[2026-06-10 14:53:50] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-023"],"current_level":6} 
[2026-06-10 15:11:43] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-024"],"current_level":3} 
[2026-06-10 15:25:06] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-024"],"current_level":5} 
[2026-06-10 15:27:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-025"],"current_level":0} 
[2026-06-10 15:31:29] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-025"],"current_level":2} 
[2026-06-10 15:32:22] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-024"],"current_level":6} 
[2026-06-10 15:36:04] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-025"],"current_level":3} 
[2026-06-10 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-10 16:00:00","cutoff_time":"2026-06-10 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-10 16:36:33] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-025"],"current_level":4} 
[2026-06-10 16:47:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-026"],"current_level":0} 
[2026-06-10 16:56:58] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-026"],"current_level":1} 
[2026-06-11 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-11 00:00:00","cutoff_time":"2026-06-10 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-11 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-11 08:00:00","cutoff_time":"2026-06-11 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-11 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2606-026"]} 
[2026-06-11 10:40:14] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-026"],"current_level":2} 
[2026-06-11 11:00:04] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-026"],"current_level":3} 
[2026-06-11 13:17:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-027"],"current_level":0} 
[2026-06-11 13:18:57] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2606-027"],"current_level":1} 
[2026-06-11 13:23:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-028"],"current_level":0} 
[2026-06-11 13:30:13] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-028"],"current_level":1} 
[2026-06-11 13:32:22] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-028"],"current_level":2} 
[2026-06-11 13:37:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-029"],"current_level":0} 
[2026-06-11 13:39:43] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-029"],"current_level":2} 
[2026-06-11 13:45:30] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-027"],"current_level":2} 
[2026-06-11 13:53:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-027"],"current_level":3} 
[2026-06-11 14:00:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-026"],"current_level":0} 
[2026-06-11 14:42:23] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-026"],"current_level":1} 
[2026-06-11 14:43:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-027"],"current_level":5} 
[2026-06-11 15:16:49] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-027"],"current_level":6} 
[2026-06-11 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-11 16:00:00","cutoff_time":"2026-06-11 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-11 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2606-026"]} 
[2026-06-11 16:36:16] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-026"],"current_level":2} 
[2026-06-12 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-12 00:00:00","cutoff_time":"2026-06-11 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-12 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2606-028","SMP2606-029"]} 
[2026-06-12 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-12 08:00:00","cutoff_time":"2026-06-12 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-12 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2606-026","SMP2606-028","SMP2606-029"]} 
[2026-06-12 09:40:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-030"],"current_level":0} 
[2026-06-12 09:42:13] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-030"],"current_level":1} 
[2026-06-12 10:27:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-026","SMP2606-028","SMP2606-029","SMP2606-030"],"current_level":3} 
[2026-06-12 10:37:07] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-026"],"current_level":5} 
[2026-06-12 10:41:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-030"],"current_level":5} 
[2026-06-12 11:16:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-031"],"current_level":0} 
[2026-06-12 11:16:55] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-031"],"current_level":2} 
[2026-06-12 11:25:47] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-031"],"current_level":3} 
[2026-06-12 13:41:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-029"],"current_level":5} 
[2026-06-12 13:48:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-032"],"current_level":0} 
[2026-06-12 13:50:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-033"],"current_level":0} 
[2026-06-12 14:01:02] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-032"],"current_level":1} 
[2026-06-12 14:46:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-026"],"current_level":6} 
[2026-06-12 14:47:06] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-030"],"current_level":6} 
[2026-06-12 14:48:11] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-029"],"current_level":6} 
[2026-06-12 14:54:24] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-033"],"current_level":2} 
[2026-06-12 15:05:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-031"],"current_level":5} 
[2026-06-12 15:05:02] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-033"],"current_level":3} 
[2026-06-12 15:05:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-031"],"current_level":6} 
[2026-06-12 15:32:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-034"],"current_level":0} 
[2026-06-12 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-12 16:00:00","cutoff_time":"2026-06-12 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-12 16:53:11] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-034"],"current_level":1} 
[2026-06-12 16:57:26] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-032","SMP2606-034"],"current_level":2} 
[2026-06-12 17:22:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-032"],"current_level":0} 
[2026-06-13 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-13 00:00:00","cutoff_time":"2026-06-12 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-13 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-13 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-13 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-13 08:00:00","cutoff_time":"2026-06-13 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-13 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-13 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-13 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-13 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-13 16:00:00","cutoff_time":"2026-06-13 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-13 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-13 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-13 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-14 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-14 00:00:00","cutoff_time":"2026-06-13 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-14 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-14 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-14 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-14 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-14 08:00:00","cutoff_time":"2026-06-14 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-14 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-14 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-14 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-14 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-14 16:00:00","cutoff_time":"2026-06-14 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-14 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-14 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-14 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-15 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-15 00:00:00","cutoff_time":"2026-06-14 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-15 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-15 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-15 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-15 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-15 08:00:00","cutoff_time":"2026-06-15 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-15 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-032"]} 
[2026-06-15 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-028"]} 
[2026-06-15 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-033"]} 
[2026-06-15 08:10:29] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-033"],"current_level":5} 
[2026-06-15 08:17:30] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-032"],"current_level":1} 
[2026-06-15 08:53:37] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-032"],"current_level":2} 
[2026-06-15 09:08:03] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-033"],"current_level":6} 
[2026-06-15 09:39:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-035"],"current_level":0} 
[2026-06-15 09:41:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-036"],"current_level":0} 
[2026-06-15 09:43:08] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-035"],"current_level":1} 
[2026-06-15 10:11:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-037"],"current_level":0} 
[2026-06-15 10:16:09] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-036","SMP2606-037"],"current_level":3} 
[2026-06-15 10:18:25] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2606-036"],"current_level":4} 
[2026-06-15 10:32:49] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-037"],"current_level":5} 
[2026-06-15 11:16:37] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-032","SMP2606-035"],"current_level":3} 
[2026-06-15 11:21:00] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-032"],"current_level":5} 
[2026-06-15 11:40:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-032"],"current_level":6} 
[2026-06-15 11:50:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-037"],"current_level":0} 
[2026-06-15 11:53:29] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-037"],"current_level":3} 
[2026-06-15 13:13:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-038"],"current_level":0} 
[2026-06-15 13:32:50] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-035"],"current_level":5} 
[2026-06-15 13:43:31] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-028"],"current_level":4} 
[2026-06-15 13:50:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-039"],"current_level":0} 
[2026-06-15 13:51:28] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-039"],"current_level":1} 
[2026-06-15 14:04:48] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-039"],"current_level":2} 
[2026-06-15 14:09:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-039"],"current_level":5} 
[2026-06-15 14:23:53] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-035"],"current_level":6} 
[2026-06-15 14:30:32] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-040"],"current_level":0} 
[2026-06-15 14:30:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-041"],"current_level":0} 
[2026-06-15 14:36:01] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-038"],"current_level":2} 
[2026-06-15 14:38:06] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2606-040"],"current_level":1} 
[2026-06-15 14:47:13] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-040"],"current_level":2} 
[2026-06-15 14:54:12] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-038","SMP2606-040"],"current_level":3} 
[2026-06-15 15:03:09] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-038"],"current_level":5} 
[2026-06-15 15:04:23] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-040"],"current_level":5} 
[2026-06-15 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-15 16:00:00","cutoff_time":"2026-06-15 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-15 16:46:25] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-038"],"current_level":6} 
[2026-06-15 16:46:43] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-040"],"current_level":6} 
[2026-06-15 16:47:19] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-039"],"current_level":6} 
[2026-06-15 17:06:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-042"],"current_level":0} 
[2026-06-16 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-16 00:00:00","cutoff_time":"2026-06-15 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-16 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-041"]} 
[2026-06-16 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-037"]} 
[2026-06-16 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-16 08:00:00","cutoff_time":"2026-06-16 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-16 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-16 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-041"]} 
[2026-06-16 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-037"]} 
[2026-06-16 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-16 16:00:00","cutoff_time":"2026-06-16 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-16 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-16 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-041"]} 
[2026-06-16 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-037"]} 
[2026-06-17 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-17 00:00:00","cutoff_time":"2026-06-16 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-17 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-17 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-041"]} 
[2026-06-17 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-037"]} 
[2026-06-17 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-17 08:00:00","cutoff_time":"2026-06-17 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-17 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-17 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-041"]} 
[2026-06-17 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-037"]} 
[2026-06-17 08:07:03] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-037"],"current_level":5} 
[2026-06-17 08:37:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-043"],"current_level":0} 
[2026-06-17 08:38:02] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-043"],"current_level":2} 
[2026-06-17 08:54:29] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-042"],"current_level":1} 
[2026-06-17 08:57:28] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-042"],"current_level":2} 
[2026-06-17 09:01:15] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-037"],"current_level":6} 
[2026-06-17 09:15:50] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-041"],"current_level":1} 
[2026-06-17 09:18:32] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-041"],"current_level":2} 
[2026-06-17 10:01:07] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-041","SMP2606-042","SMP2606-043"],"current_level":3} 
[2026-06-17 14:53:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-044"],"current_level":0} 
[2026-06-17 15:06:22] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-045"],"current_level":0} 
[2026-06-17 15:19:34] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-044"],"current_level":3} 
[2026-06-17 15:23:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-046"],"current_level":0} 
[2026-06-17 15:25:08] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2606-046"],"current_level":1} 
[2026-06-17 15:32:13] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-044"],"current_level":5} 
[2026-06-17 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-17 16:00:00","cutoff_time":"2026-06-17 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-17 16:40:20] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-041"],"current_level":4} 
[2026-06-17 16:41:29] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-043"],"current_level":4} 
[2026-06-17 17:00:20] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-045","SMP2606-046"],"current_level":2} 
[2026-06-18 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-18 00:00:00","cutoff_time":"2026-06-17 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-18 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-044"]} 
[2026-06-18 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-18 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-18 08:00:00","cutoff_time":"2026-06-18 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-18 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2606-045","SMP2606-046"]} 
[2026-06-18 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-044"]} 
[2026-06-18 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-18 08:25:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-044"],"current_level":6} 
[2026-06-18 15:13:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-047"],"current_level":0} 
[2026-06-18 15:33:45] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2606-047"],"current_level":1} 
[2026-06-18 15:41:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-047"],"current_level":0} 
[2026-06-18 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-18 16:00:00","cutoff_time":"2026-06-18 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-18 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2606-045","SMP2606-046"]} 
[2026-06-18 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2606-042"]} 
[2026-06-18 16:20:46] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-042"],"current_level":4} 
[2026-06-18 16:24:15] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-045","SMP2606-046"],"current_level":3} 
[2026-06-18 16:45:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-045"],"current_level":5} 
[2026-06-18 16:45:59] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-046"],"current_level":5} 
[2026-06-18 16:53:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-045"],"current_level":6} 
[2026-06-18 17:00:13] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-046"],"current_level":6} 
[2026-06-19 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-19 00:00:00","cutoff_time":"2026-06-18 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-19 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk18@spunindo.com {"approver":"Vivi Alayda","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-19 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-19 08:00:00","cutoff_time":"2026-06-19 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-19 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk18@spunindo.com {"approver":"Vivi Alayda","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-19 08:03:42] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2606-047"],"current_level":1} 
[2026-06-19 09:15:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-047"],"current_level":0} 
[2026-06-19 09:43:29] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2606-047"],"current_level":1} 
[2026-06-19 09:51:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-047"],"current_level":0} 
[2026-06-19 09:57:30] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2606-047"],"current_level":1} 
[2026-06-19 09:59:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-048"],"current_level":0} 
[2026-06-19 10:03:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-049"],"current_level":0} 
[2026-06-19 10:06:28] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-048"],"current_level":1} 
[2026-06-19 11:13:28] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-047"],"current_level":2} 
[2026-06-19 11:27:24] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-048"],"current_level":2} 
[2026-06-19 11:50:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-050"],"current_level":0} 
[2026-06-19 14:09:49] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-050"],"current_level":1} 
[2026-06-19 14:20:50] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-050"],"current_level":2} 
[2026-06-19 14:40:13] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-050"],"current_level":5} 
[2026-06-19 15:28:22] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-050"],"current_level":6} 
[2026-06-19 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-19 16:00:00","cutoff_time":"2026-06-19 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-19 16:12:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-052"],"current_level":0} 
[2026-06-19 16:12:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-051"],"current_level":0} 
[2026-06-19 16:21:19] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-052"],"current_level":1} 
[2026-06-19 16:26:54] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-052"],"current_level":2} 
[2026-06-19 17:53:00] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-048","SMP2606-052"],"current_level":3} 
[2026-06-20 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-20 00:00:00","cutoff_time":"2026-06-19 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-20 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2606-049"]} 
[2026-06-20 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-20 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-20 08:00:00","cutoff_time":"2026-06-20 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-20 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":2,"sample_ids":["SMP2606-049","SMP2606-051"]} 
[2026-06-20 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-20 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-20 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-20 16:00:00","cutoff_time":"2026-06-20 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-20 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":2,"sample_ids":["SMP2606-049","SMP2606-051"]} 
[2026-06-20 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-20 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-20 19:30:15] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-049","SMP2606-051"],"current_level":2} 
[2026-06-21 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-21 00:00:00","cutoff_time":"2026-06-20 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-21 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-21 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-21 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-21 08:00:00","cutoff_time":"2026-06-21 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-21 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2606-047","SMP2606-051"]} 
[2026-06-21 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-21 08:32:55] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-047","SMP2606-051"],"current_level":3} 
[2026-06-21 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-21 16:00:00","cutoff_time":"2026-06-21 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-21 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-22 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-22 00:00:00","cutoff_time":"2026-06-21 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-22 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2606-051"]} 
[2026-06-22 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-22 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-22 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-22 08:00:00","cutoff_time":"2026-06-22 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-22 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2606-051"]} 
[2026-06-22 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-22 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2606-048","SMP2606-052"]} 
[2026-06-22 08:18:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-049"],"current_level":0} 
[2026-06-22 08:34:20] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2606-051"],"current_level":4} 
[2026-06-22 09:13:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-053"],"current_level":0} 
[2026-06-22 09:29:39] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-048"],"current_level":4} 
[2026-06-22 09:30:39] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-052"],"current_level":4} 
[2026-06-22 09:34:48] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-053"],"current_level":1} 
[2026-06-22 09:47:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-053"],"current_level":0} 
[2026-06-22 09:55:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-054"],"current_level":0} 
[2026-06-22 09:56:34] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-054"],"current_level":3} 
[2026-06-22 10:28:53] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-053"],"current_level":1} 
[2026-06-22 10:29:11] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-055"],"current_level":0} 
[2026-06-22 10:29:44] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-055"],"current_level":1} 
[2026-06-22 10:58:46] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-053","SMP2606-055"],"current_level":3} 
[2026-06-22 11:15:12] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-053"],"current_level":4} 
[2026-06-22 11:16:03] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-055"],"current_level":4} 
[2026-06-22 11:20:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-056"],"current_level":0} 
[2026-06-22 11:44:25] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-056"],"current_level":1} 
[2026-06-22 15:11:33] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-056"],"current_level":2} 
[2026-06-22 15:15:49] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-056"],"current_level":3} 
[2026-06-22 15:29:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-056"],"current_level":5} 
[2026-06-22 15:29:58] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-056"],"current_level":6} 
[2026-06-22 15:31:53] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-057"],"current_level":0} 
[2026-06-22 15:33:34] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-054"],"current_level":5} 
[2026-06-22 15:39:19] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-049"],"current_level":2} 
[2026-06-22 15:42:56] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-049"],"current_level":3} 
[2026-06-22 15:52:37] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-049"],"current_level":5} 
[2026-06-22 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-22 16:00:00","cutoff_time":"2026-06-22 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-22 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-22 16:10:52] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-057"],"current_level":1} 
[2026-06-22 16:24:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-058"],"current_level":0} 
[2026-06-22 16:31:10] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-058"],"current_level":1} 
[2026-06-22 16:36:35] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-058"],"current_level":2} 
[2026-06-22 16:44:06] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-058"],"current_level":3} 
[2026-06-22 17:00:13] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-058"],"current_level":5} 
[2026-06-23 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-23 00:00:00","cutoff_time":"2026-06-22 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-23 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-054","SMP2606-049"]} 
[2026-06-23 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-23 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-23 08:00:00","cutoff_time":"2026-06-23 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-23 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2606-057"]} 
[2026-06-23 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2606-054","SMP2606-049","SMP2606-058"]} 
[2026-06-23 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-23 09:38:34] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-054"],"current_level":6} 
[2026-06-23 09:38:59] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-049"],"current_level":6} 
[2026-06-23 09:41:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-058"],"current_level":6} 
[2026-06-23 12:11:13] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-057"],"current_level":2} 
[2026-06-23 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-23 16:00:00","cutoff_time":"2026-06-23 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-23 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-24 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-24 00:00:01","cutoff_time":"2026-06-23 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-06-24 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2606-057"]} 
[2026-06-24 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2606-047"]} 
[2026-06-24 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-24 08:00:00","cutoff_time":"2026-06-24 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-24 08:42:34] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2606-047"],"current_level":4} 
[2026-06-24 09:51:16] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-057"],"current_level":3} 
[2026-06-24 10:20:45] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-057"],"current_level":5} 
[2026-06-24 10:50:59] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-057"],"current_level":6} 
[2026-06-24 12:22:53] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-059"],"current_level":0} 
[2026-06-24 12:32:15] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-059"],"current_level":2} 
[2026-06-24 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-24 16:00:00","cutoff_time":"2026-06-24 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-24 16:27:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-060"],"current_level":0} 
[2026-06-24 16:41:09] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-060"],"current_level":1} 
[2026-06-24 16:42:31] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-060"],"current_level":2} 
[2026-06-24 16:46:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-061"],"current_level":0} 
[2026-06-24 16:55:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-062"],"current_level":0} 
[2026-06-25 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-25 00:00:00","cutoff_time":"2026-06-24 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-25 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2606-059"]} 
[2026-06-25 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-25 08:00:00","cutoff_time":"2026-06-25 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-25 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-062"]} 
[2026-06-25 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2606-061"]} 
[2026-06-25 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2606-059","SMP2606-060"]} 
[2026-06-25 08:22:53] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-061"],"current_level":1} 
[2026-06-25 08:33:57] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-061"],"current_level":2} 
[2026-06-25 08:35:43] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-061"],"current_level":3} 
[2026-06-25 09:42:21] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-062"],"current_level":1} 
[2026-06-25 10:47:55] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-059","SMP2606-060"],"current_level":3} 
[2026-06-25 10:58:02] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-059"],"current_level":5} 
[2026-06-25 11:00:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-060"],"current_level":5} 
[2026-06-25 11:29:25] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-059"],"current_level":6} 
[2026-06-25 11:33:40] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-060"],"current_level":6} 
[2026-06-25 13:10:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-060"],"current_level":0} 
[2026-06-25 13:15:22] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-060"],"current_level":1} 
[2026-06-25 13:23:01] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-060"],"current_level":2} 
[2026-06-25 14:08:39] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-060"],"current_level":3} 
[2026-06-25 14:14:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-060"],"current_level":5} 
[2026-06-25 14:14:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-065"],"current_level":0} 
[2026-06-25 14:16:32] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-065"],"current_level":2} 
[2026-06-25 14:34:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-061"],"current_level":0} 
[2026-06-25 14:37:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-063"],"current_level":0} 
[2026-06-25 14:39:45] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2606-061"],"current_level":1} 
[2026-06-25 14:41:03] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-061"],"current_level":2} 
[2026-06-25 14:43:22] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-063","SMP2606-065","SMP2606-062"],"current_level":3} 
[2026-06-25 14:50:06] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-063"],"current_level":4} 
[2026-06-25 14:54:32] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2606-065"],"current_level":4} 
[2026-06-25 15:07:45] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-061"],"current_level":3} 
[2026-06-25 15:59:14] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-061"],"current_level":5} 
[2026-06-25 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-25 16:00:00","cutoff_time":"2026-06-25 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-25 16:01:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-064"],"current_level":0} 
[2026-06-25 16:12:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-062"],"current_level":0} 
[2026-06-25 16:15:57] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-062"],"current_level":1} 
[2026-06-25 16:58:50] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-061"],"current_level":6} 
[2026-06-25 17:38:49] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-066"],"current_level":0} 
[2026-06-25 17:51:23] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-062","SMP2606-066"],"current_level":3} 
[2026-06-26 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-26 00:00:00","cutoff_time":"2026-06-25 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-26 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-060"]} 
[2026-06-26 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-26 08:00:00","cutoff_time":"2026-06-26 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-26 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2606-064"]} 
[2026-06-26 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2606-060"]} 
[2026-06-26 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2606-062"]} 
[2026-06-26 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2606-066"]} 
[2026-06-26 09:03:27] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-064"],"current_level":2} 
[2026-06-26 09:26:24] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-060"],"current_level":6} 
[2026-06-26 09:55:44] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-064"],"current_level":3} 
[2026-06-26 11:58:37] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2606-066"],"current_level":4} 
[2026-06-26 15:45:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-064"],"current_level":5} 
[2026-06-26 15:49:21] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-062"],"current_level":5} 
[2026-06-26 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-26 16:00:00","cutoff_time":"2026-06-26 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-27 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-27 00:00:00","cutoff_time":"2026-06-26 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-27 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-27 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-27 08:00:00","cutoff_time":"2026-06-27 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-27 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-27 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-27 16:00:00","cutoff_time":"2026-06-27 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-27 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-28 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-28 00:00:00","cutoff_time":"2026-06-27 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-28 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-28 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-28 08:00:00","cutoff_time":"2026-06-28 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-28 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-28 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-28 16:00:00","cutoff_time":"2026-06-28 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-28 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-29 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-29 00:00:00","cutoff_time":"2026-06-28 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-29 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-29 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-29 08:00:00","cutoff_time":"2026-06-29 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-29 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2606-064","SMP2606-062"]} 
[2026-06-29 08:11:05] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-064"],"current_level":6} 
[2026-06-29 08:24:42] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-062"],"current_level":6} 
[2026-06-29 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-29 16:00:00","cutoff_time":"2026-06-29 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-30 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-30 00:00:00","cutoff_time":"2026-06-29 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-30 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-30 08:00:00","cutoff_time":"2026-06-30 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-30 09:15:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-067"],"current_level":0} 
[2026-06-30 09:15:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-068"],"current_level":0} 
[2026-06-30 09:17:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-068"],"current_level":3} 
[2026-06-30 09:22:33] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-067"],"current_level":2} 
[2026-06-30 09:24:49] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-068"],"current_level":5} 
[2026-06-30 09:38:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-069"],"current_level":0} 
[2026-06-30 09:40:50] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-068"],"current_level":6} 
[2026-06-30 09:43:03] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-069"],"current_level":1} 
[2026-06-30 10:12:56] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-067"],"current_level":3} 
[2026-06-30 10:19:47] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2606-067"],"current_level":4} 
[2026-06-30 10:41:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-069"],"current_level":0} 
[2026-06-30 10:41:27] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-069"],"current_level":1} 
[2026-06-30 10:52:19] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-069"],"current_level":3} 
[2026-06-30 11:05:10] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2606-069"],"current_level":4} 
[2026-06-30 11:45:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-070","SMP2606-071"],"current_level":0} 
[2026-06-30 11:48:52] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-070","SMP2606-071"],"current_level":1} 
[2026-06-30 11:50:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-072"],"current_level":0} 
[2026-06-30 11:50:33] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-072"],"current_level":1} 
[2026-06-30 11:52:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-071"],"current_level":0} 
[2026-06-30 11:58:57] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2606-071"],"current_level":1} 
[2026-06-30 12:00:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-073"],"current_level":0} 
[2026-06-30 13:15:52] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2606-070","SMP2606-071","SMP2606-072"],"current_level":2} 
[2026-06-30 14:13:10] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-072","SMP2606-071","SMP2606-070"],"current_level":3} 
[2026-06-30 14:16:58] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-070"],"current_level":5} 
[2026-06-30 14:19:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-071"],"current_level":5} 
[2026-06-30 14:21:26] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-072"],"current_level":5} 
[2026-06-30 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-06-30 16:00:00","cutoff_time":"2026-06-30 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-06-30 16:06:43] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-070"],"current_level":6} 
[2026-06-30 16:06:59] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-071"],"current_level":6} 
[2026-06-30 16:08:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-072"],"current_level":6} 
[2026-07-01 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-01 00:00:00","cutoff_time":"2026-06-30 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-01 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-073"]} 
[2026-07-01 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-01 08:00:00","cutoff_time":"2026-07-01 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-01 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2606-073"]} 
[2026-07-01 08:51:53] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-073"],"current_level":1} 
[2026-07-01 10:45:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-073"],"current_level":0} 
[2026-07-01 10:47:09] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2606-073"],"current_level":1} 
[2026-07-01 10:55:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-001"],"current_level":0} 
[2026-07-01 10:58:04] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-001"],"current_level":1} 
[2026-07-01 11:01:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-002"],"current_level":0} 
[2026-07-01 11:02:49] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-001"],"current_level":0} 
[2026-07-01 11:07:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-003"],"current_level":0} 
[2026-07-01 11:14:00] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-002"],"current_level":1} 
[2026-07-01 11:15:51] production.INFO: handleSampleApproval: Event received from Ayreen Marcelina (007) {"sample_ids":["SMP2607-003"],"current_level":1} 
[2026-07-01 11:18:09] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-001"],"current_level":1} 
[2026-07-01 11:53:53] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-002","SMP2607-003"],"current_level":3} 
[2026-07-01 13:16:35] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-001"],"current_level":2} 
[2026-07-01 13:45:06] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-002"],"current_level":4} 
[2026-07-01 13:55:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-004"],"current_level":0} 
[2026-07-01 13:59:14] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-001"],"current_level":3} 
[2026-07-01 14:00:36] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-004"],"current_level":2} 
[2026-07-01 14:05:06] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-004"],"current_level":3} 
[2026-07-01 14:21:58] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-004"],"current_level":5} 
[2026-07-01 14:26:53] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-003"],"current_level":4} 
[2026-07-01 14:55:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-001"],"current_level":0} 
[2026-07-01 14:57:19] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-001"],"current_level":1} 
[2026-07-01 15:01:18] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-001"],"current_level":2} 
[2026-07-01 15:07:38] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-001"],"current_level":3} 
[2026-07-01 15:23:00] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-001"],"current_level":5} 
[2026-07-01 15:32:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-005"],"current_level":0} 
[2026-07-01 15:34:57] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2607-005"],"current_level":1} 
[2026-07-01 15:37:32] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-005"],"current_level":2} 
[2026-07-01 15:49:28] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-005"],"current_level":3} 
[2026-07-01 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-01 16:00:00","cutoff_time":"2026-07-01 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-01 16:38:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-005"],"current_level":5} 
[2026-07-01 16:50:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-006"],"current_level":0} 
[2026-07-01 16:53:35] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-006"],"current_level":1} 
[2026-07-01 17:00:15] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-006"],"current_level":2} 
[2026-07-01 17:10:32] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-006"],"current_level":3} 
[2026-07-02 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-02 00:00:00","cutoff_time":"2026-07-01 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-02 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2606-073"]} 
[2026-07-02 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2607-004","SMP2607-001"]} 
[2026-07-02 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-02 08:00:00","cutoff_time":"2026-07-02 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-02 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2606-073"]} 
[2026-07-02 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2607-004","SMP2607-001","SMP2607-005"]} 
[2026-07-02 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-006"]} 
[2026-07-02 08:27:11] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2606-073"],"current_level":2} 
[2026-07-02 08:28:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-007"],"current_level":0} 
[2026-07-02 08:30:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-006"],"current_level":5} 
[2026-07-02 08:34:44] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2606-073"],"current_level":3} 
[2026-07-02 08:36:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-004"],"current_level":6} 
[2026-07-02 08:36:39] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-001"],"current_level":6} 
[2026-07-02 08:39:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-008"],"current_level":0} 
[2026-07-02 08:42:36] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-005"],"current_level":6} 
[2026-07-02 08:43:55] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-007"],"current_level":1} 
[2026-07-02 08:51:05] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-006"],"current_level":6} 
[2026-07-02 08:56:48] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-008"],"current_level":3} 
[2026-07-02 09:00:49] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2606-073"],"current_level":4} 
[2026-07-02 10:47:38] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-008"],"current_level":5} 
[2026-07-02 13:20:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-008"],"current_level":6} 
[2026-07-02 14:05:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-009"],"current_level":0} 
[2026-07-02 14:09:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-010"],"current_level":0} 
[2026-07-02 14:10:39] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-009"],"current_level":1} 
[2026-07-02 14:25:00] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-009"],"current_level":2} 
[2026-07-02 14:28:25] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-009"],"current_level":3} 
[2026-07-02 14:29:46] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-009"],"current_level":5} 
[2026-07-02 14:35:22] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-011"],"current_level":0} 
[2026-07-02 14:39:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-012"],"current_level":0} 
[2026-07-02 14:43:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-013"],"current_level":0} 
[2026-07-02 14:44:24] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-007","SMP2607-013"],"current_level":2} 
[2026-07-02 14:58:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-014"],"current_level":0} 
[2026-07-02 15:05:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-015"],"current_level":0} 
[2026-07-02 15:11:49] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-014"],"current_level":1} 
[2026-07-02 15:15:27] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-012","SMP2607-011"],"current_level":1} 
[2026-07-02 15:40:58] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-011","SMP2607-012"],"current_level":2} 
[2026-07-02 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-02 16:00:00","cutoff_time":"2026-07-02 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-02 16:13:32] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-016"],"current_level":0} 
[2026-07-02 16:51:32] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-016"],"current_level":1} 
[2026-07-02 17:04:06] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-016"],"current_level":2} 
[2026-07-02 17:42:00] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-007","SMP2607-011","SMP2607-012","SMP2607-013","SMP2607-014","SMP2607-016"],"current_level":3} 
[2026-07-02 19:12:49] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-010","SMP2607-015"],"current_level":2} 
[2026-07-03 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-03 00:00:00","cutoff_time":"2026-07-02 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-03 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-009"]} 
[2026-07-03 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-03 08:00:00","cutoff_time":"2026-07-03 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-03 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2607-010","SMP2607-015"]} 
[2026-07-03 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-009"]} 
[2026-07-03 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-013","SMP2607-016"]} 
[2026-07-03 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2607-007","SMP2607-012","SMP2607-014"]} 
[2026-07-03 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2607-011"]} 
[2026-07-03 08:11:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-007"],"current_level":5} 
[2026-07-03 08:14:23] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-012"],"current_level":5} 
[2026-07-03 08:17:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-014"],"current_level":5} 
[2026-07-03 08:26:00] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-009"],"current_level":6} 
[2026-07-03 08:40:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-013"],"current_level":0} 
[2026-07-03 08:58:40] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-015","SMP2607-010"],"current_level":3} 
[2026-07-03 09:03:23] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-016"],"current_level":4} 
[2026-07-03 09:03:43] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-007"],"current_level":6} 
[2026-07-03 09:04:24] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-012"],"current_level":6} 
[2026-07-03 09:09:45] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-010"],"current_level":5} 
[2026-07-03 09:12:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-011"],"current_level":0} 
[2026-07-03 09:16:00] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-010"],"current_level":6} 
[2026-07-03 11:04:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-015"],"current_level":0} 
[2026-07-03 11:08:05] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-015"],"current_level":2} 
[2026-07-03 11:13:41] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-015"],"current_level":3} 
[2026-07-03 13:59:22] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-015"],"current_level":5} 
[2026-07-03 15:22:11] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-015"],"current_level":6} 
[2026-07-03 15:33:01] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-011"],"current_level":1} 
[2026-07-03 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-03 16:00:00","cutoff_time":"2026-07-03 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-04 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-04 00:00:00","cutoff_time":"2026-07-03 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-04 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-04 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-04 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-04 08:00:00","cutoff_time":"2026-07-04 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-04 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-04 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-04 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-04 16:00:00","cutoff_time":"2026-07-04 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-04 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-04 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-05 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-05 00:00:00","cutoff_time":"2026-07-04 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-05 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-05 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-05 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-05 08:00:00","cutoff_time":"2026-07-05 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-05 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-05 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-05 16:00:05] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-05 16:00:05","cutoff_time":"2026-07-05 08:00:05","interval":"480 minutes (8 hours)"} 
[2026-07-05 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-05 16:00:09] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-06 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-06 00:00:00","cutoff_time":"2026-07-05 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-06 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-06 08:00:00","cutoff_time":"2026-07-06 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-06 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-011","SMP2607-013"]} 
[2026-07-06 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-014"]} 
[2026-07-06 08:45:27] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-011","SMP2607-013"],"current_level":2} 
[2026-07-06 09:02:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-017"],"current_level":0} 
[2026-07-06 09:14:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-018"],"current_level":0} 
[2026-07-06 09:16:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-013"],"current_level":0} 
[2026-07-06 09:24:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-019"],"current_level":0} 
[2026-07-06 09:40:40] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-020"],"current_level":0} 
[2026-07-06 09:46:38] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-018"],"current_level":1} 
[2026-07-06 09:49:02] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-017","SMP2607-019","SMP2607-020"],"current_level":1} 
[2026-07-06 09:50:09] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-018","SMP2607-013"],"current_level":2} 
[2026-07-06 09:51:07] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-014"],"current_level":6} 
[2026-07-06 09:52:02] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-011","SMP2607-013","SMP2607-018","SMP2607-019"],"current_level":3} 
[2026-07-06 09:58:01] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-019"],"current_level":4} 
[2026-07-06 10:16:21] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-011"],"current_level":4} 
[2026-07-06 10:27:20] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-018"],"current_level":5} 
[2026-07-06 10:27:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-018"],"current_level":6} 
[2026-07-06 11:26:02] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-013"],"current_level":4} 
[2026-07-06 14:54:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-021"],"current_level":0} 
[2026-07-06 15:44:31] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-021"],"current_level":2} 
[2026-07-06 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-06 16:00:00","cutoff_time":"2026-07-06 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-06 16:02:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-021"],"current_level":3} 
[2026-07-06 16:19:34] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-021"],"current_level":4} 
[2026-07-07 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-07 00:00:00","cutoff_time":"2026-07-06 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-07 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-017","SMP2607-020"]} 
[2026-07-07 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-07 08:00:00","cutoff_time":"2026-07-07 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-07 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-017","SMP2607-020"]} 
[2026-07-07 08:00:06] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-017","SMP2607-020"],"current_level":2} 
[2026-07-07 08:48:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-022"],"current_level":0} 
[2026-07-07 08:52:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-023"],"current_level":0} 
[2026-07-07 09:13:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-024"],"current_level":0} 
[2026-07-07 09:40:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-025"],"current_level":0} 
[2026-07-07 09:47:05] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-026"],"current_level":0} 
[2026-07-07 09:51:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-027"],"current_level":0} 
[2026-07-07 09:59:35] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-022","SMP2607-023","SMP2607-024"],"current_level":2} 
[2026-07-07 11:13:32] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-026"],"current_level":1} 
[2026-07-07 11:45:33] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-025","SMP2607-027"],"current_level":1} 
[2026-07-07 12:45:15] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-027","SMP2607-025"],"current_level":2} 
[2026-07-07 12:46:22] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-026"],"current_level":2} 
[2026-07-07 14:55:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-028"],"current_level":0} 
[2026-07-07 15:13:39] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-025","SMP2607-027"],"current_level":3} 
[2026-07-07 15:37:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-025"],"current_level":5} 
[2026-07-07 15:38:03] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-027"],"current_level":5} 
[2026-07-07 15:45:51] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-028"],"current_level":2} 
[2026-07-07 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-07 16:00:00","cutoff_time":"2026-07-07 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-07 16:39:57] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-025"],"current_level":6} 
[2026-07-07 16:40:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-027"],"current_level":6} 
[2026-07-08 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-08 00:00:00","cutoff_time":"2026-07-07 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-08 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-028"]} 
[2026-07-08 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":6,"sample_ids":["SMP2607-017","SMP2607-020","SMP2607-022","SMP2607-023","SMP2607-024","SMP2607-026"]} 
[2026-07-08 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-08 08:00:00","cutoff_time":"2026-07-08 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-08 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-028"]} 
[2026-07-08 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":6,"sample_ids":["SMP2607-017","SMP2607-020","SMP2607-022","SMP2607-023","SMP2607-024","SMP2607-026"]} 
[2026-07-08 08:48:59] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-028"],"current_level":3} 
[2026-07-08 09:09:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-028"],"current_level":5} 
[2026-07-08 09:19:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-028"],"current_level":6} 
[2026-07-08 13:41:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-029"],"current_level":0} 
[2026-07-08 13:42:03] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-029"],"current_level":1} 
[2026-07-08 13:43:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-030"],"current_level":0} 
[2026-07-08 13:48:21] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-029"],"current_level":2} 
[2026-07-08 14:15:32] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-031"],"current_level":0} 
[2026-07-08 14:16:49] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-031"],"current_level":1} 
[2026-07-08 14:36:27] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-031"],"current_level":2} 
[2026-07-08 14:36:29] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-030"],"current_level":2} 
[2026-07-08 14:47:15] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-029","SMP2607-030","SMP2607-031"],"current_level":3} 
[2026-07-08 15:01:22] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-029"],"current_level":5} 
[2026-07-08 15:03:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-030"],"current_level":5} 
[2026-07-08 15:11:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2606-049"],"current_level":0} 
[2026-07-08 15:14:01] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-029"],"current_level":6} 
[2026-07-08 15:14:18] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-030"],"current_level":6} 
[2026-07-08 15:15:18] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2606-049"],"current_level":2} 
[2026-07-08 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-08 16:00:00","cutoff_time":"2026-07-08 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-08 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":6,"sample_ids":["SMP2607-017","SMP2607-020","SMP2607-022","SMP2607-023","SMP2607-024","SMP2607-026"]} 
[2026-07-08 16:03:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-032"],"current_level":0} 
[2026-07-08 16:08:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-033"],"current_level":0} 
[2026-07-08 16:14:34] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-033"],"current_level":2} 
[2026-07-08 17:02:26] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-031"],"current_level":4} 
[2026-07-09 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-09 00:00:01","cutoff_time":"2026-07-08 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-07-09 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2606-049"]} 
[2026-07-09 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":6,"sample_ids":["SMP2607-017","SMP2607-020","SMP2607-022","SMP2607-023","SMP2607-024","SMP2607-026"]} 
[2026-07-09 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-09 08:00:00","cutoff_time":"2026-07-09 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-09 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2607-032"]} 
[2026-07-09 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-033"]} 
[2026-07-09 08:42:31] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2606-049","SMP2607-033"],"current_level":3} 
[2026-07-09 08:44:24] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-033"],"current_level":4} 
[2026-07-09 09:32:08] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2606-049"],"current_level":5} 
[2026-07-09 09:58:39] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2606-049"],"current_level":6} 
[2026-07-09 10:01:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-034"],"current_level":0} 
[2026-07-09 10:03:20] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-035"],"current_level":0} 
[2026-07-09 10:09:06] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-034"],"current_level":1} 
[2026-07-09 10:12:05] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-032"],"current_level":1} 
[2026-07-09 10:53:52] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-035"],"current_level":2} 
[2026-07-09 11:04:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-032"],"current_level":0} 
[2026-07-09 11:24:47] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-032"],"current_level":1} 
[2026-07-09 11:33:42] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-035"],"current_level":3} 
[2026-07-09 11:50:23] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-035"],"current_level":5} 
[2026-07-09 14:25:37] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-035"],"current_level":6} 
[2026-07-09 14:37:05] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-036"],"current_level":0} 
[2026-07-09 15:16:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-037"],"current_level":0} 
[2026-07-09 15:18:01] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-037"],"current_level":3} 
[2026-07-09 15:26:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-038"],"current_level":0} 
[2026-07-09 15:37:28] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-032","SMP2607-038"],"current_level":2} 
[2026-07-09 15:41:13] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-017","SMP2607-020","SMP2607-022","SMP2607-023","SMP2607-024","SMP2607-026","SMP2607-032","SMP2607-034","SMP2607-038"],"current_level":3} 
[2026-07-09 15:43:21] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-024"],"current_level":4} 
[2026-07-09 15:44:10] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-020"],"current_level":4} 
[2026-07-09 15:44:57] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-034"],"current_level":4} 
[2026-07-09 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-09 16:00:00","cutoff_time":"2026-07-09 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-09 16:01:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-022"],"current_level":5} 
[2026-07-09 16:02:25] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-023"],"current_level":5} 
[2026-07-09 16:04:19] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-026"],"current_level":5} 
[2026-07-09 16:05:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-039"],"current_level":0} 
[2026-07-09 16:07:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-032"],"current_level":5} 
[2026-07-09 16:08:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-038"],"current_level":5} 
[2026-07-09 16:16:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-029"],"current_level":0} 
[2026-07-09 16:18:39] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-029"],"current_level":1} 
[2026-07-09 16:29:42] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-017"],"current_level":4} 
[2026-07-09 16:31:57] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-037"],"current_level":4} 
[2026-07-09 16:35:36] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-029"],"current_level":2} 
[2026-07-09 16:38:43] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-029"],"current_level":3} 
[2026-07-09 16:41:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-004"],"current_level":0} 
[2026-07-09 16:54:26] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-029"],"current_level":5} 
[2026-07-09 17:14:35] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-036"],"current_level":1} 
[2026-07-09 17:25:04] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-004"],"current_level":2} 
[2026-07-09 17:26:25] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-004"],"current_level":3} 
[2026-07-10 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-10 00:00:00","cutoff_time":"2026-07-09 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-10 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-10 08:00:00","cutoff_time":"2026-07-10 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-10 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2607-039"]} 
[2026-07-10 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-036"]} 
[2026-07-10 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":6,"sample_ids":["SMP2607-029","SMP2607-022","SMP2607-023","SMP2607-026","SMP2607-032","SMP2607-038"]} 
[2026-07-10 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-004"]} 
[2026-07-10 08:03:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-004"],"current_level":5} 
[2026-07-10 09:02:12] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-039"],"current_level":1} 
[2026-07-10 09:24:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-022"],"current_level":6} 
[2026-07-10 09:29:25] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-023"],"current_level":6} 
[2026-07-10 09:29:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-026"],"current_level":6} 
[2026-07-10 09:30:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-032"],"current_level":6} 
[2026-07-10 09:30:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-038"],"current_level":6} 
[2026-07-10 09:32:38] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-029"],"current_level":6} 
[2026-07-10 09:42:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-040"],"current_level":0} 
[2026-07-10 09:43:42] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-040"],"current_level":1} 
[2026-07-10 09:49:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-041","SMP2607-042"],"current_level":0} 
[2026-07-10 10:34:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-043"],"current_level":0} 
[2026-07-10 10:34:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-004"],"current_level":6} 
[2026-07-10 11:55:33] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-043"],"current_level":2} 
[2026-07-10 12:03:18] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-043"],"current_level":3} 
[2026-07-10 12:17:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-044","SMP2607-045"],"current_level":0} 
[2026-07-10 12:21:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-046"],"current_level":0} 
[2026-07-10 13:06:46] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-044","SMP2607-045"],"current_level":1} 
[2026-07-10 13:33:57] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-046"],"current_level":1} 
[2026-07-10 13:47:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-043"],"current_level":5} 
[2026-07-10 13:55:36] production.INFO: handleSampleApproval: Event received from Ayreen Marcelina (007) {"sample_ids":["SMP2607-041","SMP2607-042"],"current_level":1} 
[2026-07-10 14:02:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-047"],"current_level":0} 
[2026-07-10 15:46:18] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-040","SMP2607-041","SMP2607-042"],"current_level":3} 
[2026-07-10 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-10 16:00:00","cutoff_time":"2026-07-10 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-10 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-036"]} 
[2026-07-10 16:21:58] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-043"],"current_level":6} 
[2026-07-10 16:40:25] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"],"current_level":2} 
[2026-07-10 16:45:50] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"],"current_level":3} 
[2026-07-10 16:58:43] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"],"current_level":2} 
[2026-07-10 17:01:29] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-041"],"current_level":4} 
[2026-07-10 17:02:50] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-042"],"current_level":4} 
[2026-07-10 17:21:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-047"],"current_level":0} 
[2026-07-10 17:37:48] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-047"],"current_level":2} 
[2026-07-11 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-11 00:00:00","cutoff_time":"2026-07-10 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-11 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-11 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-11 08:00:00","cutoff_time":"2026-07-11 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-11 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"]} 
[2026-07-11 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-11 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-11 08:47:20] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"],"current_level":3} 
[2026-07-11 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-11 16:00:00","cutoff_time":"2026-07-11 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-11 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-11 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-12 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-12 00:00:00","cutoff_time":"2026-07-11 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-12 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-12 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-12 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"]} 
[2026-07-12 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-12 08:00:00","cutoff_time":"2026-07-12 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-12 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-12 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-12 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"]} 
[2026-07-12 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-12 16:00:00","cutoff_time":"2026-07-12 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-12 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-12 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-12 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"]} 
[2026-07-13 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-13 00:00:00","cutoff_time":"2026-07-12 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-13 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-13 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-13 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"]} 
[2026-07-13 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-13 08:00:00","cutoff_time":"2026-07-13 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-13 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-13 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-13 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2607-044","SMP2607-045","SMP2607-047"]} 
[2026-07-13 08:12:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-044"],"current_level":5} 
[2026-07-13 08:15:56] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-045"],"current_level":5} 
[2026-07-13 08:35:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-047"],"current_level":0} 
[2026-07-13 13:35:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-048"],"current_level":0} 
[2026-07-13 13:45:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-049"],"current_level":0} 
[2026-07-13 14:07:20] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-049","SMP2607-048"],"current_level":1} 
[2026-07-13 15:38:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-050"],"current_level":0} 
[2026-07-13 15:43:21] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-048","SMP2607-049"],"current_level":2} 
[2026-07-13 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-13 16:00:00","cutoff_time":"2026-07-13 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-13 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-13 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-13 16:01:05] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-052"],"current_level":0} 
[2026-07-13 16:01:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-051"],"current_level":0} 
[2026-07-13 21:56:09] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-047","SMP2607-050"],"current_level":2} 
[2026-07-14 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-14 00:00:00","cutoff_time":"2026-07-13 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-14 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-047","SMP2607-048","SMP2607-049"]} 
[2026-07-14 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2607-044","SMP2607-045"]} 
[2026-07-14 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-14 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-14 05:21:37] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-051"],"current_level":1} 
[2026-07-14 07:39:42] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-047","SMP2607-048","SMP2607-049","SMP2607-050"],"current_level":3} 
[2026-07-14 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-14 08:00:00","cutoff_time":"2026-07-14 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-14 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":1,"sample_ids":["SMP2607-052"]} 
[2026-07-14 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2607-044","SMP2607-045"]} 
[2026-07-14 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-14 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":3,"sample_ids":["SMP2607-036","SMP2607-039","SMP2607-046"]} 
[2026-07-14 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-047"]} 
[2026-07-14 08:02:36] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-052"],"current_level":1} 
[2026-07-14 08:10:34] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-047"],"current_level":5} 
[2026-07-14 08:13:29] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-049"],"current_level":5} 
[2026-07-14 08:14:43] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-051"],"current_level":2} 
[2026-07-14 08:26:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-050"],"current_level":5} 
[2026-07-14 08:30:19] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-052"],"current_level":2} 
[2026-07-14 08:57:50] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-036"],"current_level":4} 
[2026-07-14 09:49:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-053"],"current_level":0} 
[2026-07-14 10:25:15] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-044"],"current_level":6} 
[2026-07-14 10:25:43] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-045"],"current_level":6} 
[2026-07-14 10:40:20] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-047"],"current_level":6} 
[2026-07-14 10:47:26] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-049"],"current_level":6} 
[2026-07-14 10:56:13] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-050"],"current_level":6} 
[2026-07-14 12:05:27] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-048"],"current_level":4} 
[2026-07-14 12:09:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-054"],"current_level":0} 
[2026-07-14 13:38:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-055"],"current_level":0} 
[2026-07-14 13:40:53] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-055"],"current_level":1} 
[2026-07-14 13:44:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-056"],"current_level":0} 
[2026-07-14 15:58:02] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-053"],"current_level":2} 
[2026-07-14 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-14 16:00:00","cutoff_time":"2026-07-14 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-14 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-14 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-039","SMP2607-046"]} 
[2026-07-14 16:08:13] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-039"],"current_level":4} 
[2026-07-14 20:42:07] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-051","SMP2607-052","SMP2607-053","SMP2607-054"],"current_level":3} 
[2026-07-14 22:12:20] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-051"],"current_level":5} 
[2026-07-14 22:13:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-052"],"current_level":5} 
[2026-07-14 22:13:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-053"],"current_level":5} 
[2026-07-15 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-15 00:00:00","cutoff_time":"2026-07-14 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-15 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-055","SMP2607-056"]} 
[2026-07-15 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-15 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-046"]} 
[2026-07-15 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-15 08:00:00","cutoff_time":"2026-07-15 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-15 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-055","SMP2607-056"]} 
[2026-07-15 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2607-051","SMP2607-052","SMP2607-053"]} 
[2026-07-15 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-15 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-046"]} 
[2026-07-15 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-054"]} 
[2026-07-15 08:33:22] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-051"],"current_level":6} 
[2026-07-15 08:33:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-052"],"current_level":6} 
[2026-07-15 08:34:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-053"],"current_level":6} 
[2026-07-15 09:21:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-057"],"current_level":0} 
[2026-07-15 09:50:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-058"],"current_level":0} 
[2026-07-15 10:04:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-059"],"current_level":0} 
[2026-07-15 10:06:33] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-059"],"current_level":1} 
[2026-07-15 10:14:30] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-058","SMP2607-057"],"current_level":2} 
[2026-07-15 13:58:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-060"],"current_level":0} 
[2026-07-15 14:13:17] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-060"],"current_level":1} 
[2026-07-15 14:17:31] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-060"],"current_level":2} 
[2026-07-15 15:32:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-061"],"current_level":0} 
[2026-07-15 15:39:30] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-054"],"current_level":5} 
[2026-07-15 15:39:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-054"],"current_level":6} 
[2026-07-15 15:50:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-062"],"current_level":0} 
[2026-07-15 15:51:48] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-062"],"current_level":1} 
[2026-07-15 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-15 16:00:00","cutoff_time":"2026-07-15 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-15 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2607-055","SMP2607-056"]} 
[2026-07-15 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-15 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-046"]} 
[2026-07-16 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-16 00:00:00","cutoff_time":"2026-07-15 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-16 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2607-061"]} 
[2026-07-16 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-055","SMP2607-056","SMP2607-059","SMP2607-062"]} 
[2026-07-16 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-057","SMP2607-058","SMP2607-060"]} 
[2026-07-16 00:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-16 06:21:46] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-061"],"current_level":2} 
[2026-07-16 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-16 08:00:00","cutoff_time":"2026-07-16 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-16 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-055","SMP2607-056","SMP2607-059","SMP2607-062"]} 
[2026-07-16 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-057","SMP2607-058","SMP2607-060"]} 
[2026-07-16 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-16 08:26:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-064"],"current_level":0} 
[2026-07-16 08:26:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-063"],"current_level":0} 
[2026-07-16 08:26:51] production.INFO: handleSampleApproval: Event received from Ayreen Marcelina (007) {"sample_ids":["SMP2607-064"],"current_level":1} 
[2026-07-16 08:29:52] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-063"],"current_level":1} 
[2026-07-16 09:55:20] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-064"],"current_level":3} 
[2026-07-16 10:40:22] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-064"],"current_level":4} 
[2026-07-16 11:18:28] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-063"],"current_level":2} 
[2026-07-16 12:08:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-065"],"current_level":0} 
[2026-07-16 12:13:22] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-066"],"current_level":0} 
[2026-07-16 13:04:26] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-065","SMP2607-066"],"current_level":1} 
[2026-07-16 14:12:15] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-058","SMP2607-060","SMP2607-061","SMP2607-063","SMP2607-057"],"current_level":3} 
[2026-07-16 14:14:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-057"],"current_level":5} 
[2026-07-16 14:14:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-058"],"current_level":5} 
[2026-07-16 14:15:20] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-060"],"current_level":5} 
[2026-07-16 14:15:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-063"],"current_level":5} 
[2026-07-16 14:16:14] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-061"],"current_level":5} 
[2026-07-16 15:17:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-067"],"current_level":0} 
[2026-07-16 15:19:37] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-065","SMP2607-066"],"current_level":2} 
[2026-07-16 15:22:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-068"],"current_level":0} 
[2026-07-16 15:30:31] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-068"],"current_level":1} 
[2026-07-16 15:31:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-069"],"current_level":0} 
[2026-07-16 15:35:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-070"],"current_level":0} 
[2026-07-16 15:36:03] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-068"],"current_level":2} 
[2026-07-16 15:44:00] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-069","SMP2607-067"],"current_level":1} 
[2026-07-16 15:52:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-071"],"current_level":0} 
[2026-07-16 15:53:04] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-071"],"current_level":1} 
[2026-07-16 15:55:04] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-070"],"current_level":1} 
[2026-07-16 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-16 16:00:00","cutoff_time":"2026-07-16 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-16 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-055","SMP2607-056","SMP2607-059","SMP2607-062"]} 
[2026-07-16 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-16 16:37:53] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-057"],"current_level":6} 
[2026-07-16 16:38:06] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-058"],"current_level":6} 
[2026-07-16 16:38:18] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-060"],"current_level":6} 
[2026-07-16 16:38:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-063"],"current_level":6} 
[2026-07-16 16:39:05] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-061"],"current_level":6} 
[2026-07-16 18:09:39] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-055","SMP2607-056","SMP2607-059","SMP2607-062","SMP2607-067","SMP2607-069","SMP2607-071"],"current_level":2} 
[2026-07-17 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-17 00:00:00","cutoff_time":"2026-07-16 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-17 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2607-070"]} 
[2026-07-17 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-065","SMP2607-066","SMP2607-068"]} 
[2026-07-17 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-17 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-17 08:00:00","cutoff_time":"2026-07-17 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-17 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2607-070"]} 
[2026-07-17 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-065","SMP2607-066","SMP2607-068"]} 
[2026-07-17 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":7,"sample_ids":["SMP2607-055","SMP2607-056","SMP2607-059","SMP2607-062","SMP2607-067","SMP2607-069","SMP2607-071"]} 
[2026-07-17 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-040"]} 
[2026-07-17 08:30:47] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-055","SMP2607-056","SMP2607-059","SMP2607-062","SMP2607-067","SMP2607-069","SMP2607-071"],"current_level":3} 
[2026-07-17 08:34:39] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-040"],"current_level":4} 
[2026-07-17 08:36:18] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-065","SMP2607-066","SMP2607-068"],"current_level":3} 
[2026-07-17 08:41:29] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-056"],"current_level":5} 
[2026-07-17 08:44:30] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-055"],"current_level":4} 
[2026-07-17 08:46:07] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-067"],"current_level":5} 
[2026-07-17 08:55:17] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-071"],"current_level":5} 
[2026-07-17 08:55:42] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-070"],"current_level":2} 
[2026-07-17 08:56:44] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-066"],"current_level":5} 
[2026-07-17 09:00:34] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-068"],"current_level":5} 
[2026-07-17 10:01:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-065"],"current_level":0} 
[2026-07-17 11:14:50] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-065"],"current_level":1} 
[2026-07-17 11:27:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-056"],"current_level":6} 
[2026-07-17 11:27:40] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-067"],"current_level":6} 
[2026-07-17 11:27:55] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-071"],"current_level":6} 
[2026-07-17 11:28:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-066"],"current_level":6} 
[2026-07-17 11:33:21] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-068"],"current_level":6} 
[2026-07-17 11:37:32] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-070"],"current_level":3} 
[2026-07-17 11:44:24] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-065"],"current_level":2} 
[2026-07-17 11:53:30] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-065"],"current_level":3} 
[2026-07-17 13:33:57] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-065"],"current_level":4} 
[2026-07-17 13:59:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-072"],"current_level":0} 
[2026-07-17 14:01:59] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-070"],"current_level":5} 
[2026-07-17 14:08:24] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-072"],"current_level":3} 
[2026-07-17 14:12:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-072"],"current_level":5} 
[2026-07-17 14:17:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-070"],"current_level":6} 
[2026-07-17 14:17:50] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-072"],"current_level":6} 
[2026-07-17 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-17 16:00:00","cutoff_time":"2026-07-17 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-17 16:08:13] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-069"],"current_level":4} 
[2026-07-18 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-18 00:00:00","cutoff_time":"2026-07-17 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-18 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-18 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-18 08:00:00","cutoff_time":"2026-07-18 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-18 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-18 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-18 16:00:00","cutoff_time":"2026-07-18 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-18 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-19 00:00:02] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-19 00:00:02","cutoff_time":"2026-07-18 16:00:02","interval":"480 minutes (8 hours)"} 
[2026-07-19 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-19 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-19 08:00:00","cutoff_time":"2026-07-19 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-19 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-19 16:00:00","cutoff_time":"2026-07-19 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-19 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-20 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-20 00:00:00","cutoff_time":"2026-07-19 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-20 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-20 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-20 08:00:00","cutoff_time":"2026-07-20 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-20 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-059","SMP2607-062"]} 
[2026-07-20 09:11:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-073"],"current_level":0} 
[2026-07-20 09:55:51] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-059"],"current_level":4} 
[2026-07-20 09:59:55] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-062"],"current_level":4} 
[2026-07-20 14:50:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-074"],"current_level":0} 
[2026-07-20 14:53:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-075"],"current_level":0} 
[2026-07-20 14:57:31] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-075"],"current_level":2} 
[2026-07-20 15:12:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-076"],"current_level":0} 
[2026-07-20 15:14:21] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2607-076"],"current_level":1} 
[2026-07-20 15:31:31] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-076"],"current_level":2} 
[2026-07-20 15:49:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-074","SMP2607-075","SMP2607-076"],"current_level":3} 
[2026-07-20 15:56:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-075"],"current_level":5} 
[2026-07-20 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-20 16:00:00","cutoff_time":"2026-07-20 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-20 16:10:38] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-077"],"current_level":0} 
[2026-07-20 16:23:18] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-077"],"current_level":1} 
[2026-07-21 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-21 00:00:00","cutoff_time":"2026-07-20 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-21 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-073"]} 
[2026-07-21 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-075"]} 
[2026-07-21 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-21 00:00:09] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-074"]} 
[2026-07-21 06:49:38] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-073"],"current_level":2} 
[2026-07-21 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-21 08:00:00","cutoff_time":"2026-07-21 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-21 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2607-077"]} 
[2026-07-21 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-075"]} 
[2026-07-21 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-21 08:00:09] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-074"]} 
[2026-07-21 08:09:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-073"],"current_level":0} 
[2026-07-21 08:11:14] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-077"],"current_level":2} 
[2026-07-21 08:21:25] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-077"],"current_level":3} 
[2026-07-21 08:30:26] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-073"],"current_level":2} 
[2026-07-21 09:21:56] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-073"],"current_level":3} 
[2026-07-21 09:25:36] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-077"],"current_level":5} 
[2026-07-21 09:35:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-075"],"current_level":6} 
[2026-07-21 09:50:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-078"],"current_level":0} 
[2026-07-21 09:53:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-079"],"current_level":0} 
[2026-07-21 09:58:54] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-079"],"current_level":3} 
[2026-07-21 10:01:52] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-077"],"current_level":6} 
[2026-07-21 10:03:53] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-080"],"current_level":0} 
[2026-07-21 10:12:16] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-073"],"current_level":4} 
[2026-07-21 10:23:48] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-080"],"current_level":1} 
[2026-07-21 11:45:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-074"],"current_level":0} 
[2026-07-21 12:23:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-081","SMP2607-082","SMP2607-083"],"current_level":0} 
[2026-07-21 13:22:00] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-079"],"current_level":4} 
[2026-07-21 13:26:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-074"],"current_level":3} 
[2026-07-21 13:30:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-084"],"current_level":0} 
[2026-07-21 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-21 16:00:00","cutoff_time":"2026-07-21 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-21 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-21 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-074"]} 
[2026-07-21 16:01:06] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-078"],"current_level":1} 
[2026-07-21 16:43:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-074"],"current_level":5} 
[2026-07-21 16:54:26] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-074"],"current_level":6} 
[2026-07-21 17:34:57] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-078"],"current_level":2} 
[2026-07-21 20:55:47] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-084"],"current_level":2} 
[2026-07-22 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-22 00:00:00","cutoff_time":"2026-07-21 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-22 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-080"]} 
[2026-07-22 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-22 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk08@spunindo.com {"approver":"Anggreni Ayu Larasati","samples_count":3,"sample_ids":["SMP2607-081","SMP2607-082","SMP2607-083"]} 
[2026-07-22 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-22 08:00:00","cutoff_time":"2026-07-22 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-22 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-080"]} 
[2026-07-22 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2607-078","SMP2607-084"]} 
[2026-07-22 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-22 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to mk08@spunindo.com {"approver":"Anggreni Ayu Larasati","samples_count":3,"sample_ids":["SMP2607-081","SMP2607-082","SMP2607-083"]} 
[2026-07-22 08:04:58] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2607-081","SMP2607-082","SMP2607-083"],"current_level":1} 
[2026-07-22 08:07:38] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-080","SMP2607-081","SMP2607-082","SMP2607-083"],"current_level":2} 
[2026-07-22 08:12:12] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-078","SMP2607-084"],"current_level":3} 
[2026-07-22 08:33:37] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-078"],"current_level":5} 
[2026-07-22 08:34:44] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-084"],"current_level":5} 
[2026-07-22 09:30:52] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-078"],"current_level":6} 
[2026-07-22 09:31:11] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-084"],"current_level":6} 
[2026-07-22 09:33:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-085"],"current_level":0} 
[2026-07-22 10:19:52] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-085"],"current_level":2} 
[2026-07-22 11:35:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-085"],"current_level":0} 
[2026-07-22 12:02:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-086"],"current_level":0} 
[2026-07-22 13:38:34] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-086"],"current_level":1} 
[2026-07-22 13:41:00] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-086"],"current_level":2} 
[2026-07-22 13:44:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-086"],"current_level":3} 
[2026-07-22 13:45:11] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-087"],"current_level":0} 
[2026-07-22 13:46:50] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-087"],"current_level":1} 
[2026-07-22 13:56:11] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-085"],"current_level":2} 
[2026-07-22 13:57:54] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-085"],"current_level":3} 
[2026-07-22 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-22 16:00:00","cutoff_time":"2026-07-22 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-22 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-22 16:03:49] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-088"],"current_level":0} 
[2026-07-22 16:06:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-089"],"current_level":0} 
[2026-07-22 16:19:53] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-089"],"current_level":2} 
[2026-07-22 16:32:19] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-088"],"current_level":1} 
[2026-07-22 16:49:47] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-087"],"current_level":2} 
[2026-07-23 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-23 00:00:00","cutoff_time":"2026-07-22 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-23 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2607-080","SMP2607-081","SMP2607-082","SMP2607-083"]} 
[2026-07-23 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":2,"sample_ids":["SMP2607-086","SMP2607-085"]} 
[2026-07-23 00:00:10] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-23 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-23 08:00:00","cutoff_time":"2026-07-23 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-23 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2607-088"]} 
[2026-07-23 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2607-087","SMP2607-089"]} 
[2026-07-23 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2607-080","SMP2607-081","SMP2607-082","SMP2607-083"]} 
[2026-07-23 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":2,"sample_ids":["SMP2607-086","SMP2607-085"]} 
[2026-07-23 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-23 08:17:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-087","SMP2607-089"],"current_level":3} 
[2026-07-23 08:55:42] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-088"],"current_level":2} 
[2026-07-23 09:29:18] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-088"],"current_level":3} 
[2026-07-23 10:22:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-087"],"current_level":5} 
[2026-07-23 10:32:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-089"],"current_level":5} 
[2026-07-23 10:34:25] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-087"],"current_level":6} 
[2026-07-23 10:34:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-089"],"current_level":6} 
[2026-07-23 10:35:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-088"],"current_level":5} 
[2026-07-23 10:44:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-088"],"current_level":6} 
[2026-07-23 11:01:57] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-086"],"current_level":4} 
[2026-07-23 11:03:05] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2607-085"],"current_level":4} 
[2026-07-23 12:06:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-090"],"current_level":0} 
[2026-07-23 12:17:11] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-090"],"current_level":2} 
[2026-07-23 12:25:44] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-080","SMP2607-081","SMP2607-082","SMP2607-083"],"current_level":3} 
[2026-07-23 14:12:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-080"],"current_level":5} 
[2026-07-23 14:14:27] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-080"],"current_level":6} 
[2026-07-23 14:32:27] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-081"],"current_level":5} 
[2026-07-23 14:34:56] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-081"],"current_level":5} 
[2026-07-23 14:35:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-082"],"current_level":5} 
[2026-07-23 14:42:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-081"],"current_level":6} 
[2026-07-23 14:42:38] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-082"],"current_level":6} 
[2026-07-23 15:10:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-091"],"current_level":0} 
[2026-07-23 15:14:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-092"],"current_level":0} 
[2026-07-23 15:19:19] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-092"],"current_level":2} 
[2026-07-23 15:25:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-093"],"current_level":0} 
[2026-07-23 15:32:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-094"],"current_level":0} 
[2026-07-23 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-23 16:00:00","cutoff_time":"2026-07-23 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-23 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-23 16:00:20] production.ERROR: SendApprovalReminder: Failed to send reminder to qe01@spunindo.com {"error":"Connection could not be established with host \"ssl://smtp.gmail.com:465\": stream_socket_client(): SSL: Connection reset by peer","trace":"#0 [internal function]: Symfony\\Component\\Mailer\\Transport\\Smtp\\Stream\\SocketStream->Symfony\\Component\\Mailer\\Transport\\Smtp\\Stream\\{closure}(2, 'stream_socket_c...', '/project/msjsam...', 157)
#1 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/Stream/SocketStream.php(157): stream_socket_client('ssl://smtp.gmai...', 0, '', 60.0, 4, Resource id #950)
#2 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(279): Symfony\\Component\\Mailer\\Transport\\Smtp\\Stream\\SocketStream->initialize()
#3 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(211): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->start()
#4 /project/msjsample/vendor/symfony/mailer/Transport/AbstractTransport.php(69): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->doSend(Object(Symfony\\Component\\Mailer\\SentMessage))
#5 /project/msjsample/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(138): Symfony\\Component\\Mailer\\Transport\\AbstractTransport->send(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))
#6 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(584): Symfony\\Component\\Mailer\\Transport\\Smtp\\SmtpTransport->send(Object(Symfony\\Component\\Mime\\Email), Object(Symfony\\Component\\Mailer\\DelayedEnvelope))
#7 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(331): Illuminate\\Mail\\Mailer->sendSymfonyMessage(Object(Symfony\\Component\\Mime\\Email))
#8 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php(207): Illuminate\\Mail\\Mailer->send('emails.index', Array, Object(Closure))
#9 /project/msjsample/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php(19): Illuminate\\Mail\\Mailable->Illuminate\\Mail\\{closure}()
#10 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php(200): Illuminate\\Mail\\Mailable->withLocale(NULL, Object(Closure))
#11 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php(82): Illuminate\\Mail\\Mailable->send(Object(Illuminate\\Mail\\MailManager))
#12 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\\Mail\\SendQueuedMailable->handle(Object(Illuminate\\Mail\\MailManager))
#13 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#14 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#15 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#16 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Container.php(754): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#17 /project/msjsample/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\\Container\\Container->call(Array)
#18 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Bus\\Dispatcher->Illuminate\\Bus\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#19 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#20 /project/msjsample/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(136): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#21 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(125): Illuminate\\Bus\\Dispatcher->dispatchNow(Object(Illuminate\\Mail\\SendQueuedMailable), false)
#22 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(169): Illuminate\\Queue\\CallQueuedHandler->Illuminate\\Queue\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#23 /project/msjsample/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(126): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Mail\\SendQueuedMailable))
#24 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(120): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#25 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(68): Illuminate\\Queue\\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\\Queue\\Jobs\\SyncJob), Object(Illuminate\\Mail\\SendQueuedMailable))
#26 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\\Queue\\CallQueuedHandler->call(Object(Illuminate\\Queue\\Jobs\\SyncJob), Array)
#27 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(130): Illuminate\\Queue\\Jobs\\Job->fire()
#28 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(110): Illuminate\\Queue\\SyncQueue->executeJob(Object(Illuminate\\Mail\\SendQueuedMailable), '', NULL)
#29 /project/msjsample/vendor/laravel/framework/src/Illuminate/Queue/Queue.php(63): Illuminate\\Queue\\SyncQueue->push(Object(Illuminate\\Mail\\SendQueuedMailable), '', NULL)
#30 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailable.php(235): Illuminate\\Queue\\Queue->pushOn(NULL, Object(Illuminate\\Mail\\SendQueuedMailable))
#31 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(482): Illuminate\\Mail\\Mailable->queue(Object(Illuminate\\Queue\\QueueManager))
#32 /project/msjsample/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php(145): Illuminate\\Mail\\Mailer->queue(Object(App\\Mail\\ApprovalMail))
#33 /project/msjsample/app/Console/Commands/SendApprovalReminder.php(167): Illuminate\\Mail\\PendingMail->queue(Object(App\\Mail\\ApprovalMail))
#34 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Console\\Commands\\SendApprovalReminder->handle()
#35 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#36 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#37 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#38 /project/msjsample/vendor/laravel/framework/src/Illuminate/Container/Container.php(754): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#39 /project/msjsample/vendor/laravel/framework/src/Illuminate/Console/Command.php(209): Illuminate\\Container\\Container->call(Array)
#40 /project/msjsample/vendor/symfony/console/Command/Command.php(318): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#41 /project/msjsample/vendor/laravel/framework/src/Illuminate/Console/Command.php(178): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
#42 /project/msjsample/vendor/symfony/console/Application.php(1092): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#43 /project/msjsample/vendor/symfony/console/Application.php(341): Symfony\\Component\\Console\\Application->doRunCommand(Object(App\\Console\\Commands\\SendApprovalReminder), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#44 /project/msjsample/vendor/symfony/console/Application.php(192): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#45 /project/msjsample/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(197): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#46 /project/msjsample/artisan(35): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#47 {main}"} 
[2026-07-23 16:40:47] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-094"],"current_level":2} 
[2026-07-23 17:24:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-095"],"current_level":0} 
[2026-07-24 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-24 00:00:00","cutoff_time":"2026-07-23 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-24 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-093"]} 
[2026-07-24 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2607-090","SMP2607-091","SMP2607-092"]} 
[2026-07-24 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-24 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-083"]} 
[2026-07-24 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-24 08:00:00","cutoff_time":"2026-07-24 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-24 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2607-095"]} 
[2026-07-24 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2607-093"]} 
[2026-07-24 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":4,"sample_ids":["SMP2607-090","SMP2607-091","SMP2607-092","SMP2607-094"]} 
[2026-07-24 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-24 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-083"]} 
[2026-07-24 08:09:47] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-095"],"current_level":1} 
[2026-07-24 08:16:59] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-095"],"current_level":2} 
[2026-07-24 08:34:59] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-090","SMP2607-091","SMP2607-092","SMP2607-094","SMP2607-095"],"current_level":3} 
[2026-07-24 09:14:27] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-090"],"current_level":5} 
[2026-07-24 09:19:03] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-091"],"current_level":5} 
[2026-07-24 09:20:21] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-092"],"current_level":5} 
[2026-07-24 09:21:38] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-095"],"current_level":5} 
[2026-07-24 09:37:42] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-090"],"current_level":6} 
[2026-07-24 09:37:57] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-092"],"current_level":6} 
[2026-07-24 09:38:24] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-091"],"current_level":6} 
[2026-07-24 09:38:50] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-095"],"current_level":6} 
[2026-07-24 11:00:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-096"],"current_level":0} 
[2026-07-24 11:08:01] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-093"],"current_level":2} 
[2026-07-24 11:22:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-093"],"current_level":0} 
[2026-07-24 11:22:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-097"],"current_level":0} 
[2026-07-24 13:15:52] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-093","SMP2607-097"],"current_level":2} 
[2026-07-24 13:18:58] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-093","SMP2607-097"],"current_level":3} 
[2026-07-24 13:28:44] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-094"],"current_level":5} 
[2026-07-24 14:19:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-094"],"current_level":6} 
[2026-07-24 14:22:40] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-096"],"current_level":1} 
[2026-07-24 14:24:13] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-096"],"current_level":2} 
[2026-07-24 14:56:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-099"],"current_level":0} 
[2026-07-24 15:11:17] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-099"],"current_level":2} 
[2026-07-24 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-24 16:00:00","cutoff_time":"2026-07-24 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-24 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-076"]} 
[2026-07-24 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-083"]} 
[2026-07-25 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-25 00:00:00","cutoff_time":"2026-07-24 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-25 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2607-096","SMP2607-099"]} 
[2026-07-25 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-076","SMP2607-093"]} 
[2026-07-25 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-25 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-25 08:00:00","cutoff_time":"2026-07-25 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-25 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2607-096","SMP2607-099"]} 
[2026-07-25 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-076","SMP2607-093"]} 
[2026-07-25 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-25 10:12:44] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-096","SMP2607-099"],"current_level":3} 
[2026-07-25 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-25 16:00:00","cutoff_time":"2026-07-25 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-25 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-076","SMP2607-093"]} 
[2026-07-25 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-26 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-26 00:00:00","cutoff_time":"2026-07-25 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-26 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-26 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-26 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-26 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-26 08:00:00","cutoff_time":"2026-07-26 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-26 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-26 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-26 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-26 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-26 16:00:00","cutoff_time":"2026-07-26 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-26 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-26 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-26 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-27 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-27 00:00:00","cutoff_time":"2026-07-26 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-27 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-27 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-27 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-27 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-27 08:00:00","cutoff_time":"2026-07-27 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-27 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-27 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-27 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-27 08:18:03] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-096"],"current_level":5} 
[2026-07-27 15:24:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-100"],"current_level":0} 
[2026-07-27 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-27 16:00:00","cutoff_time":"2026-07-27 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-27 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-27 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-27 16:02:15] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-100"],"current_level":1} 
[2026-07-27 16:05:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-100"],"current_level":0} 
[2026-07-27 16:07:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-098"],"current_level":0} 
[2026-07-27 16:34:41] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-098"],"current_level":2} 
[2026-07-28 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-28 00:00:00","cutoff_time":"2026-07-27 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-28 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-28 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-28 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-28 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-28 08:00:00","cutoff_time":"2026-07-28 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-28 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":1,"sample_ids":["SMP2607-100"]} 
[2026-07-28 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2607-098"]} 
[2026-07-28 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-28 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":3,"sample_ids":["SMP2607-076","SMP2607-093","SMP2607-099"]} 
[2026-07-28 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":2,"sample_ids":["SMP2607-083","SMP2607-097"]} 
[2026-07-28 08:05:39] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2607-100"],"current_level":1} 
[2026-07-28 08:06:42] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-100"],"current_level":2} 
[2026-07-28 08:38:03] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-083"],"current_level":4} 
[2026-07-28 08:39:10] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-100"],"current_level":3} 
[2026-07-28 08:44:46] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-076"],"current_level":4} 
[2026-07-28 09:13:45] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-100"],"current_level":5} 
[2026-07-28 14:20:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-101"],"current_level":0} 
[2026-07-28 14:48:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-102"],"current_level":0} 
[2026-07-28 14:53:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-103"],"current_level":0} 
[2026-07-28 15:02:44] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2607-103"],"current_level":1} 
[2026-07-28 15:34:28] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-102"],"current_level":1} 
[2026-07-28 15:49:45] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-102"],"current_level":2} 
[2026-07-28 15:50:17] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-103"],"current_level":2} 
[2026-07-28 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-28 16:00:00","cutoff_time":"2026-07-28 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-28 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2607-098"]} 
[2026-07-28 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-096"]} 
[2026-07-28 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-093","SMP2607-099"]} 
[2026-07-28 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-07-28 16:37:16] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-097"],"current_level":4} 
[2026-07-28 16:57:20] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-104","SMP2607-105"],"current_level":0} 
[2026-07-28 17:38:03] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-098","SMP2607-101","SMP2607-102"],"current_level":3} 
[2026-07-29 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-29 00:00:00","cutoff_time":"2026-07-28 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-29 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-103"]} 
[2026-07-29 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2607-096","SMP2607-100"]} 
[2026-07-29 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-093","SMP2607-099"]} 
[2026-07-29 08:35:54] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-098"],"current_level":4} 
[2026-07-29 08:36:55] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-102"],"current_level":4} 
[2026-07-29 09:05:58] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-103"],"current_level":3} 
[2026-07-29 09:23:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-103"],"current_level":5} 
[2026-07-29 09:37:41] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-100"],"current_level":6} 
[2026-07-29 09:44:06] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-096"],"current_level":6} 
[2026-07-29 09:56:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-103"],"current_level":6} 
[2026-07-29 14:49:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-106"],"current_level":0} 
[2026-07-29 14:55:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-107"],"current_level":0} 
[2026-07-29 15:02:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-108"],"current_level":0} 
[2026-07-29 15:23:08] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-104","SMP2607-105"],"current_level":2} 
[2026-07-29 15:33:09] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-105","SMP2607-104"],"current_level":3} 
[2026-07-29 16:21:59] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-107"],"current_level":1} 
[2026-07-29 16:25:24] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-107"],"current_level":2} 
[2026-07-29 16:33:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-104"],"current_level":5} 
[2026-07-29 16:34:34] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-105"],"current_level":5} 
[2026-07-29 16:38:52] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-106"],"current_level":2} 
[2026-07-29 16:59:57] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-104"],"current_level":6} 
[2026-07-30 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-30 00:00:00","cutoff_time":"2026-07-29 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-30 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-093","SMP2607-099"]} 
[2026-07-30 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-101"]} 
[2026-07-30 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to mk08@spunindo.com {"approver":"Anggreni Ayu Larasati","samples_count":1,"sample_ids":["SMP2607-108"]} 
[2026-07-30 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-30 08:00:00","cutoff_time":"2026-07-30 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-30 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-106"]} 
[2026-07-30 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-07-30 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2607-105"]} 
[2026-07-30 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":2,"sample_ids":["SMP2607-093","SMP2607-099"]} 
[2026-07-30 08:00:09] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-101"]} 
[2026-07-30 08:00:10] production.INFO: SendApprovalReminder: Reminder email sent to mk08@spunindo.com {"approver":"Anggreni Ayu Larasati","samples_count":1,"sample_ids":["SMP2607-108"]} 
[2026-07-30 08:01:01] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2607-108"],"current_level":1} 
[2026-07-30 08:01:14] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-106"],"current_level":3} 
[2026-07-30 08:03:31] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-101"],"current_level":4} 
[2026-07-30 08:15:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-106"],"current_level":5} 
[2026-07-30 08:41:06] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-105"],"current_level":6} 
[2026-07-30 08:41:41] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-093"],"current_level":4} 
[2026-07-30 08:54:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-106"],"current_level":6} 
[2026-07-30 09:22:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-109"],"current_level":0} 
[2026-07-30 09:27:02] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-109"],"current_level":1} 
[2026-07-30 09:31:19] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-108","SMP2607-109"],"current_level":2} 
[2026-07-30 14:02:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-110"],"current_level":0} 
[2026-07-30 14:40:32] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-099"],"current_level":4} 
[2026-07-30 14:53:44] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-110"],"current_level":1} 
[2026-07-30 15:12:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-111"],"current_level":0} 
[2026-07-30 15:24:06] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-111"],"current_level":2} 
[2026-07-30 15:37:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-112"],"current_level":0} 
[2026-07-30 15:42:24] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-112"],"current_level":1} 
[2026-07-30 15:43:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-113"],"current_level":0} 
[2026-07-30 15:45:13] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-113"],"current_level":1} 
[2026-07-30 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-30 16:00:00","cutoff_time":"2026-07-30 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-30 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-07-30 16:54:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-114"],"current_level":0} 
[2026-07-31 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-31 00:00:00","cutoff_time":"2026-07-30 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-31 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-111"]} 
[2026-07-31 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":6,"sample_ids":["SMP2607-107","SMP2607-108","SMP2607-109","SMP2607-110","SMP2607-112","SMP2607-113"]} 
[2026-07-31 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-31 08:00:00","cutoff_time":"2026-07-31 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-31 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2607-114"]} 
[2026-07-31 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-111"]} 
[2026-07-31 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":6,"sample_ids":["SMP2607-107","SMP2607-108","SMP2607-109","SMP2607-110","SMP2607-112","SMP2607-113"]} 
[2026-07-31 08:23:38] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-111"],"current_level":3} 
[2026-07-31 08:43:59] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-114"],"current_level":1} 
[2026-07-31 10:15:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-014"],"current_level":0} 
[2026-07-31 11:01:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-111"],"current_level":0} 
[2026-07-31 11:04:34] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-014"],"current_level":1} 
[2026-07-31 11:18:06] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-014","SMP2607-107","SMP2607-108","SMP2607-109","SMP2607-110","SMP2607-112","SMP2607-113"],"current_level":3} 
[2026-07-31 11:19:23] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2607-111"],"current_level":2} 
[2026-07-31 11:43:02] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-109"],"current_level":4} 
[2026-07-31 12:16:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-115"],"current_level":0} 
[2026-07-31 12:21:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-116"],"current_level":0} 
[2026-07-31 13:18:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-117"],"current_level":0} 
[2026-07-31 13:49:41] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-115","SMP2607-116"],"current_level":1} 
[2026-07-31 14:49:54] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-014"],"current_level":5} 
[2026-07-31 14:50:46] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-108"],"current_level":5} 
[2026-07-31 14:51:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-118"],"current_level":0} 
[2026-07-31 14:51:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-110"],"current_level":5} 
[2026-07-31 14:55:23] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-113"],"current_level":5} 
[2026-07-31 14:57:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-014"],"current_level":6} 
[2026-07-31 14:58:14] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-108"],"current_level":6} 
[2026-07-31 14:58:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-110"],"current_level":6} 
[2026-07-31 14:59:35] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-113"],"current_level":6} 
[2026-07-31 15:40:36] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2607-118"],"current_level":1} 
[2026-07-31 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-07-31 16:00:00","cutoff_time":"2026-07-31 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-07-31 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2607-111"]} 
[2026-07-31 16:12:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-112"],"current_level":5} 
[2026-07-31 16:45:48] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-111","SMP2607-117"],"current_level":3} 
[2026-07-31 16:52:37] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-112"],"current_level":6} 
[2026-07-31 16:53:33] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-111"],"current_level":5} 
[2026-07-31 16:54:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-111"],"current_level":6} 
[2026-07-31 17:28:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-119"],"current_level":0} 
[2026-07-31 18:20:04] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-119"],"current_level":1} 
[2026-07-31 19:20:11] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-119"],"current_level":3} 
[2026-08-01 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-01 00:00:01","cutoff_time":"2026-07-31 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-08-01 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-01 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-01 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-01 08:00:00","cutoff_time":"2026-08-01 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-01 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-01 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2607-119"]} 
[2026-08-01 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-01 16:00:00","cutoff_time":"2026-08-01 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-01 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-01 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-01 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-01 16:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2607-119"]} 
[2026-08-02 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-02 00:00:00","cutoff_time":"2026-08-01 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-02 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-02 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-02 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-02 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-02 08:00:00","cutoff_time":"2026-08-02 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-02 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-02 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-02 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-02 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-02 16:00:00","cutoff_time":"2026-08-02 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-02 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-02 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-02 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-03 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-03 00:00:00","cutoff_time":"2026-08-02 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-03 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-03 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-03 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-03 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-03 08:00:00","cutoff_time":"2026-08-03 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-03 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":4,"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118"]} 
[2026-08-03 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-107"]} 
[2026-08-03 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-117"]} 
[2026-08-03 08:11:51] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-107"],"current_level":4} 
[2026-08-03 09:40:56] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-117"],"current_level":5} 
[2026-08-03 09:48:44] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-117"],"current_level":6} 
[2026-08-03 09:50:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-119"],"current_level":0} 
[2026-08-03 09:55:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-001"],"current_level":0} 
[2026-08-03 10:09:19] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-001"],"current_level":1} 
[2026-08-03 10:17:17] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2607-119"],"current_level":1} 
[2026-08-03 10:37:06] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-119"],"current_level":3} 
[2026-08-03 10:49:31] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118","SMP2608-001"],"current_level":2} 
[2026-08-03 10:50:39] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-119"],"current_level":4} 
[2026-08-03 11:00:55] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-114","SMP2607-115","SMP2607-116","SMP2607-118","SMP2608-001"],"current_level":3} 
[2026-08-03 11:04:34] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-001"],"current_level":4} 
[2026-08-03 11:39:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-002"],"current_level":0} 
[2026-08-03 11:45:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-114"],"current_level":5} 
[2026-08-03 11:47:41] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-116"],"current_level":5} 
[2026-08-03 13:55:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-003"],"current_level":0} 
[2026-08-03 14:04:06] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-003"],"current_level":1} 
[2026-08-03 14:28:02] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-114"],"current_level":6} 
[2026-08-03 14:29:26] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-116"],"current_level":6} 
[2026-08-03 14:30:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-004"],"current_level":0} 
[2026-08-03 14:33:44] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-004"],"current_level":1} 
[2026-08-03 14:36:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-005"],"current_level":0} 
[2026-08-03 14:46:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-006"],"current_level":0} 
[2026-08-03 14:50:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-007"],"current_level":0} 
[2026-08-03 14:52:31] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-005"],"current_level":1} 
[2026-08-03 14:55:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-008"],"current_level":0} 
[2026-08-03 14:56:25] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-008"],"current_level":1} 
[2026-08-03 15:08:38] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-006","SMP2608-007"],"current_level":1} 
[2026-08-03 15:14:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-007"],"current_level":0} 
[2026-08-03 15:17:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-009"],"current_level":0} 
[2026-08-03 15:43:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-010"],"current_level":0} 
[2026-08-03 15:46:35] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-009"],"current_level":1} 
[2026-08-03 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-03 16:00:00","cutoff_time":"2026-08-03 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-03 16:26:55] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-004","SMP2608-005"],"current_level":2} 
[2026-08-03 16:33:56] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-010"],"current_level":1} 
[2026-08-03 16:42:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-011"],"current_level":0} 
[2026-08-03 16:56:41] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-002","SMP2608-008","SMP2608-009"],"current_level":2} 
[2026-08-03 17:02:49] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-002","SMP2608-004","SMP2608-005","SMP2608-008","SMP2608-009"],"current_level":3} 
[2026-08-03 20:20:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-002"],"current_level":5} 
[2026-08-04 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-04 00:00:00","cutoff_time":"2026-08-03 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-04 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2608-007"]} 
[2026-08-04 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-003","SMP2608-006"]} 
[2026-08-04 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-115"]} 
[2026-08-04 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-118"]} 
[2026-08-04 06:16:53] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-003","SMP2608-006"],"current_level":2} 
[2026-08-04 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-04 08:00:00","cutoff_time":"2026-08-04 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-04 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2608-007"]} 
[2026-08-04 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2608-010","SMP2608-011"]} 
[2026-08-04 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-002"]} 
[2026-08-04 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2607-115"]} 
[2026-08-04 08:00:10] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-118"]} 
[2026-08-04 08:00:11] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":4,"sample_ids":["SMP2608-004","SMP2608-005","SMP2608-008","SMP2608-009"]} 
[2026-08-04 08:18:26] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-002"],"current_level":6} 
[2026-08-04 08:21:52] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2607-115"],"current_level":4} 
[2026-08-04 08:42:33] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-007"],"current_level":1} 
[2026-08-04 09:13:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-075"],"current_level":0} 
[2026-08-04 09:53:11] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2607-075"],"current_level":2} 
[2026-08-04 10:02:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-008"],"current_level":5} 
[2026-08-04 10:02:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-009"],"current_level":5} 
[2026-08-04 10:03:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-005"],"current_level":5} 
[2026-08-04 10:18:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-008"],"current_level":6} 
[2026-08-04 10:19:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-009"],"current_level":6} 
[2026-08-04 10:19:59] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-005"],"current_level":6} 
[2026-08-04 10:20:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-004"],"current_level":5} 
[2026-08-04 10:25:18] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-004"],"current_level":6} 
[2026-08-04 10:25:29] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-075"],"current_level":3} 
[2026-08-04 10:39:55] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-118"],"current_level":4} 
[2026-08-04 10:56:22] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-075"],"current_level":5} 
[2026-08-04 13:50:57] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-075"],"current_level":6} 
[2026-08-04 14:05:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-012"],"current_level":0} 
[2026-08-04 14:36:09] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-012"],"current_level":1} 
[2026-08-04 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-04 16:00:00","cutoff_time":"2026-08-04 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-04 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-003","SMP2608-006","SMP2608-010","SMP2608-011"]} 
[2026-08-05 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-05 00:00:00","cutoff_time":"2026-08-04 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-05 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-007","SMP2608-012"]} 
[2026-08-05 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-003","SMP2608-006","SMP2608-010","SMP2608-011"]} 
[2026-08-05 07:52:12] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-003","SMP2608-006","SMP2608-010","SMP2608-011"],"current_level":3} 
[2026-08-05 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-05 08:00:00","cutoff_time":"2026-08-05 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-05 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-007","SMP2608-012"]} 
[2026-08-05 08:27:57] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2608-011"],"current_level":4} 
[2026-08-05 08:46:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-006"],"current_level":5} 
[2026-08-05 08:47:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-010"],"current_level":5} 
[2026-08-05 08:59:39] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-007","SMP2608-012"],"current_level":2} 
[2026-08-05 09:10:04] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-007","SMP2608-012"],"current_level":3} 
[2026-08-05 09:47:16] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-012"],"current_level":4} 
[2026-08-05 10:01:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-006"],"current_level":6} 
[2026-08-05 10:01:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-010"],"current_level":6} 
[2026-08-05 15:15:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-013"],"current_level":0} 
[2026-08-05 15:21:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-014"],"current_level":0} 
[2026-08-05 15:21:51] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-013"],"current_level":1} 
[2026-08-05 15:41:26] production.INFO: handleSampleApproval: Event received from Ayreen Marcelina (007) {"sample_ids":["SMP2608-014"],"current_level":1} 
[2026-08-05 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-05 16:00:00","cutoff_time":"2026-08-05 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-05 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-003"]} 
[2026-08-05 21:53:38] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-003"],"current_level":5} 
[2026-08-05 21:55:19] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-007"],"current_level":5} 
[2026-08-06 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-06 00:00:00","cutoff_time":"2026-08-05 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-06 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2608-013"]} 
[2026-08-06 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-014"]} 
[2026-08-06 07:39:13] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-014"],"current_level":3} 
[2026-08-06 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-06 08:00:00","cutoff_time":"2026-08-06 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-06 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2608-013"]} 
[2026-08-06 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2608-003","SMP2608-007"]} 
[2026-08-06 08:53:51] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-013"],"current_level":2} 
[2026-08-06 09:32:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-013"],"current_level":3} 
[2026-08-06 09:35:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-003"],"current_level":6} 
[2026-08-06 09:35:27] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-007"],"current_level":6} 
[2026-08-06 10:37:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-016"],"current_level":0} 
[2026-08-06 10:45:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-017"],"current_level":0} 
[2026-08-06 10:48:49] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-016"],"current_level":2} 
[2026-08-06 10:59:41] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-016"],"current_level":3} 
[2026-08-06 13:29:45] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-013"],"current_level":5} 
[2026-08-06 13:30:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-016"],"current_level":5} 
[2026-08-06 13:41:57] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-013"],"current_level":6} 
[2026-08-06 13:43:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-016"],"current_level":6} 
[2026-08-06 15:27:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-015"],"current_level":0} 
[2026-08-06 15:27:57] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2608-015"],"current_level":1} 
[2026-08-06 15:30:06] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-015"],"current_level":2} 
[2026-08-06 15:53:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-014"],"current_level":0} 
[2026-08-06 15:56:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-097"],"current_level":0} 
[2026-08-06 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-06 16:00:00","cutoff_time":"2026-08-06 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-06 16:02:21] production.INFO: handleSampleApproval: Event received from Ayreen Marcelina (007) {"sample_ids":["SMP2608-014"],"current_level":1} 
[2026-08-06 16:27:40] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-097"],"current_level":2} 
[2026-08-06 16:48:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-018"],"current_level":0} 
[2026-08-06 17:09:40] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-017"],"current_level":1} 
[2026-08-06 17:57:28] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-017"],"current_level":2} 
[2026-08-07 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-07 00:00:00","cutoff_time":"2026-08-06 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-07 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2608-014","SMP2608-015"]} 
[2026-08-07 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-07 08:00:00","cutoff_time":"2026-08-07 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-07 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2608-018"]} 
[2026-08-07 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2608-017"]} 
[2026-08-07 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2607-097","SMP2608-014","SMP2608-015"]} 
[2026-08-07 08:35:56] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-017"],"current_level":3} 
[2026-08-07 08:58:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-019"],"current_level":0} 
[2026-08-07 09:01:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-020"],"current_level":0} 
[2026-08-07 09:16:27] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-019"],"current_level":2} 
[2026-08-07 09:21:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-019"],"current_level":3} 
[2026-08-07 11:26:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-021"],"current_level":0} 
[2026-08-07 11:30:53] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-021"],"current_level":1} 
[2026-08-07 11:33:26] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-021"],"current_level":2} 
[2026-08-07 11:34:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-022"],"current_level":0} 
[2026-08-07 11:42:55] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-021"],"current_level":3} 
[2026-08-07 13:36:26] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-022"],"current_level":1} 
[2026-08-07 13:42:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-004"],"current_level":0} 
[2026-08-07 13:43:27] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-004"],"current_level":1} 
[2026-08-07 13:49:42] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-004"],"current_level":2} 
[2026-08-07 13:55:05] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-004"],"current_level":3} 
[2026-08-07 14:07:29] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-017"],"current_level":5} 
[2026-08-07 14:09:09] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-019"],"current_level":5} 
[2026-08-07 14:09:33] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-017"],"current_level":6} 
[2026-08-07 14:09:49] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-019"],"current_level":6} 
[2026-08-07 14:10:04] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-021"],"current_level":5} 
[2026-08-07 14:10:20] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-021"],"current_level":6} 
[2026-08-07 14:11:03] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-004"],"current_level":5} 
[2026-08-07 14:15:56] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-004"],"current_level":6} 
[2026-08-07 14:22:54] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-022"],"current_level":2} 
[2026-08-07 14:46:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-023"],"current_level":0} 
[2026-08-07 14:49:41] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-023"],"current_level":2} 
[2026-08-07 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-07 16:00:00","cutoff_time":"2026-08-07 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-07 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2608-018"]} 
[2026-08-07 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2607-097","SMP2608-014","SMP2608-015"]} 
[2026-08-07 16:04:49] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-018","SMP2608-020"],"current_level":1} 
[2026-08-07 16:56:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-021"],"current_level":0} 
[2026-08-07 17:01:36] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-021"],"current_level":1} 
[2026-08-07 17:03:06] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-021"],"current_level":2} 
[2026-08-08 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-08 00:00:00","cutoff_time":"2026-08-07 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-08 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2608-022","SMP2608-023"]} 
[2026-08-08 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2607-097","SMP2608-014","SMP2608-015"]} 
[2026-08-08 04:27:54] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-097","SMP2608-014","SMP2608-015"],"current_level":3} 
[2026-08-08 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-08 08:00:00","cutoff_time":"2026-08-08 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-08 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-08 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2608-021","SMP2608-022","SMP2608-023"]} 
[2026-08-08 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-08 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-08 16:00:00","cutoff_time":"2026-08-08 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-08 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-08 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2608-021","SMP2608-022","SMP2608-023"]} 
[2026-08-08 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-08 16:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-014","SMP2608-015"]} 
[2026-08-09 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-09 00:00:00","cutoff_time":"2026-08-08 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-09 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-09 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2608-021","SMP2608-022","SMP2608-023"]} 
[2026-08-09 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-09 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-014","SMP2608-015"]} 
[2026-08-09 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-09 08:00:00","cutoff_time":"2026-08-09 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-09 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-09 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2608-021","SMP2608-022","SMP2608-023"]} 
[2026-08-09 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-09 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-014","SMP2608-015"]} 
[2026-08-09 10:01:16] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-021","SMP2608-022","SMP2608-023"],"current_level":3} 
[2026-08-09 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-09 16:00:00","cutoff_time":"2026-08-09 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-09 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-09 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-09 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-014","SMP2608-015"]} 
[2026-08-10 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-10 00:00:00","cutoff_time":"2026-08-09 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-10 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-10 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-10 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":5,"sample_ids":["SMP2608-014","SMP2608-021","SMP2608-015","SMP2608-022","SMP2608-023"]} 
[2026-08-10 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-10 08:00:00","cutoff_time":"2026-08-10 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-10 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":2,"sample_ids":["SMP2608-018","SMP2608-020"]} 
[2026-08-10 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2607-097"]} 
[2026-08-10 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":5,"sample_ids":["SMP2608-014","SMP2608-021","SMP2608-015","SMP2608-022","SMP2608-023"]} 
[2026-08-10 08:11:48] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-018","SMP2608-020"],"current_level":2} 
[2026-08-10 09:38:22] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2607-097"],"current_level":4} 
[2026-08-10 10:01:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-014"],"current_level":5} 
[2026-08-10 10:10:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-014"],"current_level":6} 
[2026-08-10 11:11:21] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-015"],"current_level":5} 
[2026-08-10 11:13:40] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-021"],"current_level":5} 
[2026-08-10 11:15:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-022"],"current_level":5} 
[2026-08-10 11:23:02] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-021"],"current_level":6} 
[2026-08-10 11:23:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-022"],"current_level":6} 
[2026-08-10 11:48:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-023"],"current_level":0} 
[2026-08-10 13:06:50] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-023"],"current_level":2} 
[2026-08-10 13:34:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-024"],"current_level":0} 
[2026-08-10 13:50:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-025"],"current_level":0} 
[2026-08-10 14:09:37] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-024"],"current_level":1} 
[2026-08-10 14:20:30] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-024"],"current_level":2} 
[2026-08-10 14:49:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-026"],"current_level":0} 
[2026-08-10 14:51:05] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-026"],"current_level":1} 
[2026-08-10 15:17:11] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-026"],"current_level":2} 
[2026-08-10 15:18:18] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-025"],"current_level":1} 
[2026-08-10 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-10 16:00:00","cutoff_time":"2026-08-10 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-10 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2608-023"]} 
[2026-08-11 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-11 00:00:00","cutoff_time":"2026-08-10 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-11 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2608-025"]} 
[2026-08-11 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":2,"sample_ids":["SMP2608-023","SMP2608-026"]} 
[2026-08-11 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2608-018","SMP2608-020","SMP2608-024"]} 
[2026-08-11 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-015"]} 
[2026-08-11 05:03:20] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-025"],"current_level":2} 
[2026-08-11 05:53:32] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-023","SMP2608-025","SMP2608-026"],"current_level":3} 
[2026-08-11 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-11 08:00:00","cutoff_time":"2026-08-11 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-11 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2608-018","SMP2608-020","SMP2608-024"]} 
[2026-08-11 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-015"]} 
[2026-08-11 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-023"]} 
[2026-08-11 08:05:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-023"],"current_level":5} 
[2026-08-11 08:07:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-025"],"current_level":5} 
[2026-08-11 08:09:30] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-026"],"current_level":5} 
[2026-08-11 08:53:48] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-018","SMP2608-020","SMP2608-024"],"current_level":3} 
[2026-08-11 08:57:21] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-020"],"current_level":4} 
[2026-08-11 09:12:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-018"],"current_level":5} 
[2026-08-11 09:12:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-024"],"current_level":0} 
[2026-08-11 09:22:34] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-024"],"current_level":1} 
[2026-08-11 09:30:49] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-024"],"current_level":2} 
[2026-08-11 09:33:55] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-015"],"current_level":6} 
[2026-08-11 09:34:13] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-023"],"current_level":6} 
[2026-08-11 09:34:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-025"],"current_level":6} 
[2026-08-11 09:35:09] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-026"],"current_level":6} 
[2026-08-11 09:35:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-018"],"current_level":6} 
[2026-08-11 11:52:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-020"],"current_level":0} 
[2026-08-11 12:27:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-027"],"current_level":0} 
[2026-08-11 12:31:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-028"],"current_level":0} 
[2026-08-11 12:55:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-029"],"current_level":0} 
[2026-08-11 13:13:57] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2608-027"],"current_level":1} 
[2026-08-11 13:19:02] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-027"],"current_level":2} 
[2026-08-11 13:50:28] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-028"],"current_level":1} 
[2026-08-11 13:59:27] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-029"],"current_level":1} 
[2026-08-11 14:06:05] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-029"],"current_level":2} 
[2026-08-11 14:33:26] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-020"],"current_level":1} 
[2026-08-11 14:48:04] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-020"],"current_level":2} 
[2026-08-11 15:17:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-030"],"current_level":0} 
[2026-08-11 15:37:45] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-030"],"current_level":1} 
[2026-08-11 15:38:23] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-030"],"current_level":2} 
[2026-08-11 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-11 16:00:00","cutoff_time":"2026-08-11 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-11 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2608-020","SMP2608-024"]} 
[2026-08-11 16:12:53] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-020","SMP2608-024","SMP2608-029","SMP2608-030"],"current_level":3} 
[2026-08-11 16:25:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-024"],"current_level":5} 
[2026-08-11 16:26:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-030"],"current_level":5} 
[2026-08-11 16:59:28] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-020"],"current_level":4} 
[2026-08-11 17:29:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-027"],"current_level":3} 
[2026-08-11 21:15:36] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-028"],"current_level":2} 
[2026-08-12 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-12 00:00:00","cutoff_time":"2026-08-11 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-12 05:52:57] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-028"],"current_level":3} 
[2026-08-12 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-12 08:00:00","cutoff_time":"2026-08-12 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-12 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2608-024","SMP2608-030"]} 
[2026-08-12 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-027"]} 
[2026-08-12 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-029"]} 
[2026-08-12 08:09:43] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-027"],"current_level":5} 
[2026-08-12 08:24:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-028"],"current_level":5} 
[2026-08-12 09:34:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-024"],"current_level":6} 
[2026-08-12 09:35:06] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-030"],"current_level":6} 
[2026-08-12 09:36:11] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-027"],"current_level":6} 
[2026-08-12 09:38:28] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-028"],"current_level":6} 
[2026-08-12 11:02:01] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-029"],"current_level":4} 
[2026-08-12 12:17:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-031"],"current_level":0} 
[2026-08-12 13:06:00] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-031"],"current_level":1} 
[2026-08-12 13:18:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-032"],"current_level":0} 
[2026-08-12 13:22:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-033"],"current_level":0} 
[2026-08-12 13:30:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-034","SMP2608-035","SMP2608-036"],"current_level":0} 
[2026-08-12 13:31:40] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-032"],"current_level":2} 
[2026-08-12 13:43:33] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-034","SMP2608-035","SMP2608-036"],"current_level":1} 
[2026-08-12 13:51:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-032"],"current_level":0} 
[2026-08-12 14:29:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-037"],"current_level":0} 
[2026-08-12 14:37:14] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-037"],"current_level":1} 
[2026-08-12 14:40:01] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-037"],"current_level":2} 
[2026-08-12 14:47:34] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-032"],"current_level":2} 
[2026-08-12 15:16:15] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-033"],"current_level":1} 
[2026-08-12 15:21:07] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-033"],"current_level":2} 
[2026-08-12 15:21:52] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-033","SMP2608-037"],"current_level":3} 
[2026-08-12 15:31:05] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2608-037"],"current_level":4} 
[2026-08-12 15:52:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-032"],"current_level":5} 
[2026-08-12 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-12 16:00:00","cutoff_time":"2026-08-12 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-12 21:37:53] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-031","SMP2608-034","SMP2608-035","SMP2608-036"],"current_level":2} 
[2026-08-13 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-13 00:00:00","cutoff_time":"2026-08-12 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-13 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-032"]} 
[2026-08-13 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-033"]} 
[2026-08-13 06:17:51] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-031","SMP2608-034","SMP2608-035","SMP2608-036"],"current_level":3} 
[2026-08-13 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-13 08:00:00","cutoff_time":"2026-08-13 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-13 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-032"]} 
[2026-08-13 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-033"]} 
[2026-08-13 09:07:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-032"],"current_level":6} 
[2026-08-13 09:13:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-031"],"current_level":5} 
[2026-08-13 09:15:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-034"],"current_level":5} 
[2026-08-13 09:16:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-035"],"current_level":5} 
[2026-08-13 09:16:41] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-036"],"current_level":5} 
[2026-08-13 09:48:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-031"],"current_level":6} 
[2026-08-13 09:57:05] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-034"],"current_level":6} 
[2026-08-13 10:09:21] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-038"],"current_level":0} 
[2026-08-13 10:11:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-038"],"current_level":2} 
[2026-08-13 10:12:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-039"],"current_level":0} 
[2026-08-13 11:05:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-035"],"current_level":6} 
[2026-08-13 11:05:49] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-036"],"current_level":6} 
[2026-08-13 11:38:11] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-040"],"current_level":0} 
[2026-08-13 14:20:32] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-040"],"current_level":1} 
[2026-08-13 15:32:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-041"],"current_level":0} 
[2026-08-13 15:45:31] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-041"],"current_level":1} 
[2026-08-13 15:52:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-042"],"current_level":0} 
[2026-08-13 15:55:50] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-042"],"current_level":1} 
[2026-08-13 15:56:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-043"],"current_level":0} 
[2026-08-13 15:59:10] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-042"],"current_level":2} 
[2026-08-13 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-13 16:00:00","cutoff_time":"2026-08-13 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-13 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-033"]} 
[2026-08-13 16:42:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-041"],"current_level":5} 
[2026-08-13 16:42:16] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-033"],"current_level":4} 
[2026-08-13 17:24:14] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-043"],"current_level":1} 
[2026-08-13 20:56:15] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-042"],"current_level":3} 
[2026-08-14 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-14 00:00:00","cutoff_time":"2026-08-13 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-14 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-14 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2608-040"]} 
[2026-08-14 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-14 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-14 08:00:00","cutoff_time":"2026-08-14 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-14 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":2,"sample_ids":["SMP2608-039","SMP2608-043"]} 
[2026-08-14 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2608-040"]} 
[2026-08-14 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-14 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-041"]} 
[2026-08-14 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-042"]} 
[2026-08-14 08:09:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-040"],"current_level":2} 
[2026-08-14 08:22:17] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-039","SMP2608-043"],"current_level":2} 
[2026-08-14 08:30:13] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-042"],"current_level":5} 
[2026-08-14 09:30:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-044"],"current_level":0} 
[2026-08-14 09:35:38] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-041"],"current_level":6} 
[2026-08-14 09:36:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-042"],"current_level":6} 
[2026-08-14 09:43:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-045"],"current_level":0} 
[2026-08-14 10:12:27] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-045"],"current_level":1} 
[2026-08-14 10:18:15] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-045"],"current_level":2} 
[2026-08-14 10:38:17] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-044"],"current_level":1} 
[2026-08-14 10:42:14] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-039","SMP2608-043"],"current_level":3} 
[2026-08-14 13:06:25] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-043"],"current_level":5} 
[2026-08-14 13:36:52] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-043"],"current_level":6} 
[2026-08-14 15:24:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-039"],"current_level":0} 
[2026-08-14 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-14 16:00:00","cutoff_time":"2026-08-14 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-14 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-14 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-14 16:25:26] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-039"],"current_level":2} 
[2026-08-14 16:27:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-039"],"current_level":3} 
[2026-08-15 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-15 00:00:00","cutoff_time":"2026-08-14 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-15 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-15 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-15 08:00:00","cutoff_time":"2026-08-15 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-15 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-15 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-15 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-15 16:00:00","cutoff_time":"2026-08-15 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-15 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-15 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-16 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-16 00:00:00","cutoff_time":"2026-08-15 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-16 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-16 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-16 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-16 08:00:00","cutoff_time":"2026-08-16 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-16 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-16 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-16 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-16 16:00:00","cutoff_time":"2026-08-16 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-16 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-16 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-17 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-17 00:00:00","cutoff_time":"2026-08-16 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-17 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-17 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-17 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-17 08:00:00","cutoff_time":"2026-08-17 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-17 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"]} 
[2026-08-17 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-17 08:19:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-038","SMP2608-040","SMP2608-044","SMP2608-045"],"current_level":3} 
[2026-08-17 09:55:35] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-040"],"current_level":4} 
[2026-08-17 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-17 16:00:00","cutoff_time":"2026-08-17 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-17 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-039"]} 
[2026-08-18 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-18 00:00:00","cutoff_time":"2026-08-17 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-18 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-044"]} 
[2026-08-18 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-18 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-039","SMP2608-045"]} 
[2026-08-18 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-18 08:00:00","cutoff_time":"2026-08-18 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-18 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-044"]} 
[2026-08-18 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-18 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-039","SMP2608-045"]} 
[2026-08-18 08:16:08] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2608-038"],"current_level":4} 
[2026-08-18 10:05:07] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-044"],"current_level":4} 
[2026-08-18 10:09:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-039"],"current_level":5} 
[2026-08-18 10:15:57] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-039"],"current_level":6} 
[2026-08-18 11:32:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-046"],"current_level":0} 
[2026-08-18 11:50:22] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-046"],"current_level":1} 
[2026-08-18 11:57:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-047"],"current_level":0} 
[2026-08-18 11:58:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-045"],"current_level":0} 
[2026-08-18 12:01:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-048"],"current_level":0} 
[2026-08-18 13:37:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-049"],"current_level":0} 
[2026-08-18 14:22:57] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-049"],"current_level":1} 
[2026-08-18 14:43:44] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-046","SMP2608-049"],"current_level":3} 
[2026-08-18 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-18 16:00:00","cutoff_time":"2026-08-18 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-19 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-19 00:00:00","cutoff_time":"2026-08-18 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-19 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":3,"sample_ids":["SMP2608-045","SMP2608-047","SMP2608-048"]} 
[2026-08-19 00:00:08] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":2,"sample_ids":["SMP2608-046","SMP2608-049"]} 
[2026-08-19 06:49:32] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-045","SMP2608-047","SMP2608-048"],"current_level":1} 
[2026-08-19 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-19 08:00:00","cutoff_time":"2026-08-19 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-19 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":2,"sample_ids":["SMP2608-046","SMP2608-049"]} 
[2026-08-19 08:10:39] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-046"],"current_level":4} 
[2026-08-19 09:37:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-050"],"current_level":0} 
[2026-08-19 09:47:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-051"],"current_level":0} 
[2026-08-19 09:58:22] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-051"],"current_level":1} 
[2026-08-19 10:04:06] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-050"],"current_level":2} 
[2026-08-19 10:16:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-051"],"current_level":0} 
[2026-08-19 10:42:54] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-051"],"current_level":1} 
[2026-08-19 11:34:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-046"],"current_level":0} 
[2026-08-19 11:47:38] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-052"],"current_level":0} 
[2026-08-19 12:01:37] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-046"],"current_level":1} 
[2026-08-19 13:04:08] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-052"],"current_level":2} 
[2026-08-19 13:10:21] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-046"],"current_level":3} 
[2026-08-19 13:51:36] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-049"],"current_level":4} 
[2026-08-19 13:55:53] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-045","SMP2608-047","SMP2608-048","SMP2608-051"],"current_level":2} 
[2026-08-19 13:56:24] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-046"],"current_level":4} 
[2026-08-19 15:00:25] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-045","SMP2608-047","SMP2608-048","SMP2608-051"],"current_level":3} 
[2026-08-19 15:38:04] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-047"],"current_level":5} 
[2026-08-19 15:49:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-047"],"current_level":6} 
[2026-08-19 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-19 16:00:00","cutoff_time":"2026-08-19 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-19 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-045"]} 
[2026-08-19 16:04:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-045"],"current_level":5} 
[2026-08-19 16:06:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-048"],"current_level":5} 
[2026-08-19 16:23:23] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2608-051"],"current_level":4} 
[2026-08-19 17:00:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-048"],"current_level":6} 
[2026-08-19 17:01:01] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-045"],"current_level":6} 
[2026-08-19 20:55:27] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-050","SMP2608-052"],"current_level":3} 
[2026-08-19 22:22:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-050"],"current_level":5} 
[2026-08-19 22:23:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-052"],"current_level":5} 
[2026-08-20 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-20 00:00:00","cutoff_time":"2026-08-19 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-20 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-20 08:00:00","cutoff_time":"2026-08-20 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-20 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2608-050","SMP2608-052"]} 
[2026-08-20 09:05:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-050"],"current_level":6} 
[2026-08-20 09:06:19] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-052"],"current_level":6} 
[2026-08-20 11:29:19] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-053","SMP2608-054"],"current_level":0} 
[2026-08-20 12:10:55] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-053","SMP2608-054"],"current_level":1} 
[2026-08-20 13:22:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-055"],"current_level":0} 
[2026-08-20 13:23:06] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-055"],"current_level":1} 
[2026-08-20 13:26:45] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-055"],"current_level":2} 
[2026-08-20 14:34:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-098"],"current_level":0} 
[2026-08-20 15:02:19] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2607-098"],"current_level":2} 
[2026-08-20 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-20 16:00:00","cutoff_time":"2026-08-20 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-20 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2607-098"]} 
[2026-08-20 16:17:29] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2607-098","SMP2608-053","SMP2608-054"],"current_level":3} 
[2026-08-20 16:24:05] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2607-098"],"current_level":4} 
[2026-08-20 16:42:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-038"],"current_level":0} 
[2026-08-20 16:42:47] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-038"],"current_level":2} 
[2026-08-20 20:41:51] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-055"],"current_level":3} 
[2026-08-21 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-21 00:00:00","cutoff_time":"2026-08-20 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-21 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-21 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-21 08:00:00","cutoff_time":"2026-08-21 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-21 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-21 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-054","SMP2608-055"]} 
[2026-08-21 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-053"]} 
[2026-08-21 08:06:10] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-055"],"current_level":5} 
[2026-08-21 09:00:36] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-055"],"current_level":6} 
[2026-08-21 11:02:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-046"],"current_level":0} 
[2026-08-21 11:05:40] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-056"],"current_level":0} 
[2026-08-21 11:07:58] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-046"],"current_level":1} 
[2026-08-21 11:12:29] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-056"],"current_level":1} 
[2026-08-21 11:41:58] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-056"],"current_level":2} 
[2026-08-21 13:07:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-057"],"current_level":0} 
[2026-08-21 13:31:23] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-057"],"current_level":1} 
[2026-08-21 15:57:42] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-038","SMP2608-046","SMP2608-056","SMP2608-057"],"current_level":3} 
[2026-08-21 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-21 16:00:00","cutoff_time":"2026-08-21 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-21 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-046"]} 
[2026-08-21 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-038"]} 
[2026-08-21 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-21 16:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-053"]} 
[2026-08-21 16:37:37] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-046"],"current_level":4} 
[2026-08-21 16:40:52] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2608-038"],"current_level":4} 
[2026-08-22 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-22 00:00:00","cutoff_time":"2026-08-21 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-22 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-22 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-22 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2608-053","SMP2608-056"]} 
[2026-08-22 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-22 08:00:00","cutoff_time":"2026-08-22 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-22 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-22 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-22 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2608-053","SMP2608-056"]} 
[2026-08-22 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-22 16:00:00","cutoff_time":"2026-08-22 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-22 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-22 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-22 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2608-053","SMP2608-056"]} 
[2026-08-23 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-23 00:00:00","cutoff_time":"2026-08-22 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-23 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-23 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-23 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2608-053","SMP2608-056"]} 
[2026-08-23 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-23 08:00:00","cutoff_time":"2026-08-23 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-23 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-23 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-23 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2608-053","SMP2608-056"]} 
[2026-08-23 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-23 16:00:00","cutoff_time":"2026-08-23 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-23 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-23 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-23 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2608-053","SMP2608-056"]} 
[2026-08-23 16:03:10] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-053"],"current_level":4} 
[2026-08-24 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-24 00:00:00","cutoff_time":"2026-08-23 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-24 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-24 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-24 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-056"]} 
[2026-08-24 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-24 08:00:00","cutoff_time":"2026-08-24 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-24 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to qe01@spunindo.com {"approver":"Maulana Adi Wibowo","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-24 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-24 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-056"]} 
[2026-08-24 10:12:17] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-056"],"current_level":4} 
[2026-08-24 10:41:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-057"],"current_level":0} 
[2026-08-24 10:53:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-058"],"current_level":0} 
[2026-08-24 10:54:01] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-058"],"current_level":1} 
[2026-08-24 10:59:04] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-057"],"current_level":1} 
[2026-08-24 11:00:57] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-058"],"current_level":2} 
[2026-08-24 11:15:36] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-058"],"current_level":3} 
[2026-08-24 12:26:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-059"],"current_level":0} 
[2026-08-24 13:02:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-059"],"current_level":3} 
[2026-08-24 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-24 16:00:00","cutoff_time":"2026-08-24 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-24 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-25 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-25 00:00:00","cutoff_time":"2026-08-24 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-25 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-25 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2608-054","SMP2608-058","SMP2608-059"]} 
[2026-08-25 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-25 08:00:00","cutoff_time":"2026-08-25 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-25 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-25 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2608-054","SMP2608-058","SMP2608-059"]} 
[2026-08-25 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-25 16:00:00","cutoff_time":"2026-08-25 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-25 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-25 16:00:22] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2608-054","SMP2608-058","SMP2608-059"]} 
[2026-08-25 23:04:42] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-057"],"current_level":3} 
[2026-08-26 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-26 00:00:00","cutoff_time":"2026-08-25 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-26 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2608-054","SMP2608-058","SMP2608-059"]} 
[2026-08-26 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-26 08:00:00","cutoff_time":"2026-08-26 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-26 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-26 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2608-054","SMP2608-058","SMP2608-059"]} 
[2026-08-26 08:58:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-058"],"current_level":5} 
[2026-08-26 08:59:23] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-059"],"current_level":5} 
[2026-08-26 09:16:58] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-058"],"current_level":6} 
[2026-08-26 09:18:01] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-059"],"current_level":6} 
[2026-08-26 09:39:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-060"],"current_level":0} 
[2026-08-26 09:48:13] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-060"],"current_level":2} 
[2026-08-26 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-26 16:00:00","cutoff_time":"2026-08-26 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-26 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-26 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-26 16:00:37] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-054"],"current_level":5} 
[2026-08-26 16:22:22] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-061"],"current_level":0} 
[2026-08-27 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-27 00:00:00","cutoff_time":"2026-08-26 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-27 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-060"]} 
[2026-08-27 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-27 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-27 08:00:00","cutoff_time":"2026-08-27 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-27 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2608-061"]} 
[2026-08-27 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-060"]} 
[2026-08-27 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2608-054"]} 
[2026-08-27 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-27 08:18:05] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-061"],"current_level":2} 
[2026-08-27 09:16:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-054"],"current_level":6} 
[2026-08-27 10:12:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-062","SMP2608-063"],"current_level":0} 
[2026-08-27 10:17:36] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-062","SMP2608-063"],"current_level":1} 
[2026-08-27 10:54:41] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-061"],"current_level":3} 
[2026-08-27 11:13:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-061"],"current_level":5} 
[2026-08-27 11:18:27] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-061"],"current_level":6} 
[2026-08-27 12:28:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-064"],"current_level":0} 
[2026-08-27 12:34:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-065"],"current_level":0} 
[2026-08-27 13:03:29] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-064"],"current_level":2} 
[2026-08-27 13:11:02] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-064"],"current_level":3} 
[2026-08-27 13:12:09] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2608-064"],"current_level":4} 
[2026-08-27 13:15:29] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-065"],"current_level":1} 
[2026-08-27 13:29:48] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-065"],"current_level":2} 
[2026-08-27 13:33:45] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-065"],"current_level":3} 
[2026-08-27 14:46:14] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-065"],"current_level":5} 
[2026-08-27 14:50:07] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-065"],"current_level":6} 
[2026-08-27 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-27 16:00:00","cutoff_time":"2026-08-27 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-27 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2608-060"]} 
[2026-08-27 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-27 16:26:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-066"],"current_level":0} 
[2026-08-27 16:27:29] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-066"],"current_level":2} 
[2026-08-27 16:34:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-067"],"current_level":0} 
[2026-08-27 16:45:15] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-067"],"current_level":2} 
[2026-08-27 17:08:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-066"],"current_level":3} 
[2026-08-28 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-28 00:00:00","cutoff_time":"2026-08-27 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-28 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2608-060","SMP2608-062","SMP2608-063"]} 
[2026-08-28 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-28 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-28 08:00:00","cutoff_time":"2026-08-28 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-28 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":4,"sample_ids":["SMP2608-060","SMP2608-062","SMP2608-063","SMP2608-067"]} 
[2026-08-28 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-066"]} 
[2026-08-28 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-28 08:52:14] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-060","SMP2608-062","SMP2608-063","SMP2608-067"],"current_level":3} 
[2026-08-28 08:55:39] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2608-060"],"current_level":4} 
[2026-08-28 10:46:55] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-066"],"current_level":4} 
[2026-08-28 10:47:36] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-068"],"current_level":0} 
[2026-08-28 14:09:49] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-063"],"current_level":5} 
[2026-08-28 14:32:56] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-063"],"current_level":6} 
[2026-08-28 14:59:09] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2608-067"],"current_level":4} 
[2026-08-28 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-28 16:00:00","cutoff_time":"2026-08-28 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-28 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-29 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-29 00:00:00","cutoff_time":"2026-08-28 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-29 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-29 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-29 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-29 08:00:00","cutoff_time":"2026-08-29 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-29 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-29 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-29 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-29 16:00:00","cutoff_time":"2026-08-29 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-29 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-29 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-30 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-30 00:00:00","cutoff_time":"2026-08-29 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-30 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-30 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-30 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-30 08:00:00","cutoff_time":"2026-08-30 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-30 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-30 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-30 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-30 16:00:00","cutoff_time":"2026-08-30 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-30 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-30 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-31 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-31 00:00:00","cutoff_time":"2026-08-30 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-31 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-31 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-31 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-31 08:00:00","cutoff_time":"2026-08-31 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-31 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2608-068"]} 
[2026-08-31 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2608-057"]} 
[2026-08-31 08:26:31] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2608-057"],"current_level":4} 
[2026-08-31 08:36:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-062"],"current_level":0} 
[2026-08-31 08:41:13] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-069"],"current_level":0} 
[2026-08-31 09:46:45] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-062","SMP2608-068","SMP2608-069"],"current_level":1} 
[2026-08-31 09:50:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-070"],"current_level":0} 
[2026-08-31 09:58:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-071"],"current_level":0} 
[2026-08-31 10:02:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-072"],"current_level":0} 
[2026-08-31 10:23:58] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-070"],"current_level":1} 
[2026-08-31 10:24:20] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-070"],"current_level":2} 
[2026-08-31 10:37:11] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-074"],"current_level":0} 
[2026-08-31 10:46:41] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-074"],"current_level":1} 
[2026-08-31 10:48:53] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-070"],"current_level":3} 
[2026-08-31 10:57:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-073"],"current_level":0} 
[2026-08-31 11:00:08] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-073"],"current_level":1} 
[2026-08-31 12:29:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-070"],"current_level":0} 
[2026-08-31 13:06:23] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2608-070"],"current_level":1} 
[2026-08-31 14:00:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-075"],"current_level":0} 
[2026-08-31 14:03:43] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2608-075"],"current_level":1} 
[2026-08-31 14:07:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-076"],"current_level":0} 
[2026-08-31 14:10:23] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-062","SMP2608-068","SMP2608-069","SMP2608-073","SMP2608-075"],"current_level":3} 
[2026-08-31 14:13:03] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-076"],"current_level":1} 
[2026-08-31 14:23:23] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2608-070"],"current_level":2} 
[2026-08-31 14:25:06] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2608-068"],"current_level":4} 
[2026-08-31 14:39:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-070"],"current_level":3} 
[2026-08-31 14:45:47] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-070"],"current_level":5} 
[2026-08-31 14:49:26] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-073"],"current_level":4} 
[2026-08-31 14:51:13] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-070"],"current_level":6} 
[2026-08-31 14:52:24] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-074","SMP2608-076"],"current_level":2} 
[2026-08-31 15:03:46] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-074","SMP2608-076"],"current_level":3} 
[2026-08-31 15:48:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-077"],"current_level":0} 
[2026-08-31 15:49:04] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-074"],"current_level":4} 
[2026-08-31 15:51:21] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2608-077"],"current_level":1} 
[2026-08-31 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-08-31 16:00:00","cutoff_time":"2026-08-31 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-08-31 16:07:55] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2608-077"],"current_level":2} 
[2026-08-31 16:10:19] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2608-077"],"current_level":3} 
[2026-09-01 00:00:02] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-01 00:00:02","cutoff_time":"2026-08-31 16:00:02","interval":"480 minutes (8 hours)"} 
[2026-09-01 00:00:02] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2608-071"]} 
[2026-09-01 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2608-072"]} 
[2026-09-01 00:00:08] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":2,"sample_ids":["SMP2608-075","SMP2608-076"]} 
[2026-09-01 00:00:10] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-062","SMP2608-069"]} 
[2026-09-01 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-01 08:00:00","cutoff_time":"2026-09-01 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-01 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2608-077"]} 
[2026-09-01 08:01:12] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-072"],"current_level":2} 
[2026-09-01 08:16:27] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-071"],"current_level":1} 
[2026-09-01 08:19:01] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-071"],"current_level":2} 
[2026-09-01 09:11:12] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-071","SMP2608-072"],"current_level":3} 
[2026-09-01 09:11:38] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-062"],"current_level":5} 
[2026-09-01 09:12:26] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-069"],"current_level":5} 
[2026-09-01 09:13:36] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-077"],"current_level":5} 
[2026-09-01 09:14:32] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-071"],"current_level":5} 
[2026-09-01 09:38:41] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-072"],"current_level":4} 
[2026-09-01 10:13:22] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-076"],"current_level":4} 
[2026-09-01 10:34:20] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-062"],"current_level":6} 
[2026-09-01 10:35:37] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-069"],"current_level":6} 
[2026-09-01 10:36:06] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-077"],"current_level":6} 
[2026-09-01 10:36:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-071"],"current_level":6} 
[2026-09-01 12:21:25] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-001"],"current_level":0} 
[2026-09-01 12:22:55] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-001"],"current_level":1} 
[2026-09-01 12:23:28] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-001"],"current_level":2} 
[2026-09-01 13:12:46] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-001"],"current_level":3} 
[2026-09-01 13:55:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-002"],"current_level":0} 
[2026-09-01 14:06:39] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-003"],"current_level":0} 
[2026-09-01 14:06:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-004"],"current_level":0} 
[2026-09-01 14:07:40] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-004"],"current_level":1} 
[2026-09-01 14:13:12] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-004"],"current_level":2} 
[2026-09-01 14:31:00] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-004"],"current_level":3} 
[2026-09-01 14:53:05] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-005"],"current_level":0} 
[2026-09-01 15:02:00] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-006"],"current_level":0} 
[2026-09-01 15:12:27] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2609-005","SMP2609-006"],"current_level":1} 
[2026-09-01 15:13:45] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-003","SMP2609-006"],"current_level":2} 
[2026-09-01 15:29:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-003","SMP2609-006"],"current_level":3} 
[2026-09-01 15:42:34] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-005"],"current_level":2} 
[2026-09-01 15:49:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-005"],"current_level":3} 
[2026-09-01 15:50:05] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-004"],"current_level":0} 
[2026-09-01 15:52:32] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-001"],"current_level":4} 
[2026-09-01 15:57:54] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-006"],"current_level":5} 
[2026-09-01 15:58:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-006"],"current_level":6} 
[2026-09-01 15:59:23] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-004"],"current_level":1} 
[2026-09-01 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-01 16:00:00","cutoff_time":"2026-09-01 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-01 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-01 16:11:44] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-004"],"current_level":2} 
[2026-09-01 16:12:50] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-003"],"current_level":5} 
[2026-09-01 16:15:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-005"],"current_level":0} 
[2026-09-01 16:16:17] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2609-005"],"current_level":1} 
[2026-09-01 16:17:21] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-005"],"current_level":2} 
[2026-09-01 16:18:21] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-004","SMP2609-005"],"current_level":3} 
[2026-09-01 16:25:35] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-002"],"current_level":3} 
[2026-09-01 16:44:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-004"],"current_level":5} 
[2026-09-01 16:45:06] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-005"],"current_level":5} 
[2026-09-01 16:50:38] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-002"],"current_level":0} 
[2026-09-01 17:05:02] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-002"],"current_level":3} 
[2026-09-02 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-02 00:00:00","cutoff_time":"2026-09-01 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-02 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-02 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-02 08:00:00","cutoff_time":"2026-09-02 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-02 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2609-003","SMP2609-004","SMP2609-005"]} 
[2026-09-02 08:00:11] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-02 08:00:17] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-002"]} 
[2026-09-02 08:09:34] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-004"],"current_level":6} 
[2026-09-02 08:09:53] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-005"],"current_level":6} 
[2026-09-02 08:10:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-003"],"current_level":6} 
[2026-09-02 08:34:17] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-002"],"current_level":5} 
[2026-09-02 08:36:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-002"],"current_level":6} 
[2026-09-02 09:35:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-007"],"current_level":0} 
[2026-09-02 09:35:38] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-007"],"current_level":2} 
[2026-09-02 11:25:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-006"],"current_level":0} 
[2026-09-02 11:38:51] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-006"],"current_level":1} 
[2026-09-02 11:39:49] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-006"],"current_level":2} 
[2026-09-02 14:23:34] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-006"],"current_level":3} 
[2026-09-02 14:59:42] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-006"],"current_level":5} 
[2026-09-02 15:05:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-008"],"current_level":0} 
[2026-09-02 15:11:37] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-008"],"current_level":1} 
[2026-09-02 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-02 16:00:00","cutoff_time":"2026-09-02 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-02 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-02 16:02:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-007"],"current_level":0} 
[2026-09-02 16:06:08] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-007"],"current_level":1} 
[2026-09-02 16:26:44] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-007"],"current_level":2} 
[2026-09-02 16:48:27] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-008"],"current_level":2} 
[2026-09-02 16:54:01] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-008"],"current_level":3} 
[2026-09-02 17:02:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-008"],"current_level":5} 
[2026-09-02 17:33:55] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-007","SMP2609-007"],"current_level":3} 
[2026-09-03 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-03 00:00:00","cutoff_time":"2026-09-02 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-03 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2609-006"]} 
[2026-09-03 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-03 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-03 08:00:00","cutoff_time":"2026-09-03 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-03 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2609-006","SMP2609-008"]} 
[2026-09-03 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-03 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2608-007","SMP2609-007"]} 
[2026-09-03 08:08:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2608-007"],"current_level":5} 
[2026-09-03 08:10:43] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-007"],"current_level":5} 
[2026-09-03 08:48:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2608-007"],"current_level":6} 
[2026-09-03 10:06:21] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-009","SMP2609-010","SMP2609-011"],"current_level":0} 
[2026-09-03 10:08:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-012"],"current_level":0} 
[2026-09-03 10:20:17] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-006"],"current_level":6} 
[2026-09-03 10:23:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-008"],"current_level":6} 
[2026-09-03 10:23:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-007"],"current_level":6} 
[2026-09-03 10:28:09] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-012"],"current_level":1} 
[2026-09-03 10:48:22] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-009","SMP2609-010","SMP2609-011","SMP2609-012"],"current_level":2} 
[2026-09-03 10:50:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-009","SMP2609-010","SMP2609-011","SMP2609-012"],"current_level":3} 
[2026-09-03 11:03:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-010"],"current_level":5} 
[2026-09-03 11:05:03] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-010"],"current_level":6} 
[2026-09-03 11:11:04] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-011"],"current_level":5} 
[2026-09-03 11:12:47] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-011"],"current_level":6} 
[2026-09-03 11:32:33] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-009"],"current_level":0} 
[2026-09-03 11:36:23] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-009"],"current_level":2} 
[2026-09-03 11:39:37] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-009"],"current_level":3} 
[2026-09-03 11:50:19] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-009"],"current_level":5} 
[2026-09-03 11:52:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-013"],"current_level":0} 
[2026-09-03 13:24:41] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-009"],"current_level":6} 
[2026-09-03 14:00:38] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-013"],"current_level":3} 
[2026-09-03 15:05:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-014"],"current_level":0} 
[2026-09-03 15:06:19] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-014"],"current_level":1} 
[2026-09-03 15:15:57] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-014"],"current_level":2} 
[2026-09-03 15:21:29] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-014"],"current_level":3} 
[2026-09-03 16:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-03 16:00:00","cutoff_time":"2026-09-03 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-03 16:00:01] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-03 16:08:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-015"],"current_level":0} 
[2026-09-03 16:26:43] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2609-015"],"current_level":1} 
[2026-09-04 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-04 00:00:00","cutoff_time":"2026-09-03 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-04 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-04 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-013"]} 
[2026-09-04 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-012","SMP2609-014"]} 
[2026-09-04 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-04 08:00:00","cutoff_time":"2026-09-04 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-04 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-04 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-013"]} 
[2026-09-04 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-012","SMP2609-014"]} 
[2026-09-04 08:14:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-012"],"current_level":5} 
[2026-09-04 09:32:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-012"],"current_level":6} 
[2026-09-04 09:37:52] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-013"],"current_level":4} 
[2026-09-04 09:47:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-015"],"current_level":0} 
[2026-09-04 10:03:46] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2609-015"],"current_level":1} 
[2026-09-04 10:09:33] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-015"],"current_level":2} 
[2026-09-04 10:11:01] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-015"],"current_level":3} 
[2026-09-04 10:40:03] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-014"],"current_level":5} 
[2026-09-04 10:42:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-016","SMP2609-017"],"current_level":0} 
[2026-09-04 10:43:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-014"],"current_level":6} 
[2026-09-04 10:52:04] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-016","SMP2609-017"],"current_level":1} 
[2026-09-04 11:17:44] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-015"],"current_level":5} 
[2026-09-04 11:23:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-015"],"current_level":6} 
[2026-09-04 11:26:57] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-016","SMP2609-017"],"current_level":2} 
[2026-09-04 14:29:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-016","SMP2609-017"],"current_level":3} 
[2026-09-04 14:58:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-018"],"current_level":0} 
[2026-09-04 15:03:24] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-018"],"current_level":1} 
[2026-09-04 15:03:46] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-018"],"current_level":2} 
[2026-09-04 15:27:02] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-018"],"current_level":3} 
[2026-09-04 15:42:12] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-017"],"current_level":5} 
[2026-09-04 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-04 16:00:00","cutoff_time":"2026-09-04 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-04 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-04 16:02:24] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-018"],"current_level":0} 
[2026-09-04 16:47:21] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-017"],"current_level":6} 
[2026-09-04 17:03:11] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-016"],"current_level":4} 
[2026-09-05 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-05 00:00:01","cutoff_time":"2026-09-04 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-09-05 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-05 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-05 08:00:00","cutoff_time":"2026-09-05 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-05 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":1,"sample_ids":["SMP2609-018"]} 
[2026-09-05 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-05 16:00:00","cutoff_time":"2026-09-05 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-05 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk01@spunindo.com {"approver":"Selvie Chandra","samples_count":1,"sample_ids":["SMP2609-018"]} 
[2026-09-05 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-05 16:07:55] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-018"],"current_level":1} 
[2026-09-06 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-06 00:00:00","cutoff_time":"2026-09-05 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-06 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-06 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-06 08:00:00","cutoff_time":"2026-09-06 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-06 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to yohanes.ku@spunindo.com {"approver":"Yohanes Kurniawan","samples_count":1,"sample_ids":["SMP2609-018"]} 
[2026-09-06 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-06 09:04:56] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-018"],"current_level":2} 
[2026-09-06 10:41:01] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-018"],"current_level":3} 
[2026-09-06 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-06 16:00:00","cutoff_time":"2026-09-06 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-06 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-07 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-07 00:00:00","cutoff_time":"2026-09-06 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-07 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-07 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-018"]} 
[2026-09-07 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-07 08:00:00","cutoff_time":"2026-09-07 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-07 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-07 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-018"]} 
[2026-09-07 08:13:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-018"],"current_level":5} 
[2026-09-07 09:25:45] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-018"],"current_level":6} 
[2026-09-07 10:47:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-019"],"current_level":0} 
[2026-09-07 10:47:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-020"],"current_level":0} 
[2026-09-07 10:47:35] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-019"],"current_level":1} 
[2026-09-07 10:47:55] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-019"],"current_level":2} 
[2026-09-07 10:49:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-021"],"current_level":0} 
[2026-09-07 11:07:31] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-010"],"current_level":0} 
[2026-09-07 12:20:20] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-010","SMP2609-020"],"current_level":2} 
[2026-09-07 13:26:50] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-021"],"current_level":1} 
[2026-09-07 13:38:06] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-010","SMP2609-019","SMP2609-020"],"current_level":3} 
[2026-09-07 14:20:48] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-010"],"current_level":5} 
[2026-09-07 14:21:46] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-019"],"current_level":5} 
[2026-09-07 14:22:22] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-020"],"current_level":5} 
[2026-09-07 14:30:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-010"],"current_level":6} 
[2026-09-07 14:31:10] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-019"],"current_level":6} 
[2026-09-07 14:31:24] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-020"],"current_level":6} 
[2026-09-07 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-07 16:00:00","cutoff_time":"2026-09-07 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-07 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-08 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-08 00:00:00","cutoff_time":"2026-09-07 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-08 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-021"]} 
[2026-09-08 00:00:03] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-08 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-08 08:00:00","cutoff_time":"2026-09-08 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-08 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-021"]} 
[2026-09-08 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-08 08:22:48] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-021"],"current_level":2} 
[2026-09-08 14:36:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-022"],"current_level":0} 
[2026-09-08 14:38:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-023"],"current_level":0} 
[2026-09-08 14:41:38] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-024"],"current_level":0} 
[2026-09-08 14:42:33] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-022"],"current_level":2} 
[2026-09-08 14:44:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-025"],"current_level":0} 
[2026-09-08 14:47:12] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-023","SMP2609-024"],"current_level":1} 
[2026-09-08 14:48:49] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-026"],"current_level":0} 
[2026-09-08 14:55:03] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-025"],"current_level":1} 
[2026-09-08 15:08:09] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-021","SMP2609-022","SMP2609-023","SMP2609-024"],"current_level":3} 
[2026-09-08 15:09:09] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-026"],"current_level":2} 
[2026-09-08 15:19:51] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-026"],"current_level":3} 
[2026-09-08 15:23:17] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-021"],"current_level":5} 
[2026-09-08 15:24:08] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-025"],"current_level":2} 
[2026-09-08 15:25:37] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-022"],"current_level":5} 
[2026-09-08 15:26:33] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-023"],"current_level":5} 
[2026-09-08 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-08 16:00:00","cutoff_time":"2026-09-08 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-08 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-08 16:20:46] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-027"],"current_level":0} 
[2026-09-08 16:40:18] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-027"],"current_level":1} 
[2026-09-08 16:40:52] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-027"],"current_level":2} 
[2026-09-08 16:48:58] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-021"],"current_level":6} 
[2026-09-08 16:49:25] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-022"],"current_level":6} 
[2026-09-08 16:57:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-028"],"current_level":0} 
[2026-09-08 16:58:15] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-028"],"current_level":1} 
[2026-09-08 18:08:12] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-028"],"current_level":2} 
[2026-09-08 20:05:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-025","SMP2609-028"],"current_level":3} 
[2026-09-09 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-09 00:00:01","cutoff_time":"2026-09-08 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-09-09 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-09 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-023","SMP2609-024"]} 
[2026-09-09 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2609-026"]} 
[2026-09-09 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-09 08:00:00","cutoff_time":"2026-09-09 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-09 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-027"]} 
[2026-09-09 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-025","SMP2609-028"]} 
[2026-09-09 11:25:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-029","SMP2609-030"],"current_level":0} 
[2026-09-09 11:29:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-031"],"current_level":0} 
[2026-09-09 11:31:57] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-032"],"current_level":0} 
[2026-09-09 11:35:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-033"],"current_level":0} 
[2026-09-09 11:51:53] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-033"],"current_level":1} 
[2026-09-09 13:21:38] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-034"],"current_level":0} 
[2026-09-09 13:22:59] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-029","SMP2609-030"],"current_level":2} 
[2026-09-09 13:29:18] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-034"],"current_level":1} 
[2026-09-09 13:41:09] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-027","SMP2609-033"],"current_level":3} 
[2026-09-09 14:10:50] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-029","SMP2609-030","SMP2609-034"],"current_level":3} 
[2026-09-09 14:29:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-035"],"current_level":0} 
[2026-09-09 14:34:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-036"],"current_level":0} 
[2026-09-09 14:49:18] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-031","SMP2609-032","SMP2609-035"],"current_level":1} 
[2026-09-09 14:59:38] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-025"],"current_level":5} 
[2026-09-09 15:00:37] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-028"],"current_level":5} 
[2026-09-09 15:01:06] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-023"],"current_level":5} 
[2026-09-09 15:02:14] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-027"],"current_level":5} 
[2026-09-09 15:04:11] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-030"],"current_level":5} 
[2026-09-09 15:04:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-029"],"current_level":5} 
[2026-09-09 15:05:57] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-032","SMP2609-035"],"current_level":2} 
[2026-09-09 15:11:09] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-031"],"current_level":0} 
[2026-09-09 15:43:00] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-025"],"current_level":6} 
[2026-09-09 15:43:14] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-028"],"current_level":6} 
[2026-09-09 15:43:34] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-023"],"current_level":6} 
[2026-09-09 15:43:53] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-027"],"current_level":6} 
[2026-09-09 15:44:07] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-030"],"current_level":6} 
[2026-09-09 15:44:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-029"],"current_level":6} 
[2026-09-09 16:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-09 16:00:01","cutoff_time":"2026-09-09 08:00:01","interval":"480 minutes (8 hours)"} 
[2026-09-09 16:00:01] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-09 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-024"]} 
[2026-09-09 16:00:06] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2609-026"]} 
[2026-09-09 22:36:17] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-024"],"current_level":5} 
[2026-09-10 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-10 00:00:00","cutoff_time":"2026-09-09 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-10 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2609-036"]} 
[2026-09-10 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk03@spunindo.com {"approver":"Nike Pusparini","samples_count":1,"sample_ids":["SMP2609-031"]} 
[2026-09-10 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2609-032","SMP2609-035"]} 
[2026-09-10 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-033","SMP2609-034"]} 
[2026-09-10 04:47:26] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-032","SMP2609-035"],"current_level":3} 
[2026-09-10 06:23:30] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-031"],"current_level":1} 
[2026-09-10 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-10 08:00:00","cutoff_time":"2026-09-10 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-10 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2609-036"]} 
[2026-09-10 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2609-024"]} 
[2026-09-10 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2608-075"]} 
[2026-09-10 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-033","SMP2609-034"]} 
[2026-09-10 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2609-026"]} 
[2026-09-10 08:04:02] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-024"],"current_level":6} 
[2026-09-10 08:04:26] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-035"],"current_level":5} 
[2026-09-10 08:08:33] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-035"],"current_level":6} 
[2026-09-10 08:21:19] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-031"],"current_level":2} 
[2026-09-10 10:41:41] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-033"],"current_level":5} 
[2026-09-10 10:44:49] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-032"],"current_level":5} 
[2026-09-10 10:45:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-034"],"current_level":0} 
[2026-09-10 10:46:14] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-034"],"current_level":1} 
[2026-09-10 11:39:09] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-033"],"current_level":6} 
[2026-09-10 11:39:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-032"],"current_level":6} 
[2026-09-10 11:58:13] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2608-075"],"current_level":4} 
[2026-09-10 13:21:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-026"],"current_level":0} 
[2026-09-10 13:23:22] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-026"],"current_level":2} 
[2026-09-10 15:24:12] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-037"],"current_level":0} 
[2026-09-10 15:26:47] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-037"],"current_level":2} 
[2026-09-10 15:32:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-034"],"current_level":3} 
[2026-09-10 16:29:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-038"],"current_level":0} 
[2026-09-10 16:30:54] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-034"],"current_level":5} 
[2026-09-10 17:01:14] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-039"],"current_level":0} 
[2026-09-11 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-11 00:00:01","cutoff_time":"2026-09-10 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-09-11 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to mk15@spunindo.com {"approver":"Latifa Algha","samples_count":1,"sample_ids":["SMP2609-036"]} 
[2026-09-11 00:00:06] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2609-026","SMP2609-031","SMP2609-037"]} 
[2026-09-11 07:53:55] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-026","SMP2609-031","SMP2609-037"],"current_level":3} 
[2026-09-11 07:56:26] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-036"],"current_level":1} 
[2026-09-11 08:32:49] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-039"],"current_level":2} 
[2026-09-11 09:18:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-034"],"current_level":6} 
[2026-09-11 10:17:32] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-026"],"current_level":4} 
[2026-09-11 10:42:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-040","SMP2609-041"],"current_level":0} 
[2026-09-11 13:05:57] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-031"],"current_level":5} 
[2026-09-11 13:18:17] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-037"],"current_level":5} 
[2026-09-11 13:25:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-042"],"current_level":0} 
[2026-09-11 13:27:40] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-042"],"current_level":2} 
[2026-09-11 13:30:02] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-031"],"current_level":6} 
[2026-09-11 13:31:15] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-037"],"current_level":6} 
[2026-09-11 13:50:44] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-036"],"current_level":2} 
[2026-09-11 15:04:13] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-040","SMP2609-041"],"current_level":1} 
[2026-09-12 07:36:51] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-036","SMP2609-042"],"current_level":3} 
[2026-09-14 08:12:30] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-036"],"current_level":5} 
[2026-09-14 08:33:03] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-040","SMP2609-041"],"current_level":2} 
[2026-09-14 08:59:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-043","SMP2609-044"],"current_level":0} 
[2026-09-14 09:06:52] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-043","SMP2609-044"],"current_level":2} 
[2026-09-14 09:09:43] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-039","SMP2609-040","SMP2609-041","SMP2609-043","SMP2609-044"],"current_level":3} 
[2026-09-14 09:17:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-045"],"current_level":0} 
[2026-09-14 09:21:32] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-044"],"current_level":4} 
[2026-09-14 10:29:37] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2609-038"],"current_level":1} 
[2026-09-14 10:38:49] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-042"],"current_level":5} 
[2026-09-14 10:41:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-040"],"current_level":5} 
[2026-09-14 10:42:58] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-041"],"current_level":5} 
[2026-09-14 10:49:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-046"],"current_level":0} 
[2026-09-14 10:50:24] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-046"],"current_level":1} 
[2026-09-14 10:54:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-047"],"current_level":0} 
[2026-09-14 11:04:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-048"],"current_level":0} 
[2026-09-14 11:08:01] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-038"],"current_level":2} 
[2026-09-14 11:08:49] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-036"],"current_level":6} 
[2026-09-14 11:11:51] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-041"],"current_level":6} 
[2026-09-14 11:12:05] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-040"],"current_level":6} 
[2026-09-14 11:12:33] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-042"],"current_level":6} 
[2026-09-14 11:23:38] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-038","SMP2609-047","SMP2609-048"],"current_level":3} 
[2026-09-14 11:42:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-049"],"current_level":0} 
[2026-09-14 11:54:05] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-048"],"current_level":4} 
[2026-09-14 13:03:01] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-046"],"current_level":2} 
[2026-09-14 13:12:52] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-039"],"current_level":4} 
[2026-09-14 14:20:30] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-047"],"current_level":4} 
[2026-09-14 15:25:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-038"],"current_level":5} 
[2026-09-14 15:36:12] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-046"],"current_level":3} 
[2026-09-14 16:00:02] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-14 16:00:02","cutoff_time":"2026-09-14 08:00:02","interval":"480 minutes (8 hours)"} 
[2026-09-14 16:54:35] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-038"],"current_level":6} 
[2026-09-14 17:28:26] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-049"],"current_level":2} 
[2026-09-15 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-15 00:00:00","cutoff_time":"2026-09-14 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-15 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2609-045"]} 
[2026-09-15 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2609-046"]} 
[2026-09-15 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-043"]} 
[2026-09-15 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-15 08:00:00","cutoff_time":"2026-09-15 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-15 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2609-045"]} 
[2026-09-15 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2609-049"]} 
[2026-09-15 08:00:10] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2609-046"]} 
[2026-09-15 08:00:15] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-043"]} 
[2026-09-15 08:19:21] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-046"],"current_level":4} 
[2026-09-15 08:27:16] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-043"],"current_level":0} 
[2026-09-15 08:36:09] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-049"],"current_level":3} 
[2026-09-15 08:38:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-050","SMP2609-051"],"current_level":0} 
[2026-09-15 08:44:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-052"],"current_level":0} 
[2026-09-15 09:14:07] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-045"],"current_level":1} 
[2026-09-15 09:18:44] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-043","SMP2609-050","SMP2609-051"],"current_level":2} 
[2026-09-15 09:26:46] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-052"],"current_level":3} 
[2026-09-15 10:12:14] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-049"],"current_level":5} 
[2026-09-15 10:14:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-049"],"current_level":6} 
[2026-09-15 11:23:56] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-043","SMP2609-045","SMP2609-050","SMP2609-051"],"current_level":3} 
[2026-09-15 11:34:33] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-043"],"current_level":4} 
[2026-09-15 11:37:35] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-050"],"current_level":4} 
[2026-09-15 11:38:41] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-051"],"current_level":4} 
[2026-09-15 14:52:51] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-052"],"current_level":5} 
[2026-09-15 14:57:33] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-052"],"current_level":6} 
[2026-09-15 15:18:45] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-053"],"current_level":0} 
[2026-09-15 15:33:43] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-053"],"current_level":1} 
[2026-09-15 15:58:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-053"],"current_level":0} 
[2026-09-15 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-15 16:00:00","cutoff_time":"2026-09-15 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-15 16:08:58] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-053"],"current_level":1} 
[2026-09-15 16:13:37] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-053"],"current_level":3} 
[2026-09-15 16:14:27] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-054"],"current_level":0} 
[2026-09-15 16:18:03] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-054"],"current_level":1} 
[2026-09-15 16:18:07] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-055"],"current_level":0} 
[2026-09-15 16:20:02] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-053"],"current_level":4} 
[2026-09-15 16:25:05] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-055"],"current_level":1} 
[2026-09-15 16:29:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-056"],"current_level":0} 
[2026-09-15 16:35:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-057"],"current_level":0} 
[2026-09-15 16:37:23] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-055"],"current_level":0} 
[2026-09-15 16:38:02] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-056","SMP2609-057"],"current_level":2} 
[2026-09-15 16:43:35] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-055"],"current_level":1} 
[2026-09-15 16:44:20] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-055"],"current_level":2} 
[2026-09-15 17:13:29] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-058"],"current_level":0} 
[2026-09-15 17:18:22] production.INFO: handleSampleApproval: Event received from Yohanes Kurniawan (008) {"sample_ids":["SMP2609-054"],"current_level":2} 
[2026-09-16 00:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-16 00:00:01","cutoff_time":"2026-09-15 16:00:01","interval":"480 minutes (8 hours)"} 
[2026-09-16 00:00:01] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2609-045"]} 
[2026-09-16 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-16 08:00:00","cutoff_time":"2026-09-16 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-16 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk11@spunindo.com {"approver":"Gwen Sijangga","samples_count":1,"sample_ids":["SMP2609-058"]} 
[2026-09-16 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2609-054"]} 
[2026-09-16 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2609-055","SMP2609-056","SMP2609-057"]} 
[2026-09-16 08:32:47] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-054"],"current_level":3} 
[2026-09-16 08:50:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-054"],"current_level":5} 
[2026-09-16 09:23:29] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-058"],"current_level":1} 
[2026-09-16 10:13:08] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-045"],"current_level":4} 
[2026-09-16 10:49:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-054"],"current_level":6} 
[2026-09-16 14:14:11] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-055","SMP2609-056","SMP2609-057","SMP2609-058"],"current_level":3} 
[2026-09-16 14:18:04] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-055"],"current_level":5} 
[2026-09-16 14:18:50] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-056"],"current_level":5} 
[2026-09-16 14:19:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-057"],"current_level":5} 
[2026-09-16 15:31:05] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-055"],"current_level":6} 
[2026-09-16 15:31:17] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-056"],"current_level":6} 
[2026-09-16 15:31:29] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-057"],"current_level":6} 
[2026-09-16 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-16 16:00:00","cutoff_time":"2026-09-16 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-16 16:16:43] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-058"],"current_level":4} 
[2026-09-16 16:40:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-057"],"current_level":0} 
[2026-09-17 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-17 00:00:00","cutoff_time":"2026-09-16 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-17 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-17 08:00:00","cutoff_time":"2026-09-17 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-17 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-17 10:31:22] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-057"],"current_level":2} 
[2026-09-17 11:58:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-059"],"current_level":0} 
[2026-09-17 12:00:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-060"],"current_level":0} 
[2026-09-17 12:04:35] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-060"],"current_level":3} 
[2026-09-17 13:33:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-061"],"current_level":0} 
[2026-09-17 13:38:54] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-062"],"current_level":0} 
[2026-09-17 13:42:17] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-061"],"current_level":1} 
[2026-09-17 13:49:40] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-061"],"current_level":3} 
[2026-09-17 14:07:12] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-059"],"current_level":1} 
[2026-09-17 14:49:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-063"],"current_level":0} 
[2026-09-17 14:52:23] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-063"],"current_level":1} 
[2026-09-17 15:09:52] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-063"],"current_level":3} 
[2026-09-17 15:19:19] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-063"],"current_level":5} 
[2026-09-17 15:54:26] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-062"],"current_level":2} 
[2026-09-17 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-17 16:00:00","cutoff_time":"2026-09-17 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-17 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-17 16:14:56] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-062"],"current_level":3} 
[2026-09-17 17:09:34] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-062"],"current_level":5} 
[2026-09-18 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-18 00:00:00","cutoff_time":"2026-09-17 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-18 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-059"]} 
[2026-09-18 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-18 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2609-063"]} 
[2026-09-18 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2609-061"]} 
[2026-09-18 00:00:08] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-060"]} 
[2026-09-18 07:13:01] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-059"],"current_level":2} 
[2026-09-18 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-18 08:00:00","cutoff_time":"2026-09-18 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-18 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-18 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":2,"sample_ids":["SMP2609-063","SMP2609-062"]} 
[2026-09-18 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2609-061"]} 
[2026-09-18 08:00:08] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-060"]} 
[2026-09-18 09:08:07] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-063"],"current_level":6} 
[2026-09-18 09:29:01] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-062"],"current_level":6} 
[2026-09-18 09:30:33] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-057","SMP2609-059"],"current_level":3} 
[2026-09-18 09:48:06] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-059"],"current_level":4} 
[2026-09-18 09:59:12] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-057"],"current_level":4} 
[2026-09-18 11:55:47] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-064","SMP2609-065"],"current_level":0} 
[2026-09-18 13:10:39] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-064","SMP2609-065"],"current_level":1} 
[2026-09-18 13:19:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-060"],"current_level":5} 
[2026-09-18 13:20:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-060"],"current_level":6} 
[2026-09-18 13:39:32] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-066"],"current_level":0} 
[2026-09-18 14:55:19] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-066"],"current_level":2} 
[2026-09-18 14:58:33] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-066"],"current_level":3} 
[2026-09-18 15:06:46] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-066"],"current_level":5} 
[2026-09-18 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-18 16:00:00","cutoff_time":"2026-09-18 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-18 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2609-061"]} 
[2026-09-18 16:17:15] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-057"],"current_level":0} 
[2026-09-18 16:18:12] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2609-057"],"current_level":1} 
[2026-09-18 16:49:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-067"],"current_level":0} 
[2026-09-18 16:54:13] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-061"],"current_level":4} 
[2026-09-18 16:57:32] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-066"],"current_level":6} 
[2026-09-18 16:57:38] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-067"],"current_level":2} 
[2026-09-18 16:58:50] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-067"],"current_level":0} 
[2026-09-18 19:01:04] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-057","SMP2609-064","SMP2609-065"],"current_level":2} 
[2026-09-18 20:03:07] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-057","SMP2609-064","SMP2609-065"],"current_level":3} 
[2026-09-19 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-19 00:00:00","cutoff_time":"2026-09-18 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-19 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-19 08:00:00","cutoff_time":"2026-09-19 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-19 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2609-067"]} 
[2026-09-19 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-19 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-064","SMP2609-065"]} 
[2026-09-19 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-19 16:00:00","cutoff_time":"2026-09-19 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-19 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk07@spunindo.com {"approver":"Dwie Zesta","samples_count":1,"sample_ids":["SMP2609-067"]} 
[2026-09-19 16:00:05] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-19 16:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-064","SMP2609-065"]} 
[2026-09-19 22:27:51] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-067"],"current_level":2} 
[2026-09-20 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-20 00:00:00","cutoff_time":"2026-09-19 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-20 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-20 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-064","SMP2609-065"]} 
[2026-09-20 07:40:09] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-067"],"current_level":3} 
[2026-09-20 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-20 08:00:00","cutoff_time":"2026-09-20 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-20 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-20 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-064","SMP2609-065"]} 
[2026-09-20 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-20 16:00:00","cutoff_time":"2026-09-20 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-20 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-20 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2609-064","SMP2609-065","SMP2609-067"]} 
[2026-09-21 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-21 00:00:00","cutoff_time":"2026-09-20 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-21 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-21 00:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2609-064","SMP2609-065","SMP2609-067"]} 
[2026-09-21 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-21 08:00:00","cutoff_time":"2026-09-21 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-21 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-057"]} 
[2026-09-21 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":3,"sample_ids":["SMP2609-064","SMP2609-065","SMP2609-067"]} 
[2026-09-21 08:14:54] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-064"],"current_level":5} 
[2026-09-21 08:16:15] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-065"],"current_level":5} 
[2026-09-21 08:18:30] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-067"],"current_level":5} 
[2026-09-21 08:21:53] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-057"],"current_level":4} 
[2026-09-21 13:10:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-068"],"current_level":0} 
[2026-09-21 13:12:06] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-068"],"current_level":1} 
[2026-09-21 13:35:19] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-068"],"current_level":2} 
[2026-09-21 13:45:05] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-068"],"current_level":3} 
[2026-09-21 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-21 16:00:00","cutoff_time":"2026-09-21 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-21 16:17:02] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-068"],"current_level":5} 
[2026-09-21 16:54:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2607-054"],"current_level":0} 
[2026-09-21 17:07:02] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2607-054"],"current_level":3} 
[2026-09-22 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-22 00:00:00","cutoff_time":"2026-09-21 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-22 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":3,"sample_ids":["SMP2609-064","SMP2609-065","SMP2609-067"]} 
[2026-09-22 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-054"]} 
[2026-09-22 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-22 08:00:00","cutoff_time":"2026-09-22 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-22 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":4,"sample_ids":["SMP2609-064","SMP2609-065","SMP2609-067","SMP2609-068"]} 
[2026-09-22 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2607-054"]} 
[2026-09-22 08:10:55] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-064"],"current_level":6} 
[2026-09-22 08:11:12] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-065"],"current_level":6} 
[2026-09-22 08:11:35] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-067"],"current_level":6} 
[2026-09-22 08:12:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-068"],"current_level":6} 
[2026-09-22 08:47:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2607-054"],"current_level":5} 
[2026-09-22 08:51:16] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2607-054"],"current_level":6} 
[2026-09-22 09:07:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-069"],"current_level":0} 
[2026-09-22 09:12:10] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-070"],"current_level":0} 
[2026-09-22 09:14:22] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2609-070"],"current_level":1} 
[2026-09-22 09:42:57] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-068"],"current_level":0} 
[2026-09-22 09:55:41] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-068"],"current_level":1} 
[2026-09-22 10:16:34] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-071"],"current_level":0} 
[2026-09-22 10:50:43] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-068"],"current_level":2} 
[2026-09-22 10:57:22] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-068","SMP2609-069"],"current_level":3} 
[2026-09-22 10:58:21] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-068"],"current_level":5} 
[2026-09-22 11:07:46] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-069"],"current_level":4} 
[2026-09-22 11:17:20] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2609-071"],"current_level":1} 
[2026-09-22 11:57:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-072","SMP2609-073"],"current_level":0} 
[2026-09-22 12:01:20] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-074"],"current_level":0} 
[2026-09-22 13:04:54] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-072","SMP2609-073","SMP2609-074"],"current_level":2} 
[2026-09-22 13:26:09] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-071","SMP2609-072","SMP2609-073","SMP2609-074"],"current_level":3} 
[2026-09-22 13:46:07] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-072"],"current_level":5} 
[2026-09-22 13:47:08] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-073"],"current_level":5} 
[2026-09-22 13:48:37] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-072"],"current_level":6} 
[2026-09-22 13:48:48] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-073"],"current_level":6} 
[2026-09-22 13:51:21] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-074"],"current_level":5} 
[2026-09-22 13:57:13] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-074"],"current_level":6} 
[2026-09-22 14:20:36] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-071"],"current_level":5} 
[2026-09-22 15:25:31] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-071"],"current_level":6} 
[2026-09-22 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-22 16:00:00","cutoff_time":"2026-09-22 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-22 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2609-068"]} 
[2026-09-22 17:00:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-075"],"current_level":0} 
[2026-09-22 17:34:52] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-075"],"current_level":2} 
[2026-09-23 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-23 00:00:00","cutoff_time":"2026-09-22 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-23 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-070"]} 
[2026-09-23 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2609-068"]} 
[2026-09-23 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-23 08:00:00","cutoff_time":"2026-09-23 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-23 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-070"]} 
[2026-09-23 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to rizqi.ra@spunindo.com {"approver":"Rizqi Tri","samples_count":1,"sample_ids":["SMP2609-068"]} 
[2026-09-23 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-075"]} 
[2026-09-23 08:09:52] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-070"],"current_level":2} 
[2026-09-23 08:16:22] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-075"],"current_level":5} 
[2026-09-23 08:30:33] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-068"],"current_level":6} 
[2026-09-23 08:30:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-075"],"current_level":6} 
[2026-09-23 09:36:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-032"],"current_level":0} 
[2026-09-23 09:37:48] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-032"],"current_level":1} 
[2026-09-23 09:53:12] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-032"],"current_level":2} 
[2026-09-23 14:48:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-076"],"current_level":0} 
[2026-09-23 15:17:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-077"],"current_level":0} 
[2026-09-23 15:54:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-078"],"current_level":0} 
[2026-09-23 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-23 16:00:00","cutoff_time":"2026-09-23 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-23 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-032"]} 
[2026-09-23 16:00:27] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-078"],"current_level":2} 
[2026-09-23 16:23:38] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-077"],"current_level":1} 
[2026-09-24 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-24 00:00:00","cutoff_time":"2026-09-23 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-24 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-076"]} 
[2026-09-24 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":2,"sample_ids":["SMP2609-032","SMP2609-070"]} 
[2026-09-24 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-24 08:00:00","cutoff_time":"2026-09-24 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-24 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-076"]} 
[2026-09-24 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":1,"sample_ids":["SMP2609-078"]} 
[2026-09-24 08:00:06] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":3,"sample_ids":["SMP2609-032","SMP2609-070","SMP2609-077"]} 
[2026-09-24 08:07:12] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-078"],"current_level":3} 
[2026-09-24 08:32:34] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-078"],"current_level":5} 
[2026-09-24 08:55:58] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-078"],"current_level":6} 
[2026-09-24 09:40:03] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-076"],"current_level":2} 
[2026-09-24 10:26:09] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-032","SMP2609-070","SMP2609-076","SMP2609-077"],"current_level":3} 
[2026-09-24 11:35:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-032"],"current_level":5} 
[2026-09-24 11:35:54] production.INFO: handleSampleApproval: Event received from Maulana Adi Wibowo (014) {"sample_ids":["SMP2609-076"],"current_level":4} 
[2026-09-24 11:37:53] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-070"],"current_level":5} 
[2026-09-24 11:58:20] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-079"],"current_level":0} 
[2026-09-24 12:45:33] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-079"],"current_level":1} 
[2026-09-24 13:09:43] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-079"],"current_level":0} 
[2026-09-24 13:36:43] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-032"],"current_level":6} 
[2026-09-24 13:37:08] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-070"],"current_level":6} 
[2026-09-24 13:53:02] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-079"],"current_level":1} 
[2026-09-24 13:56:38] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-079"],"current_level":0} 
[2026-09-24 14:01:35] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-079"],"current_level":1} 
[2026-09-24 14:49:21] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-079"],"current_level":3} 
[2026-09-24 15:01:54] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-079"],"current_level":5} 
[2026-09-24 15:02:19] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-079"],"current_level":6} 
[2026-09-24 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-24 16:00:00","cutoff_time":"2026-09-24 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-24 16:59:41] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-080"],"current_level":0} 
[2026-09-24 17:02:25] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-080"],"current_level":1} 
[2026-09-25 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-25 00:00:00","cutoff_time":"2026-09-24 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-25 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-25 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-25 08:00:00","cutoff_time":"2026-09-25 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-25 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to sales88@spunindo.com {"approver":"Ika Sari","samples_count":1,"sample_ids":["SMP2609-080"]} 
[2026-09-25 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-25 08:24:16] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-080"],"current_level":2} 
[2026-09-25 10:45:32] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-042"],"current_level":0} 
[2026-09-25 11:10:01] production.INFO: handleSampleApproval: Event received from Vivi Alayda (018) {"sample_ids":["SMP2609-042"],"current_level":1} 
[2026-09-25 11:49:35] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-042"],"current_level":2} 
[2026-09-25 12:16:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-082"],"current_level":0} 
[2026-09-25 12:49:38] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-042"],"current_level":3} 
[2026-09-25 13:12:05] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-082"],"current_level":1} 
[2026-09-25 13:20:35] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-082"],"current_level":3} 
[2026-09-25 13:49:28] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-042"],"current_level":5} 
[2026-09-25 13:50:31] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-082"],"current_level":5} 
[2026-09-25 13:51:59] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-081"],"current_level":0} 
[2026-09-25 14:05:50] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-042"],"current_level":6} 
[2026-09-25 14:06:03] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-082"],"current_level":6} 
[2026-09-25 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-25 16:00:00","cutoff_time":"2026-09-25 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-25 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-25 16:23:01] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"],"current_level":0} 
[2026-09-25 16:26:52] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-081"],"current_level":1} 
[2026-09-25 16:28:17] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-081"],"current_level":0} 
[2026-09-25 16:29:23] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"],"current_level":1} 
[2026-09-25 16:50:02] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-080","SMP2609-081"],"current_level":3} 
[2026-09-25 17:23:24] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"],"current_level":2} 
[2026-09-26 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-26 00:00:00","cutoff_time":"2026-09-25 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-26 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-26 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-26 08:00:00","cutoff_time":"2026-09-26 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-26 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"]} 
[2026-09-26 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-26 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":2,"sample_ids":["SMP2609-080","SMP2609-081"]} 
[2026-09-26 13:55:26] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-080"],"current_level":4} 
[2026-09-26 14:24:53] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-081"],"current_level":4} 
[2026-09-26 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-26 16:00:00","cutoff_time":"2026-09-26 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-26 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"]} 
[2026-09-26 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-27 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-27 00:00:00","cutoff_time":"2026-09-26 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-27 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"]} 
[2026-09-27 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-27 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-27 08:00:00","cutoff_time":"2026-09-27 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-27 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to budi.ks@spunindo.com {"approver":"Budi Kusuma","samples_count":3,"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"]} 
[2026-09-27 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-27 12:36:39] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-083","SMP2609-084","SMP2609-085"],"current_level":3} 
[2026-09-27 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-27 16:00:00","cutoff_time":"2026-09-27 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-27 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-28 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-28 00:00:00","cutoff_time":"2026-09-27 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-28 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":4,"sample_ids":["SMP2609-077","SMP2609-083","SMP2609-084","SMP2609-085"]} 
[2026-09-28 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-28 08:00:00","cutoff_time":"2026-09-28 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-28 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":4,"sample_ids":["SMP2609-077","SMP2609-083","SMP2609-084","SMP2609-085"]} 
[2026-09-28 08:23:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-083"],"current_level":5} 
[2026-09-28 08:23:21] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-083"],"current_level":6} 
[2026-09-28 09:33:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-086"],"current_level":0} 
[2026-09-28 09:37:38] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-086"],"current_level":3} 
[2026-09-28 09:39:42] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-086"],"current_level":0} 
[2026-09-28 09:41:56] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-086"],"current_level":3} 
[2026-09-28 10:24:02] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-088"],"current_level":0} 
[2026-09-28 10:32:09] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-084"],"current_level":5} 
[2026-09-28 10:32:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-085"],"current_level":5} 
[2026-09-28 11:54:52] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-089"],"current_level":0} 
[2026-09-28 12:34:47] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-089"],"current_level":1} 
[2026-09-28 13:14:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-084"],"current_level":6} 
[2026-09-28 13:14:45] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-085"],"current_level":6} 
[2026-09-28 13:22:48] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-090"],"current_level":0} 
[2026-09-28 13:39:26] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-090"],"current_level":1} 
[2026-09-28 14:38:26] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2608-056"],"current_level":0} 
[2026-09-28 14:40:00] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-089","SMP2609-090"],"current_level":3} 
[2026-09-28 14:49:29] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2608-056"],"current_level":1} 
[2026-09-28 15:53:34] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2608-056","SMP2609-088"],"current_level":2} 
[2026-09-28 16:00:01] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-28 16:00:01","cutoff_time":"2026-09-28 08:00:01","interval":"480 minutes (8 hours)"} 
[2026-09-28 16:00:01] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-28 16:53:24] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-086"],"current_level":5} 
[2026-09-28 16:55:23] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-089"],"current_level":5} 
[2026-09-28 16:58:59] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-086"],"current_level":6} 
[2026-09-28 16:59:17] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-089"],"current_level":6} 
[2026-09-28 20:24:07] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2608-056","SMP2609-088"],"current_level":3} 
[2026-09-29 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-29 00:00:00","cutoff_time":"2026-09-28 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-29 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-090"]} 
[2026-09-29 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-056"]} 
[2026-09-29 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-29 08:00:00","cutoff_time":"2026-09-29 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-29 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-088"]} 
[2026-09-29 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-077","SMP2609-090"]} 
[2026-09-29 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2608-056"]} 
[2026-09-29 08:21:50] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2608-056"],"current_level":4} 
[2026-09-29 10:57:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-087"],"current_level":0} 
[2026-09-29 12:15:00] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2609-087"],"current_level":1} 
[2026-09-29 14:27:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-091"],"current_level":0} 
[2026-09-29 15:30:12] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-091"],"current_level":2} 
[2026-09-29 15:52:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-092"],"current_level":0} 
[2026-09-29 15:55:51] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-093"],"current_level":0} 
[2026-09-29 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-29 16:00:00","cutoff_time":"2026-09-29 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-29 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2609-088"]} 
[2026-09-29 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-077","SMP2609-090"]} 
[2026-09-29 16:13:19] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-092"],"current_level":2} 
[2026-09-29 16:19:35] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-094"],"current_level":0} 
[2026-09-29 16:27:30] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-093"],"current_level":1} 
[2026-09-29 16:30:56] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-091","SMP2609-092","SMP2609-094"],"current_level":3} 
[2026-09-29 16:32:17] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-093"],"current_level":2} 
[2026-09-29 16:38:59] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-093"],"current_level":3} 
[2026-09-29 16:43:58] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-087"],"current_level":2} 
[2026-09-29 16:51:04] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-088"],"current_level":4} 
[2026-09-30 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-30 00:00:00","cutoff_time":"2026-09-29 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-30 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2609-077","SMP2609-090"]} 
[2026-09-30 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-30 08:00:00","cutoff_time":"2026-09-30 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-30 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-087"]} 
[2026-09-30 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":2,"sample_ids":["SMP2609-092","SMP2609-094"]} 
[2026-09-30 08:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":4,"sample_ids":["SMP2609-077","SMP2609-090","SMP2609-091","SMP2609-093"]} 
[2026-09-30 08:07:52] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-091"],"current_level":5} 
[2026-09-30 08:28:23] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-091"],"current_level":6} 
[2026-09-30 08:59:29] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-092"],"current_level":4} 
[2026-09-30 09:03:15] production.INFO: handleSampleApproval: Event received from Dian Agus (013) {"sample_ids":["SMP2609-094"],"current_level":4} 
[2026-09-30 09:21:18] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-093"],"current_level":5} 
[2026-09-30 09:22:30] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-093"],"current_level":6} 
[2026-09-30 11:00:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-095"],"current_level":0} 
[2026-09-30 11:03:26] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-095"],"current_level":1} 
[2026-09-30 11:04:18] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-096"],"current_level":0} 
[2026-09-30 11:04:21] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-087"],"current_level":3} 
[2026-09-30 11:05:11] production.INFO: handleSampleApproval: Event received from Selvie Chandra (001) {"sample_ids":["SMP2609-096"],"current_level":1} 
[2026-09-30 11:08:25] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-096"],"current_level":3} 
[2026-09-30 11:10:39] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-090"],"current_level":5} 
[2026-09-30 11:14:10] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-095"],"current_level":2} 
[2026-09-30 11:17:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-090"],"current_level":6} 
[2026-09-30 11:25:56] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-095"],"current_level":0} 
[2026-09-30 11:27:56] production.INFO: handleSampleApproval: Event received from Santi Dwi Esthiningrum (015) {"sample_ids":["SMP2609-087"],"current_level":4} 
[2026-09-30 11:30:39] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2609-095"],"current_level":1} 
[2026-09-30 11:41:38] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-096"],"current_level":5} 
[2026-09-30 11:50:04] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-096"],"current_level":6} 
[2026-09-30 13:04:45] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2609-095"],"current_level":2} 
[2026-09-30 15:11:08] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2609-097"],"current_level":0} 
[2026-09-30 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-09-30 16:00:00","cutoff_time":"2026-09-30 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-09-30 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-09-30 16:05:38] production.INFO: handleSampleApproval: Event received from Latifa Algha (003) {"sample_ids":["SMP2609-097"],"current_level":1} 
[2026-09-30 16:19:02] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2609-097"],"current_level":2} 
[2026-09-30 16:26:21] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2609-097"],"current_level":3} 
[2026-10-01 00:00:03] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-01 00:00:03","cutoff_time":"2026-09-30 16:00:03","interval":"480 minutes (8 hours)"} 
[2026-10-01 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2609-095"]} 
[2026-10-01 00:00:07] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-077"]} 
[2026-10-01 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-01 08:00:00","cutoff_time":"2026-10-01 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-01 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":1,"sample_ids":["SMP2609-097"]} 
[2026-10-01 08:18:35] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-097"],"current_level":5} 
[2026-10-01 08:19:09] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-097"],"current_level":6} 
[2026-10-01 08:27:10] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2609-077"],"current_level":5} 
[2026-10-01 08:27:46] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2609-077"],"current_level":6} 
[2026-10-01 09:10:20] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2609-095"],"current_level":3} 
[2026-10-01 12:23:28] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-001"],"current_level":0} 
[2026-10-01 13:47:58] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-002"],"current_level":0} 
[2026-10-01 13:49:11] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2610-002"],"current_level":2} 
[2026-10-01 15:02:37] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-003"],"current_level":0} 
[2026-10-01 15:08:42] production.INFO: handleSampleApproval: Event received from Dwie Zesta (002) {"sample_ids":["SMP2610-003"],"current_level":2} 
[2026-10-01 15:19:08] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2610-001"],"current_level":1} 
[2026-10-01 15:52:30] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-001"],"current_level":0} 
[2026-10-01 15:57:44] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2610-001"],"current_level":1} 
[2026-10-01 15:58:40] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2610-001"],"current_level":2} 
[2026-10-01 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-01 16:00:00","cutoff_time":"2026-10-01 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-01 16:00:03] production.INFO: handleSampleApproval: Event received from Budi Kusuma (009) {"sample_ids":["SMP2610-002","SMP2610-003"],"current_level":3} 
[2026-10-01 16:16:01] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2610-002"],"current_level":5} 
[2026-10-01 16:17:05] production.INFO: handleSampleApproval: Event received from Slamet Wahyudi (016) {"sample_ids":["SMP2610-003"],"current_level":5} 
[2026-10-01 16:46:37] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2610-002"],"current_level":6} 
[2026-10-01 16:46:54] production.INFO: handleSampleApproval: Event received from Rizqi Tri (012) {"sample_ids":["SMP2610-003"],"current_level":6} 
[2026-10-02 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-02 00:00:00","cutoff_time":"2026-10-01 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-02 00:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2610-001"]} 
[2026-10-02 00:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2609-095"]} 
[2026-10-02 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-02 08:00:00","cutoff_time":"2026-10-02 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-02 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2610-001"]} 
[2026-10-02 08:00:04] production.INFO: SendApprovalReminder: Reminder email sent to qe03@spunindo.com {"approver":"Amalia Desy Saputri","samples_count":1,"sample_ids":["SMP2609-095"]} 
[2026-10-02 09:03:49] production.INFO: handleSampleApproval: Event received from Amalia Desy Saputri (017) {"sample_ids":["SMP2609-095"],"current_level":4} 
[2026-10-02 10:22:03] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-004"],"current_level":0} 
[2026-10-02 10:35:53] production.INFO: handleSampleApproval: Event received from Anggreni Ayu Larasati (019) {"sample_ids":["SMP2610-004"],"current_level":1} 
[2026-10-02 10:55:56] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2610-004"],"current_level":2} 
[2026-10-02 13:45:06] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-005"],"current_level":0} 
[2026-10-02 14:16:26] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2610-005"],"current_level":1} 
[2026-10-02 15:02:44] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-005"],"current_level":0} 
[2026-10-02 15:34:06] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2610-005"],"current_level":1} 
[2026-10-02 15:57:04] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-006"],"current_level":0} 
[2026-10-02 15:57:55] production.INFO: handleSampleApproval: Event received from System/Admin (2) {"sample_ids":["SMP2610-005"],"current_level":0} 
[2026-10-02 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-02 16:00:00","cutoff_time":"2026-10-02 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-02 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to mk88@spunindo.com {"approver":"Oko Setiaboedi","samples_count":1,"sample_ids":["SMP2610-001"]} 
[2026-10-02 16:04:40] production.INFO: handleSampleApproval: Event received from Nike Pusparini (005) {"sample_ids":["SMP2610-005"],"current_level":1} 
[2026-10-02 16:05:38] production.INFO: handleSampleApproval: Event received from Ika Sari (006) {"sample_ids":["SMP2610-005"],"current_level":2} 
[2026-10-02 16:45:43] production.INFO: handleSampleApproval: Event received from Gwen Sijangga (004) {"sample_ids":["SMP2610-006"],"current_level":1} 
[2026-10-02 16:50:11] production.INFO: handleSampleApproval: Event received from Oko Setiaboedi (010) {"sample_ids":["SMP2610-001","SMP2610-004","SMP2610-005","SMP2610-006"],"current_level":3} 
[2026-10-03 00:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-03 00:00:00","cutoff_time":"2026-10-02 16:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-03 08:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-03 08:00:00","cutoff_time":"2026-10-03 00:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-03 08:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2610-006"]} 
[2026-10-03 08:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2610-001"]} 
[2026-10-03 08:00:05] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2610-004","SMP2610-005"]} 
[2026-10-03 16:00:00] production.INFO: SendApprovalReminder: Starting reminder check {"current_time":"2026-10-03 16:00:00","cutoff_time":"2026-10-03 08:00:00","interval":"480 minutes (8 hours)"} 
[2026-10-03 16:00:00] production.INFO: SendApprovalReminder: Reminder email sent to spv.qc1@spunindo.com {"approver":"Dian Agus","samples_count":1,"sample_ids":["SMP2610-006"]} 
[2026-10-03 16:00:03] production.INFO: SendApprovalReminder: Reminder email sent to santi.de@spunindo.com {"approver":"Santi Dwi Esthiningrum","samples_count":1,"sample_ids":["SMP2610-001"]} 
[2026-10-03 16:00:04] production.INFO: SendApprovalReminder: Reminder email sent to slamet.wa@spunindo.com {"approver":"Slamet Wahyudi","samples_count":2,"sample_ids":["SMP2610-004","SMP2610-005"]} 
