import { _HttpClient } from '@delon/theme';
|
import { Injectable } from '@angular/core';
|
import { environment } from '@env/environment';
|
import { Observable } from 'rxjs/Observable';
|
import { ResultBean } from '@business/entity/grid';
|
import { AlarmConfig, AlarmConfigValue, AlarmSensorLevel, AlarmMode } from '@business/entity/data';
|
|
@Injectable()
|
export class AlarmConfigService {
|
private urls = {
|
getByOid: environment.SERVER_BASH_URL + 'alarm-config/get-by-oid',
|
save: environment.SERVER_BASH_URL + 'alarm-config/add-or-modify',
|
};
|
constructor( private http: _HttpClient) {
|
|
}
|
public generateAlarmConfig(sensors: {sensorKey: string} [], alarmConfig?: AlarmConfig): AlarmConfig {
|
const _alarmConfig: AlarmConfig = alarmConfig == null || alarmConfig.value == null ? {value: {
|
alarmLevels: null,
|
alarmMode: null
|
}} : alarmConfig;
|
let alarmLevels = _alarmConfig.value.alarmLevels;
|
alarmLevels = alarmLevels == null ? {} : alarmLevels;
|
sensors.forEach(
|
sensor => {
|
const key = sensor.sensorKey;
|
alarmLevels[key] =
|
alarmLevels[key] == null ?
|
{
|
enable: false,
|
increment: [0, 0, 0],
|
degressEnable: false,
|
degression: [0, 0, 0]
|
} : alarmLevels[key];
|
}
|
);
|
_alarmConfig.value.alarmLevels = alarmLevels;
|
// 报警方式
|
let alarmMode = _alarmConfig.value.alarmMode;
|
alarmMode = alarmMode == null ? {
|
enable: false,
|
level1: null,
|
level2: null,
|
level3: null
|
} : alarmMode;
|
_alarmConfig.value.alarmMode = alarmMode;
|
return _alarmConfig;
|
}
|
public getByOid(oid: number): Observable<ResultBean<AlarmConfig>> {
|
return this.http.get(this.urls.getByOid, {organizationId: oid});
|
}
|
public save(data: any): Observable<ResultBean<any>> {
|
return this.http.post(this.urls.save, data);
|
}
|
}
|