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);
|
}
|
}
|