BI月台动态真实数据
This commit is contained in:
+92
@@ -5,10 +5,18 @@ import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO;
|
|||||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
|
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
|
||||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
|
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
|
||||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
|
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
|
||||||
|
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformVehicleItemVO;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.TaskLoadItemVO;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 月台监测-真实数据业务层(封装 YMS 跨库查询)
|
* 月台监测-真实数据业务层(封装 YMS 跨库查询)
|
||||||
@@ -89,4 +97,88 @@ public class BiPlatformRealDataService {
|
|||||||
return java.util.Collections.emptyList();
|
return java.util.Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时组装月台监测数据:真实字段查 YMS 库,写死字段保留静态值。
|
||||||
|
* 每次调用实时查库,不经过快照表。
|
||||||
|
*/
|
||||||
|
public PlatformSurveillanceVO buildRealTimePlatformSurveillance() {
|
||||||
|
Random r = new Random();
|
||||||
|
PlatformSurveillanceVO template = BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(r);
|
||||||
|
|
||||||
|
// 作业车辆列表
|
||||||
|
List<RealPlatformVehiclePO> realVehicles = queryVehicles();
|
||||||
|
List<PlatformVehicleItemVO> vehicleVos = new ArrayList<>();
|
||||||
|
for (RealPlatformVehiclePO rv : realVehicles) {
|
||||||
|
PlatformVehicleItemVO v = new PlatformVehicleItemVO();
|
||||||
|
v.setAppointmentTime(rv.getAppointmentTime());
|
||||||
|
v.setWorkFloor(rv.getWorkFloor());
|
||||||
|
v.setPlateNumber(rv.getPlateNumber());
|
||||||
|
v.setStatus(rv.getStatus());
|
||||||
|
v.setPlatformId(rv.getPlatformId());
|
||||||
|
v.setPlatformDuration(rv.getPlatformDuration() == null ? 0 : rv.getPlatformDuration().intValue());
|
||||||
|
vehicleVos.add(v);
|
||||||
|
}
|
||||||
|
if (!vehicleVos.isEmpty()) {
|
||||||
|
template.setVehicles(vehicleVos);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 月台实时概览
|
||||||
|
RealPlatformOverviewPO ov = queryPlatformOverview();
|
||||||
|
if (template.getPlatformOverview() != null) {
|
||||||
|
template.getPlatformOverview().setTotalPlatforms(ov.getTotalPlatforms().intValue());
|
||||||
|
template.getPlatformOverview().setOperatingPlatforms(ov.getOperatingPlatforms().intValue());
|
||||||
|
int total = ov.getTotalPlatforms().intValue();
|
||||||
|
int occ = ov.getOperatingPlatforms().intValue();
|
||||||
|
int rate = total > 0 ? (int) Math.round(((double) occ / total) * 100.0) : 0;
|
||||||
|
template.getPlatformOverview().setCurrentOccupancyRate(rate);
|
||||||
|
}
|
||||||
|
long todayTasks = countTodayTasks();
|
||||||
|
if (template.getPlatformOverview() != null) {
|
||||||
|
template.getPlatformOverview().setTodayTasks((int) todayTasks);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 作业车辆状态统计
|
||||||
|
RealVehicleStatusPO vs = queryVehicleStatusToday();
|
||||||
|
if (template.getVehicleStatus() != null) {
|
||||||
|
template.getVehicleStatus().setTodayReservedVehicles(vs.getTodayReservedVehicles().intValue());
|
||||||
|
template.getVehicleStatus().setNotCheckedIn(vs.getNotCheckedIn().intValue());
|
||||||
|
template.getVehicleStatus().setOperatingVehicles(vs.getOperatingVehicles().intValue());
|
||||||
|
template.getVehicleStatus().setCompletedVehicles(vs.getCompletedVehicles().intValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 本月任务统计 taskTotal
|
||||||
|
long monthTasks = countMonthTasks();
|
||||||
|
if (template.getMonthlyTaskStatistics() != null) {
|
||||||
|
template.getMonthlyTaskStatistics().setTaskTotal((int) monthTasks);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务负荷(今日 24 小时)
|
||||||
|
List<RealTaskLoadPO> loads = queryTaskLoadToday();
|
||||||
|
if (!loads.isEmpty() && template.getTaskLoadStatistics() != null) {
|
||||||
|
Map<Integer, Long> hourMap = new HashMap<>();
|
||||||
|
for (RealTaskLoadPO l : loads) {
|
||||||
|
hourMap.put(l.getHourOfDay(), l.getTaskCount());
|
||||||
|
}
|
||||||
|
for (TaskLoadItemVO item : template.getTaskLoadStatistics()) {
|
||||||
|
Integer hour = parseHourFromLabel(item.getTime());
|
||||||
|
if (hour != null) {
|
||||||
|
Long n = hourMap.get(hour);
|
||||||
|
if (n != null) item.setTaskCount(n.intValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return template;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Integer parseHourFromLabel(String label) {
|
||||||
|
if (label == null) return null;
|
||||||
|
try {
|
||||||
|
String s = label.replace("时", "").trim();
|
||||||
|
return Integer.parseInt(s);
|
||||||
|
} catch (Exception e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.mhd.bi.interfaces.facadeApi.biReport;
|
|||||||
import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService;
|
import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService;
|
||||||
import com.mhd.bi.domain.biComprehensive.service.BiComprehensiveReportService;
|
import com.mhd.bi.domain.biComprehensive.service.BiComprehensiveReportService;
|
||||||
import com.mhd.bi.domain.biPlatformSurveillance.service.BiPlatformSurveillanceReportService;
|
import com.mhd.bi.domain.biPlatformSurveillance.service.BiPlatformSurveillanceReportService;
|
||||||
|
import com.mhd.bi.domain.biPlatformRealData.service.BiPlatformRealDataService;
|
||||||
import com.mhd.bi.domain.biOverallOperation.service.BiOverallOperationReportService;
|
import com.mhd.bi.domain.biOverallOperation.service.BiOverallOperationReportService;
|
||||||
import com.mhd.bi.domain.biHkMacaoServiceZone.service.BiHkMacaoServiceZoneReportService;
|
import com.mhd.bi.domain.biHkMacaoServiceZone.service.BiHkMacaoServiceZoneReportService;
|
||||||
import com.mhd.bi.domain.biTransportOperationZone.service.BiTransportOperationZoneReportService;
|
import com.mhd.bi.domain.biTransportOperationZone.service.BiTransportOperationZoneReportService;
|
||||||
@@ -48,6 +49,9 @@ public class BiReportApi extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BiPlatformSurveillanceReportService biPlatformSurveillanceReportService;
|
private BiPlatformSurveillanceReportService biPlatformSurveillanceReportService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BiPlatformRealDataService biPlatformRealDataService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BiOverallOperationReportService biOverallOperationReportService;
|
private BiOverallOperationReportService biOverallOperationReportService;
|
||||||
|
|
||||||
@@ -92,12 +96,12 @@ public class BiReportApi extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 月台监测指标查询(按照 del_flag=1,按 create_time 最新一条)
|
* 月台监测指标查询(实时查 YMS 库,真实字段 + 写死字段)
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "月台监测指标查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条快照")
|
@ApiOperation(value = "月台监测指标查询", notes = "每次调用实时查询 YMS 库组装;部分字段为真实业务数据,部分为写死数据")
|
||||||
@GetMapping("/platformSurveillance")
|
@GetMapping("/platformSurveillance")
|
||||||
public BiApiResult<PlatformSurveillanceVO> platformSurveillance() {
|
public BiApiResult<PlatformSurveillanceVO> platformSurveillance() {
|
||||||
PlatformSurveillanceVO data = biPlatformSurveillanceReportService.loadLatestPlatformSurveillance();
|
PlatformSurveillanceVO data = biPlatformRealDataService.buildRealTimePlatformSurveillance();
|
||||||
return BiApiResult.ok(data);
|
return BiApiResult.ok(data);
|
||||||
}
|
}
|
||||||
//园区物流大屏接口----------------------------------------------------------------------
|
//园区物流大屏接口----------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user