import { ApiClientFactory } from '../core/api.client.factory'; import { BetonProjectList, BetonProjectPointList, BetonProjectMapParams, BetonProjectPointDataList, BetonProjectPointBightData, BigConcretesStatisticsAlarmData, BigConcretesStatisticsAlarmDetailData, IBetonRulesTable, IBetonRulesFormData, IBetonRulesFormResult, IBetonProjectPointDetail, BetonProjectPointAlarmStatus } from '../model/betonProject.model'; import { IBetonProjectTableRowData } from '../model/dataCenter.model'; export class BetonProjectService { constructor(private factory: ApiClientFactory) { } // 获取混凝土工程列表 async getBetonProjectList(projectId: string): Promise { return await this.factory.entity.get(`api/web/projects/${projectId}/concrete/prorams`); } // 获取测温孔列表 async getBetonProjectPointList(projectId: string, projectCode: string): Promise { return await this.factory.entity.get( `api/web/projects/${projectId}/concrete/points`, { projectCode } ); } // 保存混凝土工程地图 async saveBetonProjectMap(projectId: string, data: BetonProjectMapParams) { return await this.factory.entity.post( `/api/web/projects/${projectId}/program/maps/programType/concrete`, data ); } // 测温孔实时数据 async getBetonProjectPointDataList(projectId: string, projectCode: string, nickname: string): Promise { return await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/todayNickTemp?projectCode=${projectCode}&nickname=${nickname}` ); } // 本日测温列表 async getBetonProjectPointTableList(projectId: string, projectCode: string): Promise { return await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/todayTemp?projectCode=${projectCode}` ); } // 测温曲线 async getBetonProjectPointBight(projectId: string, rest: { projectCode: string; nickname: string; dateStart: string; dateEnd: string; type: number }): Promise { return await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/historyNickTemp`, rest ); } // 近30天报警统计 async getBigConcretesStatisticsAlarm(projectId: string): Promise { return await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/collectOneMoenth/alarmRecord` ); } // 近30天报警统计二级弹框 async getBigConcretesStatisticsAlarmDetail(projectId: string, rest: { alarmLevel: number; dateStart: string; dateEnd: string; pageIndex: number; pageSize: number; }): Promise { return await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/getAlarmDataRecordsByPage`, rest ); } // 测温孔的告警状态列表 async getBetonProjectPointAlarmStatus(projectId: string, projectCode?: string): Promise { return await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/points/alarmState`, {projectCode} ); } // 根据类型获取规则列表 async getBetonRulesByType(projectId: string, AlarmRuleType: string): Promise { const result = await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/rule/getRules/${AlarmRuleType}` ) return result; } // 根据类型更新规则 async updateBetonRulesByType(projectId: string, AlarmRuleType: string, formData: IBetonRulesFormData): Promise { const result = await this.factory.entity.post( `/api/web/projects/${projectId}/concrete/rule/addOrUpdate/${AlarmRuleType}`, formData ); return result; } // 删除规则 async deleteBetonRule(projectId: string, ruleId: string): Promise { const result = await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/rule/delete`, { ruleId } ); return result; } // 更新规则状态(启动,关闭) async updateBetonRuleStatus(projectId: string, id: string, enable: boolean): Promise { const result = await this.factory.entity.get( `/api/web/projects/${projectId}/concrete/rule/enable/id/${id}`, { enable } ); return result; } }