BI大屏单表查询修改

This commit is contained in:
秦鸿展
2026-05-06 17:48:56 +08:00
parent d86639ba4b
commit 13112db89c
33 changed files with 958 additions and 2 deletions
@@ -12,7 +12,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication(scanBasePackages = {"com.mhd", "com.mhd.bi"})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.mhd","com.mhd.bi.infrastructure.feign"})
@EnableFeignClients(basePackages = {"com.mhd"})
@MapperScan("com.mhd.bi.domain.**.mapper")
@Import({SetFeildValueAspect.class, CommonService.class})
@EnableAsync
@@ -0,0 +1,23 @@
package com.mhd.bi.domain.biComprehensive.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
/**
* 综合态势:SQL 见 BiComprehensiveReportMapper.xml;取数与组装均在 Mapper 层完成。
*/
public interface BiComprehensiveReportMapper {
String selectLatestPayloadJson();
/**
* 最新快照 → VO(内部调用 {@link #selectLatestPayloadJson()}
*/
default ComprehensiveSituationVO loadLatestComprehensive() {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(),
ComprehensiveSituationVO.class,
BiReportSnapshotMapperSupport::emptyComprehensiveSituation,
"综合态势");
}
}
@@ -0,0 +1,21 @@
package com.mhd.bi.domain.biComprehensive.service;
import com.mhd.bi.domain.biComprehensive.repository.mapper.BiComprehensiveReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 综合态势:数据访问仅经 Mapper(含 XML 内 SQL 与 Mapper 默认方法组装)。
*/
@Service
public class BiComprehensiveReportService {
@Resource
private BiComprehensiveReportMapper biComprehensiveReportMapper;
public ComprehensiveSituationVO loadLatestComprehensive() {
return biComprehensiveReportMapper.loadLatestComprehensive();
}
}
@@ -0,0 +1,20 @@
package com.mhd.bi.domain.biPlatformSurveillance.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
/**
* 月台监测:SQL 见 BiPlatformSurveillanceReportMapper.xml;取数与组装均在 Mapper 层完成。
*/
public interface BiPlatformSurveillanceReportMapper {
String selectLatestPayloadJson();
default PlatformSurveillanceVO loadLatestPlatformSurveillance() {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(),
PlatformSurveillanceVO.class,
BiReportSnapshotMapperSupport::emptyPlatformSurveillance,
"月台监测");
}
}
@@ -0,0 +1,18 @@
package com.mhd.bi.domain.biPlatformSurveillance.service;
import com.mhd.bi.domain.biPlatformSurveillance.repository.mapper.BiPlatformSurveillanceReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class BiPlatformSurveillanceReportService {
@Resource
private BiPlatformSurveillanceReportMapper biPlatformSurveillanceReportMapper;
public PlatformSurveillanceVO loadLatestPlatformSurveillance() {
return biPlatformSurveillanceReportMapper.loadLatestPlatformSurveillance();
}
}
@@ -0,0 +1,99 @@
package com.mhd.bi.domain.biReport.support;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.CustomerContributionRankVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.function.Supplier;
/**
* Mapper 层使用的快照 JSON 解析与空态(SQL 仅定义在对应 Mapper.xml
*/
@Slf4j
public final class BiReportSnapshotMapperSupport {
private static final ObjectMapper MAPPER = new ObjectMapper();
private BiReportSnapshotMapperSupport() {
}
public static <T> T parsePayload(String json, Class<T> type, Supplier<T> empty, String logLabel) {
if (StringUtils.isBlank(json)) {
return empty.get();
}
try {
return MAPPER.readValue(json.trim(), type);
} catch (Exception e) {
log.warn("{} PAYLOAD_JSON 解析失败,返回空态", logLabel, e);
return empty.get();
}
}
public static ComprehensiveSituationVO emptyComprehensiveSituation() {
return ComprehensiveSituationVO.builder()
.valueAddedServiceIncome(0L)
.inventoryTurnover(0)
.orderCount(0)
.vehicleUtilizationRate(0d)
.fuelConsumptionPerHundredKm(0)
.incomeTrend(Collections.emptyList())
.build();
}
public static WarehouseTransportSituationVO emptyWarehouseTransportSituation() {
return WarehouseTransportSituationVO.builder()
.warehouseDistributionOnTimeRate(0d)
.currentYearOrders(0L)
.currentQuarterOrders(0)
.currentMonthOrders(0)
.warehouseOrderTrend(Collections.emptyList())
.throughput(Collections.emptyList())
.currentMonthTurnoverRate(0)
.currentYearTurnoverRate(0)
.inventoryTurnoverTrend(Collections.emptyList())
.totalTransportIncome(0)
.orderCount(0)
.transportTrips(0)
.annualTransportVolume(0)
.transportOrderTotal(0)
.crossBorderTransportOrder(0)
.domesticTransportOrder(0)
.transportTripsTrend(Collections.emptyList())
.vehicleUtilizationRate(Collections.emptyList())
.warehouseDockSyncRate(Collections.emptyList())
.customerContributionRank(CustomerContributionRankVO.builder()
.customerName(Collections.emptyList())
.customerAmount(Collections.emptyList())
.build())
.build();
}
public static PlatformSurveillanceVO emptyPlatformSurveillance() {
return PlatformSurveillanceVO.builder()
.vehicles(Collections.emptyList())
.efficiencyStatistics(EfficiencyStatisticsVO.builder()
.entryOvertimeRate(0).overtimeCount(0).platformOnTimeRate(0)
.avgPlatformDuration(0d).yardOnTimeRate(0).avgYardDuration(0d).build())
.platformOverview(PlatformOverviewVO.builder()
.totalPlatforms(0).currentOccupancyRate(0).operatingPlatforms(0).todayTasks(0).build())
.vehicleStatus(VehicleStatusVO.builder()
.todayReservedVehicles(0).notCheckedIn(0).operatingVehicles(0).completedVehicles(0).build())
.avgOperationDurationTrend(Collections.emptyList())
.monthlyTaskStatistics(MonthlyTaskStatisticsVO.builder()
.taskTotal(0).taskTotalYoY(0).avgTaskDuration(0d).avgDurationYoY(0)
.taskCompletionRate(0).completionRateYoY(0).build())
.taskLoadStatistics(Collections.emptyList())
.platformAlarmTrend(Collections.emptyList())
.taskTypeStatistics(TaskTypeStatisticsVO.builder()
.totalTasks(0).taskTypes(Collections.emptyList()).build())
.platformAlarmStatistics(PlatformAlarmStatisticsVO.builder()
.todayAlarmTotal(0).handled(0).unhandled(0).build())
.platformAlarmDistribution(Collections.emptyList())
.build();
}
}
@@ -0,0 +1,20 @@
package com.mhd.bi.domain.biWarehouseTransport.repository.mapper;
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
/**
* 仓储运输:SQL 见 BiWarehouseTransportReportMapper.xml;取数与组装均在 Mapper 层完成。
*/
public interface BiWarehouseTransportReportMapper {
String selectLatestPayloadJson();
default WarehouseTransportSituationVO loadLatestWarehouseTransport() {
return BiReportSnapshotMapperSupport.parsePayload(
selectLatestPayloadJson(),
WarehouseTransportSituationVO.class,
BiReportSnapshotMapperSupport::emptyWarehouseTransportSituation,
"仓储运输");
}
}
@@ -0,0 +1,18 @@
package com.mhd.bi.domain.biWarehouseTransport.service;
import com.mhd.bi.domain.biWarehouseTransport.repository.mapper.BiWarehouseTransportReportMapper;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class BiWarehouseTransportReportService {
@Resource
private BiWarehouseTransportReportMapper biWarehouseTransportReportMapper;
public WarehouseTransportSituationVO loadLatestWarehouseTransport() {
return biWarehouseTransportReportMapper.loadLatestWarehouseTransport();
}
}
@@ -0,0 +1,69 @@
package com.mhd.bi.interfaces.facadeApi.biReport;
import com.mhd.bi.domain.biComprehensive.service.BiComprehensiveReportService;
import com.mhd.bi.domain.biPlatformSurveillance.service.BiPlatformSurveillanceReportService;
import com.mhd.bi.domain.biWarehouseTransport.service.BiWarehouseTransportReportService;
import com.mhd.bi.interfaces.facadeApi.biReport.dto.BiApiResult;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO;
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
import com.mhd.common.core.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* BI 报表接口
*/
@Api(tags = "BI报表")
@Slf4j
@RestController
@RequestMapping("/biReport")
@CrossOrigin
public class BiReportApi extends BaseController {
@Autowired
private BiComprehensiveReportService biComprehensiveReportService;
@Autowired
private BiWarehouseTransportReportService biWarehouseTransportReportService;
@Autowired
private BiPlatformSurveillanceReportService biPlatformSurveillanceReportService;
/**
* 综合态势指标查询
*/
@ApiOperation("综合态势指标查询")
@GetMapping("/comprehensive")
public BiApiResult<ComprehensiveSituationVO> comprehensive() {
ComprehensiveSituationVO data = biComprehensiveReportService.loadLatestComprehensive();
return BiApiResult.ok(data);
}
/**
* 仓储运输指标查询
*/
@ApiOperation("仓储运输指标查询")
@GetMapping("/warehouseTransport")
public BiApiResult<WarehouseTransportSituationVO> warehouseTransport() {
WarehouseTransportSituationVO data = biWarehouseTransportReportService.loadLatestWarehouseTransport();
return BiApiResult.ok(data);
}
/**
* 月台监测指标查询
*/
@ApiOperation("月台监测指标查询")
@GetMapping("/platformSurveillance")
public BiApiResult<PlatformSurveillanceVO> platformSurveillance() {
PlatformSurveillanceVO data = biPlatformSurveillanceReportService.loadLatestPlatformSurveillance();
return BiApiResult.ok(data);
}
}
@@ -0,0 +1,24 @@
package com.mhd.bi.interfaces.facadeApi.biReport.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* BI 接口统一响应(与前端约定:message 字段)
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BiApiResult<T> {
private int code = 200;
private String message = "success";
private T data;
public static <T> BiApiResult<T> ok(T data) {
return new BiApiResult<>(200, "success", data);
}
}
@@ -0,0 +1,39 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 综合态势指标
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("综合态势指标")
public class ComprehensiveSituationVO {
@ApiModelProperty("增值服务收入,单位:元人民币")
private Long valueAddedServiceIncome;
@ApiModelProperty("库存周转率,单位:次")
private Integer inventoryTurnover;
@ApiModelProperty("运输订单量,单位:单")
private Integer orderCount;
@ApiModelProperty("车辆利用率,单位:%")
private Double vehicleUtilizationRate;
@ApiModelProperty("百公里油耗,单位:升")
private Integer fuelConsumptionPerHundredKm;
@ApiModelProperty("运输收入趋势,单位:万元(近半年,按月正序)")
private List<Integer> incomeTrend;
}
@@ -0,0 +1,24 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("客户贡献排名(前5")
public class CustomerContributionRankVO {
@ApiModelProperty("客户名称")
private List<String> customerName;
@ApiModelProperty("客户金额,单位:万元")
private List<Integer> customerAmount;
}
@@ -0,0 +1,78 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("仓储运输指标")
public class WarehouseTransportSituationVO {
@ApiModelProperty("仓配衔接准时率,单位:%")
private Double warehouseDistributionOnTimeRate;
@ApiModelProperty("本年度订单,单位:单")
private Long currentYearOrders;
@ApiModelProperty("本季度订单,单位:单")
private Integer currentQuarterOrders;
@ApiModelProperty("本月度订单,单位:单")
private Integer currentMonthOrders;
@ApiModelProperty("仓库订单趋势,单位:单(近半年,按月正序)")
private List<Integer> warehouseOrderTrend;
@ApiModelProperty("吞吐量统计,单位:吨(近半年,按月正序)")
private List<Integer> throughput;
@ApiModelProperty("本月周转率,单位:次")
private Integer currentMonthTurnoverRate;
@ApiModelProperty("本年周转率,单位:次")
private Integer currentYearTurnoverRate;
@ApiModelProperty("库存周转率趋势,单位:次(近半年,按月正序)")
private List<Integer> inventoryTurnoverTrend;
@ApiModelProperty("总收入,单位:万元")
private Integer totalTransportIncome;
@ApiModelProperty("订单数量,单位:单")
private Integer orderCount;
@ApiModelProperty("运输车次,单位:次")
private Integer transportTrips;
@ApiModelProperty("运输货量,单位:万吨")
private Integer annualTransportVolume;
@ApiModelProperty("运输订单总数,单位:单")
private Integer transportOrderTotal;
@ApiModelProperty("跨境订单,单位:单")
private Integer crossBorderTransportOrder;
@ApiModelProperty("国内订单,单位:单")
private Integer domesticTransportOrder;
@ApiModelProperty("运输车次趋势(近半年,按月正序)")
private List<Integer> transportTripsTrend;
@ApiModelProperty("出车利用率,单位:车次(近半年,按月正序)")
private List<Integer> vehicleUtilizationRate;
@ApiModelProperty("仓配衔接准时率(近半年,按月正序),单位:%")
private List<Integer> warehouseDockSyncRate;
@ApiModelProperty("客户贡献排名")
private CustomerContributionRankVO customerContributionRank;
}
@@ -0,0 +1,25 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-平均作业时长趋势项")
public class AvgOperationDurationTrendItemVO {
@ApiModelProperty("月份")
private String month;
@ApiModelProperty("园区作业时长")
private Double yardDuration;
@ApiModelProperty("月台作业时长")
private Double platformDuration;
}
@@ -0,0 +1,34 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-效率统计(本日)")
public class EfficiencyStatisticsVO {
@ApiModelProperty("入园超时率,单位:%")
private Integer entryOvertimeRate;
@ApiModelProperty("超时数量,单位:个")
private Integer overtimeCount;
@ApiModelProperty("月台作业准时率,单位:%")
private Integer platformOnTimeRate;
@ApiModelProperty("月台作业平均时长,单位:小时")
private Double avgPlatformDuration;
@ApiModelProperty("园区作业准时率,单位:%")
private Integer yardOnTimeRate;
@ApiModelProperty("园区作业平均时长,单位:小时")
private Double avgYardDuration;
}
@@ -0,0 +1,34 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-本月任务统计")
public class MonthlyTaskStatisticsVO {
@ApiModelProperty("任务量,单位:个")
private Integer taskTotal;
@ApiModelProperty("任务量同比,单位:%")
private Integer taskTotalYoY;
@ApiModelProperty("任务平均作业时长,单位:小时")
private Double avgTaskDuration;
@ApiModelProperty("任务平均作业时长同比,单位:%")
private Integer avgDurationYoY;
@ApiModelProperty("任务完成率,单位:%")
private Integer taskCompletionRate;
@ApiModelProperty("任务完成率同比,单位:%")
private Integer completionRateYoY;
}
@@ -0,0 +1,22 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-告警分布项")
public class PlatformAlarmDistItemVO {
@ApiModelProperty("告警类型")
private String type;
@ApiModelProperty("告警数量")
private Integer count;
}
@@ -0,0 +1,25 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-月台告警统计(本日)")
public class PlatformAlarmStatisticsVO {
@ApiModelProperty("今日告警总数,单位:个")
private Integer todayAlarmTotal;
@ApiModelProperty("今日已处理告警数,单位:个")
private Integer handled;
@ApiModelProperty("今日未处理告警数,单位:个")
private Integer unhandled;
}
@@ -0,0 +1,22 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-告警趋势项")
public class PlatformAlarmTrendItemVO {
@ApiModelProperty("日期")
private String date;
@ApiModelProperty("告警数量")
private Integer alarmCount;
}
@@ -0,0 +1,28 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-月台实时概览")
public class PlatformOverviewVO {
@ApiModelProperty("月台数量,单位:个")
private Integer totalPlatforms;
@ApiModelProperty("当前占用率,单位:%")
private Integer currentOccupancyRate;
@ApiModelProperty("当前作业中,单位:个")
private Integer operatingPlatforms;
@ApiModelProperty("今日作业任务,单位:个")
private Integer todayTasks;
}
@@ -0,0 +1,51 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测指标")
public class PlatformSurveillanceVO {
@ApiModelProperty("作业车辆状态列表")
private List<PlatformVehicleItemVO> vehicles;
@ApiModelProperty("效率统计(本日)")
private EfficiencyStatisticsVO efficiencyStatistics;
@ApiModelProperty("月台实时概览")
private PlatformOverviewVO platformOverview;
@ApiModelProperty("作业车辆状态汇总")
private VehicleStatusVO vehicleStatus;
@ApiModelProperty("平均作业时长趋势")
private List<AvgOperationDurationTrendItemVO> avgOperationDurationTrend;
@ApiModelProperty("本月任务统计")
private MonthlyTaskStatisticsVO monthlyTaskStatistics;
@ApiModelProperty("任务负荷统计(时段)")
private List<TaskLoadItemVO> taskLoadStatistics;
@ApiModelProperty("月台告警趋势")
private List<PlatformAlarmTrendItemVO> platformAlarmTrend;
@ApiModelProperty("任务类型统计")
private TaskTypeStatisticsVO taskTypeStatistics;
@ApiModelProperty("月台告警统计(本日)")
private PlatformAlarmStatisticsVO platformAlarmStatistics;
@ApiModelProperty("月台告警分布")
private List<PlatformAlarmDistItemVO> platformAlarmDistribution;
}
@@ -0,0 +1,28 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-作业车辆")
public class PlatformVehicleItemVO {
@ApiModelProperty("车牌号码")
private String plateNumber;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty("作业月台")
private String platformId;
@ApiModelProperty("月台作业时长,单位:分钟")
private Integer platformDuration;
}
@@ -0,0 +1,22 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-任务负荷时段项")
public class TaskLoadItemVO {
@ApiModelProperty("时段")
private String time;
@ApiModelProperty("任务数量")
private Integer taskCount;
}
@@ -0,0 +1,22 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-任务类型项")
public class TaskTypeCountItemVO {
@ApiModelProperty("任务类型")
private String type;
@ApiModelProperty("任务数量")
private Integer count;
}
@@ -0,0 +1,24 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-任务类型统计")
public class TaskTypeStatisticsVO {
@ApiModelProperty("本月任务总量,单位:个")
private Integer totalTasks;
@ApiModelProperty("各类型任务")
private List<TaskTypeCountItemVO> taskTypes;
}
@@ -0,0 +1,28 @@
package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("月台监测-作业车辆状态汇总")
public class VehicleStatusVO {
@ApiModelProperty("今日预约车辆,单位:辆")
private Integer todayReservedVehicles;
@ApiModelProperty("当前未签到,单位:辆")
private Integer notCheckedIn;
@ApiModelProperty("当前作业中,单位:辆")
private Integer operatingVehicles;
@ApiModelProperty("作业完成,单位:辆")
private Integer completedVehicles;
}
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mhd.bi.domain.biComprehensive.repository.mapper.BiComprehensiveReportMapper">
<select id="selectLatestPayloadJson" resultType="java.lang.String">
select PAYLOAD_JSON
from BI_COMPREHENSIVE_SNAPSHOT
order by UPDATE_TIME desc, ID desc
limit 1
</select>
</mapper>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mhd.bi.domain.biPlatformSurveillance.repository.mapper.BiPlatformSurveillanceReportMapper">
<select id="selectLatestPayloadJson" resultType="java.lang.String">
select PAYLOAD_JSON
from BI_PLATFORM_SURVEILLANCE_SNAPSHOT
order by UPDATE_TIME desc, ID desc
limit 1
</select>
</mapper>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mhd.bi.domain.biWarehouseTransport.repository.mapper.BiWarehouseTransportReportMapper">
<select id="selectLatestPayloadJson" resultType="java.lang.String">
select PAYLOAD_JSON
from BI_WAREHOUSE_TRANSPORT_SNAPSHOT
order by UPDATE_TIME desc, ID desc
limit 1
</select>
</mapper>