feat(biz): 优化工单数据处理逻辑
- 引入Hutool JSON工具类处理JSON数据 - 简化导入语句,使用通配符导入java.util包 - 移除handleActionContent方法,直接使用原始数据 - 新增对relateSubSopSchema和relateSubProcessContent字段的JSON解析逻辑 - 重构SQL查询语句,调整字段映射关系 - 修改handleCheckContent方法支持JSONArray格式数据处理 - 新增handleSopSchema和handleRelateProcessContent方法处理JSON数组 - 实现handleProcessContent方法关联处理检查内容和流程内容 - 优化代码结构,提升数据处理准确性
This commit is contained in:
@@ -3,6 +3,9 @@ package com.jeelowcode.module.biz.job;
|
|||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.db.sql.SqlUtil;
|
import cn.hutool.db.sql.SqlUtil;
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
|
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
|
||||||
import com.jeelowcode.module.biz.entity.AlibabaWorkOrder;
|
import com.jeelowcode.module.biz.entity.AlibabaWorkOrder;
|
||||||
import com.jeelowcode.module.biz.service.IAlibabaWorkOrderService;
|
import com.jeelowcode.module.biz.service.IAlibabaWorkOrderService;
|
||||||
@@ -18,12 +21,9 @@ import java.sql.Connection;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.stream.Collectors;
|
||||||
import java.util.Map;
|
import java.util.stream.Stream;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
workOrder.setCheckPersonName(resultSet.getString("checkPersonName"));
|
workOrder.setCheckPersonName(resultSet.getString("checkPersonName"));
|
||||||
workOrder.setCheckTime(resultSet.getObject("checkTime", LocalDateTime.class));
|
workOrder.setCheckTime(resultSet.getObject("checkTime", LocalDateTime.class));
|
||||||
workOrder.setCheckQuestion(resultSet.getString("checkQuestion"));
|
workOrder.setCheckQuestion(resultSet.getString("checkQuestion"));
|
||||||
workOrder.setCorrectAction(handleActionContent(resultSet.getString("correctAction")));
|
workOrder.setCorrectAction(resultSet.getString("correctAction"));
|
||||||
workOrder.setCorrectPersonId(resultSet.getString("correctPersonId"));
|
workOrder.setCorrectPersonId(resultSet.getString("correctPersonId"));
|
||||||
workOrder.setCorrectPersonName(resultSet.getString("correctPersonName"));
|
workOrder.setCorrectPersonName(resultSet.getString("correctPersonName"));
|
||||||
workOrder.setWorkOrderLevel(resultSet.getString("workOrderLevel"));
|
workOrder.setWorkOrderLevel(resultSet.getString("workOrderLevel"));
|
||||||
@@ -98,6 +98,28 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
workOrder.setGmtSubModified(resultSet.getObject("gmtSubModified", LocalDateTime.class));
|
workOrder.setGmtSubModified(resultSet.getObject("gmtSubModified", LocalDateTime.class));
|
||||||
workOrder.setGmtRelateModified(resultSet.getObject("gmtRelateModified", LocalDateTime.class));
|
workOrder.setGmtRelateModified(resultSet.getObject("gmtRelateModified", LocalDateTime.class));
|
||||||
workOrder.setGmtRelateSubModified(resultSet.getObject("gmtRelateSubModified", LocalDateTime.class));
|
workOrder.setGmtRelateSubModified(resultSet.getObject("gmtRelateSubModified", LocalDateTime.class));
|
||||||
|
// 这两个数据还是json,需要解析到属性里
|
||||||
|
String relateSubSopSchema = resultSet.getString("relateSubSopSchema");
|
||||||
|
String relateSubProcessContent = resultSet.getString("relateSubProcessContent");
|
||||||
|
if (JSONUtil.isTypeJSONArray(relateSubSopSchema) && JSONUtil.isTypeJSONArray(relateSubProcessContent)) {
|
||||||
|
JSONArray sopSchemaArray = handleSopSchema(relateSubSopSchema);
|
||||||
|
JSONArray processContentArray = handleRelateProcessContent(relateSubProcessContent);
|
||||||
|
List<String> correctList = handleProcessContent(sopSchemaArray, processContentArray);
|
||||||
|
// 将取出来的数据添加到整改措施中
|
||||||
|
if (StrUtil.isEmpty(workOrder.getCorrectAction())) {
|
||||||
|
workOrder.setCorrectAction(StrUtil.join("\n", correctList));
|
||||||
|
} else {
|
||||||
|
workOrder.setCorrectAction(workOrder.getCorrectAction() + "\n" + StrUtil.join("\n", correctList));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String checkContent = resultSet.getString("checkContent");
|
||||||
|
String processContent = resultSet.getString("processContent");
|
||||||
|
if (JSONUtil.isTypeJSONArray(checkContent) && JSONUtil.isTypeJSONArray(processContent)) {
|
||||||
|
JSONArray checkContentArray = handleSopSchema(checkContent);
|
||||||
|
JSONArray processContentArray = new JSONArray(processContent);
|
||||||
|
List<String> checkQuestionList = handleProcessContent(checkContentArray, processContentArray);
|
||||||
|
workOrder.setCheckQuestion(StrUtil.join("\n", checkQuestionList));
|
||||||
|
}
|
||||||
workOrderList.add(workOrder);
|
workOrderList.add(workOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,313 +144,308 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
*/
|
*/
|
||||||
public static String buildSql(String params, LocalDateTime startTime, LocalDateTime endTime) {
|
public static String buildSql(String params, LocalDateTime startTime, LocalDateTime endTime) {
|
||||||
StringBuilder sqlBuilder = new StringBuilder();
|
StringBuilder sqlBuilder = new StringBuilder();
|
||||||
sqlBuilder.append("SELECT " +
|
sqlBuilder.append("select " +
|
||||||
" mwoe.ID AS \"id\", " +
|
" mwoe.\"ID\" as \"id\", " +
|
||||||
" mwoe.WORK_ORDER_ID AS \"workOrderId\", " +
|
" mwoe.\"WORK_ORDER_ID\" as \"workOrderId\", " +
|
||||||
" mwoe.CAMPUS_ID AS \"campusId\", " +
|
" mwoe.\"CAMPUS_ID\" as \"campusId\", " +
|
||||||
" mwoe.CAMPUS_NAME AS \"campusName\", " +
|
" mwoe.\"CAMPUS_NAME\" as \"campusName\", " +
|
||||||
" mwoe.REMARK AS \"checkArea\", " +
|
" mwoe.\"REMARK\" as \"checkArea\", " +
|
||||||
" mwoe.OBJ_NAME AS \"checkItem\", " +
|
" mwoe.\"OBJ_NAME\" as \"checkItem\", " +
|
||||||
" mwoe.SUB_SOP_SCHEMA AS \"checkContent\", " +
|
" mwoe.\"SUB_SOP_SCHEMA\" as \"checkContent\", " +
|
||||||
" mwoe.CREATOR_ID AS \"checkPersonId\", " +
|
" mwoe.\"SUB_PROCESS_CONTENT\" as \"processContent\", " +
|
||||||
" mwoe.CREATOR_NAME AS \"checkPersonName\", " +
|
" mwoe.\"CREATOR_ID\" as \"checkPersonId\", " +
|
||||||
" mwoe.GMT_CREATE AS \"checkTime\", " +
|
" mwoe.\"CREATOR_NAME\" as \"checkPersonName\", " +
|
||||||
" mwoe.PROCESS_CONTENT AS \"checkQuestion\", " +
|
" mwoe.\"GMT_CREATE\" as \"checkTime\", " +
|
||||||
" CONCAT_WS(',', rwoa.PROCESS_CONTENT, rwoa.SUB_SOP_SCHEMA) AS \"correctAction\", " +
|
" mwoe.\"PROCESS_CONTENT\" as \"checkQuestion\", " +
|
||||||
" rwoa.PROCESSOR_ID AS \"correctPersonId\", " +
|
" mwoe.\"LEVEL\" as \"workOrderLevel\", " +
|
||||||
" rwoa.PROCESSOR_NAME AS \"correctPersonName\", " +
|
" concat_ws(',', rwoa.\"RELATE_PROCESS_CONTENT\") as \"correctAction\", " +
|
||||||
" mwoe.\"LEVEL\" AS \"workOrderLevel\", " +
|
" rwoa.\"RELATE_PROCESSOR_ID\" as \"correctPersonId\", " +
|
||||||
" rwoa.RESERVED_TIME3 AS \"correctDeadLine\", " +
|
" rwoa.\"RELATE_PROCESSOR_NAME\" as \"correctPersonName\", " +
|
||||||
" rwoa.CONFIRM_PERSON_ID AS \"confirmPersonId\", " +
|
" rwoa.\"RELATE_CONFIRM_PERSON_ID\" as \"confirmPersonId\", " +
|
||||||
" rwoa.CONFIRM_PERSON_NAME AS \"confirmPersonName\", " +
|
" rwoa.\"RELATE_CONFIRM_PERSON_NAME\" as \"confirmPersonName\", " +
|
||||||
" mwoe.GMT_MODIFIED AS \"gmtModified\", " +
|
" rwoa.\"RELATE_RESERVED_TIME3\" as \"correctDeadLine\", " +
|
||||||
" mwoe.SUB_GMT_MODIFIED AS \"gmtSubModified\", " +
|
" rwoa.\"RELATE_SUB_SOP_SCHEMA\" as \"relateSubSopSchema\", " +
|
||||||
" rwoa.GMT_MODIFIED AS \"gmtRelateModified\", " +
|
" rwoa.\"RELATE_SUB_PROCESS_CONTENT\" as \"relateSubProcessContent\", " +
|
||||||
" rwoa.SUB_GMT_MODIFIED AS \"gmtRelateSubModified\" " +
|
" mwoe.\"GMT_MODIFIED\" as \"gmtModified\", " +
|
||||||
"FROM " +
|
" mwoe.\"SUB_GMT_MODIFIED\" as \"gmtSubModified\", " +
|
||||||
|
" rwoa.\"RELATE_GMT_MODIFIED\" as \"gmtRelateModified\", " +
|
||||||
|
" rwoa.\"RELATE_SUB_GMT_MODIFIED\" as \"gmtRelateSubModified\" " +
|
||||||
|
"from " +
|
||||||
" ( " +
|
" ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" mwo.*, " +
|
" mwo.*, " +
|
||||||
" swo.SOP_SCHEMA AS SUB_SOP_SCHEMA, " +
|
" swo.\"SUB_SOP_SCHEMA\", " +
|
||||||
" swo.PROCESS_CONTENT AS SUB_PROCESS_CONTENT, " +
|
" swo.\"SUB_PROCESS_CONTENT\", " +
|
||||||
" swo.GMT_MODIFIED AS SUB_GMT_MODIFIED, " +
|
" swo.\"OBJ_NAME\", " +
|
||||||
" swo.OBJ_NAME AS OBJ_NAME " +
|
" swo.\"SUB_GMT_MODIFIED\" " +
|
||||||
" FROM " +
|
" from " +
|
||||||
" ( " +
|
" ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" wo.ID, " +
|
" wo.\"ID\", " +
|
||||||
" wo.WORK_ORDER_ID, " +
|
" wo.\"WORK_ORDER_ID\", " +
|
||||||
" wo.CAMPUS_ID, " +
|
" wo.\"CAMPUS_ID\", " +
|
||||||
" c.NAME AS CAMPUS_NAME, " +
|
" c.\"NAME\" as \"CAMPUS_NAME\", " +
|
||||||
" wo.REMARK, " +
|
" wo.\"REMARK\", " +
|
||||||
" wo.CREATOR_ID, " +
|
" wo.\"CREATOR_ID\", " +
|
||||||
" wo.CREATOR_NAME, " +
|
" wo.\"CREATOR_NAME\", " +
|
||||||
" wo.GMT_CREATE, " +
|
" wo.\"GMT_CREATE\", " +
|
||||||
" wo.GMT_MODIFIED, " +
|
" wo.\"GMT_MODIFIED\", " +
|
||||||
" wo.RESERVED_TIME3, " +
|
" wo.\"RESERVED_TIME3\", " +
|
||||||
" CASE " +
|
" case " +
|
||||||
" WHEN wo.\"LEVEL\" = 'P0' 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, '$.processContent') AS PROCESS_CONTENT " +
|
" json_value(ml.\"CONTENT\", '$.processedContent') as \"PROCESS_CONTENT\" " +
|
||||||
" FROM " +
|
" from " +
|
||||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
||||||
" LEFT JOIN ( " +
|
" left join ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" * " +
|
" * " +
|
||||||
" 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 " +
|
||||||
" AND wo.ORDER_TYPE_PATH_NAME = '风险隐患' " +
|
" AND wo.\"ORDER_TYPE_PATH_NAME\" = '风险隐患' " +
|
||||||
" AND wo.TENANT = '1821414781587267584' " +
|
" and wo.\"TENANT\" = '1821414781587267584' " +
|
||||||
" AND EXISTS ( " +
|
" and exists ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" 1 " +
|
" 1 " +
|
||||||
" 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 ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" wo.PARENT_ID, " +
|
" wo.\"PARENT_ID\", " +
|
||||||
" LISTAGG( " +
|
" concat( " +
|
||||||
" REPLACE( " +
|
|
||||||
" REPLACE( " +
|
|
||||||
" JSON_QUERY( " +
|
|
||||||
" wos.SOP_SCHEMA, " +
|
|
||||||
" '$[0].sopSchema.componentsTree[0].children[0].children[0].children[*].props.label' WITH CONDITIONAL WRAPPER " +
|
|
||||||
" ), " +
|
|
||||||
" '[', " +
|
" '[', " +
|
||||||
" '' " +
|
" listagg( " +
|
||||||
" ), " +
|
" json_query( " +
|
||||||
" ']', " +
|
" wos.\"SOP_SCHEMA\", " +
|
||||||
" '' " +
|
" '$[0].sopSchema.componentsTree[0].children[0].children[0].children[*].props' returning varchar(10000) with conditional wrapper " +
|
||||||
" ), " +
|
" ), " +
|
||||||
" ',' " +
|
" ',' " +
|
||||||
" ) WITHIN GROUP ( " +
|
" ) within group ( " +
|
||||||
" ORDER BY " +
|
" order by " +
|
||||||
" wo.WORK_ORDER_ID " +
|
" wo.\"WORK_ORDER_ID\" " +
|
||||||
" ) AS SOP_SCHEMA, " +
|
" ), " +
|
||||||
" LISTAGG( " +
|
" ']' " +
|
||||||
" REPLACE( " +
|
" ) as \"SUB_SOP_SCHEMA\", " +
|
||||||
" REPLACE( " +
|
" concat( " +
|
||||||
" JSON_QUERY(sl.CONTENT, '$.sopInfo.*' WITH CONDITIONAL WRAPPER), " +
|
|
||||||
" '[', " +
|
" '[', " +
|
||||||
" '' " +
|
" listagg( " +
|
||||||
" ), " +
|
" json_query(sl.\"CONTENT\", '$.sopInfo' with conditional wrapper), " +
|
||||||
" ']', " +
|
|
||||||
" '' " +
|
|
||||||
" ), " +
|
|
||||||
" ',' " +
|
" ',' " +
|
||||||
" ) WITHIN GROUP ( " +
|
" ) within group ( " +
|
||||||
" ORDER BY " +
|
" order by " +
|
||||||
" wo.WORK_ORDER_ID " +
|
" wo.\"WORK_ORDER_ID\" " +
|
||||||
" ) AS PROCESS_CONTENT, " +
|
" ), " +
|
||||||
" LISTAGG(OBJ_NAME, ',') WITHIN GROUP ( " +
|
" ']' " +
|
||||||
" ORDER BY " +
|
" ) as \"SUB_PROCESS_CONTENT\", " +
|
||||||
" wo.WORK_ORDER_ID " +
|
" listagg(wo.\"OBJ_NAME\", ',') within group ( " +
|
||||||
" ) AS OBJ_NAME, " +
|
" order by " +
|
||||||
" MAX(wo.GMT_MODIFIED) AS GMT_MODIFIED " +
|
" wo.\"WORK_ORDER_ID\" " +
|
||||||
" FROM " +
|
" ) as \"OBJ_NAME\", " +
|
||||||
|
" max(wo.\"GMT_MODIFIED\") as \"SUB_GMT_MODIFIED\" " +
|
||||||
|
" from " +
|
||||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
||||||
" LEFT JOIN ( " +
|
" left join ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" * " +
|
" * " +
|
||||||
" 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 " +
|
||||||
" WORK_ORDER_ID " +
|
" \"WORK_ORDER_ID\" " +
|
||||||
" FROM " +
|
" from " +
|
||||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" " +
|
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" " +
|
||||||
" WHERE " +
|
" where " +
|
||||||
" ORDER_TYPE_PATH_NAME = '风险隐患' " +
|
" \"ORDER_TYPE_PATH_NAME\" = '风险隐患' " +
|
||||||
" ) " +
|
" ) " +
|
||||||
" AND wo.ORDER_TYPE_PATH_NAME = '系统默认子单类型' " +
|
" and wo.\"ORDER_TYPE_PATH_NAME\" = '系统默认子单类型' " +
|
||||||
" AND wo.TENANT = '1821414781587267584' " +
|
" and wo.\"TENANT\" = '1821414781587267584' " +
|
||||||
" GROUP BY " +
|
" group by " +
|
||||||
" wo.PARENT_ID " +
|
" wo.\"PARENT_ID\" " +
|
||||||
" ) swo ON mwo.WORK_ORDER_ID = swo.PARENT_ID " +
|
" ) swo on mwo.\"WORK_ORDER_ID\" = swo.\"PARENT_ID\" " +
|
||||||
" ) 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 \"RELATE_PROCESS_CONTENT\", " +
|
||||||
" LISTAGG(rwoe.SUB_PROCESS_CONTENT, ',') WITHIN GROUP ( " +
|
" concat( " +
|
||||||
" ORDER BY " +
|
" '[', " +
|
||||||
" rwoe.WORK_ORDER_ID " +
|
" listagg(rwoe.\"SUB_PROCESS_CONTENT\", ',') within group ( " +
|
||||||
" ) AS SUB_PROCESS_CONTENT, " +
|
" order by " +
|
||||||
" LISTAGG(rwoe.SUB_SOP_SCHEMA, ',') WITHIN GROUP ( " +
|
" rwoe.\"WORK_ORDER_ID\" " +
|
||||||
" ORDER BY " +
|
" ), " +
|
||||||
" rwoe.WORK_ORDER_ID " +
|
" ']' " +
|
||||||
" ) AS SUB_SOP_SCHEMA, " +
|
" ) as \"RELATE_SUB_PROCESS_CONTENT\", " +
|
||||||
" LISTAGG(rwoe.PROCESSOR_ID, ',') WITHIN GROUP ( " +
|
" concat( " +
|
||||||
" ORDER BY " +
|
" '[', " +
|
||||||
" rwoe.WORK_ORDER_ID " +
|
" listagg(rwoe.\"SUB_SOP_SCHEMA\", ',') within group ( " +
|
||||||
" ) AS PROCESSOR_ID, " +
|
" order by " +
|
||||||
" LISTAGG(rwoe.PROCESSOR_NAME, ',') WITHIN GROUP ( " +
|
" rwoe.\"WORK_ORDER_ID\" " +
|
||||||
" ORDER BY " +
|
" ), " +
|
||||||
" rwoe.WORK_ORDER_ID " +
|
" ']' " +
|
||||||
" ) AS PROCESSOR_NAME, " +
|
" ) as \"RELATE_SUB_SOP_SCHEMA\", " +
|
||||||
" LISTAGG(rwoe.CONFIRM_PERSON_ID, ',') WITHIN GROUP ( " +
|
" listagg(rwoe.\"PROCESSOR_ID\", ',') within group ( " +
|
||||||
" ORDER BY " +
|
" order by " +
|
||||||
" rwoe.WORK_ORDER_ID " +
|
" rwoe.\"WORK_ORDER_ID\" " +
|
||||||
" ) AS CONFIRM_PERSON_ID, " +
|
" ) as \"RELATE_PROCESSOR_ID\", " +
|
||||||
" LISTAGG(rwoe.CONFIRM_PERSON_NAME, ',') WITHIN GROUP ( " +
|
" listagg(rwoe.\"PROCESSOR_NAME\", ',') within group ( " +
|
||||||
" ORDER BY " +
|
" order by " +
|
||||||
" rwoe.WORK_ORDER_ID " +
|
" rwoe.\"WORK_ORDER_ID\" " +
|
||||||
" ) AS CONFIRM_PERSON_NAME, " +
|
" ) as \"RELATE_PROCESSOR_NAME\", " +
|
||||||
" MAX(rwoe.RESERVED_TIME3) AS RESERVED_TIME3, " +
|
" listagg(rwoe.\"CONFIRM_PERSON_ID\", ',') within group ( " +
|
||||||
" MAX(rwoe.GMT_MODIFIED) AS GMT_MODIFIED, " +
|
" order by " +
|
||||||
" MAX(rwoe.SUB_GMT_MODIFIED) AS SUB_GMT_MODIFIED " +
|
" rwoe.\"WORK_ORDER_ID\" " +
|
||||||
" FROM " +
|
" ) as \"RELATE_CONFIRM_PERSON_ID\", " +
|
||||||
|
" listagg(rwoe.\"CONFIRM_PERSON_NAME\", ',') within group ( " +
|
||||||
|
" order by " +
|
||||||
|
" rwoe.\"WORK_ORDER_ID\" " +
|
||||||
|
" ) as \"RELATE_CONFIRM_PERSON_NAME\", " +
|
||||||
|
" max(rwoe.\"RESERVED_TIME3\") as \"RELATE_RESERVED_TIME3\", " +
|
||||||
|
" max(rwoe.\"GMT_MODIFIED\") as \"RELATE_GMT_MODIFIED\", " +
|
||||||
|
" max(rwoe.\"SUB_GMT_MODIFIED\") as \"RELATE_SUB_GMT_MODIFIED\" " +
|
||||||
|
" from " +
|
||||||
" ( " +
|
" ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" rwo.*, " +
|
" rwo.*, " +
|
||||||
" swo.SOP_SCHEMA AS SUB_SOP_SCHEMA, " +
|
" swo.\"SUB_SOP_SCHEMA\", " +
|
||||||
" swo.PROCESS_CONTENT AS SUB_PROCESS_CONTENT, " +
|
" swo.\"SUB_PROCESS_CONTENT\", " +
|
||||||
" swo.GMT_MODIFIED AS SUB_GMT_MODIFIED, " +
|
" swo.\"OBJ_NAME\", " +
|
||||||
" swo.OBJ_NAME AS OBJ_NAME " +
|
" swo.\"SUB_GMT_MODIFIED\" " +
|
||||||
" FROM " +
|
" from " +
|
||||||
" ( " +
|
" ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" wo.ID, " +
|
" wo.\"ID\", " +
|
||||||
" wo.WORK_ORDER_ID, " +
|
" wo.\"WORK_ORDER_ID\", " +
|
||||||
" wo.CAMPUS_ID, " +
|
" wo.\"RELATE_WORK_ORDER_ID\", " +
|
||||||
" c.NAME AS CAMPUS_NAME, " +
|
" wo.\"CAMPUS_ID\", " +
|
||||||
" wo.REMARK, " +
|
" c.\"NAME\" as \"CAMPUS_NAME\", " +
|
||||||
" wo.CREATOR_ID, " +
|
" wo.\"REMARK\", " +
|
||||||
" wo.CREATOR_NAME, " +
|
" wo.\"CREATOR_ID\", " +
|
||||||
" wo.GMT_CREATE, " +
|
" wo.\"CREATOR_NAME\", " +
|
||||||
" wo.GMT_MODIFIED, " +
|
" wo.\"GMT_CREATE\", " +
|
||||||
" wo.RESERVED_TIME3, " +
|
" wo.\"GMT_MODIFIED\", " +
|
||||||
" CASE " +
|
" wo.\"RESERVED_TIME3\", " +
|
||||||
" WHEN wo.\"LEVEL\" = 'P0' THEN '重大' " +
|
" case " +
|
||||||
" ELSE '一般' " +
|
" when wo.\"LEVEL\" = 'P0' then '重大' " +
|
||||||
" END AS \"LEVEL\", " +
|
" else '一般' " +
|
||||||
" wo.CONFIRM_PERSON_ID, " +
|
" end as \"LEVEL\", " +
|
||||||
" wo.CONFIRM_PERSON_NAME, " +
|
" wo.\"CONFIRM_PERSON_ID\", " +
|
||||||
" wo.TENANT, " +
|
" wo.\"CONFIRM_PERSON_NAME\", " +
|
||||||
" wo.RELATE_WORK_ORDER_ID, " +
|
" wo.\"TENANT\", " +
|
||||||
" ml.PROCESSOR_ID, " +
|
" ml.\"PROCESSOR_ID\", " +
|
||||||
" ml.PROCESSOR_NAME, " +
|
" ml.\"PROCESSOR_NAME\", " +
|
||||||
" JSON_VALUE(ml.CONTENT, '$.processContent') AS PROCESS_CONTENT " +
|
" json_value(ml.\"CONTENT\", '$.processedContent') as \"PROCESS_CONTENT\" " +
|
||||||
" FROM " +
|
" from " +
|
||||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
||||||
" LEFT JOIN ( " +
|
" left join ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" * " +
|
" * " +
|
||||||
" 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 " +
|
||||||
" AND wo.ORDER_TYPE_PATH_NAME = '风险隐患' " +
|
" AND wo.\"ORDER_TYPE_PATH_NAME\" = '风险隐患' " +
|
||||||
" AND wo.TENANT = '1821414781587267584' " +
|
" and wo.\"TENANT\" = '1821414781587267584' " +
|
||||||
" AND EXISTS ( " +
|
" and exists ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" 1 " +
|
" 1 " +
|
||||||
" 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 ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" wo.PARENT_ID, " +
|
" wo.\"PARENT_ID\", " +
|
||||||
" LISTAGG( " +
|
" concat( " +
|
||||||
" REPLACE( " +
|
|
||||||
" REPLACE( " +
|
|
||||||
" JSON_QUERY( " +
|
|
||||||
" wos.SOP_SCHEMA, " +
|
|
||||||
" '$[0].sopSchema.componentsTree[0].children[0].children[0].children[*].props.label' WITH CONDITIONAL WRAPPER " +
|
|
||||||
" ), " +
|
|
||||||
" '[', " +
|
" '[', " +
|
||||||
" '' " +
|
" listagg( " +
|
||||||
" ), " +
|
" json_query( " +
|
||||||
" ']', " +
|
" wos.\"SOP_SCHEMA\", " +
|
||||||
" '' " +
|
" '$[0].sopSchema.componentsTree[0].children[0].children[0].children[*].props' returning varchar(10000) with conditional wrapper " +
|
||||||
" ), " +
|
" ), " +
|
||||||
" ',' " +
|
" ',' " +
|
||||||
" ) WITHIN GROUP ( " +
|
" ) within group ( " +
|
||||||
" ORDER BY " +
|
" order by " +
|
||||||
" wo.WORK_ORDER_ID " +
|
" wo.\"WORK_ORDER_ID\" " +
|
||||||
" ) AS SOP_SCHEMA, " +
|
" ), " +
|
||||||
" LISTAGG( " +
|
" ']' " +
|
||||||
" REPLACE( " +
|
" ) as \"SUB_SOP_SCHEMA\", " +
|
||||||
" REPLACE( " +
|
" concat( " +
|
||||||
" JSON_QUERY(sl.CONTENT, '$.sopInfo.*' WITH CONDITIONAL WRAPPER), " +
|
|
||||||
" '[', " +
|
" '[', " +
|
||||||
" '' " +
|
" listagg( " +
|
||||||
" ), " +
|
" json_query(sl.\"CONTENT\", '$.sopInfo' with conditional wrapper), " +
|
||||||
" ']', " +
|
|
||||||
" '' " +
|
|
||||||
" ), " +
|
|
||||||
" ',' " +
|
" ',' " +
|
||||||
" ) WITHIN GROUP ( " +
|
" ) within group ( " +
|
||||||
" ORDER BY " +
|
" order by " +
|
||||||
" wo.WORK_ORDER_ID " +
|
" wo.\"WORK_ORDER_ID\" " +
|
||||||
" ) AS PROCESS_CONTENT, " +
|
" ), " +
|
||||||
" LISTAGG(OBJ_NAME, ',') WITHIN GROUP ( " +
|
" ']' " +
|
||||||
" ORDER BY " +
|
" ) as \"SUB_PROCESS_CONTENT\", " +
|
||||||
" wo.WORK_ORDER_ID " +
|
" listagg(wo.\"OBJ_NAME\", ',') within group ( " +
|
||||||
" ) AS OBJ_NAME, " +
|
" order by " +
|
||||||
" MAX(wo.GMT_MODIFIED) AS GMT_MODIFIED " +
|
" wo.\"WORK_ORDER_ID\" " +
|
||||||
" FROM " +
|
" ) as \"OBJ_NAME\", " +
|
||||||
|
" max(wo.\"GMT_MODIFIED\") as \"SUB_GMT_MODIFIED\" " +
|
||||||
|
" from " +
|
||||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" wo " +
|
||||||
" LEFT JOIN ( " +
|
" left join ( " +
|
||||||
" SELECT " +
|
" select " +
|
||||||
" * " +
|
" * " +
|
||||||
" 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 " +
|
||||||
" WORK_ORDER_ID " +
|
" \"WORK_ORDER_ID\" " +
|
||||||
" FROM " +
|
" from " +
|
||||||
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" " +
|
" \"XCAMPUS_WORKORDER\".\"WORK_ORDER\" " +
|
||||||
" WHERE " +
|
" where " +
|
||||||
" ORDER_TYPE_PATH_NAME = '风险隐患' " +
|
" \"ORDER_TYPE_PATH_NAME\" = '风险隐患' " +
|
||||||
" ) " +
|
" ) " +
|
||||||
" AND wo.ORDER_TYPE_PATH_NAME = '系统默认子单类型' " +
|
" and wo.\"ORDER_TYPE_PATH_NAME\" = '系统默认子单类型' " +
|
||||||
" AND wo.TENANT = '1821414781587267584' " +
|
" and wo.\"TENANT\" = '1821414781587267584' " +
|
||||||
" GROUP BY " +
|
" group by " +
|
||||||
" wo.PARENT_ID " +
|
" wo.\"PARENT_ID\" " +
|
||||||
" ) 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);
|
||||||
@@ -510,44 +527,82 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
* @param content 待处理的内容字符串
|
* @param content 待处理的内容字符串
|
||||||
* @return 提取并格式化后的内容,每项占一行
|
* @return 提取并格式化后的内容,每项占一行
|
||||||
*/
|
*/
|
||||||
private String handleCheckContent(String content) {
|
private static String handleCheckContent(String content) {
|
||||||
if (StrUtil.isEmpty(content)) return StringUtils.EMPTY;
|
if (JSONUtil.isTypeJSONArray(content)) {
|
||||||
return extractQuotedContent(content);
|
JSONArray nodeList = new JSONArray();
|
||||||
|
JSONArray jsonArray = JSONUtil.parseArray(content);
|
||||||
|
jsonArray.forEach(nodeArray -> {
|
||||||
|
nodeList.addAll(new JSONArray(nodeArray));
|
||||||
|
});
|
||||||
|
List<String> checkContentList = nodeList.stream()
|
||||||
|
.map(node -> new JSONObject(node).getStr("label"))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
return StrUtil.join(" ", checkContentList);
|
||||||
|
} else {
|
||||||
|
return StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 封装方法对整改措施也进行提取双引号之间的文本
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理整改措施,提取双引号中的文本并格式化
|
|
||||||
*
|
|
||||||
* @param content 待处理的内容字符串
|
|
||||||
* @return 提取并格式化后的内容,每项占一行
|
|
||||||
*/
|
|
||||||
private String handleActionContent(String content) {
|
|
||||||
return extractQuotedContent(content);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提取字符串中双引号包含的内容
|
* 处理SOP模式字符串,将其转换为JSONArray格式
|
||||||
*
|
*
|
||||||
* @param content 待处理的内容字符串
|
* @param sopSchema SOP模式字符串,应为合法的JSON数组格式
|
||||||
* @return 提取并格式化后的内容,每项占一行
|
* @return 解析并处理后的JSONArray对象
|
||||||
*/
|
*/
|
||||||
private String extractQuotedContent(String content) {
|
private static JSONArray handleSopSchema(String sopSchema) {
|
||||||
// 使用正则表达式将双引号中的内容提取出来
|
return new JSONArray(sopSchema).stream().flatMap(item -> {
|
||||||
Pattern pattern = Pattern.compile(REGEX_EXTRACT_CONTENT);
|
JSONArray itemArray = new JSONArray(item);
|
||||||
Matcher matcher = pattern.matcher(content);
|
return Stream.of(itemArray);
|
||||||
List<String> extractedContents = new ArrayList<>();
|
}).collect(Collectors.toCollection(JSONArray::new));
|
||||||
while (matcher.find()) {
|
|
||||||
String extractedContent = matcher.group();
|
|
||||||
extractedContents.add(extractedContent);
|
|
||||||
}
|
}
|
||||||
// extractedContents每个元素作为一行,将所有行拼接成字符串
|
|
||||||
StringBuilder sb = new StringBuilder();
|
/**
|
||||||
for (String extractedContent : extractedContents) {
|
* 处理流程内容字符串,将其转换为JSONArray格式
|
||||||
sb.append(extractedContent).append("\n");
|
* <p>
|
||||||
|
* 该方法会对输入的JSON数组字符串进行两层解析和转换:
|
||||||
|
* 1. 首先将整个字符串解析为JSONArray
|
||||||
|
* 2. 对每个元素进行两次展开处理,每次都将元素解析为新的JSONArray
|
||||||
|
* 3. 最终将所有处理结果收集到一个新的JSONArray中返回
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param processContent 流程内容字符串,应为合法的JSON数组格式
|
||||||
|
* @return 解析并处理后的JSONArray对象
|
||||||
|
*/
|
||||||
|
private static JSONArray handleRelateProcessContent(String processContent) {
|
||||||
|
return new JSONArray(processContent).stream().flatMap(item -> {
|
||||||
|
JSONArray itemArray = new JSONArray(item);
|
||||||
|
return Stream.of(itemArray);
|
||||||
|
}).flatMap(item -> {
|
||||||
|
JSONArray itemArray = new JSONArray(item);
|
||||||
|
return Stream.of(itemArray);
|
||||||
|
}).collect(Collectors.toCollection(JSONArray::new));
|
||||||
}
|
}
|
||||||
return sb.toString().trim();
|
|
||||||
|
/**
|
||||||
|
* 处理流程内容,根据checkContentArray中的项筛选出在processContentArray中存在的项,并返回对应的标签列表
|
||||||
|
* <p>
|
||||||
|
* 该方法主要执行以下操作:
|
||||||
|
* 1. 从processContentArray中提取所有JSONObject的键集合,构建成一个Set
|
||||||
|
* 2. 遍历checkContentArray,筛选出"name"字段存在于上述Set中的项
|
||||||
|
* 3. 将筛选出的项的"label"字段值收集为List返回
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param checkContentArray 检查内容数组,每个元素应为包含"name"和"label"字段的JSONObject
|
||||||
|
* @param processContentArray 流程内容数组,每个元素应为JSONObject
|
||||||
|
* @return 匹配项的"label"值列表
|
||||||
|
*/
|
||||||
|
private List<String> handleProcessContent(JSONArray checkContentArray, JSONArray processContentArray) {
|
||||||
|
Set<String> processContentKeySet = processContentArray.stream().map(item -> {
|
||||||
|
JSONObject jsonObject = (JSONObject) item;
|
||||||
|
return jsonObject.keySet();
|
||||||
|
}).flatMap(Collection::stream).collect(Collectors.toSet());
|
||||||
|
return checkContentArray.stream().filter(item -> {
|
||||||
|
JSONObject jsonObject = (JSONObject) item;
|
||||||
|
return processContentKeySet.contains(jsonObject.getStr("name"));
|
||||||
|
}).map(item -> {
|
||||||
|
JSONObject jsonObject = (JSONObject) item;
|
||||||
|
return jsonObject.getStr("label");
|
||||||
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user