2022-07-07 01:27:45 +08:00
|
|
|
<?php
|
|
|
|
|
namespace EdgeManager\EDataCapture;
|
|
|
|
|
|
|
|
|
|
class EDataCapture {
|
2022-07-09 14:30:23 +08:00
|
|
|
// 我不主张在构造函数内实现类型检查,因为在请求过于密集、记录较多时会严重影响性能
|
|
|
|
|
// 请使用SCADA系统的开发人员自觉遵守文档内规范
|
|
|
|
|
function __construct(
|
|
|
|
|
protected $dbconn,
|
|
|
|
|
protected $post = NULL,
|
|
|
|
|
protected $get = NULL
|
|
|
|
|
) {}
|
|
|
|
|
|
2022-07-10 03:36:18 +08:00
|
|
|
function set_node_data() {
|
|
|
|
|
foreach (array_chunk($this -> post -> param -> data, 6507524, true) as $chunk) {
|
|
|
|
|
$sql_head = sprintf(
|
|
|
|
|
"INSERT INTO hf_mes_scada_data_capture_node_data_%s (code, v_%s, device_code, batch)
|
|
|
|
|
VALUES",
|
|
|
|
|
$this -> post -> param -> working_subclass,
|
|
|
|
|
$this -> post -> param -> type
|
|
|
|
|
);
|
2022-07-09 14:30:23 +08:00
|
|
|
foreach ($chunk as $row) {
|
2022-07-10 03:36:18 +08:00
|
|
|
$sql_values[] = sprintf(
|
|
|
|
|
"('%s', %s, %s, %s)",
|
2022-07-09 14:30:23 +08:00
|
|
|
$row -> code,
|
|
|
|
|
$row -> value,
|
2022-07-10 03:36:18 +08:00
|
|
|
$row -> device_code ?? 'DEFAULT',
|
|
|
|
|
$row -> batch ?? 'DEFAULT'
|
2022-07-09 14:30:23 +08:00
|
|
|
);
|
|
|
|
|
}
|
2022-07-10 03:36:18 +08:00
|
|
|
return pg_query($this -> dbconn, $sql_head . implode(',', $sql_values));
|
2022-07-09 14:30:23 +08:00
|
|
|
}
|
2022-07-07 01:27:45 +08:00
|
|
|
}
|
2022-07-10 03:36:18 +08:00
|
|
|
|
|
|
|
|
function get_node_data() {
|
|
|
|
|
$name_type = pg_fetch_assoc(pg_query($this -> dbconn, sprintf(
|
|
|
|
|
"SELECT name, type
|
|
|
|
|
FROM hf_mes_scada_data_capture_node_configure
|
|
|
|
|
WHERE working_subclass = '%s'
|
|
|
|
|
AND code = '%s'",
|
|
|
|
|
$this -> get['working_subclass'],
|
|
|
|
|
$this -> get['code']
|
|
|
|
|
)));
|
|
|
|
|
|
|
|
|
|
$res = pg_fetch_all(pg_query($this -> dbconn, sprintf(
|
|
|
|
|
"SELECT id, v_%s AS value, device_code, batch, capture_time
|
|
|
|
|
FROM hf_mes_scada_data_capture_node_data_%s
|
|
|
|
|
WHERE code = '%s'",
|
|
|
|
|
$name_type['type'],
|
|
|
|
|
$this -> get['working_subclass'],
|
|
|
|
|
$this -> get['code']
|
|
|
|
|
)));
|
|
|
|
|
|
|
|
|
|
array_walk($res, function(&$v, $k) use ($name_type) {
|
|
|
|
|
$v['name'] = $name_type['name'];
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return $res;
|
|
|
|
|
}
|
2022-07-09 14:30:23 +08:00
|
|
|
}
|