import request from '@/utils/request' //获取单个站点的信息 export function getDzjkHomeView(siteId) { return request({ url: `/ems/siteMonitor/homeView?siteId=${siteId}`, method: 'get' }) } //获取单个站点总累计运行数据(基于日表) export function getDzjkHomeTotalView(siteId) { return request({ url: `/ems/siteMonitor/homeTotalView?siteId=${siteId}`, method: 'get' }) } // 单站监控项目点位配置(供单站监控功能查询) export function getProjectPointMapping(siteId) { return request({ url: `/ems/siteMonitor/getProjectPointMapping?siteId=${siteId}`, method: 'get' }) } // 单站监控项目展示数据(字段配置 + 最新值) export function getProjectDisplayData(siteId) { return request({ url: `/ems/siteMonitor/getProjectDisplayData?siteId=${siteId}`, method: 'get' }) } // 单站监控项目展示数据写入(批量) export function saveProjectDisplayData(data) { return request({ url: `/ems/siteMonitor/saveProjectDisplayData`, method: 'post', data }) } //站点首页 冲放曲线 export function getSevenChargeData({siteId, startDate, endDate}) { return request({ url: `/ems/siteMap/getSevenChargeData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, method: 'get' }) } // 获取站点包含的设备种类 用来判断单站监控设备监控的菜单栏展示 export function getSiteAllDeviceCategory(siteId) { return request({ url: `/ems/siteConfig/getSiteAllDeviceCategory?siteId=${siteId}`, method: 'get' }) } //EMS export function getEmsDataList(siteId) { return request({ url: `/ems/siteMonitor/getEmsDataList?siteId=${siteId}`, method: 'get', }) } //获取pcs、实时运行头部的设备信息 export function getRunningHeadInfo(siteId) { return request({ url: `/ems/siteMonitor/runningHeadInfo?siteId=${siteId}`, method: 'get' }) } //获取pcs列表 export function getPcsDetailInfo(siteId) { return request({ url: `/ems/siteMonitor/getPcsDetailInfo?siteId=${siteId}`, method: 'get' }) } //获取BMS总览数据 export function getBMSOverView(siteId) { return request({ url: `/ems/siteMonitor/getBMSOverView?siteId=${siteId}`, method: 'get' }) } //获取BMS电池簇总览数据 export function getBMSBatteryCluster(siteId) { return request({ url: `/ems/siteMonitor/getBMSBatteryCluster?siteId=${siteId}`, method: 'get' }) } //获取单体电池 电池堆列表数据 export function getStackNameList(siteId) { return request({ url: `/ems/siteMonitor/getStackNameList?siteId=${siteId}`, method: 'get' }) } //获取单体电池 电池簇列表数据 export function getClusterNameList({stackDeviceId, siteId}) { return request({ url: `/ems/siteMonitor/getClusterNameList?stackDeviceId=${stackDeviceId}&siteId=${siteId}`, method: 'get' }) } //单体电池表格数据 export function getClusterDataInfoList({siteId, stackDeviceId, clusterDeviceId, batteryId, pageSize, pageNum}) { return request({ url: `/ems/siteMonitor/getClusterDataInfoList?clusterDeviceId=${clusterDeviceId}&siteId=${siteId}&stackDeviceId=${stackDeviceId}&batteryId=${batteryId}&pageSize=${pageSize}&pageNum=${pageNum}`, method: 'get' }) } // 单体电池图表 //http://localhost:8089/ems/siteMonitor/getSingleBatteryData?clusterDeviceId=BMSC01&siteId=021_FXX_01&deviceId=001&startDate=2025-07-11&endDate=2025-07-18 export function getSingleBatteryData({siteId, deviceId, clusterDeviceId, startDate, endDate}) { return request({ url: `/ems/siteMonitor/getSingleBatteryData?siteId=${siteId}&deviceId=${deviceId}&startDate=${startDate}&endDate=${endDate}&clusterDeviceId=${clusterDeviceId}`, method: 'get' }) } //获取液冷列表数据 export function getCoolingDataList(siteId) { return request({ url: `/ems/siteMonitor/getCoolingDataList?siteId=${siteId}`, method: 'get' }) } //获取动环数据 export function getDhDataList(siteId) { return request({ url: `/ems/siteMonitor/getDhDataList?siteId=${siteId}`, method: 'get' }) } //获取消防数据 export function getXfDataList(siteId) { return request({ url: `/ems/siteMonitor/getXfDataList?siteId=${siteId}`, method: 'get' }) } //获取电表数据 export function getAmmeterDataList(siteId) { return request({ url: `/ems/siteMonitor/getAmmeterDataList?siteId=${siteId}`, method: 'get' }) } // 故障告警 export function getAlarmDetailList({ status, siteId, deviceId, alarmLevel, alarmStartTime, alarmEndTime, pageSize, pageNum }) { return request({ url: `/ems/siteAlarm/getAlarmDetailList?siteId=${siteId}&status=${status}&deviceId=${deviceId}&alarmLevel=${alarmLevel}&alarmStartTime=${alarmStartTime}&alarmEndTime=${alarmEndTime}&pageSize=${pageSize}&pageNum=${pageNum}`, method: 'get' }) } // 告警生成工单 export function createTicketNo(data) { return request({ url: `/ems/siteAlarm/createTicketNo`, method: 'post', data }) } // 告警确认关闭 export function closeAlarm(data) { return request({ url: `/ems/siteAlarm/closeAlarm`, method: 'post', data }) } function getFieldNameByCode(fieldCode) { const raw = String(fieldCode || '').trim() if (!raw) return '' const idx = raw.lastIndexOf('__') return idx >= 0 ? raw.slice(idx + 2) : raw } function normalizeRows(displayResponse) { const rows = displayResponse?.data || [] return Array.isArray(rows) ? rows : [] } function filterByMenu(rows, menuCode) { return (rows || []).filter(item => item && item.menuCode === menuCode) } function toDateLabel(valueTime) { if (!valueTime) return '' const date = new Date(valueTime) if (isNaN(date.getTime())) return '' const p = (n) => String(n).padStart(2, '0') return `${date.getFullYear()}-${p(date.getMonth() + 1)}-${p(date.getDate())}` } function toDateTimeLabel(valueTime) { if (!valueTime) return '' const date = new Date(valueTime) if (isNaN(date.getTime())) return '' const p = (n) => String(n).padStart(2, '0') return `${date.getFullYear()}-${p(date.getMonth() + 1)}-${p(date.getDate())} ${p(date.getHours())}:${p(date.getMinutes())}` } function toValueMap(rows) { const map = {} ;(rows || []).forEach(item => { const fieldName = getFieldNameByCode(item?.fieldCode) if (fieldName) { map[fieldName] = item?.fieldValue } }) return map } function groupRowsByDevice(rows) { const map = new Map() ;(rows || []).forEach(item => { const deviceId = String(item?.deviceId || '').trim() || 'DEFAULT' if (!map.has(deviceId)) { map.set(deviceId, []) } map.get(deviceId).push(item) }) return map } function paginateRows(rows, pageNum = 1, pageSize = 10) { const safePageNum = Number(pageNum) > 0 ? Number(pageNum) : 1 const safePageSize = Number(pageSize) > 0 ? Number(pageSize) : 10 const start = (safePageNum - 1) * safePageSize return (rows || []).slice(start, start + safePageSize) } function toNumber(value) { const num = Number(value) return Number.isFinite(num) ? num : null } function normalizeDateInput(dateStr) { if (dateStr) return dateStr return toDateLabel(new Date()) } function resolveElectricUnit(startDate, endDate) { const start = new Date(`${normalizeDateInput(startDate)} 00:00:00`) const end = new Date(`${normalizeDateInput(endDate)} 00:00:00`) if (isNaN(start.getTime()) || isNaN(end.getTime())) return '日' const diffDays = Math.floor((end.getTime() - start.getTime()) / (24 * 60 * 60 * 1000)) if (diffDays <= 0) return '时' if (diffDays < 30) return '日' return '月' } function formatByUnit(date, unit) { const p = (n) => String(n).padStart(2, '0') if (unit === '时') return `${p(date.getHours())}:${p(date.getMinutes())}` if (unit === '月') return `${date.getFullYear()}-${p(date.getMonth() + 1)}` return `${date.getFullYear()}-${p(date.getMonth() + 1)}-${p(date.getDate())}` } function aggregateCurveByUnit(curveRows, unit) { const result = new Map() ;(curveRows || []).forEach(item => { const time = item?.dataTime ? new Date(item.dataTime) : null if (!time || isNaN(time.getTime())) return const value = toNumber(item?.pointValue) if (value == null) return const label = formatByUnit(time, unit) result.set(label, value) }) return result } function getLatestCurveValue(curveRows) { let latestTime = null let latestValue = null ;(curveRows || []).forEach(item => { const time = item?.dataTime ? new Date(item.dataTime) : null if (!time || isNaN(time.getTime())) return const value = toNumber(item?.pointValue) if (value == null) return if (latestTime == null || time.getTime() > latestTime) { latestTime = time.getTime() latestValue = value } }) return latestValue } function findMappingByField(rows, fieldNames = []) { const targetSet = new Set((fieldNames || []).map(name => String(name || '').trim())) return (rows || []).find(item => targetSet.has(getFieldNameByCode(item?.fieldCode))) } function getDataPointFromMapping(mapping) { if (!mapping) return '' const useFixedDisplay = Number(mapping?.useFixedDisplay) === 1 const fixedDataPoint = String(mapping?.fixedDataPoint || '').trim() const dataPoint = String(mapping?.dataPoint || '').trim() if (useFixedDisplay && fixedDataPoint) return fixedDataPoint return dataPoint || fixedDataPoint } function queryPointCurveByPointId({siteId, pointId, startDate, endDate}) { if (!siteId || !pointId) return Promise.resolve([]) const start = `${normalizeDateInput(startDate)} 00:00:00` const end = `${normalizeDateInput(endDate)} 23:59:59` return request({ url: `/ems/pointConfig/curve`, method: 'post', headers: { repeatSubmit: false }, data: { siteId, pointId, rangeType: 'custom', startTime: start, endTime: end } }).then(resp => (Array.isArray(resp?.data) ? resp.data : [])) } function sortCurveRows(curveRows = []) { return [...(curveRows || [])].sort((a, b) => { const ta = new Date(a?.dataTime).getTime() const tb = new Date(b?.dataTime).getTime() return (isNaN(ta) ? 0 : ta) - (isNaN(tb) ? 0 : tb) }) } function resolveRangeKind(startDate, endDate) { const start = new Date(`${normalizeDateInput(startDate)} 00:00:00`) const end = new Date(`${normalizeDateInput(endDate || startDate)} 00:00:00`) if (isNaN(start.getTime()) || isNaN(end.getTime())) return 'day' const diffDays = Math.floor((end.getTime() - start.getTime()) / (24 * 60 * 60 * 1000)) if (diffDays <= 0) return 'minute' if (diffDays < 30) return 'day' return 'month' } function formatTimeLabelByKind(date, kind = 'day') { const p = (n) => String(n).padStart(2, '0') if (kind === 'minute') return `${p(date.getHours())}:${p(date.getMinutes())}` if (kind === 'month') return `${date.getFullYear()}-${p(date.getMonth() + 1)}` return `${date.getFullYear()}-${p(date.getMonth() + 1)}-${p(date.getDate())}` } function buildSortedLabels(labelSet, kind = 'day') { const labels = Array.from(labelSet || []) if (kind === 'minute') { return labels.sort((a, b) => { const [ah = 0, am = 0] = String(a || '').split(':').map(v => Number(v) || 0) const [bh = 0, bm = 0] = String(b || '').split(':').map(v => Number(v) || 0) return ah * 60 + am - (bh * 60 + bm) }) } return labels.sort() } function normalizePointValue(raw) { const num = toNumber(raw) if (num != null) return num return raw == null ? '' : raw } function resolveAliasByField(aliasMap, fieldName) { const raw = String(fieldName || '').trim() if (!raw) return '' if (aliasMap[raw]) return aliasMap[raw] const withoutStat = raw.replace(/_stat$/, '') return aliasMap[withoutStat] || '' } function queryMenuPointCurves({siteId, menuCode, startDate, endDate, mappingFilter}) { return getProjectPointMapping(siteId).then((mappingResp) => { const allMappings = Array.isArray(mappingResp?.data) ? mappingResp.data : [] let menuMappings = allMappings.filter(item => item?.menuCode === menuCode) if (typeof mappingFilter === 'function') { menuMappings = menuMappings.filter(mappingFilter) } const tasks = menuMappings.map((mapping) => { const pointId = getDataPointFromMapping(mapping) if (!pointId) return Promise.resolve(null) return queryPointCurveByPointId({siteId, pointId, startDate, endDate}) .then(curve => ({ deviceId: String(mapping?.deviceId || '').trim(), fieldName: getFieldNameByCode(mapping?.fieldCode), curve: sortCurveRows(curve || []), })) .catch(() => ({ deviceId: String(mapping?.deviceId || '').trim(), fieldName: getFieldNameByCode(mapping?.fieldCode), curve: [], })) }) return Promise.all(tasks).then(rows => rows.filter(Boolean)) }) } // 电量指标 export function getElectricData({siteId, startDate, endDate}) { return getProjectPointMapping(siteId).then((mappingResp) => { const allMappings = Array.isArray(mappingResp?.data) ? mappingResp.data : [] const gltjMappings = allMappings.filter(item => item?.menuCode === 'TJBB_GLTJ') const chargedMap = findMappingByField(gltjMappings, ['chargedCap_stat', 'chargedCap']) const disChargedMap = findMappingByField(gltjMappings, ['disChargedCap_stat', 'disChargedCap']) const dailyEfficiencyMap = findMappingByField(gltjMappings, ['dailyEfficiency']) const totalChargedMap = findMappingByField(gltjMappings, ['totalChargedCap_stat', 'totalChargedCap']) const totalDisChargedMap = findMappingByField(gltjMappings, ['totalDisChargedCap_stat', 'totalDisChargedCap']) const totalEfficiencyMap = findMappingByField(gltjMappings, ['efficiency']) const pointMap = { charged: getDataPointFromMapping(chargedMap), disCharged: getDataPointFromMapping(disChargedMap), dailyEfficiency: getDataPointFromMapping(dailyEfficiencyMap), totalCharged: getDataPointFromMapping(totalChargedMap), totalDisCharged: getDataPointFromMapping(totalDisChargedMap), totalEfficiency: getDataPointFromMapping(totalEfficiencyMap), } const queryTasks = Object.keys(pointMap).map((key) => { const pointId = pointMap[key] return queryPointCurveByPointId({siteId, pointId, startDate, endDate}) .then(curve => ({key, curve})) .catch(() => ({key, curve: []})) }) return Promise.all(queryTasks).then((queryResult) => { const curveMap = {} queryResult.forEach(item => { curveMap[item.key] = item.curve || [] }) const unit = resolveElectricUnit(startDate, endDate) const chargedSeries = aggregateCurveByUnit(curveMap.charged, unit) const disChargedSeries = aggregateCurveByUnit(curveMap.disCharged, unit) const efficiencySeries = aggregateCurveByUnit(curveMap.dailyEfficiency, unit) const labels = Array.from(new Set([ ...chargedSeries.keys(), ...disChargedSeries.keys(), ...efficiencySeries.keys(), ])).sort() const sevenDayDisChargeStats = labels.map((label) => { const chargedCap = chargedSeries.get(label) const disChargedCap = disChargedSeries.get(label) let dailyEfficiency = efficiencySeries.get(label) if (dailyEfficiency == null && chargedCap != null && chargedCap !== 0 && disChargedCap != null) { dailyEfficiency = Number(((disChargedCap / chargedCap) * 100).toFixed(2)) } return { ammeterDate: label, chargedCap: chargedCap == null ? '' : chargedCap, disChargedCap: disChargedCap == null ? '' : disChargedCap, dailyEfficiency: dailyEfficiency == null ? '' : dailyEfficiency, } }) const fallbackTotalCharged = sevenDayDisChargeStats.reduce((acc, item) => acc + (toNumber(item.chargedCap) || 0), 0) const fallbackTotalDisCharged = sevenDayDisChargeStats.reduce((acc, item) => acc + (toNumber(item.disChargedCap) || 0), 0) const totalChargedCap = getLatestCurveValue(curveMap.totalCharged) const totalDisChargedCap = getLatestCurveValue(curveMap.totalDisCharged) const totalEfficiency = getLatestCurveValue(curveMap.totalEfficiency) const resultTotalCharged = totalChargedCap == null ? fallbackTotalCharged : totalChargedCap const resultTotalDisCharged = totalDisChargedCap == null ? fallbackTotalDisCharged : totalDisChargedCap const resultEfficiency = totalEfficiency == null ? (resultTotalCharged > 0 ? Number(((resultTotalDisCharged / resultTotalCharged) * 100).toFixed(2)) : 0) : totalEfficiency return { data: { totalChargedCap: resultTotalCharged, totalDisChargedCap: resultTotalDisCharged, efficiency: resultEfficiency, unit, sevenDayDisChargeStats, } } }) }) } //获取pcs列表 export function getPcsNameList(siteId) { return request({ url: `/ems/siteMonitor/getPcsNameList?siteId=${siteId}`, method: 'get' }) } // pcs曲线 export function getPCSData({siteId, startTime, endTime}) { const kind = resolveRangeKind(startTime, endTime) const aliasMap = { activePower_stat: 'activePower', activePower: 'activePower', reactivePower_stat: 'reactivePower', reactivePower: 'reactivePower', uCurrent: 'uCurrent', vCurrent: 'vCurrent', wCurrent: 'wCurrent', } return queryMenuPointCurves({ siteId, menuCode: 'TJBB_PCSQX', startDate: startTime, endDate: endTime, }).then((records) => { const byDevice = new Map() records.forEach((record) => { const alias = resolveAliasByField(aliasMap, record.fieldName) if (!alias) return const deviceId = record.deviceId || '' if (!byDevice.has(deviceId)) byDevice.set(deviceId, new Map()) const rowMap = byDevice.get(deviceId) ;(record.curve || []).forEach((point) => { const time = point?.dataTime ? new Date(point.dataTime) : null if (!time || isNaN(time.getTime())) return const label = formatTimeLabelByKind(time, kind) if (!rowMap.has(label)) rowMap.set(label, {statisDate: label}) rowMap.get(label)[alias] = normalizePointValue(point?.pointValue) }) }) const data = [] byDevice.forEach((rowMap, deviceId) => { const labels = buildSortedLabels(new Set(Array.from(rowMap.keys())), kind) data.push({ deviceId, dataList: labels.map(label => rowMap.get(label)), }) }) return {data} }) } // 电池堆曲线 export function getStackData({siteId, startTime, endTime}) { const kind = resolveRangeKind(startTime, endTime) const aliasMap = { temp: 'temp', voltage_stat: 'voltage', voltage: 'voltage', current: 'current', soc_stat: 'soc', soc: 'soc', } return queryMenuPointCurves({ siteId, menuCode: 'TJBB_DCDQX', startDate: startTime, endDate: endTime, }).then((records) => { const byDevice = new Map() records.forEach((record) => { const alias = resolveAliasByField(aliasMap, record.fieldName) if (!alias) return const deviceId = record.deviceId || '' if (!byDevice.has(deviceId)) byDevice.set(deviceId, new Map()) const rowMap = byDevice.get(deviceId) ;(record.curve || []).forEach((point) => { const time = point?.dataTime ? new Date(point.dataTime) : null if (!time || isNaN(time.getTime())) return const label = formatTimeLabelByKind(time, kind) if (!rowMap.has(label)) rowMap.set(label, {statisDate: label}) rowMap.get(label)[alias] = normalizePointValue(point?.pointValue) }) }) const data = [] byDevice.forEach((rowMap, deviceId) => { const labels = buildSortedLabels(new Set(Array.from(rowMap.keys())), kind) data.push({ deviceId, dataList: labels.map(label => rowMap.get(label)), }) }) return {data} }) } // 电池温度 export function getClusterData({siteId, stackId, clusterId, dateTime, pageNum, pageSize}) { const startDate = dateTime || normalizeDateInput('') const endDate = dateTime || normalizeDateInput('') const kind = 'minute' const aliasMap = { maxTemp: 'maxTemp', maxTempId: 'maxTempId', minTemp: 'minTemp', minTempId: 'minTempId', maxVoltage: 'maxVoltage', maxVoltageId: 'maxVoltageId', minVoltage: 'minVoltage', minVoltageId: 'minVoltageId', } const queryClusterCurves = (withClusterFilter) => queryMenuPointCurves({ siteId, menuCode: 'TJBB_DCWD', startDate, endDate, mappingFilter: withClusterFilter ? (item) => { if (!clusterId) return true return String(item?.deviceId || '').trim() === String(clusterId || '').trim() } : undefined }) return queryClusterCurves(true).then((records) => { if (clusterId && (!records || records.length === 0)) { return queryClusterCurves(false) } return records }).then((records) => { const rowMap = new Map() records.forEach((record) => { const alias = resolveAliasByField(aliasMap, record.fieldName) if (!alias) return ;(record.curve || []).forEach((point) => { const time = point?.dataTime ? new Date(point.dataTime) : null if (!time || isNaN(time.getTime())) return const label = formatTimeLabelByKind(time, kind) if (!rowMap.has(label)) rowMap.set(label, {statisDate: label}) rowMap.get(label)[alias] = normalizePointValue(point?.pointValue) }) }) const labels = buildSortedLabels(new Set(Array.from(rowMap.keys())), kind) const fullRows = labels.map(label => rowMap.get(label)) return { rows: paginateRows(fullRows, pageNum, pageSize), total: fullRows.length, } }) } // 实时运行 //储能 export function storagePower(siteId, startTime, endTime) { return request({ url: `/ems/siteMonitor/runningGraph/storagePower?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, method: 'get' }) } //poc温度 export function pcsMaxTemp(siteId, startTime, endTime) { return request({ url: `/ems/siteMonitor/runningGraph/pcsMaxTemp?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, method: 'get' }) } // 电池平均soc export function batteryAveSoc(siteId, startTime, endTime) { return request({ url: `/ems/siteMonitor/runningGraph/batteryAveSoc?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, method: 'get' }) } // 电池平均温度 export function batteryAveTemp(siteId, startTime, endTime) { return request({ url: `/ems/siteMonitor/runningGraph/batteryAveTemp?siteId=${siteId}&startDate=${startTime}&endDate=${endTime}`, method: 'get' }) } // 功率曲线 export function getPowerData({siteId, startDate, endDate}) { const kind = resolveRangeKind(startDate, endDate) const aliasMap = { gridPower_stat: 'gridPower', gridPower: 'gridPower', loadPower_stat: 'loadPower', loadPower: 'loadPower', storagePower_stat: 'storagePower', storagePower: 'storagePower', pvPower_stat: 'pvPower', pvPower: 'pvPower', } return queryMenuPointCurves({ siteId, menuCode: 'TJBB_GLQX', startDate, endDate, }).then((records) => { const rowMap = new Map() records.forEach((record) => { const alias = resolveAliasByField(aliasMap, record.fieldName) if (!alias) return ;(record.curve || []).forEach((point) => { const time = point?.dataTime ? new Date(point.dataTime) : null if (!time || isNaN(time.getTime())) return const label = formatTimeLabelByKind(time, kind) if (!rowMap.has(label)) rowMap.set(label, {statisDate: label}) rowMap.get(label)[alias] = normalizePointValue(point?.pointValue) }) }) const labels = buildSortedLabels(new Set(Array.from(rowMap.keys())), kind) return {data: labels.map(label => rowMap.get(label))} }) } //电表列表 export function getLoadNameList(siteId) { return request({ url: `/ems/statsReport/getLoadNameList?siteId=${siteId}`, method: 'get' }) } // 电表报表 export function getAmmeterData({siteId, startTime, endTime, pageSize, pageNum}) { return request({ url: `/ems/statsReport/getAmmeterDataFromDaily`, method: 'get', params: { siteId, startTime, endTime, pageSize, pageNum, } }) } // 电价报表 export function getAmmeterRevenueData(data) { return request({ url: `/ems/statsReport/getAmmeterRevenueData`, method: 'get', params: data }) } //策略列表 export function strategyRunningList(siteId) { return request({ url: `/system/strategyRunning/list?siteId=${siteId}`, method: 'get' }) } //停止策略 export function stopStrategyRunning(id) { return request({ url: `/system/strategyRunning/stop?id=${id}`, method: 'get' }) } // 获取所有主策略 export function getMainStrategyList() { return request({ url: `/system/strategyRunning/getMainStrategyList`, method: 'get' }) } //获取所有辅助策略 export function getAuxStrategyList() { return request({ url: `/system/strategyRunning/getAuxStrategyList`, method: 'get' }) } //配置策略 export function configStrategy(data) { return request({ url: `/system/strategyRunning/configStrategy`, method: 'post', data }) } // 获取策略运行参数配置(按站点) export function getStrategyRuntimeConfig(siteId) { return request({ url: `/system/strategyRuntimeConfig/getBySiteId?siteId=${siteId}`, method: 'get' }) } // 保存策略运行参数配置(按站点) export function saveStrategyRuntimeConfig(data) { return request({ url: `/system/strategyRuntimeConfig/save`, method: 'post', data }) } //http://localhost:8089/strategy/temp/getTempNameList?strategyId=1&siteId=021_FXX_01 //获取策略下的所有模板列表 export function getTempNameList({siteId, strategyId}) { return request({ url: `/strategy/temp/getTempNameList?siteId=${siteId}&strategyId=${strategyId}`, method: 'get', }) } //获取模板详情 ///strategy/temp/list?templateId=1 export function getStrategyTempDetail(templateId) { return request({ url: `/strategy/temp/list?templateId=${templateId}`, method: 'get', }) } //新增模板 export function addStrategyTemp(data) { return request({ url: `/strategy/temp`, method: 'post', data }) } export function editStrategyTemp(data) { return request({ url: `/strategy/temp`, method: 'put', data }) } //http://localhost:8089/strategy/temp/{id} export function deleteStrategyTemp(id) { return request({ url: `/strategy/temp/` + id, method: 'delete', }) } //http://localhost:8089/strategy/timeConfig/list?strategyId=1&siteId=021_FXX_01 export function timeConfigList({siteId, strategyId}) { return request({ url: `/strategy/timeConfig/list?siteId=${siteId}&strategyId=${strategyId}`, method: 'get', }) } //保存时间配置 // http://localhost:8089/strategy/timeConfig export function setTimeConfigList(data) { return request({ url: `/strategy/timeConfig`, method: 'post', data }) } // 策略曲线图 //http://localhost:8089/strategy/curve/curveList?strategyId=1&siteId=021_FXX_01 export function curveList({siteId, strategyId}) { return request({ url: `/strategy/curve/curveList?siteId=${siteId}&strategyId=${strategyId}`, method: 'get', }) } //单站监控 首页 当日功率曲线 export function getPointData({siteId, startDate, endDate}) { return request({ url: `/ems/siteMonitor/getPointData?siteId=${siteId}&startDate=${startDate}&endDate=${endDate}`, method: 'get', }) }