fengxiang
2018-01-25 8570af7c6051c3d9a516f39d597ff49e1e1e2840
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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],
                  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);
  }
}