fix(job): 修正工单查询逻辑中的字段引用和JSON路径

- 将字段引用从双引号改为无引号以适配数据库语法
- 更新JSON路径表达式以正确提取SOP标签信息
- 修正多处JOIN条件中的字段匹配逻辑
- 调整CASE语句中的工单等级判断值从'P'为'P0'
- 优化字符串处理函数去除多余括号和逗号
- 统一处理内容字段的JSON键名引用为processContent
This commit is contained in:
2025-11-18 15:06:35 +08:00
parent 3fa0ee2077
commit 7b9aadc020

View File

@@ -132,7 +132,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
" rwoa.PROCESSOR_ID AS \"correctPersonId\", " + " rwoa.PROCESSOR_ID AS \"correctPersonId\", " +
" rwoa.PROCESSOR_NAME AS \"correctPersonName\", " + " rwoa.PROCESSOR_NAME AS \"correctPersonName\", " +
" mwoe.\"LEVEL\" AS \"workOrderLevel\", " + " mwoe.\"LEVEL\" AS \"workOrderLevel\", " +
" rwoa.RESERVED_TIME3 AS \"correctDeadline\", " + " rwoa.RESERVED_TIME3 AS \"correctDeadLine\", " +
" rwoa.CONFIRM_PERSON_ID AS \"confirmPersonId\", " + " rwoa.CONFIRM_PERSON_ID AS \"confirmPersonId\", " +
" rwoa.CONFIRM_PERSON_NAME AS \"confirmPersonName\", " + " rwoa.CONFIRM_PERSON_NAME AS \"confirmPersonName\", " +
" mwoe.GMT_MODIFIED AS \"gmtModified\", " + " mwoe.GMT_MODIFIED AS \"gmtModified\", " +
@@ -161,15 +161,15 @@ public class AlibabaWorkOrderJob implements JobHandler {
" wo.GMT_MODIFIED, " + " wo.GMT_MODIFIED, " +
" wo.RESERVED_TIME3, " + " wo.RESERVED_TIME3, " +
" CASE " + " CASE " +
" WHEN wo.\"LEVEL\" = 'P' THEN '重大' " + " WHEN wo.\"LEVEL\" = 'P0' THEN '重大' " +
" ELSE '一般' " + " ELSE '一般' " +
" END AS \"LEVEL\", " + " END AS \"LEVEL\", " +
" wo.\"CONFIRM_PERSON_ID\", " + " wo.CONFIRM_PERSON_ID, " +
" wo.CONFIRM_PERSON_NAME, " + " wo.CONFIRM_PERSON_NAME, " +
" wo.TENANT, " + " wo.TENANT, " +
" ml.PROCESSOR_ID, " + " ml.PROCESSOR_ID, " +
" ml.PROCESSOR_NAME, " + " ml.PROCESSOR_NAME, " +
" JSON_VALUE(ml.CONTENT, '$.processedContent') AS PROCESS_CONTENT " + " JSON_VALUE(ml.CONTENT, '$.processContent') AS PROCESS_CONTENT " +
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
@@ -178,8 +178,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
" WHERE " + " WHERE " +
" wol.\"OPERATE_NAME\" = '完成' " + " wol.OPERATE_NAME = '完成' " +
" ) ml ON wo.\"WORK_ORDER_ID\" = ml.\"WORK_ORDER_ID\" " + " ) ml ON wo.WORK_ORDER_ID = ml.WORK_ORDER_ID " +
" LEFT JOIN \"XCAMPUS_SPACECENTER\".\"CAMPUS\" c ON c.UUID = wo.CAMPUS_ID " + " LEFT JOIN \"XCAMPUS_SPACECENTER\".\"CAMPUS\" c ON c.UUID = wo.CAMPUS_ID " +
" WHERE " + " WHERE " +
" wo.PARENT_ID IS NULL " + " wo.PARENT_ID IS NULL " +
@@ -191,8 +191,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo2 " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo2 " +
" WHERE " + " WHERE " +
" wo.\"WORK_ORDER_ID\" = wo2.\"WORK_ORDER_ID\" " + " wo.WORK_ORDER_ID = wo2.WORK_ORDER_ID " +
" AND wo2.\"RELATE_WORK_ORDER_ID\" IS NULL " + " AND wo2.RELATE_WORK_ORDER_ID IS NULL " +
" ) " + " ) " +
" ) mwo " + " ) mwo " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
@@ -203,7 +203,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
" REPLACE( " + " REPLACE( " +
" JSON_QUERY( " + " JSON_QUERY( " +
" wos.SOP_SCHEMA, " + " 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), " + " JSON_QUERY(sl.CONTENT, '$.sopInfo.*' WITH CONDITIONAL WRAPPER), " +
" '[', " + " '[', " +
" '' " + " '' " +
" ), ']', " + " ), " +
" ']', " +
" '' " + " '' " +
" ), " + " ), " +
" ',' " + " ',' " +
@@ -243,9 +244,9 @@ public class AlibabaWorkOrderJob implements JobHandler {
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
" WHERE " + " WHERE " +
" wol.\"OPERATE_NAME\" = '处理' " + " wol.OPERATE_NAME = '处理' " +
" ) sl ON wo.\"WORK_ORDER_ID\" = sl.\"WORK_ORDER_ID\" " + " ) 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\" " + " LEFT JOIN \"XCAMPUS_WORKORDER\".\"WORK_ORDER_SCHEMA\" wos ON wo.WORK_ORDER_ID = wos.WORK_ORDER_ID " +
" WHERE " + " WHERE " +
" wo.PARENT_ID IN ( " + " wo.PARENT_ID IN ( " +
" SELECT " + " SELECT " +
@@ -263,8 +264,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" ) mwoe " + " ) mwoe " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
" SELECT " + " SELECT " +
" rwoe.\"RELATE_WORK_ORDER_ID\", " + " rwoe.RELATE_WORK_ORDER_ID, " +
" LISTAGG(rwoe.\"PROCESS_CONTENT\", ',') WITHIN GROUP ( " + " LISTAGG(rwoe.PROCESS_CONTENT, ',') WITHIN GROUP ( " +
" ORDER BY " + " ORDER BY " +
" rwoe.WORK_ORDER_ID " + " rwoe.WORK_ORDER_ID " +
" ) AS PROCESS_CONTENT, " + " ) AS PROCESS_CONTENT, " +
@@ -317,16 +318,16 @@ public class AlibabaWorkOrderJob implements JobHandler {
" wo.GMT_MODIFIED, " + " wo.GMT_MODIFIED, " +
" wo.RESERVED_TIME3, " + " wo.RESERVED_TIME3, " +
" CASE " + " CASE " +
" WHEN wo.\"LEVEL\" = 'P' THEN '重大' " + " WHEN wo.\"LEVEL\" = 'P0' THEN '重大' " +
" ELSE '一般' " + " ELSE '一般' " +
" END AS \"LEVEL\", " + " END AS \"LEVEL\", " +
" wo.\"CONFIRM_PERSON_ID\", " + " wo.CONFIRM_PERSON_ID, " +
" wo.CONFIRM_PERSON_NAME, " + " wo.CONFIRM_PERSON_NAME, " +
" wo.TENANT, " + " wo.TENANT, " +
" wo.RELATE_WORK_ORDER_ID, " + " wo.RELATE_WORK_ORDER_ID, " +
" ml.PROCESSOR_ID, " + " ml.PROCESSOR_ID, " +
" ml.PROCESSOR_NAME, " + " ml.PROCESSOR_NAME, " +
" JSON_VALUE(ml.CONTENT, '$.processedContent') AS PROCESS_CONTENT " + " JSON_VALUE(ml.CONTENT, '$.processContent') AS PROCESS_CONTENT " +
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
@@ -335,8 +336,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
" WHERE " + " WHERE " +
" wol.\"OPERATE_NAME\" = '完成' " + " wol.OPERATE_NAME = '完成' " +
" ) ml ON wo.\"WORK_ORDER_ID\" = ml.\"WORK_ORDER_ID\" " + " ) ml ON wo.WORK_ORDER_ID = ml.WORK_ORDER_ID " +
" LEFT JOIN \"XCAMPUS_SPACECENTER\".\"CAMPUS\" c ON c.UUID = wo.CAMPUS_ID " + " LEFT JOIN \"XCAMPUS_SPACECENTER\".\"CAMPUS\" c ON c.UUID = wo.CAMPUS_ID " +
" WHERE " + " WHERE " +
" wo.PARENT_ID IS NULL " + " wo.PARENT_ID IS NULL " +
@@ -348,8 +349,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo2 " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo2 " +
" WHERE " + " WHERE " +
" wo.\"WORK_ORDER_ID\" = wo2.\"WORK_ORDER_ID\" " + " wo.WORK_ORDER_ID = wo2.WORK_ORDER_ID " +
" AND wo2.\"RELATE_WORK_ORDER_ID\" IS NOT NULL " + " AND wo2.RELATE_WORK_ORDER_ID IS NOT NULL " +
" ) " + " ) " +
" ) rwo " + " ) rwo " +
" LEFT JOIN ( " + " LEFT JOIN ( " +
@@ -360,7 +361,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
" REPLACE( " + " REPLACE( " +
" JSON_QUERY( " + " JSON_QUERY( " +
" wos.SOP_SCHEMA, " + " 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), " + " JSON_QUERY(sl.CONTENT, '$.sopInfo.*' WITH CONDITIONAL WRAPPER), " +
" '[', " + " '[', " +
" '' " + " '' " +
" ), ']', " + " ), " +
" ']', " +
" '' " + " '' " +
" ), " + " ), " +
" ',' " + " ',' " +
@@ -400,9 +402,9 @@ public class AlibabaWorkOrderJob implements JobHandler {
" FROM " + " FROM " +
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " + " \"XCAMPUS_WORKORDER\".\"WORK_ORDER_LOG\" wol " +
" WHERE " + " WHERE " +
" wol.\"OPERATE_NAME\" = '处理' " + " wol.OPERATE_NAME = '处理' " +
" ) sl ON wo.\"WORK_ORDER_ID\" = sl.\"WORK_ORDER_ID\" " + " ) 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\" " + " LEFT JOIN \"XCAMPUS_WORKORDER\".\"WORK_ORDER_SCHEMA\" wos ON wo.WORK_ORDER_ID = wos.WORK_ORDER_ID " +
" WHERE " + " WHERE " +
" wo.PARENT_ID IN ( " + " wo.PARENT_ID IN ( " +
" SELECT " + " SELECT " +
@@ -419,9 +421,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" ) swo ON rwo.WORK_ORDER_ID = swo.PARENT_ID " + " ) swo ON rwo.WORK_ORDER_ID = swo.PARENT_ID " +
" ) rwoe " + " ) rwoe " +
" GROUP BY " + " GROUP BY " +
" rwoe.\"RELATE_WORK_ORDER_ID\" " + " rwoe.RELATE_WORK_ORDER_ID " +
" ) rwoa ON mwoe.WORK_ORDER_ID = rwoa.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)) { 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); String formattedStart = LocalDateTimeUtil.format(startTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);