diff --git a/packages/business/src/locale/lang/en.js b/packages/business/src/locale/lang/en.js index e2859aea9..20822b3ae 100644 --- a/packages/business/src/locale/lang/en.js +++ b/packages/business/src/locale/lang/en.js @@ -748,6 +748,8 @@ export default { 'When the task encounters an error', packages_business_setting_alarmnotification_dangrenwustop: 'When the Agent service stops', + packages_business_setting_alarmnotification_dangyinqinglixian: 'When the engine stops', + packages_business_setting_alarmnotification_dangyinqinghuifu: 'When the engine starts', packages_business_setting_alarmnotification_api_server_worker_delay_p50_warn: 'When APIServer worker P50 per minute exceeding threshold', packages_business_setting_alarmnotification_api_server_worker_delay_p95_warn: @@ -1659,6 +1661,9 @@ export default { 'Click variable name to insert into template', packages_business_ignoreTimePrecision_round: 'Round', packages_business_ignoreTimePrecision_truncate: 'Truncate', + packages_business_treatEmptyStringAsNull: 'Treat empty string as NULL', + packages_business_treatEmptyStringAsNull_tip: `

When enabled, an empty string ("") on either side is considered equal to NULL during field comparison.

+

Useful when the target is a database that automatically converts empty strings to NULL (e.g. Oracle), to avoid false-positive field inconsistencies caused by such semantic differences.

`, packages_business_validation_task_type: 'Validation Task Type', packages_business_select_task_to_be_verified: 'Select Task to be Verified', packages_business_drag_file_here: diff --git a/packages/business/src/locale/lang/zh-CN.js b/packages/business/src/locale/lang/zh-CN.js index e348e8e40..850449612 100644 --- a/packages/business/src/locale/lang/zh-CN.js +++ b/packages/business/src/locale/lang/zh-CN.js @@ -675,6 +675,8 @@ export default { '当任务遇到错误时', packages_business_setting_alarmnotification_dangrenwustop: 'Agent服务停止时', packages_business_setting_alarmnotification_dangrenwuuP: 'Agent服务启动时', + packages_business_setting_alarmnotification_dangyinqinglixian: '当引擎停止时', + packages_business_setting_alarmnotification_dangyinqinghuifu: '当引擎启动时', packages_business_setting_alarmnotification_api_server_worker_delay_p50_warn: '当APIServer工作进程每分钟请求延时P50超过阈值时', packages_business_setting_alarmnotification_api_server_worker_delay_p95_warn: @@ -1484,6 +1486,9 @@ export default { '点击变量名称插入到模板中', packages_business_ignoreTimePrecision_round: '四舍五入', packages_business_ignoreTimePrecision_truncate: '截断', + packages_business_treatEmptyStringAsNull: '空字符串视为 NULL', + packages_business_treatEmptyStringAsNull_tip: `

开启后,源端和目标端在字段校验时,空字符串("")将被视为与 NULL 相等。

+

适用于目标端为 Oracle 等会自动把空字符串转换为 NULL 的数据库,避免因数据库语义差异导致的字段不一致误报。

`, packages_business_validation_task_type: '校验任务类型', packages_business_select_task_to_be_verified: '选择被校验的任务', packages_business_drag_file_here: diff --git a/packages/business/src/locale/lang/zh-TW.js b/packages/business/src/locale/lang/zh-TW.js index d3d1f83c5..712730aa3 100644 --- a/packages/business/src/locale/lang/zh-TW.js +++ b/packages/business/src/locale/lang/zh-TW.js @@ -713,6 +713,8 @@ export default { packages_business_setting_alarmnotification_api_server_worker_memory_usage_alter: '當任一API Server的工作行程記憶體使用量超過通知閾值時', packages_business_setting_alarmnotification_dangrenwuuP: 'Agent服务啓動時', + packages_business_setting_alarmnotification_dangyinqinglixian: '當引擎停止時', + packages_business_setting_alarmnotification_dangyinqinghuifu: '當引擎啓動時', packages_business_setting_alarmnotification_msshigaojing: ' 時告警', packages_business_setting_alarmnotification_lianxu: '連續', packages_business_setting_alarmnotification_cichugaojinggui: @@ -1474,6 +1476,9 @@ export default { '點擊變量名稱插入到模板中', packages_business_ignoreTimePrecision_round: '四捨五入', packages_business_ignoreTimePrecision_truncate: '截斷', + packages_business_treatEmptyStringAsNull: '空字符串視為 NULL', + packages_business_treatEmptyStringAsNull_tip: `

開啓後,源端和目標端在字段校驗時,空字符串("")將被視為與 NULL 相等。

+

適用於目標端為 Oracle 等會自動把空字符串轉換為 NULL 的數據庫,避免因數據庫語義差異導致的字段不一致誤報。

`, packages_business_validation_task_type: '校驗任務類型', packages_business_select_task_to_be_verified: '選擇被校驗的任務', packages_business_drag_file_here: diff --git a/packages/business/src/views/setting/AlarmSetting.vue b/packages/business/src/views/setting/AlarmSetting.vue index 752fd141f..a570538c0 100644 --- a/packages/business/src/views/setting/AlarmSetting.vue +++ b/packages/business/src/views/setting/AlarmSetting.vue @@ -166,6 +166,12 @@ const keyMapping = reactive({ SYSTEM_FLOW_EGINGE_UP: t( 'packages_business_setting_alarmnotification_dangrenwuuP', ), + ENGINE_OFFLINE: t( + 'packages_business_setting_alarmnotification_dangyinqinglixian', + ), + ENGINE_ONLINE: t( + 'packages_business_setting_alarmnotification_dangyinqinghuifu', + ), TASK_INSPECT_DIFFERENCE: t('packages_dag_task_inspect_difference_alarm'), TASK_RETRY_WARN: t('packages_dag_task_retry_alert'), API_SERVER_WORKER_DELAY_P50_WARN: t( diff --git a/packages/business/src/views/verification/Form.vue b/packages/business/src/views/verification/Form.vue index e5d87ff88..d6e0d8426 100644 --- a/packages/business/src/views/verification/Form.vue +++ b/packages/business/src/views/verification/Form.vue @@ -70,6 +70,7 @@ interface FormData { checkTableThreadNum: number alarmSettings: AlarmSetting[] ignoreTimePrecision?: boolean + treatEmptyStringAsNull?: boolean } interface Task { @@ -184,6 +185,7 @@ const form = reactive({ inconsistentNotifys: ['SYSTEM', 'EMAIL'], checkTableThreadNum: 10, roundingMode: 'HALF_UP', + treatEmptyStringAsNull: true, alarmSettings: [ { type: 'INSPECT', @@ -1090,6 +1092,25 @@ provide('ConnectorMap', ConnectorMap) + + + + +