BI大屏新加仓储运营专区接口查询
This commit is contained in:
+32
@@ -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.overall.*;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -134,4 +135,35 @@ public final class BiReportSnapshotMapperSupport {
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static WarehouseOperationZoneVO emptyWarehouseOperationZone() {
|
||||
return WarehouseOperationZoneVO.builder()
|
||||
.storageOverview(WhStorageOverviewVO.builder()
|
||||
.title("").value(0).unit("").subText("").build())
|
||||
.operationStats(WhOperationStatsVO.builder()
|
||||
.title("").value(0).unit("").growthRate("").trend("").build())
|
||||
.businessPlanning(WhBusinessPlanningVO.builder()
|
||||
.generalWarehouse(0).coldStorage(0).foodProcessing(0).automatedStorage(0).build())
|
||||
.throughputTrend(Collections.emptyList())
|
||||
.areaDistribution(WhAreaDistributionVO.builder()
|
||||
.utilizationRate("").details(Collections.emptyList()).build())
|
||||
.capacityUtilizationTrend(WhCapacityUtilizationTrendVO.builder()
|
||||
.peakLabel("").data(Collections.emptyList()).build())
|
||||
.orderStatistics(WhOrderStatisticsVO.builder()
|
||||
.annualOrders(0L).quarterlyOrders(0L).monthlyOrders(0L).build())
|
||||
.serviceStatistics(WhServiceStatisticsVO.builder()
|
||||
.clients(0).coverage("").onTimeRate("").rateChange("").build())
|
||||
.orderTrend(Collections.emptyList())
|
||||
.turnoverRateTrend(WhTurnoverRateTrendVO.builder()
|
||||
.currentMonth("").annual("").data(Collections.emptyList()).build())
|
||||
.serviceCapacity(Collections.emptyList())
|
||||
.realTimeAnalysis(WhRealTimeAnalysisVO.builder()
|
||||
.utilizationRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
|
||||
.rentalRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build())
|
||||
.build())
|
||||
.mapPopup(WhMapPopupVO.builder()
|
||||
.warehouseName("").totalArea("").totalSku(0).todayOrders(0)
|
||||
.utilizationRate("").rentalRate("").build())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -14,4 +14,6 @@ public interface BiSnapshotWriteMapper {
|
||||
int insertPlatformSurveillanceSnapshot(@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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 定时将业务快照写入 BI_COMPREHENSIVE_SNAPSHOT / BI_WAREHOUSE_TRANSPORT_SNAPSHOT / BI_PLATFORM_SURVEILLANCE_SNAPSHOT / BI_OVERALL_OPERATION_SNAPSHOT。
|
||||
* 定时将业务快照写入 BI_COMPREHENSIVE_SNAPSHOT / BI_WAREHOUSE_TRANSPORT_SNAPSHOT / BI_PLATFORM_SURVEILLANCE_SNAPSHOT / BI_OVERALL_OPERATION_SNAPSHOT / BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT。
|
||||
* <p>默认关闭,需在配置中设置 {@code mhd.bi.snapshot-sync.enabled=true}。</p>
|
||||
*/
|
||||
@Slf4j
|
||||
|
||||
+25
-1
@@ -3,10 +3,12 @@ package com.mhd.bi.domain.biSnapshotSync.service;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper;
|
||||
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
|
||||
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.WarehouseTransportSituationVO;
|
||||
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.warehouseZone.WarehouseOperationZoneVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -14,7 +16,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* BI 快照表定时同步(综合态势 / 仓储运输 / 月台监测 / 总体运营态势)。
|
||||
* BI 快照表定时同步(综合态势 / 仓储运输 / 月台监测 / 总体运营态势 / 仓储运营专区)。
|
||||
* <p><b>当前(临时)</b>:{@code build*} 使用 {@link BiSnapshotWeeklyRandomDataBuilder},每次执行使用新的 {@link Random},
|
||||
* 故<b>同一天多次手动触发、以及每次定时任务执行</b>,生成的模拟数据均<b>不相同</b>(仍在基准 ±20% 内)。</p>
|
||||
* <p><b>后续改造</b>:在各 {@code build*} 中改为查库/Feign 聚合真实业务并组装 VO。</p>
|
||||
@@ -37,6 +39,7 @@ public class BiReportSnapshotSyncService {
|
||||
syncWarehouseTransportSnapshot();
|
||||
syncPlatformSurveillanceSnapshot();
|
||||
syncOverallOperationSnapshot();
|
||||
syncWarehouseOperationZoneSnapshot();
|
||||
}
|
||||
|
||||
public void syncComprehensiveSnapshot() {
|
||||
@@ -95,6 +98,20 @@ public class BiReportSnapshotSyncService {
|
||||
}
|
||||
}
|
||||
|
||||
public void syncWarehouseOperationZoneSnapshot() {
|
||||
try {
|
||||
WarehouseOperationZoneVO vo = buildWarehouseOperationZoneSnapshot();
|
||||
String json = objectMapper.writeValueAsString(vo);
|
||||
int rows = biSnapshotWriteMapper.insertWarehouseOperationZoneSnapshot(json, REMARK_SYNC);
|
||||
if (rows < 1) {
|
||||
log.warn("BI 仓储运营专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT", rows);
|
||||
}
|
||||
log.info("BI 仓储运营专区快照已写入, affectedRows={}", rows);
|
||||
} catch (Exception e) {
|
||||
log.error("BI 仓储运营专区快照同步失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 业务落地:改为查询真实数据组装 VO。临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#overallOperation(Random)}。
|
||||
*/
|
||||
@@ -118,4 +135,11 @@ public class BiReportSnapshotSyncService {
|
||||
protected PlatformSurveillanceVO buildPlatformSurveillanceSnapshot() {
|
||||
return BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(new Random());
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 业务落地:改为查询真实数据组装 VO。当前为 {@link WarehouseOperationZoneDemoData} 静态示例。
|
||||
*/
|
||||
protected WarehouseOperationZoneVO buildWarehouseOperationZoneSnapshot() {
|
||||
return WarehouseOperationZoneDemoData.build();
|
||||
}
|
||||
}
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.mhd.bi.domain.biWarehouseOperationZone.repository.mapper;
|
||||
|
||||
import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
||||
|
||||
/**
|
||||
* 仓储运营专区:取 NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析。
|
||||
*/
|
||||
public interface BiWarehouseOperationZoneReportMapper {
|
||||
|
||||
String selectLatestPayloadJson();
|
||||
|
||||
default WarehouseOperationZoneVO loadLatestWarehouseOperationZone() {
|
||||
return BiReportSnapshotMapperSupport.parsePayload(
|
||||
selectLatestPayloadJson(),
|
||||
WarehouseOperationZoneVO.class,
|
||||
BiReportSnapshotMapperSupport::emptyWarehouseOperationZone,
|
||||
"仓储运营专区");
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.mhd.bi.domain.biWarehouseOperationZone.service;
|
||||
|
||||
import com.mhd.bi.domain.biWarehouseOperationZone.repository.mapper.BiWarehouseOperationZoneReportMapper;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 南光物流业务经营分析 · 仓储运营专区
|
||||
*/
|
||||
@Service
|
||||
public class BiWarehouseOperationZoneReportService {
|
||||
|
||||
@Resource
|
||||
private BiWarehouseOperationZoneReportMapper biWarehouseOperationZoneReportMapper;
|
||||
|
||||
public WarehouseOperationZoneVO loadLatestWarehouseOperationZone() {
|
||||
return biWarehouseOperationZoneReportMapper.loadLatestWarehouseOperationZone();
|
||||
}
|
||||
}
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
package com.mhd.bi.domain.biWarehouseOperationZone.support;
|
||||
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 仓储运营专区快照演示数据(对齐大屏示例 JSON;后续可改为真实聚合)。
|
||||
*/
|
||||
public final class WarehouseOperationZoneDemoData {
|
||||
|
||||
private WarehouseOperationZoneDemoData() {
|
||||
}
|
||||
|
||||
public static WarehouseOperationZoneVO build() {
|
||||
List<WhThroughputMonthItemVO> throughputTrend = Arrays.asList(
|
||||
WhThroughputMonthItemVO.builder().month("11月").value(10).build(),
|
||||
WhThroughputMonthItemVO.builder().month("12月").value(14).build(),
|
||||
WhThroughputMonthItemVO.builder().month("1月").value(22).build(),
|
||||
WhThroughputMonthItemVO.builder().month("2月").value(21).build(),
|
||||
WhThroughputMonthItemVO.builder().month("3月").value(13).build(),
|
||||
WhThroughputMonthItemVO.builder().month("4月").value(16).build(),
|
||||
WhThroughputMonthItemVO.builder().month("5月").value(8).build()
|
||||
);
|
||||
|
||||
List<WhAreaDistributionDetailVO> areaDetails = Arrays.asList(
|
||||
WhAreaDistributionDetailVO.builder().name("普通仓出租面积").value(9400).unit("m²").build(),
|
||||
WhAreaDistributionDetailVO.builder().name("自动化立库出租面积").value(9400).unit("m²").build(),
|
||||
WhAreaDistributionDetailVO.builder().name("闲置面积").value(9400).unit("m²").build(),
|
||||
WhAreaDistributionDetailVO.builder().name("冷冻仓出租面积").value(9400).unit("m²").build()
|
||||
);
|
||||
|
||||
List<WhMonthRatePointVO> capTrendData = Arrays.asList(
|
||||
WhMonthRatePointVO.builder().month("1月").rate(20).build(),
|
||||
WhMonthRatePointVO.builder().month("2月").rate(30).build(),
|
||||
WhMonthRatePointVO.builder().month("3月").rate(55).build(),
|
||||
WhMonthRatePointVO.builder().month("4月").rate(40).build(),
|
||||
WhMonthRatePointVO.builder().month("5月").rate(45).build(),
|
||||
WhMonthRatePointVO.builder().month("6月").rate(60).build(),
|
||||
WhMonthRatePointVO.builder().month("7月").rate(50).build()
|
||||
);
|
||||
|
||||
List<WhMonthRatePointVO> orderTrend = Arrays.asList(
|
||||
WhMonthRatePointVO.builder().month("1月").rate(100).build(),
|
||||
WhMonthRatePointVO.builder().month("2月").rate(90).build(),
|
||||
WhMonthRatePointVO.builder().month("3月").rate(75).build(),
|
||||
WhMonthRatePointVO.builder().month("4月").rate(70).build(),
|
||||
WhMonthRatePointVO.builder().month("5月").rate(95).build(),
|
||||
WhMonthRatePointVO.builder().month("6月").rate(85).build()
|
||||
);
|
||||
|
||||
List<WhMonthRatePointVO> turnoverData = Arrays.asList(
|
||||
WhMonthRatePointVO.builder().month("11月").rate(10).build(),
|
||||
WhMonthRatePointVO.builder().month("12月").rate(15).build(),
|
||||
WhMonthRatePointVO.builder().month("1月").rate(22).build(),
|
||||
WhMonthRatePointVO.builder().month("2月").rate(20).build(),
|
||||
WhMonthRatePointVO.builder().month("3月").rate(12).build(),
|
||||
WhMonthRatePointVO.builder().month("4月").rate(16).build()
|
||||
);
|
||||
|
||||
List<WhServiceCapacityRowVO> serviceCapacity = Arrays.asList(
|
||||
WhServiceCapacityRowVO.builder().rank(1).name("君华仓").totalArea("1.2万m²").processed("2,400单").throughput("2.2万吨").build(),
|
||||
WhServiceCapacityRowVO.builder().rank(2).name("通宇仓").totalArea("1.2万m²").processed("1,800单").throughput("1.1万吨").build(),
|
||||
WhServiceCapacityRowVO.builder().rank(3).name("横琴仓").totalArea("1.2万m²").processed("1,200单").throughput("1.5万吨").build(),
|
||||
WhServiceCapacityRowVO.builder().rank(4).name("新南仓").totalArea("1.2万m²").processed("800单").throughput("2.1万吨").build(),
|
||||
WhServiceCapacityRowVO.builder().rank(5).name("谷丰仓").totalArea("1.2万m²").processed("567单").throughput("1.8万吨").build()
|
||||
);
|
||||
|
||||
return WarehouseOperationZoneVO.builder()
|
||||
.storageOverview(WhStorageOverviewVO.builder()
|
||||
.title("仓储面积")
|
||||
.value(10)
|
||||
.unit("万m²")
|
||||
.subText("覆盖仓库数8个")
|
||||
.build())
|
||||
.operationStats(WhOperationStatsVO.builder()
|
||||
.title("年吞吐量")
|
||||
.value(26)
|
||||
.unit("万吨")
|
||||
.growthRate("8.5%")
|
||||
.trend("up")
|
||||
.build())
|
||||
.businessPlanning(WhBusinessPlanningVO.builder()
|
||||
.generalWarehouse(43000)
|
||||
.coldStorage(15000)
|
||||
.foodProcessing(11000)
|
||||
.automatedStorage(5200)
|
||||
.build())
|
||||
.throughputTrend(throughputTrend)
|
||||
.areaDistribution(WhAreaDistributionVO.builder()
|
||||
.utilizationRate("85%")
|
||||
.details(areaDetails)
|
||||
.build())
|
||||
.capacityUtilizationTrend(WhCapacityUtilizationTrendVO.builder()
|
||||
.peakLabel("60%")
|
||||
.data(capTrendData)
|
||||
.build())
|
||||
.orderStatistics(WhOrderStatisticsVO.builder()
|
||||
.annualOrders(525440L)
|
||||
.quarterlyOrders(225120L)
|
||||
.monthlyOrders(23560L)
|
||||
.build())
|
||||
.serviceStatistics(WhServiceStatisticsVO.builder()
|
||||
.clients(582)
|
||||
.coverage("覆盖港珠澳")
|
||||
.onTimeRate("98.2%")
|
||||
.rateChange("0.4%")
|
||||
.build())
|
||||
.orderTrend(orderTrend)
|
||||
.turnoverRateTrend(WhTurnoverRateTrendVO.builder()
|
||||
.currentMonth("3次")
|
||||
.annual("4次")
|
||||
.data(turnoverData)
|
||||
.build())
|
||||
.serviceCapacity(serviceCapacity)
|
||||
.realTimeAnalysis(WhRealTimeAnalysisVO.builder()
|
||||
.utilizationRate(WhRealTimeGaugeVO.builder()
|
||||
.value("50.8%")
|
||||
.comparison("3.4%")
|
||||
.trend("up")
|
||||
.build())
|
||||
.rentalRate(WhRealTimeGaugeVO.builder()
|
||||
.value("70.8%")
|
||||
.comparison("3.4%")
|
||||
.trend("up")
|
||||
.build())
|
||||
.build())
|
||||
.mapPopup(WhMapPopupVO.builder()
|
||||
.warehouseName("通宇保税仓")
|
||||
.totalArea("2000m2")
|
||||
.totalSku(668)
|
||||
.todayOrders(237)
|
||||
.utilizationRate("85%")
|
||||
.rentalRate("37.1%")
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
@@ -4,12 +4,14 @@ import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService;
|
||||
import com.mhd.bi.domain.biComprehensive.service.BiComprehensiveReportService;
|
||||
import com.mhd.bi.domain.biPlatformSurveillance.service.BiPlatformSurveillanceReportService;
|
||||
import com.mhd.bi.domain.biOverallOperation.service.BiOverallOperationReportService;
|
||||
import com.mhd.bi.domain.biWarehouseOperationZone.service.BiWarehouseOperationZoneReportService;
|
||||
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.overall.OverallOperationSituationVO;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO;
|
||||
import com.mhd.common.core.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -43,11 +45,14 @@ public class BiReportApi extends BaseController {
|
||||
@Autowired
|
||||
private BiOverallOperationReportService biOverallOperationReportService;
|
||||
|
||||
@Autowired
|
||||
private BiWarehouseOperationZoneReportService biWarehouseOperationZoneReportService;
|
||||
|
||||
@Autowired
|
||||
private BiReportSnapshotSyncService biReportSnapshotSyncService;
|
||||
|
||||
|
||||
@ApiOperation(value = "手动触发快照同步", notes = "立即写入各 BI 快照表(综合、仓储运输、月台监测、总体运营);须带 X-BI-Access-Token")
|
||||
@ApiOperation(value = "手动触发快照同步", notes = "立即写入各 BI 快照表(综合、仓储运输、月台监测、总体运营、仓储运营专区);须带 X-BI-Access-Token")
|
||||
@PostMapping("/snapshotSync/run")
|
||||
public BiApiResult<Void> runSnapshotSyncOnce() {
|
||||
biReportSnapshotSyncService.syncAllSnapshots();
|
||||
@@ -93,4 +98,14 @@ public class BiReportApi extends BaseController {
|
||||
OverallOperationSituationVO data = biOverallOperationReportService.loadLatestOverallOperation();
|
||||
return BiApiResult.ok(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓储运营专区(大屏「仓储运营专区」Tab)
|
||||
*/
|
||||
@ApiOperation(value = "仓储运营专区查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条整包 JSON 解析结果")
|
||||
@GetMapping("/warehouseOperationZone")
|
||||
public BiApiResult<WarehouseOperationZoneVO> warehouseOperationZone() {
|
||||
WarehouseOperationZoneVO data = biWarehouseOperationZoneReportService.loadLatestWarehouseOperationZone();
|
||||
return BiApiResult.ok(data);
|
||||
}
|
||||
}
|
||||
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 与快照 PAYLOAD_JSON 一致)
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel("BI-仓储运营专区")
|
||||
public class WarehouseOperationZoneVO {
|
||||
|
||||
@JsonProperty("storage_overview")
|
||||
@ApiModelProperty("仓储面积")
|
||||
private WhStorageOverviewVO storageOverview;
|
||||
|
||||
@JsonProperty("operation_stats")
|
||||
@ApiModelProperty("运营统计")
|
||||
private WhOperationStatsVO operationStats;
|
||||
|
||||
@JsonProperty("business_planning")
|
||||
@ApiModelProperty("业务规划")
|
||||
private WhBusinessPlanningVO businessPlanning;
|
||||
|
||||
@JsonProperty("throughput_trend")
|
||||
@ApiModelProperty("吞吐量统计(柱状图)")
|
||||
private List<WhThroughputMonthItemVO> throughputTrend;
|
||||
|
||||
@JsonProperty("area_distribution")
|
||||
@ApiModelProperty("仓库面积统计(环形图)")
|
||||
private WhAreaDistributionVO areaDistribution;
|
||||
|
||||
@JsonProperty("capacity_utilization_trend")
|
||||
@ApiModelProperty("库容利用趋势")
|
||||
private WhCapacityUtilizationTrendVO capacityUtilizationTrend;
|
||||
|
||||
@JsonProperty("order_statistics")
|
||||
@ApiModelProperty("仓库订单统计")
|
||||
private WhOrderStatisticsVO orderStatistics;
|
||||
|
||||
@JsonProperty("service_statistics")
|
||||
@ApiModelProperty("服务统计")
|
||||
private WhServiceStatisticsVO serviceStatistics;
|
||||
|
||||
@JsonProperty("order_trend")
|
||||
@ApiModelProperty("仓库订单趋势")
|
||||
private List<WhMonthRatePointVO> orderTrend;
|
||||
|
||||
@JsonProperty("turnover_rate_trend")
|
||||
@ApiModelProperty("库存周转率趋势")
|
||||
private WhTurnoverRateTrendVO turnoverRateTrend;
|
||||
|
||||
@JsonProperty("service_capacity")
|
||||
@ApiModelProperty("服务能力表格")
|
||||
private List<WhServiceCapacityRowVO> serviceCapacity;
|
||||
|
||||
@JsonProperty("real_time_analysis")
|
||||
@ApiModelProperty("实时分析")
|
||||
private WhRealTimeAnalysisVO realTimeAnalysis;
|
||||
|
||||
@JsonProperty("map_popup")
|
||||
@ApiModelProperty("地图弹窗示例数据")
|
||||
private WhMapPopupVO mapPopup;
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
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;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel("BI-仓储运营专区-面积分布明细")
|
||||
public class WhAreaDistributionDetailVO {
|
||||
|
||||
@ApiModelProperty("分类名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("数值")
|
||||
private Integer value;
|
||||
|
||||
@ApiModelProperty("单位")
|
||||
private String unit;
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhAreaDistributionVO {
|
||||
|
||||
@JsonProperty("utilization_rate")
|
||||
@ApiModelProperty("总利用率展示")
|
||||
private String utilizationRate;
|
||||
|
||||
@ApiModelProperty("分项")
|
||||
private List<WhAreaDistributionDetailVO> details;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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-仓储运营专区-业务规划(面积 m²)")
|
||||
public class WhBusinessPlanningVO {
|
||||
|
||||
@JsonProperty("general_warehouse")
|
||||
@ApiModelProperty("普通仓规划")
|
||||
private Integer generalWarehouse;
|
||||
|
||||
@JsonProperty("cold_storage")
|
||||
@ApiModelProperty("冷冻仓规划")
|
||||
private Integer coldStorage;
|
||||
|
||||
@JsonProperty("food_processing")
|
||||
@ApiModelProperty("食品加工区规划")
|
||||
private Integer foodProcessing;
|
||||
|
||||
@JsonProperty("automated_storage")
|
||||
@ApiModelProperty("自动化立库规划")
|
||||
private Integer automatedStorage;
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhCapacityUtilizationTrendVO {
|
||||
|
||||
@JsonProperty("peak_label")
|
||||
@ApiModelProperty("峰值标注")
|
||||
private String peakLabel;
|
||||
|
||||
@ApiModelProperty("按月序列")
|
||||
private List<WhMonthRatePointVO> data;
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhMapPopupVO {
|
||||
|
||||
@JsonProperty("warehouse_name")
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@JsonProperty("total_area")
|
||||
@ApiModelProperty("总面积")
|
||||
private String totalArea;
|
||||
|
||||
@JsonProperty("total_sku")
|
||||
@ApiModelProperty("SKU 数")
|
||||
private Integer totalSku;
|
||||
|
||||
@JsonProperty("today_orders")
|
||||
@ApiModelProperty("当日订单")
|
||||
private Integer todayOrders;
|
||||
|
||||
@JsonProperty("utilization_rate")
|
||||
@ApiModelProperty("库容利用率")
|
||||
private String utilizationRate;
|
||||
|
||||
@JsonProperty("rental_rate")
|
||||
@ApiModelProperty("仓库出租率")
|
||||
private String rentalRate;
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
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;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel("BI-仓储运营专区-月份-比率点")
|
||||
public class WhMonthRatePointVO {
|
||||
|
||||
@ApiModelProperty("月份")
|
||||
private String month;
|
||||
|
||||
@ApiModelProperty("比率或趋势值")
|
||||
private Integer rate;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhOperationStatsVO {
|
||||
|
||||
@ApiModelProperty("标题")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty("数值")
|
||||
private Integer value;
|
||||
|
||||
@ApiModelProperty("单位")
|
||||
private String unit;
|
||||
|
||||
@JsonProperty("growth_rate")
|
||||
@ApiModelProperty("增幅文案")
|
||||
private String growthRate;
|
||||
|
||||
@ApiModelProperty("趋势:up / down")
|
||||
private String trend;
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhOrderStatisticsVO {
|
||||
|
||||
@JsonProperty("annual_orders")
|
||||
@ApiModelProperty("本年度订单")
|
||||
private Long annualOrders;
|
||||
|
||||
@JsonProperty("quarterly_orders")
|
||||
@ApiModelProperty("本季度订单")
|
||||
private Long quarterlyOrders;
|
||||
|
||||
@JsonProperty("monthly_orders")
|
||||
@ApiModelProperty("本月度订单")
|
||||
private Long monthlyOrders;
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhRealTimeAnalysisVO {
|
||||
|
||||
@JsonProperty("utilization_rate")
|
||||
@ApiModelProperty("库容利用率")
|
||||
private WhRealTimeGaugeVO utilizationRate;
|
||||
|
||||
@JsonProperty("rental_rate")
|
||||
@ApiModelProperty("仓库出租率")
|
||||
private WhRealTimeGaugeVO rentalRate;
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
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;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel("BI-仓储运营专区-实时分析仪表盘单项")
|
||||
public class WhRealTimeGaugeVO {
|
||||
|
||||
@ApiModelProperty("当前值")
|
||||
private String value;
|
||||
|
||||
@ApiModelProperty("同比变化")
|
||||
private String comparison;
|
||||
|
||||
@ApiModelProperty("趋势:up / down")
|
||||
private String trend;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhServiceCapacityRowVO {
|
||||
|
||||
@ApiModelProperty("序号")
|
||||
private Integer rank;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String name;
|
||||
|
||||
@JsonProperty("total_area")
|
||||
@ApiModelProperty("总面积展示")
|
||||
private String totalArea;
|
||||
|
||||
@ApiModelProperty("仓储单量展示")
|
||||
private String processed;
|
||||
|
||||
@ApiModelProperty("吞吐量展示")
|
||||
private String throughput;
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhServiceStatisticsVO {
|
||||
|
||||
@ApiModelProperty("合作客户数")
|
||||
private Integer clients;
|
||||
|
||||
@ApiModelProperty("覆盖范围文案")
|
||||
private String coverage;
|
||||
|
||||
@JsonProperty("on_time_rate")
|
||||
@ApiModelProperty("订单准时率")
|
||||
private String onTimeRate;
|
||||
|
||||
@JsonProperty("rate_change")
|
||||
@ApiModelProperty("准时率变化")
|
||||
private String rateChange;
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhStorageOverviewVO {
|
||||
|
||||
@ApiModelProperty("标题")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty("数值")
|
||||
private Integer value;
|
||||
|
||||
@ApiModelProperty("单位")
|
||||
private String unit;
|
||||
|
||||
@JsonProperty("sub_text")
|
||||
@ApiModelProperty("副文案")
|
||||
private String subText;
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
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;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel("BI-仓储运营专区-吞吐量月度点")
|
||||
public class WhThroughputMonthItemVO {
|
||||
|
||||
@ApiModelProperty("月份标签")
|
||||
private String month;
|
||||
|
||||
@ApiModelProperty("数值")
|
||||
private Integer value;
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone;
|
||||
|
||||
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 WhTurnoverRateTrendVO {
|
||||
|
||||
@JsonProperty("current_month")
|
||||
@ApiModelProperty("本周周转率展示文案")
|
||||
private String currentMonth;
|
||||
|
||||
@ApiModelProperty("本年度周转率展示文案")
|
||||
private String annual;
|
||||
|
||||
@ApiModelProperty("按月序列")
|
||||
private List<WhMonthRatePointVO> data;
|
||||
}
|
||||
@@ -22,4 +22,9 @@
|
||||
insert into NGWL_TEST_BI.BI_OVERALL_OPERATION_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK)
|
||||
values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark})
|
||||
</insert>
|
||||
|
||||
<insert id="insertWarehouseOperationZoneSnapshot">
|
||||
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})
|
||||
</insert>
|
||||
</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.biWarehouseOperationZone.repository.mapper.BiWarehouseOperationZoneReportMapper">
|
||||
|
||||
<select id="selectLatestPayloadJson" resultType="java.lang.String">
|
||||
select PAYLOAD_JSON
|
||||
from NGWL_TEST_BI.BI_WAREHOUSE_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