作者 郭文星

123

... ... @@ -60,7 +60,7 @@ class Reservoirflow extends Backend
foreach ($list as $row) {
$row->visible(['id','number','value','reporttime','createtime']);
$row->visible(['id','number','value','instantaneous_value','cumulative_value','reporttime','createtime']);
$row->visible(['reservoirequipment']);
$row->getRelation('reservoirequipment')->visible(['name']);
$row->visible(['reservoirlist']);
... ...
... ... @@ -4,7 +4,8 @@ return [
'Id' => 'ID',
'Number' => '设备编号',
'Reservoir_id' => '水库',
'Value' => '流量',
'Instantaneous_value' => '瞬间流量(L/s)',
'Cumulative_value' => '累计流量(L)',
'Reporttime' => '采集时间',
'Createtime' => '创建时间',
'Updatetime' => '修改时间',
... ...
... ... @@ -47,7 +47,7 @@ class Reservoirflow extends Model
public function reservoirequipment()
{
return $this->belongsTo('app\admin\model\reservoir\Equipment','number', 'deviceId', [], 'LEFT')->setEagerlyType(0);
return $this->belongsTo('app\admin\model\reservoir\Equipment','number', 'apiKey', [], 'LEFT')->setEagerlyType(0);
}
... ...
... ... @@ -46,7 +46,7 @@ class Equipment2 extends Api
foreach ($list as $k => $v) {
$startTime = Db::name('reservoir_flow')->where(["number" => $v['deviceId'], "reservoir_id" => $v['reservoir_id']])->order('createtime desc')->value('createtime');
$startTime = $startTime ? $startTime + 1 : strtotime("2024-06-01 00:00:00");//数据是从07-14开始才有的,所以默认这个时间点
$startTime = $startTime ? $startTime + 1 : strtotime("2024-06-05 10:00:00");//数据是从07-14开始才有的,所以默认这个时间点
$time_arr = time_to_today_end($startTime);
if (!empty($time_arr)) {
foreach ($time_arr as $k2 => $v2) {
... ... @@ -59,26 +59,27 @@ class Equipment2 extends Api
if (!empty($res)) {
$r = json_decode($res, true);
if (!empty($r) && $r['code'] == 0) {
$water_data = $r['data']['L3_SL'][$v['deviceId']];
if (!empty($water_data)) {
//$this->warning($v['deviceId'], $water_data);
foreach ($water_data as $k3 => $v3) {
$instantaneous_data = $r['data']['L3_SL']['L3_SL_27'];
$cumulative_data = $r['data']['L3_SL']['L3_SL_60'];
if (!empty($instantaneous_data)) {
//$this->warning($v['deviceId'], $instantaneous_data);
foreach ($instantaneous_data as $k3 => $v3) {
$insert_data = [];
$insert_data = [
'reservoir_id' => $v['reservoir_id'],
'value' => $v3['value'],
'instantaneous_value' =>$v3['value'],
'cumulative_value' => $cumulative_data[$k3]['value'],
'createtime' => $v3['reportTime'] / 1000,
'updatetime' => $v3['reportTime'] / 1000,
'reporttime' => $v3['reportTime'],
'number' => $v['deviceId']
'number' => $v['apiKey']
];
$rr = Db::name('reservoir_flow')->insertGetId($insert_data);
if ($rr) {
$upt_succ = $upt_succ + 1;
}
}
}
}
}
... ... @@ -100,6 +101,37 @@ class Equipment2 extends Api
}
}
public function warning($deviceid, $data)
{
$type = $this->model->where('deviceId', $deviceid)->value('type');
$threshold = Db::name('reservoir_threshold')->where('deviceId', $deviceid)->field('config,reservoir_id')->find();
$config = json_decode($threshold['config'], true);
$reservoir = Db::name('reservoir_list')->where('id', $threshold['reservoir_id'])->field('user_mobile,name')->find();
if (!$config) {
return;
}
//水位
if ($type == '1') {
$arr = explode(',', $config['value']);
sort($arr);
foreach ($data as $k => $v) {
if ($v['value'] < $arr[0] || $v['value'] > $arr[1]) {
$insert = [
'value' => $v['value'],
'warning' => $arr[0] . ',' . $arr[1],
'equipment_id' => $deviceid,
'reservoir_id' => $threshold['reservoir_id'],
'createtime' => time(),
'reporttime' => $v['reportTime']
];
Db::name('reservoir_warning_waterlevel')->insert($insert);
// $sms = new Index();
// $res = $sms->send_param($reservoir['user_mobile'],'SMS_227742188','云南智慧水库安全云平台',array('password'=>$reservoir['name']));
}
}
}
}
}
\ No newline at end of file
... ...
... ... @@ -27,7 +27,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'number', title: __('Number'), operate: 'LIKE'},
{field: 'value', title: __('Value'), operate: 'LIKE'},
{field: 'instantaneous_value', title: __('Instantaneous_value'), operate: 'LIKE'},
{field: 'cumulative_value', title: __('Cumulative_value'), operate: 'LIKE'},
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'reservoirequipment.name', title: __('Reservoirequipment.name'), operate: 'LIKE'},
{field: 'reservoirlist.name', title: __('Reservoirlist.name'), operate: 'LIKE'},
... ...