BI运输运营专区接口查询
This commit is contained in:
+43
-3
@@ -6,6 +6,7 @@ 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.WarehouseTransportSituationVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.*;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.*;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -161,9 +162,48 @@ public final class BiReportSnapshotMapperSupport {
|
|||||||
.utilizationRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
|
.utilizationRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
|
||||||
.rentalRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
|
.rentalRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
|
||||||
.build())
|
.build())
|
||||||
.mapPopup(WhMapPopupVO.builder()
|
.map(WhWarehouseMapVO.builder()
|
||||||
.warehouseName("").totalArea("").totalSku(0).todayOrders(0)
|
.legend("")
|
||||||
.utilizationRate("").rentalRate("").build())
|
.nodes(Collections.emptyList())
|
||||||
|
.build())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TransportOperationZoneVO emptyTransportOperationZone() {
|
||||||
|
TrCapacityCountVO emptyCount = TrCapacityCountVO.builder()
|
||||||
|
.total(0).todayNew(0).yesterdayNew(0).build();
|
||||||
|
return TransportOperationZoneVO.builder()
|
||||||
|
.updateTime("")
|
||||||
|
.dashboardTitle("")
|
||||||
|
.activeTab("")
|
||||||
|
.orderStatistics(TrOrderStatisticsVO.builder().title("").total(0L).trend("").build())
|
||||||
|
.transportStats(TrTransportStatsVO.builder()
|
||||||
|
.title("").tripCount(0).volume(0d).volumeUnit("").build())
|
||||||
|
.orderTypeChart(TrOrderTypeChartVO.builder()
|
||||||
|
.title("").type("").data(Collections.emptyList()).build())
|
||||||
|
.tripCountTrend(TrTypedChartVO.builder()
|
||||||
|
.title("").type("").unit(null).data(Collections.emptyList()).build())
|
||||||
|
.orderTrend(TrTypedChartVO.builder()
|
||||||
|
.title("").type("").unit("").data(Collections.emptyList()).build())
|
||||||
|
.volumeTrend(TrTypedChartVO.builder()
|
||||||
|
.title("").type("").unit("").data(Collections.emptyList()).build())
|
||||||
|
.map(TrVehicleMapVO.builder()
|
||||||
|
.title("")
|
||||||
|
.legend(TrMapLegendVO.builder().idle(0).working(0).build())
|
||||||
|
.nodes(Collections.emptyList())
|
||||||
|
.build())
|
||||||
|
.enterpriseOperation(TrEnterpriseOperationVO.builder()
|
||||||
|
.title("").columns(Collections.emptyList()).list(Collections.emptyList()).build())
|
||||||
|
.capacityStatus(TrCapacityStatusVO.builder()
|
||||||
|
.title("").staff(emptyCount).vehicles(emptyCount).build())
|
||||||
|
.cargoCategory(TrCargoCategoryVO.builder()
|
||||||
|
.title("").totalOrders("").data(Collections.emptyList()).build())
|
||||||
|
.onTimeRate(TrTypedChartVO.builder()
|
||||||
|
.title("").type("").unit("").data(Collections.emptyList()).build())
|
||||||
|
.vehicleUtilization(TrBarChartVO.builder()
|
||||||
|
.title("").unit("").data(Collections.emptyList()).build())
|
||||||
|
.transportSummary(TrTransportSummaryVO.builder()
|
||||||
|
.title("").safeMileage("").avgDeliveryTime("").build())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -16,4 +16,6 @@ public interface BiSnapshotWriteMapper {
|
|||||||
int insertOverallOperationSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
int insertOverallOperationSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||||
|
|
||||||
int insertWarehouseOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
int insertWarehouseOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||||
|
|
||||||
|
int insertTransportOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 定时将业务快照写入 BI_COMPREHENSIVE_SNAPSHOT / BI_WAREHOUSE_TRANSPORT_SNAPSHOT / BI_PLATFORM_SURVEILLANCE_SNAPSHOT / BI_OVERALL_OPERATION_SNAPSHOT / BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT。
|
* 定时将业务快照写入 BI_COMPREHENSIVE_SNAPSHOT / BI_WAREHOUSE_TRANSPORT_SNAPSHOT / BI_PLATFORM_SURVEILLANCE_SNAPSHOT / BI_OVERALL_OPERATION_SNAPSHOT / BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT / BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT。
|
||||||
* <p>默认关闭,需在配置中设置 {@code mhd.bi.snapshot-sync.enabled=true}。</p>
|
* <p>默认关闭,需在配置中设置 {@code mhd.bi.snapshot-sync.enabled=true}。</p>
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
+25
-1
@@ -3,11 +3,13 @@ package com.mhd.bi.domain.biSnapshotSync.service;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper;
|
import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper;
|
||||||
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
|
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
|
||||||
|
import com.mhd.bi.domain.biTransportOperationZone.support.TransportOperationZoneDemoData;
|
||||||
import com.mhd.bi.domain.biWarehouseOperationZone.support.WarehouseOperationZoneDemoData;
|
import com.mhd.bi.domain.biWarehouseOperationZone.support.WarehouseOperationZoneDemoData;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO;
|
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.WarehouseTransportSituationVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -16,7 +18,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BI 快照表定时同步(综合态势 / 仓储运输 / 月台监测 / 总体运营态势 / 仓储运营专区)。
|
* BI 快照表定时同步(综合态势 / 仓储运输 / 月台监测 / 总体运营态势 / 仓储运营专区 / 运输运营专区)。
|
||||||
* <p><b>当前(临时)</b>:{@code build*} 使用 {@link BiSnapshotWeeklyRandomDataBuilder},每次执行使用新的 {@link Random},
|
* <p><b>当前(临时)</b>:{@code build*} 使用 {@link BiSnapshotWeeklyRandomDataBuilder},每次执行使用新的 {@link Random},
|
||||||
* 故<b>同一天多次手动触发、以及每次定时任务执行</b>,生成的模拟数据均<b>不相同</b>(仍在基准 ±20% 内)。</p>
|
* 故<b>同一天多次手动触发、以及每次定时任务执行</b>,生成的模拟数据均<b>不相同</b>(仍在基准 ±20% 内)。</p>
|
||||||
* <p><b>后续改造</b>:在各 {@code build*} 中改为查库/Feign 聚合真实业务并组装 VO。</p>
|
* <p><b>后续改造</b>:在各 {@code build*} 中改为查库/Feign 聚合真实业务并组装 VO。</p>
|
||||||
@@ -40,6 +42,7 @@ public class BiReportSnapshotSyncService {
|
|||||||
syncPlatformSurveillanceSnapshot();
|
syncPlatformSurveillanceSnapshot();
|
||||||
syncOverallOperationSnapshot();
|
syncOverallOperationSnapshot();
|
||||||
syncWarehouseOperationZoneSnapshot();
|
syncWarehouseOperationZoneSnapshot();
|
||||||
|
syncTransportOperationZoneSnapshot();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void syncComprehensiveSnapshot() {
|
public void syncComprehensiveSnapshot() {
|
||||||
@@ -142,4 +145,25 @@ public class BiReportSnapshotSyncService {
|
|||||||
protected WarehouseOperationZoneVO buildWarehouseOperationZoneSnapshot() {
|
protected WarehouseOperationZoneVO buildWarehouseOperationZoneSnapshot() {
|
||||||
return WarehouseOperationZoneDemoData.build();
|
return WarehouseOperationZoneDemoData.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void syncTransportOperationZoneSnapshot() {
|
||||||
|
try {
|
||||||
|
TransportOperationZoneVO vo = buildTransportOperationZoneSnapshot();
|
||||||
|
String json = objectMapper.writeValueAsString(vo);
|
||||||
|
int rows = biSnapshotWriteMapper.insertTransportOperationZoneSnapshot(json, REMARK_SYNC);
|
||||||
|
if (rows < 1) {
|
||||||
|
log.warn("BI 运输运营专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT", rows);
|
||||||
|
}
|
||||||
|
log.info("BI 运输运营专区快照已写入, affectedRows={}", rows);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("BI 运输运营专区快照同步失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO 业务落地:改为查询真实数据组装 VO。当前为 {@link TransportOperationZoneDemoData} 静态示例。
|
||||||
|
*/
|
||||||
|
protected TransportOperationZoneVO buildTransportOperationZoneSnapshot() {
|
||||||
|
return TransportOperationZoneDemoData.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
package com.mhd.bi.domain.biTransportOperationZone.repository.mapper;
|
||||||
|
|
||||||
|
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运输运营专区:取 NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析。
|
||||||
|
*/
|
||||||
|
public interface BiTransportOperationZoneReportMapper {
|
||||||
|
|
||||||
|
String selectLatestPayloadJson();
|
||||||
|
|
||||||
|
default TransportOperationZoneVO loadLatestTransportOperationZone() {
|
||||||
|
return BiReportSnapshotMapperSupport.parsePayload(
|
||||||
|
selectLatestPayloadJson(),
|
||||||
|
TransportOperationZoneVO.class,
|
||||||
|
BiReportSnapshotMapperSupport::emptyTransportOperationZone,
|
||||||
|
"运输运营专区");
|
||||||
|
}
|
||||||
|
}
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
package com.mhd.bi.domain.biTransportOperationZone.service;
|
||||||
|
|
||||||
|
import com.mhd.bi.domain.biTransportOperationZone.repository.mapper.BiTransportOperationZoneReportMapper;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 南光物流业务经营分析 · 运输运营专区
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class BiTransportOperationZoneReportService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BiTransportOperationZoneReportMapper biTransportOperationZoneReportMapper;
|
||||||
|
|
||||||
|
public TransportOperationZoneVO loadLatestTransportOperationZone() {
|
||||||
|
return biTransportOperationZoneReportMapper.loadLatestTransportOperationZone();
|
||||||
|
}
|
||||||
|
}
|
||||||
+164
@@ -0,0 +1,164 @@
|
|||||||
|
package com.mhd.bi.domain.biTransportOperationZone.support;
|
||||||
|
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运输运营专区快照演示数据(对齐大屏示例 JSON;后续可改为真实聚合)。
|
||||||
|
*/
|
||||||
|
public final class TransportOperationZoneDemoData {
|
||||||
|
|
||||||
|
private static final DateTimeFormatter UPDATE_TIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
private TransportOperationZoneDemoData() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TransportOperationZoneVO build() {
|
||||||
|
List<TrOrderTypeMonthItemVO> orderTypeData = Arrays.asList(
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("1月").crossBorder(30).domestic(25).build(),
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("2月").crossBorder(40).domestic(35).build(),
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("3月").crossBorder(20).domestic(30).build(),
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("4月").crossBorder(35).domestic(40).build(),
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("5月").crossBorder(50).domestic(45).build(),
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("6月").crossBorder(60).domestic(55).build(),
|
||||||
|
TrOrderTypeMonthItemVO.builder().month("7月").crossBorder(70).domestic(65).build()
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrMonthValuePointVO> tripTrend = Arrays.asList(
|
||||||
|
point("1月", 120), point("2月", 150), point("3月", 220),
|
||||||
|
point("4月", 100), point("5月", 140), point("6月", 180)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrMonthValuePointVO> orderTrend = Arrays.asList(
|
||||||
|
point("1月", 100), point("2月", 140), point("3月", 230),
|
||||||
|
point("4月", 100), point("5月", 140), point("6月", 190)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrMonthValuePointVO> volumeTrend = Arrays.asList(
|
||||||
|
point("1月", 95), point("2月", 90), point("3月", 80),
|
||||||
|
point("4月", 65), point("5月", 92), point("6月", 88)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrMonthValuePointVO> onTimeRate = Arrays.asList(
|
||||||
|
point("1月", 98), point("2月", 96), point("3月", 85),
|
||||||
|
point("4月", 70), point("5月", 92), point("6月", 90)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrMonthValuePointVO> vehicleUtil = Arrays.asList(
|
||||||
|
point("1月", 600), point("2月", 460), point("3月", 390),
|
||||||
|
point("4月", 470), point("5月", 450), point("6月", 620)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrEnterpriseRowVO> enterpriseList = Arrays.asList(
|
||||||
|
row("NO.1", "供应商A", "268.25万", "2400单", 95),
|
||||||
|
row("NO.2", "供应商B", "258.15万", "1800单", 98),
|
||||||
|
row("NO.3", "供应商C", "242.32万", "1200单", 13),
|
||||||
|
row("NO.4", "供应商D", "231.54万", "800单", 12),
|
||||||
|
row("NO.5", "供应商E", "220.90万", "567单", 15)
|
||||||
|
);
|
||||||
|
|
||||||
|
List<TrCargoCategoryItemVO> cargoItems = Arrays.asList(
|
||||||
|
TrCargoCategoryItemVO.builder().name("危化").value(25).color("green").build(),
|
||||||
|
TrCargoCategoryItemVO.builder().name("普货").value(25).color("blue").build(),
|
||||||
|
TrCargoCategoryItemVO.builder().name("冻品").value(50).color("orange").build()
|
||||||
|
);
|
||||||
|
|
||||||
|
TrMapNodeVO mapNode = TrMapNodeVO.builder()
|
||||||
|
.id(1L)
|
||||||
|
.name("通宇作业车辆")
|
||||||
|
.location(Arrays.asList(113.55, 22.25))
|
||||||
|
.status("working")
|
||||||
|
.detail(TrMapNodeDetailVO.builder()
|
||||||
|
.title("作业详情")
|
||||||
|
.licensePlate("粤A88888")
|
||||||
|
.businessUnit("通宇")
|
||||||
|
.loadingPlace("珠海")
|
||||||
|
.destination("澳门")
|
||||||
|
.currentLocation("珠海市")
|
||||||
|
.updateTime("2026年4月15日 17:52")
|
||||||
|
.build())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return TransportOperationZoneVO.builder()
|
||||||
|
.updateTime(LocalDateTime.now().format(UPDATE_TIME_FMT))
|
||||||
|
.dashboardTitle("南光物流业务经营分析")
|
||||||
|
.activeTab("运输运营专区")
|
||||||
|
.orderStatistics(TrOrderStatisticsVO.builder()
|
||||||
|
.title("订单统计")
|
||||||
|
.total(4361L)
|
||||||
|
.trend("+12.5%")
|
||||||
|
.build())
|
||||||
|
.transportStats(TrTransportStatsVO.builder()
|
||||||
|
.title("运输统计")
|
||||||
|
.tripCount(240)
|
||||||
|
.volume(2.6)
|
||||||
|
.volumeUnit("万吨")
|
||||||
|
.build())
|
||||||
|
.orderTypeChart(TrOrderTypeChartVO.builder()
|
||||||
|
.title("订单类型")
|
||||||
|
.type("area")
|
||||||
|
.data(orderTypeData)
|
||||||
|
.build())
|
||||||
|
.tripCountTrend(chart("车次趋势", "line", null, tripTrend))
|
||||||
|
.orderTrend(chart("订单趋势", "area", "单", orderTrend))
|
||||||
|
.volumeTrend(chart("货量趋势", "area", "%", volumeTrend))
|
||||||
|
.map(TrVehicleMapVO.builder()
|
||||||
|
.title("车辆实时监控")
|
||||||
|
.legend(TrMapLegendVO.builder().idle(80).working(200).build())
|
||||||
|
.nodes(Collections.singletonList(mapNode))
|
||||||
|
.build())
|
||||||
|
.enterpriseOperation(TrEnterpriseOperationVO.builder()
|
||||||
|
.title("企业运营")
|
||||||
|
.columns(Arrays.asList("序号", "企业名称", "货运量", "处理单量", "准时配送率"))
|
||||||
|
.list(enterpriseList)
|
||||||
|
.build())
|
||||||
|
.capacityStatus(TrCapacityStatusVO.builder()
|
||||||
|
.title("运力情况")
|
||||||
|
.staff(capacityCount(718, 0, 0))
|
||||||
|
.vehicles(capacityCount(507, 0, 0))
|
||||||
|
.build())
|
||||||
|
.cargoCategory(TrCargoCategoryVO.builder()
|
||||||
|
.title("货物品类")
|
||||||
|
.totalOrders("1000单")
|
||||||
|
.data(cargoItems)
|
||||||
|
.build())
|
||||||
|
.onTimeRate(chart("准时配送率", "line", "%", onTimeRate))
|
||||||
|
.vehicleUtilization(TrBarChartVO.builder()
|
||||||
|
.title("出车利用率")
|
||||||
|
.unit("车次/辆")
|
||||||
|
.data(vehicleUtil)
|
||||||
|
.build())
|
||||||
|
.transportSummary(TrTransportSummaryVO.builder()
|
||||||
|
.title("运输统计")
|
||||||
|
.safeMileage("240万公里")
|
||||||
|
.avgDeliveryTime("平均4小时送达")
|
||||||
|
.build())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TrMonthValuePointVO point(String month, int value) {
|
||||||
|
return TrMonthValuePointVO.builder().month(month).value(value).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TrTypedChartVO chart(String title, String type, String unit, List<TrMonthValuePointVO> data) {
|
||||||
|
return TrTypedChartVO.builder().title(title).type(type).unit(unit).data(data).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TrCapacityCountVO capacityCount(int total, int todayNew, int yesterdayNew) {
|
||||||
|
return TrCapacityCountVO.builder()
|
||||||
|
.total(total).todayNew(todayNew).yesterdayNew(yesterdayNew).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TrEnterpriseRowVO row(String rank, String name, String volume,
|
||||||
|
String processedOrders, int onTimeRate) {
|
||||||
|
return TrEnterpriseRowVO.builder()
|
||||||
|
.rank(rank).name(name).volume(volume)
|
||||||
|
.processedOrders(processedOrders).onTimeRate(onTimeRate)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
+32
-7
@@ -126,13 +126,38 @@ public final class WarehouseOperationZoneDemoData {
|
|||||||
.trend("up")
|
.trend("up")
|
||||||
.build())
|
.build())
|
||||||
.build())
|
.build())
|
||||||
.mapPopup(WhMapPopupVO.builder()
|
.map(WhWarehouseMapVO.builder()
|
||||||
.warehouseName("通宇保税仓")
|
.legend("仓库")
|
||||||
.totalArea("2000m2")
|
.nodes(Arrays.asList(
|
||||||
.totalSku(668)
|
mapNode(1L, "君华仓", 113.52, 22.30,
|
||||||
.todayOrders(237)
|
"君华保税仓", "12000m²", 520, 2400, "82%", "36.5%"),
|
||||||
.utilizationRate("85%")
|
mapNode(2L, "通宇仓", 113.55, 22.25,
|
||||||
.rentalRate("37.1%")
|
"通宇保税仓", "2000m²", 668, 237, "85%", "37.1%"),
|
||||||
|
mapNode(3L, "横琴仓", 113.54, 22.12,
|
||||||
|
"横琴保税仓", "3500m²", 445, 1200, "78%", "42.0%"),
|
||||||
|
mapNode(4L, "新南仓", 113.58, 22.20,
|
||||||
|
"新南保税仓", "2800m²", 390, 800, "80%", "35.8%"),
|
||||||
|
mapNode(5L, "谷丰仓", 113.48, 22.22,
|
||||||
|
"谷丰保税仓", "4500m²", 512, 567, "76%", "33.2%")
|
||||||
|
))
|
||||||
|
.build())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static WhMapNodeVO mapNode(long id, String name, double lng, double lat,
|
||||||
|
String warehouseName, String totalArea, int totalSku,
|
||||||
|
int todayOrders, String utilizationRate, String rentalRate) {
|
||||||
|
return WhMapNodeVO.builder()
|
||||||
|
.id(id)
|
||||||
|
.name(name)
|
||||||
|
.location(Arrays.asList(lng, lat))
|
||||||
|
.detail(WhMapPopupVO.builder()
|
||||||
|
.warehouseName(warehouseName)
|
||||||
|
.totalArea(totalArea)
|
||||||
|
.totalSku(totalSku)
|
||||||
|
.todayOrders(todayOrders)
|
||||||
|
.utilizationRate(utilizationRate)
|
||||||
|
.rentalRate(rentalRate)
|
||||||
.build())
|
.build())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ 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.biOverallOperation.service.BiOverallOperationReportService;
|
import com.mhd.bi.domain.biOverallOperation.service.BiOverallOperationReportService;
|
||||||
|
import com.mhd.bi.domain.biTransportOperationZone.service.BiTransportOperationZoneReportService;
|
||||||
import com.mhd.bi.domain.biWarehouseOperationZone.service.BiWarehouseOperationZoneReportService;
|
import com.mhd.bi.domain.biWarehouseOperationZone.service.BiWarehouseOperationZoneReportService;
|
||||||
import com.mhd.bi.domain.biWarehouseTransport.service.BiWarehouseTransportReportService;
|
import com.mhd.bi.domain.biWarehouseTransport.service.BiWarehouseTransportReportService;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.dto.BiApiResult;
|
import com.mhd.bi.interfaces.facadeApi.biReport.dto.BiApiResult;
|
||||||
@@ -11,6 +12,7 @@ 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.WarehouseTransportSituationVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
||||||
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO;
|
||||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
||||||
import com.mhd.common.core.web.controller.BaseController;
|
import com.mhd.common.core.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -48,11 +50,14 @@ public class BiReportApi extends BaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BiWarehouseOperationZoneReportService biWarehouseOperationZoneReportService;
|
private BiWarehouseOperationZoneReportService biWarehouseOperationZoneReportService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BiTransportOperationZoneReportService biTransportOperationZoneReportService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private BiReportSnapshotSyncService biReportSnapshotSyncService;
|
private BiReportSnapshotSyncService biReportSnapshotSyncService;
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "手动触发快照同步", notes = "立即写入各 BI 快照表(综合、仓储运输、月台监测、总体运营、仓储运营专区);须带 X-BI-Access-Token")
|
@ApiOperation(value = "手动触发快照同步", notes = "立即写入各 BI 快照表(综合、仓储运输、月台监测、总体运营、仓储运营专区、运输运营专区);须带 X-BI-Access-Token")
|
||||||
@PostMapping("/snapshotSync/run")
|
@PostMapping("/snapshotSync/run")
|
||||||
public BiApiResult<Void> runSnapshotSyncOnce() {
|
public BiApiResult<Void> runSnapshotSyncOnce() {
|
||||||
biReportSnapshotSyncService.syncAllSnapshots();
|
biReportSnapshotSyncService.syncAllSnapshots();
|
||||||
@@ -88,7 +93,7 @@ public class BiReportApi extends BaseController {
|
|||||||
PlatformSurveillanceVO data = biPlatformSurveillanceReportService.loadLatestPlatformSurveillance();
|
PlatformSurveillanceVO data = biPlatformSurveillanceReportService.loadLatestPlatformSurveillance();
|
||||||
return BiApiResult.ok(data);
|
return BiApiResult.ok(data);
|
||||||
}
|
}
|
||||||
|
//园区物流大屏接口----------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* 总体运营态势
|
* 总体运营态势
|
||||||
*/
|
*/
|
||||||
@@ -108,4 +113,14 @@ public class BiReportApi extends BaseController {
|
|||||||
WarehouseOperationZoneVO data = biWarehouseOperationZoneReportService.loadLatestWarehouseOperationZone();
|
WarehouseOperationZoneVO data = biWarehouseOperationZoneReportService.loadLatestWarehouseOperationZone();
|
||||||
return BiApiResult.ok(data);
|
return BiApiResult.ok(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运输运营专区(大屏「运输运营专区」Tab)
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "运输运营专区查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条整包 JSON 解析结果")
|
||||||
|
@GetMapping("/transportOperationZone")
|
||||||
|
public BiApiResult<TransportOperationZoneVO> transportOperationZone() {
|
||||||
|
TransportOperationZoneVO data = biTransportOperationZoneReportService.loadLatestTransportOperationZone();
|
||||||
|
return BiApiResult.ok(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class BiApiResult<T> {
|
|||||||
|
|
||||||
private int code = 200;
|
private int code = 200;
|
||||||
|
|
||||||
private String msg = "操作成功";
|
private String message = "操作成功";
|
||||||
|
|
||||||
private T data;
|
private T data;
|
||||||
|
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-柱状图")
|
||||||
|
public class TrBarChartVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("单位")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("数据")
|
||||||
|
private List<TrMonthValuePointVO> data;
|
||||||
|
}
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-运力计数")
|
||||||
|
public class TrCapacityCountVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("总数")
|
||||||
|
private Integer total;
|
||||||
|
|
||||||
|
@JsonProperty("today_new")
|
||||||
|
@ApiModelProperty("今日新增")
|
||||||
|
private Integer todayNew;
|
||||||
|
|
||||||
|
@JsonProperty("yesterday_new")
|
||||||
|
@ApiModelProperty("昨日新增")
|
||||||
|
private Integer yesterdayNew;
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-运力情况")
|
||||||
|
public class TrCapacityStatusVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("承运人")
|
||||||
|
private TrCapacityCountVO staff;
|
||||||
|
|
||||||
|
@ApiModelProperty("车辆")
|
||||||
|
private TrCapacityCountVO vehicles;
|
||||||
|
}
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-货物品类项")
|
||||||
|
public class TrCargoCategoryItemVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("品类名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("占比")
|
||||||
|
private Integer value;
|
||||||
|
|
||||||
|
@ApiModelProperty("颜色标识")
|
||||||
|
private String color;
|
||||||
|
}
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-货物品类")
|
||||||
|
public class TrCargoCategoryVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@JsonProperty("total_orders")
|
||||||
|
@ApiModelProperty("订单总量展示")
|
||||||
|
private String totalOrders;
|
||||||
|
|
||||||
|
@ApiModelProperty("品类数据")
|
||||||
|
private List<TrCargoCategoryItemVO> data;
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-企业运营")
|
||||||
|
public class TrEnterpriseOperationVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("表头")
|
||||||
|
private List<String> columns;
|
||||||
|
|
||||||
|
@ApiModelProperty("列表")
|
||||||
|
private List<TrEnterpriseRowVO> list;
|
||||||
|
}
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-企业运营行")
|
||||||
|
public class TrEnterpriseRowVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("排名")
|
||||||
|
private String rank;
|
||||||
|
|
||||||
|
@ApiModelProperty("企业名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("货运量")
|
||||||
|
private String volume;
|
||||||
|
|
||||||
|
@JsonProperty("processed_orders")
|
||||||
|
@ApiModelProperty("处理单量")
|
||||||
|
private String processedOrders;
|
||||||
|
|
||||||
|
@JsonProperty("on_time_rate")
|
||||||
|
@ApiModelProperty("准时配送率")
|
||||||
|
private Integer onTimeRate;
|
||||||
|
}
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-地图图例")
|
||||||
|
public class TrMapLegendVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("空闲车辆数")
|
||||||
|
private Integer idle;
|
||||||
|
|
||||||
|
@ApiModelProperty("作业车辆数")
|
||||||
|
private Integer working;
|
||||||
|
}
|
||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-地图节点详情")
|
||||||
|
public class TrMapNodeDetailVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@JsonProperty("license_plate")
|
||||||
|
@ApiModelProperty("车牌")
|
||||||
|
private String licensePlate;
|
||||||
|
|
||||||
|
@JsonProperty("business_unit")
|
||||||
|
@ApiModelProperty("经营单位")
|
||||||
|
private String businessUnit;
|
||||||
|
|
||||||
|
@JsonProperty("loading_place")
|
||||||
|
@ApiModelProperty("装货地")
|
||||||
|
private String loadingPlace;
|
||||||
|
|
||||||
|
@ApiModelProperty("目的地")
|
||||||
|
private String destination;
|
||||||
|
|
||||||
|
@JsonProperty("current_location")
|
||||||
|
@ApiModelProperty("当前位置")
|
||||||
|
private String currentLocation;
|
||||||
|
|
||||||
|
@JsonProperty("update_time")
|
||||||
|
@ApiModelProperty("更新时间")
|
||||||
|
private String updateTime;
|
||||||
|
}
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-地图节点")
|
||||||
|
public class TrMapNodeVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("节点ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("坐标 [经度, 纬度]")
|
||||||
|
private List<Double> location;
|
||||||
|
|
||||||
|
@ApiModelProperty("状态:idle / working")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@ApiModelProperty("详情")
|
||||||
|
private TrMapNodeDetailVO detail;
|
||||||
|
}
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-月度数值点")
|
||||||
|
public class TrMonthValuePointVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("月份")
|
||||||
|
private String month;
|
||||||
|
|
||||||
|
@ApiModelProperty("数值")
|
||||||
|
private Integer value;
|
||||||
|
}
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-订单统计")
|
||||||
|
public class TrOrderStatisticsVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("订单总数")
|
||||||
|
private Long total;
|
||||||
|
|
||||||
|
@ApiModelProperty("环比增长率")
|
||||||
|
private String trend;
|
||||||
|
}
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-订单类型图")
|
||||||
|
public class TrOrderTypeChartVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("图表类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty("数据")
|
||||||
|
private List<TrOrderTypeMonthItemVO> data;
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-订单类型月度项")
|
||||||
|
public class TrOrderTypeMonthItemVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("月份")
|
||||||
|
private String month;
|
||||||
|
|
||||||
|
@JsonProperty("cross_border")
|
||||||
|
@ApiModelProperty("跨境")
|
||||||
|
private Integer crossBorder;
|
||||||
|
|
||||||
|
@ApiModelProperty("国内")
|
||||||
|
private Integer domestic;
|
||||||
|
}
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-运输统计")
|
||||||
|
public class TrTransportStatsVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@JsonProperty("trip_count")
|
||||||
|
@ApiModelProperty("运输车次")
|
||||||
|
private Integer tripCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("运输货量")
|
||||||
|
private Double volume;
|
||||||
|
|
||||||
|
@JsonProperty("volume_unit")
|
||||||
|
@ApiModelProperty("货量单位")
|
||||||
|
private String volumeUnit;
|
||||||
|
}
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
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("BI-运输运营专区-运输统计总结")
|
||||||
|
public class TrTransportSummaryVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@JsonProperty("safe_mileage")
|
||||||
|
@ApiModelProperty("安全里程")
|
||||||
|
private String safeMileage;
|
||||||
|
|
||||||
|
@JsonProperty("avg_delivery_time")
|
||||||
|
@ApiModelProperty("平均送达时间")
|
||||||
|
private String avgDeliveryTime;
|
||||||
|
}
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-带类型图表")
|
||||||
|
public class TrTypedChartVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("图表类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty("单位")
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
@ApiModelProperty("数据")
|
||||||
|
private List<TrMonthValuePointVO> data;
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
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("BI-运输运营专区-车辆实时监控地图")
|
||||||
|
public class TrVehicleMapVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("图例")
|
||||||
|
private TrMapLegendVO legend;
|
||||||
|
|
||||||
|
@ApiModelProperty("节点")
|
||||||
|
private List<TrMapNodeVO> nodes;
|
||||||
|
}
|
||||||
+80
@@ -0,0 +1,80 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 南光物流业务经营分析 · 运输运营专区(整包 data 与快照 PAYLOAD_JSON 一致)
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@ApiModel("BI-运输运营专区")
|
||||||
|
public class TransportOperationZoneVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("数据更新时间")
|
||||||
|
private String updateTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("大屏标题")
|
||||||
|
private String dashboardTitle;
|
||||||
|
|
||||||
|
@ApiModelProperty("当前 Tab")
|
||||||
|
private String activeTab;
|
||||||
|
|
||||||
|
@JsonProperty("order_statistics")
|
||||||
|
@ApiModelProperty("订单统计")
|
||||||
|
private TrOrderStatisticsVO orderStatistics;
|
||||||
|
|
||||||
|
@JsonProperty("transport_stats")
|
||||||
|
@ApiModelProperty("运输统计")
|
||||||
|
private TrTransportStatsVO transportStats;
|
||||||
|
|
||||||
|
@JsonProperty("order_type_chart")
|
||||||
|
@ApiModelProperty("订单类型面积图")
|
||||||
|
private TrOrderTypeChartVO orderTypeChart;
|
||||||
|
|
||||||
|
@JsonProperty("trip_count_trend")
|
||||||
|
@ApiModelProperty("车次趋势折线图")
|
||||||
|
private TrTypedChartVO tripCountTrend;
|
||||||
|
|
||||||
|
@JsonProperty("order_trend")
|
||||||
|
@ApiModelProperty("订单趋势面积图")
|
||||||
|
private TrTypedChartVO orderTrend;
|
||||||
|
|
||||||
|
@JsonProperty("volume_trend")
|
||||||
|
@ApiModelProperty("货量趋势面积图")
|
||||||
|
private TrTypedChartVO volumeTrend;
|
||||||
|
|
||||||
|
@ApiModelProperty("车辆实时监控地图")
|
||||||
|
private TrVehicleMapVO map;
|
||||||
|
|
||||||
|
@JsonProperty("enterprise_operation")
|
||||||
|
@ApiModelProperty("企业运营表格")
|
||||||
|
private TrEnterpriseOperationVO enterpriseOperation;
|
||||||
|
|
||||||
|
@JsonProperty("capacity_status")
|
||||||
|
@ApiModelProperty("运力情况")
|
||||||
|
private TrCapacityStatusVO capacityStatus;
|
||||||
|
|
||||||
|
@JsonProperty("cargo_category")
|
||||||
|
@ApiModelProperty("货物品类环形图")
|
||||||
|
private TrCargoCategoryVO cargoCategory;
|
||||||
|
|
||||||
|
@JsonProperty("on_time_rate")
|
||||||
|
@ApiModelProperty("准时配送率折线图")
|
||||||
|
private TrTypedChartVO onTimeRate;
|
||||||
|
|
||||||
|
@JsonProperty("vehicle_utilization")
|
||||||
|
@ApiModelProperty("出车利用率柱状图")
|
||||||
|
private TrBarChartVO vehicleUtilization;
|
||||||
|
|
||||||
|
@JsonProperty("transport_summary")
|
||||||
|
@ApiModelProperty("运输统计总结")
|
||||||
|
private TrTransportSummaryVO transportSummary;
|
||||||
|
}
|
||||||
+2
-3
@@ -68,7 +68,6 @@ public class WarehouseOperationZoneVO {
|
|||||||
@ApiModelProperty("实时分析")
|
@ApiModelProperty("实时分析")
|
||||||
private WhRealTimeAnalysisVO realTimeAnalysis;
|
private WhRealTimeAnalysisVO realTimeAnalysis;
|
||||||
|
|
||||||
@JsonProperty("map_popup")
|
@ApiModelProperty("中间地图仓库点位(nodes 为标注数组)")
|
||||||
@ApiModelProperty("地图弹窗示例数据")
|
private WhWarehouseMapVO map;
|
||||||
private WhMapPopupVO mapPopup;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||||
|
|
||||||
|
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("BI-仓储运营专区-地图点位")
|
||||||
|
public class WhMapNodeVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("点位ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("地图标注名称(短名)")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("坐标 [经度, 纬度]")
|
||||||
|
private List<Double> location;
|
||||||
|
|
||||||
|
@ApiModelProperty("弹窗详情")
|
||||||
|
private WhMapPopupVO detail;
|
||||||
|
}
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||||
|
|
||||||
|
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("BI-仓储运营专区-地图")
|
||||||
|
public class WhWarehouseMapVO {
|
||||||
|
|
||||||
|
@ApiModelProperty("图例说明")
|
||||||
|
private String legend;
|
||||||
|
|
||||||
|
@ApiModelProperty("仓库点位列表")
|
||||||
|
private List<WhMapNodeVO> nodes;
|
||||||
|
}
|
||||||
@@ -27,4 +27,9 @@
|
|||||||
insert into NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK)
|
insert into NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK)
|
||||||
values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark})
|
values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="insertTransportOperationZoneSnapshot">
|
||||||
|
insert into NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK)
|
||||||
|
values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark})
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<?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.biTransportOperationZone.repository.mapper.BiTransportOperationZoneReportMapper">
|
||||||
|
|
||||||
|
<select id="selectLatestPayloadJson" resultType="java.lang.String">
|
||||||
|
select PAYLOAD_JSON
|
||||||
|
from NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT
|
||||||
|
where DEL_FLAG = 1
|
||||||
|
order by CREATE_TIME desc nulls last, ID desc
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user