fengxiang
2018-01-16 928d55a8fde33200bb1ca4016ce5b86e9a1118a8
src/app/business/services/http/alarm-config.service.ts
@@ -3,17 +3,52 @@
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 generateAlarmConfig(sensors: {key: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.key;
                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);
  }
}