BI月台指标检测修改

This commit is contained in:
秦鸿展
2026-09-10 11:46:34 +08:00
parent 9777156959
commit 8a31ed9974
6 changed files with 33 additions and 40 deletions
@@ -47,7 +47,7 @@ public interface BiPlatformRealDataMapper {
/** 今日作业准时率统计(total 今日预约总数;onTimeCount 今日准时车辆数) */
RealOnTimeStatPO queryTodayOnTimeStats();
/** 任务类型统计(OMS 运输订单按业务类型分组:1-跨境 2-国内 */
/** 任务类型统计(YMS QMS_MAIN_BUSINESS 预约按业务类型 BUSINESS_NAME 分组 */
List<RealTaskTypeStatPO> queryMonthTransportOrderByType();
/** 月台监控-按楼层统计月台车辆(楼层、月台数量、今日预约车辆、当前作业车辆) */
@@ -5,16 +5,16 @@ import lombok.Data;
import java.io.Serializable;
/**
* 任务类型统计(真实数据,来自 NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER 运输订单
* 按业务类型 businessCategory 分组统计当月数量:1-跨境运输 2-国内运输
* 任务类型统计(真实数据,来自 NGWL_TEST_YMS.QMS_MAIN_BUSINESS 预约登记表
* 按本月预约车辆数(TARGET_DATE 在当前月)以 BUSINESS_NAME 业务类型分组
*/
@Data
public class RealTaskTypeStatPO implements Serializable {
private static final long serialVersionUID = 1L;
/** 业务类型1-跨境 2-国内 */
private Integer businessCategory;
/** 业务类型名称(qms_main_business.BUSINESS_NAME */
private String businessName;
/** 该类型当月单量 */
/** 该业务类型本月预约车辆数 */
private Long count;
}
@@ -270,39 +270,32 @@ public class BiPlatformRealDataService {
}
/**
* 任务类型统计:当月 OMS 运输订单按业务类型分组(1-跨境运输,2-国内运输)。
* 返回 {totalTasks: 当月跨境+国内运输总单量, taskTypes: [{type, count}]}
* 查询失败时返回空结构,不影响写死字段
*/
/**
* 任务类型统计:固定输出「跨境运输」「国内运输」两类,count 取当月 OMS 业务单真实单量;
* 当月无数据或查询失败时仍返回两类、count=0(不使用写死模板兜底)。
* 任务类型统计:本月(YMS QMS_MAIN_BUSINESS)预约车辆按业务类型 BUSINESS_NAME 分组;
* 返回 {totalTasks: 当月总预约车辆数, taskTypes: [{type: 业务类型名称, count: 该类型预约数}]}
* 按真实 BUSINESS_NAME 分组输出,不固定兜底类别;当月无数据或查询失败时返回空列表
*/
public TaskTypeStatisticsVO queryMonthTransportOrderByType() {
int crossBorder = 0; // 跨境运输 BUSINESS_CATEGORY=1
int domestic = 0; // 国内运输 BUSINESS_CATEGORY=2
List<TaskTypeCountItemVO> items = new ArrayList<>();
int total = 0;
try {
List<RealTaskTypeStatPO> rows = biPlatformRealDataMapper.queryMonthTransportOrderByType();
if (rows != null) {
for (RealTaskTypeStatPO r : rows) {
if (r == null || r.getBusinessCategory() == null || r.getCount() == null) {
if (r == null || r.getBusinessName() == null || r.getCount() == null) {
continue;
}
if (r.getBusinessCategory() == 1) {
crossBorder = r.getCount().intValue();
} else if (r.getBusinessCategory() == 2) {
domestic = r.getCount().intValue();
}
int c = r.getCount().intValue();
items.add(TaskTypeCountItemVO.builder().type(r.getBusinessName()).count(c).build());
total += c;
}
}
} catch (Exception e) {
log.error("OMS】统计当月运输订单业务类型失败: {}", e.getMessage(), e);
// 失败时不回退写死模板,保持两类 count=0
log.error("YMS】统计当月预约业务类型失败: {}", e.getMessage(), e);
// 查询失败返回空列表(前端会显示空)
items = new ArrayList<>();
total = 0;
}
List<TaskTypeCountItemVO> items = new ArrayList<>();
items.add(TaskTypeCountItemVO.builder().type("跨境运输").count(crossBorder).build());
items.add(TaskTypeCountItemVO.builder().type("国内运输").count(domestic).build());
return TaskTypeStatisticsVO.builder().totalTasks(crossBorder + domestic).taskTypes(items).build();
return TaskTypeStatisticsVO.builder().totalTasks(total).taskTypes(items).build();
}
/**
@@ -447,7 +440,7 @@ public class BiPlatformRealDataService {
}
}
// 任务类型统计:OMS 业务单真实数据(固定跨境运输/国内运输两类,不使用写死模板兜底
// 任务类型统计:YMS QMS_MAIN_BUSINESS 按业务类型 BUSINESS_NAME 分组(真实业务数据
template.setTaskTypeStatistics(queryMonthTransportOrderByType());
return template;
@@ -248,7 +248,7 @@ public class BiReportSnapshotSyncService {
}
}
// ====== 真实数据:任务类型统计(OMS 业务单,固定跨境运输/国内运输两类,不使用写死模板兜底 ======
// ====== 真实数据:任务类型统计(YMS QMS_MAIN_BUSINESS 按业务类型 BUSINESS_NAME 分组 ======
template.setTaskTypeStatistics(biPlatformRealDataService.queryMonthTransportOrderByType());
return template;
@@ -206,6 +206,7 @@ public final class BiSnapshotWeeklyRandomDataBuilder {
handled = Math.min(handled, todayAl);
int unhandled = Math.max(0, todayAl - handled);
// 月台告警分布:按业务要求,全部置 0
List<PlatformAlarmDistItemVO> dist = new ArrayList<>();
for (int i = 0; i < Baseline.P_DIST_T.length; i++) {
dist.add(PlatformAlarmDistItemVO.builder()
@@ -148,19 +148,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY 1 DESC
</select>
<!-- 任务类型统计(运输订单,来自 NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER):
当月(CREATE_TIME 在当前月)按业务类型 BUSINESS_CATEGORY 分组统计
BUSINESS_CATEGORY: 1-跨境运输 2-国内运输 -->
<!-- 任务类型统计(来自 NGWL_TEST_YMS.QMS_MAIN_BUSINESS 预约登记表):
按本月预约车辆数(TARGET_DATE 在当前月)按 BUSINESS_NAME 业务类型分组统计 -->
<select id="queryMonthTransportOrderByType" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskTypeStatPO">
SELECT
BUSINESS_CATEGORY AS businessCategory,
COUNT(1) AS count
FROM NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER
WHERE BUSINESS_CATEGORY IN (1, 2)
AND CREATE_TIME IS NOT NULL
AND TO_CHAR(CREATE_TIME, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
GROUP BY BUSINESS_CATEGORY
ORDER BY BUSINESS_CATEGORY
BUSINESS_NAME AS businessName,
COUNT(1) AS count
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
WHERE BUSINESS_NAME IS NOT NULL
AND TARGET_DATE IS NOT NULL
AND TO_CHAR(TARGET_DATE, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
GROUP BY BUSINESS_NAME
ORDER BY COUNT(1) DESC
</select>
<!-- 任务负荷(今日 24 小时时段):按 EXTRACT(HOUR FROM ENTRY_TIME) 统计 -->