From 9eb99635735eba2c10b92e812a304fe18979b235 Mon Sep 17 00:00:00 2001 From: "altob.rd" Date: Sat, 18 Nov 2017 12:07:27 +0800 Subject: [PATCH] upd --- models/Pks_model.php | 167 ++++++++++++++++----------------------------------- 1 file changed, 51 insertions(+), 116 deletions(-) diff --git a/models/Pks_model.php b/models/Pks_model.php index 386c5c4..8a6ffeb 100644 --- a/models/Pks_model.php +++ b/models/Pks_model.php @@ -31,7 +31,6 @@ class Pks_model extends CI_Model return false; } - // upd 2017/11/11 避免圖檔拿不到 $new_file_name = "pks-{$parms['pksno']}-{$parms['lpr']}-{$parms['ivsno']}-" . date('Ymd') .".jpg"; $test_check_str = file_exists(PKS_PIC . $new_file_name) ? 'exists' : 'not_exists'; trigger_error(__FUNCTION__ . '..' . PKS_PIC . $new_file_name . '..' . $test_check_str); @@ -52,8 +51,6 @@ class Pks_model extends CI_Model { $config['upload_path'] = PKS_PIC; $config['allowed_types'] = 'gif|jpg|png'; - // ex. pks-2016-1625AB-1-2015080526.jpg -> pks-車位編號-車號-設備編號-時間.jpg - //$config['file_name'] = "pks-{$parms['pksno']}-{$parms['lpr']}-{$parms['ivsno']}-{$this->vars['time_num']}.jpg"; $config['file_name'] = $new_file_name; $this->load->library('upload', $config); @@ -79,73 +76,55 @@ class Pks_model extends CI_Model ->row_array(); trigger_error('KL read pks:'.print_r($rows_pks, true)); - + // 如果已經人工確認或之前已比對有入場資料者, 則重覆再送來的車辨不予理會 if (($rows_pks['confirms'] == 1 || $rows_pks['lpr'] == $parms['lpr']) && $rows_pks['pic_name'] == $parms['pic_name']) { trigger_error('KL ignored:'.$rows_pks['lpr']); - return false; - } - - /* - if ($rows_pks['cario_no'] != 0 || $rows_pks['confirms'] == 1 || $rows_pks['lpr'] == $parms['lpr']) - { - trigger_error('人工已確認或車號相同不更新pks:'.$rows_pks['lpr']); - return false; - } - */ - - // 讀取進場時間, 如讀不到資料, 以目前時間取代(add by TZUSS 2016-02-23) - $rows_cario = $this->db - ->select('cario_no, in_time') - ->from('cario') - ->where(array('in_out' => 'CI', 'obj_id' => $parms['lpr'], 'finished' => 0, 'err' => 0, 'station_no' => $parms['sno'])) - ->order_by('cario_no', 'desc') - ->limit(1) - ->get() - ->row_array(); - if (!empty($rows_cario['cario_no'])) // 有入場資料 - { - $cario_no = $rows_cario['cario_no']; // 入場序號 - $in_time = $rows_cario['in_time']; - // 在席與入場資料相符, 分別在cario與pks記錄之 - $data_cario = array - ( - 'pksno' => $parms['pksno'], - 'pks_time' => date('Y-m-d H:i:s') - ); - $this->db->update('cario', $data_cario, array('cario_no' => $cario_no, 'station_no' => $parms['sno'])); } - else // 查無入場資料, 即時通知 - { - $cario_no = 0; - $in_time = date('Y-m-d H:i:s'); + else + { + // 讀取進場時間, 如讀不到資料, 以目前時間取代(add by TZUSS 2016-02-23) + $rows_cario = $this->db + ->select('cario_no, in_time') + ->from('cario') + ->where(array('in_out' => 'CI', 'obj_id' => $parms['lpr'], 'finished' => 0, 'err' => 0, 'station_no' => $parms['sno'])) + ->order_by('cario_no', 'desc') + ->limit(1) + ->get() + ->row_array(); + if (!empty($rows_cario['cario_no'])) // 有入場資料 + { + $cario_no = $rows_cario['cario_no']; // 入場序號 + $in_time = $rows_cario['in_time']; + // 在席與入場資料相符, 分別在cario與pks記錄之 + $data_cario = array + ( + 'pksno' => $parms['pksno'], + 'pks_time' => date('Y-m-d H:i:s') + ); + $this->db->update('cario', $data_cario, array('cario_no' => $cario_no, 'station_no' => $parms['sno'])); + } + else // 查無入場資料, 即時通知 + { + $cario_no = 0; + $in_time = date('Y-m-d H:i:s'); + trigger_error('在席無進場資料:'. print_r($parms, true)); + } - /* - $jdata = json_encode(array - ( - 'pksno' => $parms['pksno'], - 'lpr' => $parms['lpr'], - 'in_time' => $in_time - ,'pic_name' => $parms['pic_name'] - ), JSON_UNESCAPED_UNICODE); - */ - // $this->vars['mqtt']-lish('PKS_WITHOUT_IN', "{$jdata}", 0); // 待web完成 ??? - trigger_error('在席無進場資料:'. print_r($parms, true)); - } - - $data = array - ( - 'cario_no' => $cario_no, - 'lpr' => $parms['lpr'], - 'status' => 'LR', // 車格佔用並有車號 - 'confirms' => 0, // 預設人工未確認 - 'pic_name' => $parms['pic_name'], - 'in_time' => $in_time - ); - // 車號及照片檔名填入資料庫內 - $this->db->update('pks', $data, array('pksno' => $parms['pksno'], 'station_no' => $parms['sno'])); - break; + $data = array + ( + 'cario_no' => $cario_no, + 'lpr' => $parms['lpr'], + 'status' => 'LR', // 車格佔用並有車號 + 'confirms' => 0, // 預設人工未確認 + 'pic_name' => $parms['pic_name'], + 'in_time' => $in_time + ); + // 車號及照片檔名填入資料庫內 + $this->db->update('pks', $data, array('pksno' => $parms['pksno'], 'station_no' => $parms['sno'])); + break; + } case 'KI': // 車輛入席, 各區空車位與佔位各加減1 $rows = $this->db->select('status') @@ -182,28 +161,6 @@ class Pks_model extends CI_Model break; } - /* - // 找出與與此車位相關的群組 - $sql = "select group_id, tot, renum - from pks_groups - where group_id in - (select group_id from pks_group_member where station_no = {$this->vars['station_no']} and pksno = {$parms['pksno']})"; - - $retults = $this->db->query($sql)->result_array(); - - foreach ($retults as $rows) - { - // 計算群組異動後的空車位數, 先讀出已停車位數 - $sql = "select count(*) as parked from pks where status != 'VA' and pksno in (select pksno from pks_group_member where group_id = '{$rows['group_id']}')"; - $row_group = $this->db->query($sql)->row_array(); - $group_va = $rows['tot'] + $rows['renum'] - $row_group['parked']; // 群組空車位數 - $this->db->update('pks_groups', array('parked' => $row_group['parked'], 'availables' => $group_va), array('group_id' => $rows['group_id'])); - - get_headers("http://192.168.51.15/set_num.php?group_id={$rows['group_id']}&num={$group_va}"); - // $this->vars['mqtt']->publish("VA-{$rows['group_id']}", "{$group_va}", 0); // 送出剩餘車位數給字幕機 - // 總車位數暫無需處理 - } - */ // 找出與與此車位相關的群組 $sql = "select group_id, tot, renum, availables from pks_groups @@ -230,40 +187,18 @@ class Pks_model extends CI_Model $group_va_pad = str_pad($group_va, 3, '0', STR_PAD_LEFT); // 補零 $this->db->update('pks_groups', array('parked' => $row_group['parked'], 'availables' => $group_va), array('group_id' => $rows['group_id'])); - $this->vars['mqtt']->publish(MQ_TOPIC_SUBLEVEL, "{$rows['group_id']},{$group_va_pad}", 0); // 送出剩餘車位數給字幕機 - // 總車位數暫無需處理 - - // 七樓無在席, 手動或用猜的 - /* - $f7_total = 74; - $sql = "select renum from pks_groups where group_id = 'F7'"; - $row_group = $this->db->query($sql)->row_array(); - $f7_renum = $row_group['renum']; - $total_parked_sql = "select count(cario_no) as parked - from cario where - cario.in_time > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 5 DAY) - and cario.finished = 0 - and cario.err = 0 - and cario.in_out = 'CI' - and cario.out_time is null"; - $total_parked_row_group = $this->db->query($total_parked_sql)->row_array(); - $sql = "select count(pksno) as parked from pks where status != 'VA'"; - $row_group = $this->db->query($sql)->row_array(); - $f7_mqtt = $total_parked_row_group['parked'] - $row_group['parked']; - if($f7_mqtt > $f7_total){ - $f7_mqtt = $f7_total; - }else if($f7_mqtt <= 0){ - $f7_mqtt = 0; - } - $this->db->update('pks_groups', array('parked' => $f7_mqtt, 'availables' => $f7_total - $f7_mqtt + $f7_renum), array('group_id' => 'F7')); - $f7_mqtt_pad = str_pad($f7_total - $f7_mqtt + $f7_renum, 3, '0', STR_PAD_LEFT); - - $this->vars['mqtt']->publish(MQ_TOPIC_SUBLEVEL, "F7,{$f7_mqtt_pad}", 0); // F7 MQTT - */ + //$this->vars['mqtt']->publish(MQ_TOPIC_SUBLEVEL, "{$rows['group_id']},{$group_va_pad}", 0); // 送出剩餘車位數給字幕機 + $this->mq_send(MQ_TOPIC_SUBLEVEL, "{$rows['group_id']},{$group_va_pad}"); } } } + // 送出至message queue(目前用mqtt) + function mq_send($topic, $msg) + { + $this->vars['mqtt']->publish($topic, $msg, 0); + trigger_error("mqtt:{$topic}|{$msg}"); + } // 重新計算 public function reculc()