|  |  |  | 
|---|
|  |  |  | import { environment } from '@env/environment'; | 
|---|
|  |  |  | import { Observable } from 'rxjs/Observable'; | 
|---|
|  |  |  | import { ResultBean } from '@business/entity/grid'; | 
|---|
|  |  |  | import { AlarmConfig } from '@business/entity/data'; | 
|---|
|  |  |  | 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' | 
|---|
|  |  |  | 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 getByOid(oid:number):Observable<ResultBean<AlarmConfig>>{ | 
|---|
|  |  |  | return this.http.get(this.urls.getByOid,{organizationId:oid}); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|