fix(job): 修正工单查询逻辑中的字段引用和JSON路径
- 将字段引用从双引号改为无引号以适配数据库语法 - 更新JSON路径表达式以正确提取SOP标签信息 - 修正多处JOIN条件中的字段匹配逻辑 - 调整CASE语句中的工单等级判断值从'P'为'P0' - 优化字符串处理函数去除多余括号和逗号 - 统一处理内容字段的JSON键名引用为processContent
This commit is contained in:
@@ -132,7 +132,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" rwoa.PROCESSOR_ID AS \"correctPersonId\", " +
|
||||
" rwoa.PROCESSOR_NAME AS \"correctPersonName\", " +
|
||||
" mwoe.\"LEVEL\" AS \"workOrderLevel\", " +
|
||||
" rwoa.RESERVED_TIME3 AS \"correctDeadline\", " +
|
||||
" rwoa.RESERVED_TIME3 AS \"correctDeadLine\", " +
|
||||
" rwoa.CONFIRM_PERSON_ID AS \"confirmPersonId\", " +
|
||||
" rwoa.CONFIRM_PERSON_NAME AS \"confirmPersonName\", " +
|
||||
" mwoe.GMT_MODIFIED AS \"gmtModified\", " +
|
||||
@@ -161,15 +161,15 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" wo.GMT_MODIFIED, " +
|
||||
" wo.RESERVED_TIME3, " +
|
||||
" CASE " +
|
||||
" WHEN wo.\"LEVEL\" = 'P' THEN '重大' " +
|
||||
" WHEN wo.\"LEVEL\" = 'P0' THEN '重大' " +
|
||||
" ELSE '一般' " +
|
||||
" END AS \"LEVEL\", " +
|
||||
" wo.\"CONFIRM_PERSON_ID\", " +
|
||||
" wo.CONFIRM_PERSON_ID, " +
|
||||
" wo.CONFIRM_PERSON_NAME, " +
|
||||
" wo.TENANT, " +
|
||||
" ml.PROCESSOR_ID, " +
|
||||
" ml.PROCESSOR_NAME, " +
|
||||
" JSON_VALUE(ml.CONTENT, '$.processedContent') AS PROCESS_CONTENT " +
|
||||
" JSON_VALUE(ml.CONTENT, '$.processContent') AS PROCESS_CONTENT " +
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
||||
" LEFT JOIN ( " +
|
||||
@@ -178,8 +178,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
|
||||
" WHERE " +
|
||||
" wol.\"OPERATE_NAME\" = '完成' " +
|
||||
" ) ml ON wo.\"WORK_ORDER_ID\" = ml.\"WORK_ORDER_ID\" " +
|
||||
" wol.OPERATE_NAME = '完成' " +
|
||||
" ) ml ON wo.WORK_ORDER_ID = ml.WORK_ORDER_ID " +
|
||||
" LEFT JOIN \"XCAMPUS_SPACECENTER\".\"CAMPUS\" c ON c.UUID = wo.CAMPUS_ID " +
|
||||
" WHERE " +
|
||||
" wo.PARENT_ID IS NULL " +
|
||||
@@ -191,8 +191,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo2 " +
|
||||
" WHERE " +
|
||||
" wo.\"WORK_ORDER_ID\" = wo2.\"WORK_ORDER_ID\" " +
|
||||
" AND wo2.\"RELATE_WORK_ORDER_ID\" IS NULL " +
|
||||
" wo.WORK_ORDER_ID = wo2.WORK_ORDER_ID " +
|
||||
" AND wo2.RELATE_WORK_ORDER_ID IS NULL " +
|
||||
" ) " +
|
||||
" ) mwo " +
|
||||
" LEFT JOIN ( " +
|
||||
@@ -203,7 +203,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" REPLACE( " +
|
||||
" JSON_QUERY( " +
|
||||
" wos.SOP_SCHEMA, " +
|
||||
" '$[0].sopSchema.componentsTree[0].children[0].children[*].props.label' WITH CONDITIONAL WRAPPER " +
|
||||
" '$[0].sopSchema.componentsTree[0].children[0].children[0].children[*].props.label' WITH CONDITIONAL WRAPPER " +
|
||||
" ), " +
|
||||
" '[', " +
|
||||
" '' " +
|
||||
@@ -222,7 +222,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" JSON_QUERY(sl.CONTENT, '$.sopInfo.*' WITH CONDITIONAL WRAPPER), " +
|
||||
" '[', " +
|
||||
" '' " +
|
||||
" ), ']', " +
|
||||
" ), " +
|
||||
" ']', " +
|
||||
" '' " +
|
||||
" ), " +
|
||||
" ',' " +
|
||||
@@ -243,9 +244,9 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
|
||||
" WHERE " +
|
||||
" wol.\"OPERATE_NAME\" = '处理' " +
|
||||
" ) sl ON wo.\"WORK_ORDER_ID\" = sl.\"WORK_ORDER_ID\" " +
|
||||
" LEFT JOIN \"XCAMPUS_WORKORDER\".\"WORK_ORDER_SCHEMA\" wos ON wo.\"WORK_ORDER_ID\" = wos.\"WORK_ORDER_ID\" " +
|
||||
" wol.OPERATE_NAME = '处理' " +
|
||||
" ) sl ON wo.WORK_ORDER_ID = sl.WORK_ORDER_ID " +
|
||||
" LEFT JOIN \"XCAMPUS_WORKORDER\".\"WORK_ORDER_SCHEMA\" wos ON wo.WORK_ORDER_ID = wos.WORK_ORDER_ID " +
|
||||
" WHERE " +
|
||||
" wo.PARENT_ID IN ( " +
|
||||
" SELECT " +
|
||||
@@ -263,8 +264,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" ) mwoe " +
|
||||
" LEFT JOIN ( " +
|
||||
" SELECT " +
|
||||
" rwoe.\"RELATE_WORK_ORDER_ID\", " +
|
||||
" LISTAGG(rwoe.\"PROCESS_CONTENT\", ',') WITHIN GROUP ( " +
|
||||
" rwoe.RELATE_WORK_ORDER_ID, " +
|
||||
" LISTAGG(rwoe.PROCESS_CONTENT, ',') WITHIN GROUP ( " +
|
||||
" ORDER BY " +
|
||||
" rwoe.WORK_ORDER_ID " +
|
||||
" ) AS PROCESS_CONTENT, " +
|
||||
@@ -317,16 +318,16 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" wo.GMT_MODIFIED, " +
|
||||
" wo.RESERVED_TIME3, " +
|
||||
" CASE " +
|
||||
" WHEN wo.\"LEVEL\" = 'P' THEN '重大' " +
|
||||
" WHEN wo.\"LEVEL\" = 'P0' THEN '重大' " +
|
||||
" ELSE '一般' " +
|
||||
" END AS \"LEVEL\", " +
|
||||
" wo.\"CONFIRM_PERSON_ID\", " +
|
||||
" wo.CONFIRM_PERSON_ID, " +
|
||||
" wo.CONFIRM_PERSON_NAME, " +
|
||||
" wo.TENANT, " +
|
||||
" wo.RELATE_WORK_ORDER_ID, " +
|
||||
" ml.PROCESSOR_ID, " +
|
||||
" ml.PROCESSOR_NAME, " +
|
||||
" JSON_VALUE(ml.CONTENT, '$.processedContent') AS PROCESS_CONTENT " +
|
||||
" JSON_VALUE(ml.CONTENT, '$.processContent') AS PROCESS_CONTENT " +
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
||||
" LEFT JOIN ( " +
|
||||
@@ -335,8 +336,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
|
||||
" WHERE " +
|
||||
" wol.\"OPERATE_NAME\" = '完成' " +
|
||||
" ) ml ON wo.\"WORK_ORDER_ID\" = ml.\"WORK_ORDER_ID\" " +
|
||||
" wol.OPERATE_NAME = '完成' " +
|
||||
" ) ml ON wo.WORK_ORDER_ID = ml.WORK_ORDER_ID " +
|
||||
" LEFT JOIN \"XCAMPUS_SPACECENTER\".\"CAMPUS\" c ON c.UUID = wo.CAMPUS_ID " +
|
||||
" WHERE " +
|
||||
" wo.PARENT_ID IS NULL " +
|
||||
@@ -348,8 +349,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo2 " +
|
||||
" WHERE " +
|
||||
" wo.\"WORK_ORDER_ID\" = wo2.\"WORK_ORDER_ID\" " +
|
||||
" AND wo2.\"RELATE_WORK_ORDER_ID\" IS NOT NULL " +
|
||||
" wo.WORK_ORDER_ID = wo2.WORK_ORDER_ID " +
|
||||
" AND wo2.RELATE_WORK_ORDER_ID IS NOT NULL " +
|
||||
" ) " +
|
||||
" ) rwo " +
|
||||
" LEFT JOIN ( " +
|
||||
@@ -360,7 +361,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" REPLACE( " +
|
||||
" JSON_QUERY( " +
|
||||
" wos.SOP_SCHEMA, " +
|
||||
" '$[0].sopSchema.componentsTree[0].children[0].children[*].props.label' WITH CONDITIONAL WRAPPER " +
|
||||
" '$[0].sopSchema.componentsTree[0].children[0].children[0].children[*].props.label' WITH CONDITIONAL WRAPPER " +
|
||||
" ), " +
|
||||
" '[', " +
|
||||
" '' " +
|
||||
@@ -379,7 +380,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" JSON_QUERY(sl.CONTENT, '$.sopInfo.*' WITH CONDITIONAL WRAPPER), " +
|
||||
" '[', " +
|
||||
" '' " +
|
||||
" ), ']', " +
|
||||
" ), " +
|
||||
" ']', " +
|
||||
" '' " +
|
||||
" ), " +
|
||||
" ',' " +
|
||||
@@ -400,9 +402,9 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" FROM " +
|
||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
|
||||
" WHERE " +
|
||||
" wol.\"OPERATE_NAME\" = '处理' " +
|
||||
" ) sl ON wo.\"WORK_ORDER_ID\" = sl.\"WORK_ORDER_ID\" " +
|
||||
" LEFT JOIN \"XCAMPUS_WORKORDER\".\"WORK_ORDER_SCHEMA\" wos ON wo.\"WORK_ORDER_ID\" = wos.\"WORK_ORDER_ID\" " +
|
||||
" wol.OPERATE_NAME = '处理' " +
|
||||
" ) sl ON wo.WORK_ORDER_ID = sl.WORK_ORDER_ID " +
|
||||
" LEFT JOIN \"XCAMPUS_WORKORDER\".\"WORK_ORDER_SCHEMA\" wos ON wo.WORK_ORDER_ID = wos.WORK_ORDER_ID " +
|
||||
" WHERE " +
|
||||
" wo.PARENT_ID IN ( " +
|
||||
" SELECT " +
|
||||
@@ -419,9 +421,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
||||
" ) swo ON rwo.WORK_ORDER_ID = swo.PARENT_ID " +
|
||||
" ) rwoe " +
|
||||
" GROUP BY " +
|
||||
" rwoe.\"RELATE_WORK_ORDER_ID\" " +
|
||||
" ) rwoa ON mwoe.WORK_ORDER_ID = rwoa.RELATE_WORK_ORDER_ID "
|
||||
);
|
||||
" rwoe.RELATE_WORK_ORDER_ID " +
|
||||
" ) rwoa ON mwoe.WORK_ORDER_ID = rwoa.RELATE_WORK_ORDER_ID ");
|
||||
// 如果时间参数存在并且合法,则添加时间条件
|
||||
if (StrUtil.equals("1", params) && Objects.nonNull(startTime) && Objects.nonNull(endTime) && startTime.isBefore(endTime)) {
|
||||
String formattedStart = LocalDateTimeUtil.format(startTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
|
||||
|
||||
Reference in New Issue
Block a user