|
|
|
|
import { http } from "@/api/http";
|
|
|
|
|
import { ModuleTypeEnum, RequestHttpEnum } from "@/enums/httpEnum";
|
|
|
|
|
import { ProjectDetail } from "@/api/path/project";
|
|
|
|
|
import { getLocalStorage, httpErrorHandle } from "@/utils";
|
|
|
|
|
import { RequestDataSourceConfig } from '@/store/modules/chartEditStore/chartEditStore.d'
|
|
|
|
|
import { StorageEnum } from "@/enums/storageEnum";
|
|
|
|
|
import { SystemStoreEnum } from '@/store/modules/systemStore/systemStore.d'
|
|
|
|
|
import { SelectDataSourceTypeAPIObj } from "@/enums/dataSourceEnum";
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 获取站点
|
|
|
|
|
*/
|
|
|
|
|
export const fetchDataSite = async (data: object) => {
|
|
|
|
|
try {
|
|
|
|
|
return await http(RequestHttpEnum.GET)<ProjectDetail>(`${ModuleTypeEnum.DATA}/get-site`)
|
|
|
|
|
} catch {
|
|
|
|
|
httpErrorHandle()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 获取设备
|
|
|
|
|
* @param data {
|
|
|
|
|
* siteId // 站点
|
|
|
|
|
* }
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
export const fetchDataDevice = async (data: object) => {
|
|
|
|
|
try {
|
|
|
|
|
return await http(RequestHttpEnum.GET)<ProjectDetail>(`${ModuleTypeEnum.DATA}/get-entity`,data)
|
|
|
|
|
} catch {
|
|
|
|
|
httpErrorHandle()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 获取点位
|
|
|
|
|
* @param data {
|
|
|
|
|
* siteId // 站点
|
|
|
|
|
* entityId // 设备
|
|
|
|
|
* }
|
|
|
|
|
*/
|
|
|
|
|
export const fetchDataPoint = async (data: object) => {
|
|
|
|
|
try {
|
|
|
|
|
return await http(RequestHttpEnum.GET)<ProjectDetail>(`${ModuleTypeEnum.DATA}/get-point`, data)
|
|
|
|
|
} catch {
|
|
|
|
|
httpErrorHandle()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// "queryType": 2,
|
|
|
|
|
// "site": "53",
|
|
|
|
|
// "width": "1d",
|
|
|
|
|
// "tenantId": 169,
|
|
|
|
|
// "interval":"1h",
|
|
|
|
|
// "points":[]
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 收益参数
|
|
|
|
|
* @param params {
|
|
|
|
|
* queryType = 2
|
|
|
|
|
* siteId // 站点
|
|
|
|
|
* entityId // 设备
|
|
|
|
|
* width = 1d
|
|
|
|
|
* tenantId
|
|
|
|
|
* interval
|
|
|
|
|
* points = []
|
|
|
|
|
* }
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
export async function test (){
|
|
|
|
|
// const params = {
|
|
|
|
|
// "queryType": 1,
|
|
|
|
|
// "site": 56,
|
|
|
|
|
// "with": 30,
|
|
|
|
|
// "deviceSn": 454,
|
|
|
|
|
// "points": [
|
|
|
|
|
// 4,
|
|
|
|
|
// 7
|
|
|
|
|
// ],
|
|
|
|
|
// "tenantId": 169
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
const params = {
|
|
|
|
|
"queryType": 2,
|
|
|
|
|
"site": 56,
|
|
|
|
|
"with": "6h",
|
|
|
|
|
"interval": "20m",
|
|
|
|
|
"points": [],
|
|
|
|
|
"tenantId": 169
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
return await http(RequestHttpEnum.POST)<ProjectDetail>(`${ModuleTypeEnum.DATA}/get-by-iot`, params)
|
|
|
|
|
} catch {
|
|
|
|
|
httpErrorHandle()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getPointParams(requestSource: RequestDataSourceConfig) {
|
|
|
|
|
let params:any = {
|
|
|
|
|
queryType: SelectDataSourceTypeAPIObj[requestSource.dataSourceType],
|
|
|
|
|
site: requestSource.station,
|
|
|
|
|
width: requestSource.recentTimeRange,
|
|
|
|
|
deviceSn: requestSource.device.split('|')[0],
|
|
|
|
|
deviceType: requestSource.device.split('|')[1],
|
|
|
|
|
points: requestSource.points,
|
|
|
|
|
tenantId: getToken()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return params
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getEarningParams(requestSource: RequestDataSourceConfig) {
|
|
|
|
|
let params: any = {
|
|
|
|
|
queryType: SelectDataSourceTypeAPIObj[requestSource.dataSourceType],
|
|
|
|
|
site: requestSource.station,
|
|
|
|
|
width: requestSource.recentTimeRange,
|
|
|
|
|
interval: '20m',
|
|
|
|
|
points: [],
|
|
|
|
|
tenantId: getToken()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return params
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const fetchDataByIot = async (requestSource: RequestDataSourceConfig) => {
|
|
|
|
|
if (!requestSource.station) return
|
|
|
|
|
let params:any = {}
|
|
|
|
|
if(requestSource.dataSourceType === 'point') {
|
|
|
|
|
params = getPointParams(requestSource)
|
|
|
|
|
} else if(requestSource.dataSourceType === 'earning') {
|
|
|
|
|
params = getEarningParams(requestSource)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
const res = await http(RequestHttpEnum.POST)<ProjectDetail>(`${ModuleTypeEnum.DATA}/get-by-iot`, params) as any
|
|
|
|
|
let keyMap: any = []
|
|
|
|
|
if (requestSource.dataSourceType === 'point') {
|
|
|
|
|
keyMap = Object.fromEntries(
|
|
|
|
|
requestSource.pointsInfo.map(p => [p.columnName, p.nameCn])
|
|
|
|
|
)
|
|
|
|
|
} else if(requestSource.dataSourceType === 'earning'){
|
|
|
|
|
keyMap = {
|
|
|
|
|
'sum(earning)': '收益'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
res.data.dimensions = res.data.dimensions.map((key:string) => keyMap[key] || key)
|
|
|
|
|
res.data.source = res.data.source.map((item:any) => {
|
|
|
|
|
const newItem: Record<string, any> = {}
|
|
|
|
|
for (const key in item) {
|
|
|
|
|
newItem[keyMap[key] || key] = item[key]
|
|
|
|
|
}
|
|
|
|
|
return newItem
|
|
|
|
|
}) ?? []
|
|
|
|
|
|
|
|
|
|
return res
|
|
|
|
|
// await specialCustomizeHttp({
|
|
|
|
|
// url: `${ModuleTypeEnum.DATA}/get-by-iot`,
|
|
|
|
|
// method: 'POST',
|
|
|
|
|
// params
|
|
|
|
|
// })
|
|
|
|
|
} catch {
|
|
|
|
|
// httpErrorHandle()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getToken() {
|
|
|
|
|
const info = getLocalStorage(StorageEnum.GO_SYSTEM_STORE)
|
|
|
|
|
return info ? info[SystemStoreEnum.TENANT_INFO]['tenantId'] : undefined
|
|
|
|
|
}
|