Selaa lähdekoodia

refactor(s8): derive monitoring module codes from page config

YY968XX 5 kuukautta sitten
vanhempi
commit
57c7a8e9

+ 10 - 9
Web/src/views/aidop/s8/api/s8DeliveryMonitoringApi.ts

@@ -15,7 +15,6 @@ export interface DeliveryMonitoringData {
 	anomalyTypes: DeliveryAnomalyType[];
 }
 
-const DELIVERY_MODULE_CODES = ['S1', 'S7'];
 const DELIVERY_ANOMALY_SPECS = [
 	{
 		key: 'order-change',
@@ -38,15 +37,17 @@ const DELIVERY_ANOMALY_SPECS = [
 ] as const;
 
 export const s8DeliveryMonitoringApi = {
-	/** 获取交付域(S1+S7)的汇总摘要 */
-	summary: () =>
-		s8MonitoringApi.summary({ moduleCode: DELIVERY_MODULE_CODES.join(',') }),
+	/** 获取交付域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。 */
+	summary: (moduleCodes: string[]) =>
+		s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
 
-	/** 获取交付域各阶段订单统计 */
-	modules: () =>
-		s8MonitoringApi.orderGrid().then((data) =>
-			data.modules.filter((m) => DELIVERY_MODULE_CODES.includes(m.moduleCode)),
-		),
+	/** 获取交付域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。 */
+	modules: (moduleCodes: string[]) => {
+		const set = new Set(moduleCodes);
+		return s8MonitoringApi.orderGrid().then((data) =>
+			data.modules.filter((m) => set.has(m.moduleCode)),
+		);
+	},
 
 	/** 获取交付异常类型明细;接口失败返回空数组(不再回退到示例数据) */
 	anomalyTypes: (): Promise<DeliveryAnomalyType[]> =>

+ 10 - 9
Web/src/views/aidop/s8/api/s8ProductionMonitoringApi.ts

@@ -15,7 +15,6 @@ export interface ProductionMonitoringData {
 	anomalyTypes: ProductionAnomalyType[];
 }
 
-const PRODUCTION_MODULE_CODES = ['S2', 'S6'];
 const PRODUCTION_ANOMALY_SPECS = [
 	{
 		key: 'equipment-fault',
@@ -38,15 +37,17 @@ const PRODUCTION_ANOMALY_SPECS = [
 ] as const;
 
 export const s8ProductionMonitoringApi = {
-	/** 获取生产域(S2+S6)的汇总摘要 */
-	summary: () =>
-		s8MonitoringApi.summary({ moduleCode: PRODUCTION_MODULE_CODES.join(',') }),
+	/** 获取生产域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。 */
+	summary: (moduleCodes: string[]) =>
+		s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
 
-	/** 获取生产域各阶段订单统计 */
-	modules: () =>
-		s8MonitoringApi.orderGrid().then((data) =>
-			data.modules.filter((m) => PRODUCTION_MODULE_CODES.includes(m.moduleCode)),
-		),
+	/** 获取生产域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。 */
+	modules: (moduleCodes: string[]) => {
+		const set = new Set(moduleCodes);
+		return s8MonitoringApi.orderGrid().then((data) =>
+			data.modules.filter((m) => set.has(m.moduleCode)),
+		);
+	},
 
 	/** 获取生产异常类型明细(后端未就绪时降级为空数据) */
 	anomalyTypes: (): Promise<ProductionAnomalyType[]> =>

+ 10 - 9
Web/src/views/aidop/s8/api/s8SupplyMonitoringApi.ts

@@ -15,7 +15,6 @@ export interface SupplyMonitoringData {
 	anomalyTypes: SupplyAnomalyType[];
 }
 
-const SUPPLY_MODULE_CODES = ['S3', 'S4', 'S5'];
 const SUPPLY_ANOMALY_SPECS = [
 	{
 		key: 'supplier-reply-delay',
@@ -62,15 +61,17 @@ const SUPPLY_ANOMALY_SPECS = [
 ] as const;
 
 export const s8SupplyMonitoringApi = {
-	/** 获取供应域(S3+S4+S5)的汇总摘要 */
-	summary: () =>
-		s8MonitoringApi.summary({ moduleCode: SUPPLY_MODULE_CODES.join(',') }),
+	/** 获取供应域汇总摘要;moduleCodes 由 page-config 派生(fallback 走 STAGE_META_FALLBACK)。 */
+	summary: (moduleCodes: string[]) =>
+		s8MonitoringApi.summary({ moduleCode: moduleCodes.join(',') }),
 
-	/** 获取供应域各阶段订单统计 */
-	modules: () =>
-		s8MonitoringApi.orderGrid().then((data) =>
-			data.modules.filter((m) => SUPPLY_MODULE_CODES.includes(m.moduleCode)),
-		),
+	/** 获取供应域各阶段订单统计;按 moduleCodes 过滤 byModule 全集。 */
+	modules: (moduleCodes: string[]) => {
+		const set = new Set(moduleCodes);
+		return s8MonitoringApi.orderGrid().then((data) =>
+			data.modules.filter((m) => set.has(m.moduleCode)),
+		);
+	},
 
 	/** 获取供应异常类型明细(后端未就绪时降级为空数据) */
 	anomalyTypes: (): Promise<SupplyAnomalyType[]> =>

+ 4 - 2
Web/src/views/aidop/s8/monitoring/S8MonitoringDeliveryPage.vue

@@ -353,9 +353,11 @@ async function loadData() {
 	loadState.value = 'loading';
 	loadError.value = '';
 	try {
+		// moduleCodes 由 page-config 派生;fallback 时 effectiveStageMeta 退到 STAGE_META_FALLBACK,行为与历史硬编码一致。
+		const moduleCodes = effectiveStageMeta.value.map((m) => m.code);
 		const [summaryData, modulesData, typesData] = await Promise.all([
-			s8DeliveryMonitoringApi.summary(),
-			s8DeliveryMonitoringApi.modules(),
+			s8DeliveryMonitoringApi.summary(moduleCodes),
+			s8DeliveryMonitoringApi.modules(moduleCodes),
 			s8DeliveryMonitoringApi.anomalyTypes(),
 		]);
 		Object.assign(summary, summaryData);

+ 4 - 2
Web/src/views/aidop/s8/monitoring/S8MonitoringProductionPage.vue

@@ -355,9 +355,11 @@ async function loadData() {
 	loadState.value = 'loading';
 	loadError.value = '';
 	try {
+		// moduleCodes 由 page-config 派生;fallback 时 effectiveStageMeta 退到 STAGE_META_FALLBACK,行为与历史硬编码一致。
+		const moduleCodes = effectiveStageMeta.value.map((m) => m.code);
 		const [summaryData, modulesData, typesData] = await Promise.all([
-			s8ProductionMonitoringApi.summary(),
-			s8ProductionMonitoringApi.modules(),
+			s8ProductionMonitoringApi.summary(moduleCodes),
+			s8ProductionMonitoringApi.modules(moduleCodes),
 			s8ProductionMonitoringApi.anomalyTypes(),
 		]);
 		Object.assign(summary, summaryData);

+ 4 - 2
Web/src/views/aidop/s8/monitoring/S8MonitoringSupplyPage.vue

@@ -373,9 +373,11 @@ async function loadData() {
 	loadState.value = 'loading';
 	loadError.value = '';
 	try {
+		// moduleCodes 由 page-config 派生;fallback 时 effectiveStageMeta 退到 STAGE_META_FALLBACK,行为与历史硬编码一致。
+		const moduleCodes = effectiveStageMeta.value.map((m) => m.code);
 		const [summaryData, modulesData, typesData] = await Promise.all([
-			s8SupplyMonitoringApi.summary(),
-			s8SupplyMonitoringApi.modules(),
+			s8SupplyMonitoringApi.summary(moduleCodes),
+			s8SupplyMonitoringApi.modules(moduleCodes),
 			s8SupplyMonitoringApi.anomalyTypes(),
 		]);
 		Object.assign(summary, summaryData);