From 1f08d86746348903c8820c125224f05cadcf8c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Tue, 19 May 2026 17:02:51 +0800 Subject: [PATCH] =?UTF-8?q?BI=E5=A4=A7=E5=B1=8F=E6=80=BB=E4=BD=93=E8=BF=90?= =?UTF-8?q?=E8=90=A5=E6=80=81=E5=8A=BF=E6=9F=A5=E8=AF=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BiOverallOperationReportMapper.java | 7 +++-- .../BiReportSnapshotMapperSupport.java | 5 +-- .../BiSnapshotWeeklyRandomDataBuilder.java | 21 +++---------- .../OverallTransportEnterpriseRankVO.java | 31 ------------------- .../overall/OverallTransportOperationVO.java | 9 ++++-- .../OverallWarehouseCapabilityRankVO.java | 10 +++--- .../overall/OverallWarehouseOperationVO.java | 4 ++- 7 files changed, 28 insertions(+), 59 deletions(-) delete mode 100644 mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportEnterpriseRankVO.java diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java index 219e77540..0487d3e99 100644 --- a/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java @@ -1,5 +1,6 @@ package com.mhd.bi.domain.biOverallOperation.repository.mapper; +import com.mhd.bi.domain.biOverallOperation.support.OverallOperationPayloadNormalizer; import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO; @@ -11,10 +12,12 @@ public interface BiOverallOperationReportMapper { String selectLatestPayloadJson(); default OverallOperationSituationVO loadLatestOverallOperation() { - return BiReportSnapshotMapperSupport.parsePayload( - selectLatestPayloadJson(), + String json = OverallOperationPayloadNormalizer.normalizeJson(selectLatestPayloadJson()); + OverallOperationSituationVO vo = BiReportSnapshotMapperSupport.parsePayload( + json, OverallOperationSituationVO.class, BiReportSnapshotMapperSupport::emptyOverallOperationSituation, "总体运营态势"); + return OverallOperationPayloadNormalizer.ensureDefaults(vo); } } diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java index 003f4f802..3bef7d528 100644 --- a/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java @@ -5,6 +5,7 @@ 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.overall.*; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO; import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*; import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.*; import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*; @@ -117,7 +118,7 @@ public final class BiReportSnapshotMapperSupport { .customerCount(0L).coverageArea("") .annualThroughput(0).throughputUnit("").throughputGrowth(0d) .build()) - .capabilityRanking(Collections.emptyList()) + .capabilityRanking(BiWarehouseCapabilityRankingSupport.defaultRanking()) .build()) .map(OverallMapSectionVO.builder().nodes(Collections.emptyList()).build()) .transport(OverallTransportOperationVO.builder() @@ -133,7 +134,7 @@ public final class BiReportSnapshotMapperSupport { .freightTrendByMonth(Collections.emptyList()) .orderDistribution(OverallTransportModeDistributionVO.builder() .crossBorder(0L).domestic(0L).build()) - .enterpriseRanking(Collections.emptyList()) + .onTimeRate(BiOnTimeDeliveryRateChartSupport.emptyChartShell()) .build()) .build(); } diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java index 28e341915..9b2ad91b2 100644 --- a/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java @@ -1,11 +1,12 @@ package com.mhd.bi.domain.biSnapshotSync.support; +import com.mhd.bi.domain.biReport.support.BiOnTimeDeliveryRateChartSupport; +import com.mhd.bi.domain.biReport.support.BiWarehouseCapabilityRankingSupport; 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.overall.*; import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*; - import java.time.LocalDate; import java.util.ArrayList; import java.util.Arrays; @@ -242,7 +243,7 @@ public final class BiSnapshotWeeklyRandomDataBuilder { /** * 与产品约定返回值示例一致,供快照同步与联调。 - * {@code warehouse.capabilityRanking}、{@code transport.enterpriseRanking} 的 {@code name} 为固定展示名,不参与随机抖动。 + * 左侧 {@code warehouse.capabilityRanking} 仓储运营能力表;右下角 {@code transport.on_time_rate} 准时配送率。 */ public static OverallOperationSituationVO overallReferenceDashboard() { return OverallOperationSituationVO.builder() @@ -284,13 +285,7 @@ public final class BiSnapshotWeeklyRandomDataBuilder { .throughputUnit("万吨") .throughputGrowth(8.5) .build()) - .capabilityRanking(Arrays.asList( - OverallWarehouseCapabilityRankVO.builder().rank(1).name("君华仓").processedVolume("2,400单").throughput("5.2万吨").utilizationRate("85%").build(), - OverallWarehouseCapabilityRankVO.builder().rank(2).name("通宇仓").processedVolume("1,800单").throughput("4.1万吨").utilizationRate("78%").build(), - OverallWarehouseCapabilityRankVO.builder().rank(3).name("横琴仓").processedVolume("1,200单").throughput("3.5万吨").utilizationRate("92%").build(), - OverallWarehouseCapabilityRankVO.builder().rank(4).name("新南仓").processedVolume("800单").throughput("2.2万吨").utilizationRate("65%").build(), - OverallWarehouseCapabilityRankVO.builder().rank(5).name("谷丰仓").processedVolume("567单").throughput("1.8万吨").utilizationRate("45%").build() - )) + .capabilityRanking(BiWarehouseCapabilityRankingSupport.defaultRanking()) .build()) .map(OverallMapSectionVO.builder() .nodes(Arrays.asList( @@ -361,13 +356,7 @@ public final class BiSnapshotWeeklyRandomDataBuilder { .crossBorder(2400L) .domestic(2300L) .build()) - .enterpriseRanking(Arrays.asList( - OverallTransportEnterpriseRankVO.builder().rank(1).name("通宇").processedVolume("2,400单").freight("5.2万吨").onTimeRate("85%").build(), - OverallTransportEnterpriseRankVO.builder().rank(2).name("南岐").processedVolume("1,800单").freight("4.1万吨").onTimeRate("78%").build(), - OverallTransportEnterpriseRankVO.builder().rank(3).name("谷丰").processedVolume("1,200单").freight("3.5万吨").onTimeRate("92%").build(), - OverallTransportEnterpriseRankVO.builder().rank(4).name("仓码").processedVolume("800单").freight("2.2万吨").onTimeRate("65%").build(), - OverallTransportEnterpriseRankVO.builder().rank(5).name("横琴").processedVolume("567单").freight("1.8万吨").onTimeRate("45%").build() - )) + .onTimeRate(BiOnTimeDeliveryRateChartSupport.defaultChart()) .build()) .build(); } diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportEnterpriseRankVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportEnterpriseRankVO.java deleted file mode 100644 index 5936ee887..000000000 --- a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportEnterpriseRankVO.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; - -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 OverallTransportEnterpriseRankVO { - - @ApiModelProperty("排名") - private Integer rank; - - @ApiModelProperty("企业名称") - private String name; - - @ApiModelProperty("处理量文案") - private String processedVolume; - - @ApiModelProperty("货运量文案") - private String freight; - - @ApiModelProperty("准时率文案") - private String onTimeRate; -} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java index 08308c6d9..a0aeb2948 100644 --- a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java @@ -1,5 +1,8 @@ package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; @@ -14,6 +17,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @ApiModel("总体运营态势-运输运营") +@JsonIgnoreProperties(ignoreUnknown = true) public class OverallTransportOperationVO { @ApiModelProperty("运输订单摘要") @@ -31,6 +35,7 @@ public class OverallTransportOperationVO { @ApiModelProperty("运输订单分布") private OverallTransportModeDistributionVO orderDistribution; - @ApiModelProperty("企业运营能力排名") - private List enterpriseRanking; + @JsonProperty("on_time_rate") + @ApiModelProperty("准时配送率(右下角,与运输运营专区 on_time_rate 结构一致)") + private TrTypedChartVO onTimeRate; } diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCapabilityRankVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCapabilityRankVO.java index 080e932a5..ee8193835 100644 --- a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCapabilityRankVO.java +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCapabilityRankVO.java @@ -11,21 +11,21 @@ import lombok.NoArgsConstructor; @Builder @NoArgsConstructor @AllArgsConstructor -@ApiModel("仓储-运营能力排行行") +@ApiModel("总体运营态势-左侧仓储运营能力排行行") public class OverallWarehouseCapabilityRankVO { @ApiModelProperty("排名") private Integer rank; - @ApiModelProperty("仓库名称") + @ApiModelProperty("仓库/业务名称") private String name; - @ApiModelProperty("处理量展示文案,如 2,400单") + @ApiModelProperty("处理单量展示,如 2,400单") private String processedVolume; - @ApiModelProperty("吞吐量展示文案,如 5.2万吨") + @ApiModelProperty("吞吐量展示,如 5.2万吨") private String throughput; - @ApiModelProperty("利用率/周转等展示文案,如 85%") + @ApiModelProperty("周转率/利用率展示,如 85%") private String utilizationRate; } diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java index eeb427d81..9946378a6 100644 --- a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java @@ -1,5 +1,6 @@ package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; @@ -14,6 +15,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @ApiModel("总体运营态势-仓储运营") +@JsonIgnoreProperties(ignoreUnknown = true) public class OverallWarehouseOperationVO { @ApiModelProperty("仓库订单统计") @@ -31,6 +33,6 @@ public class OverallWarehouseOperationVO { @ApiModelProperty("仓库运营统计") private OverallWarehouseBizStatisticVO bizStatistics; - @ApiModelProperty("仓库运营能力排名") + @ApiModelProperty("左侧仓储运营能力排名表") private List capabilityRanking; }