import { formatOriginData } from "../reportInfo/fetchData"; import enqueue from "@/utils/taskQueue"; import api from "@/http/api_sz_demo"; import { IFilterForEnterprise } from "../types"; import { PointOverlayDataWithValue } from "@/modules/hpaas-core/visual/overlay.types"; import lodash from "lodash"; import { SegmentOverlayData } from "@/modules/hpaas-core/visual/overlay.types"; /** * 泊车数据表 */ export const loadParkingData = async (filters: IFilterForEnterprise, callback: Function) => { // enqueue(async () => { const result = await api.enterpriseReport.getParkingListByEnterpriseName( filters.date, filters.enterpriseName, filters.plate, filters.segmentUids ); const data = formatOriginData(result); data.forEach((d: any) => { d.lng = d.longitude; d.lat = d.latitude; d.value = 1; }); callback(data as PointOverlayDataWithValue[]); return data as PointOverlayDataWithValue[]; // }); }; /** * 违法明细表 */ export const loadViolationData = async (filters: IFilterForEnterprise, callback: Function) => { // enqueue(async () => { const result = await api.enterpriseReport.getViolationListByEnterpriseName( filters.date, filters.enterpriseName, filters.plate, filters.segmentUids ); const data = formatOriginData(result); data.forEach((d: any) => { d.lng = d.longitude; d.lat = d.latitude; d.value = d.violate_type; }); callback(data as PointOverlayDataWithValue[]); return data as PointOverlayDataWithValue[]; // }); }; export const loadQujianDevicePointData = async (filters: IFilterForEnterprise, callback: Function) => { // enqueue(async () => { const result = await api.enterpriseReport.getDeviceList("区间测试卡口", filters.areaName, filters.segmentUids); const data = formatOriginData(result).splice(0, 50); data.forEach((d: any) => { d.lng = d.longitude; d.lat = d.latitude; d.value = d.is_effective; }); callback(data as PointOverlayDataWithValue[]); return data as PointOverlayDataWithValue[]; // }); }; export const loadChuangjinDevicePointData = async (filters: IFilterForEnterprise, callback: Function) => { const result = await api.enterpriseReport.getDeviceList("闯禁抓拍卡口", filters.areaName, filters.segmentUids); const data = formatOriginData(result).splice(0, 100); data.forEach((d: any) => { d.lng = d.longitude; d.lat = d.latitude; d.value = d.is_effective; }); callback(data as PointOverlayDataWithValue[]); return data as PointOverlayDataWithValue[]; }; export const loadPublicPointData = async (filters: IFilterForEnterprise, callback: Function) => { // enqueue(async () => { const result = await api.enterpriseReport.getPublicPointsByEnterpriseName(filters.enterpriseName); const data = formatOriginData(result); data.forEach((d: any) => { d.lng = d.longitude; d.lat = d.latitude; d.value = d.parking_point_name; }); callback(data as PointOverlayDataWithValue[]); return data as PointOverlayDataWithValue[]; // }); }; export const loadTripData = async (filters: IFilterForEnterprise) => { const result = await api.enterpriseReport.getAllTrip(filters.date, filters.enterpriseName, filters.plate); const data = formatOriginData(result); const overlayData: SegmentOverlayData[][] = []; data.forEach((d: any) => { const datas: SegmentOverlayData[] = []; d.trip_segroad_uids && d.trip_segroad_uids.split(",").forEach((segUid: string) => { datas.push({ segroad_uid: segUid, filterValue: "1", extends: { enterpriseName: d.enterprise_name, plate: d.plate, mean_velocity: d.mean_velocity, trip_start_time: d.trip_start_time, trip_end_time: d.trip_end_time, deviate_rate: d.deviate_rate, }, }); }); d.deviate_segroad_uids && d.deviate_segroad_uids.split(",").forEach((segUid: string) => { datas.push({ segroad_uid: segUid, filterValue: "0", extends: { enterpriseName: d.enterprise_name, plate: d.plate, mean_velocity: d.mean_velocity, trip_start_time: d.trip_start_time, trip_end_time: d.trip_end_time, deviate_rate: d.deviate_rate, }, }); }); overlayData.push(datas); // d.lng = d.longitude; // segroad_uid: string; // [propName: string]: any; // extends?: { [key: string]: any }; // model?: LineModel; // d.lat = d.latitude; }); return overlayData; }; export const loadAreaInfos = async () => { // enqueue(async () => { const result = await api.enterpriseReport.getAllAreaGroupByName(); const data = formatOriginData(result); const areas: { [key: string]: { plate_count: number; enterprise_count: number; plates: string[]; enterprise_names: string[]; areaCode: ""; }; } = {}; data.forEach((d) => { const areaName = d.area_name; const areaCode = d.area_uid; const plate = d.plate; const enterprise_name = d.enterprise_name; if (!areas[areaName]) { areas[areaName] = { plates: [], enterprise_names: [], plate_count: 0, enterprise_count: 0, areaCode, }; } areas[areaName].plates.push(plate); areas[areaName].enterprise_names.push(enterprise_name); }); for (const i in areas) { const area = areas[i]; area.plate_count = lodash.uniq(area.plates).length; area.enterprise_count = lodash.uniq(area.enterprise_names).length; } return areas; // }); };