fengxiang
2018-04-17 39ea49edce74ae063ca0afd9b2966f861e256a3e
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
55
56
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,
          interval: 120,
          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);
  }
}