diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java index 453d3d7..190acba 100644 --- a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/job/AlibabaWorkOrderJob.java @@ -9,6 +9,7 @@ import com.jeelowcode.module.biz.service.IAlibabaWorkOrderService; import com.jeelowcode.tool.framework.quartz.core.handler.JobHandler; import com.jeelowcode.tool.framework.tenant.core.job.TenantJob; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -21,6 +22,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; 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; @@ -31,6 +34,9 @@ import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YE @Component public class AlibabaWorkOrderJob implements JobHandler { + // 正则表达式,用于提取字符串中的内容 + private static final String REGEX_EXTRACT_CONTENT = "(?<=\")[^\",]*(?=\")"; + /** * 阿里数据源名称 */ @@ -76,12 +82,12 @@ public class AlibabaWorkOrderJob implements JobHandler { workOrder.setCampusName(resultSet.getString("campusName")); workOrder.setCheckArea(resultSet.getString("checkArea")); workOrder.setCheckItem(resultSet.getString("checkItem")); - workOrder.setCheckContent(resultSet.getString("checkContent")); + workOrder.setCheckContent(handleCheckContent(resultSet.getString("checkContent"))); workOrder.setCheckPersonId(resultSet.getString("checkPersonId")); workOrder.setCheckPersonName(resultSet.getString("checkPersonName")); workOrder.setCheckTime(resultSet.getObject("checkTime", LocalDateTime.class)); workOrder.setCheckQuestion(resultSet.getString("checkQuestion")); - workOrder.setCorrectAction(resultSet.getString("correctAction")); + workOrder.setCorrectAction(handleActionContent(resultSet.getString("correctAction"))); workOrder.setCorrectPersonId(resultSet.getString("correctPersonId")); workOrder.setCorrectPersonName(resultSet.getString("correctPersonName")); workOrder.setWorkOrderLevel(resultSet.getString("workOrderLevel")); @@ -498,4 +504,50 @@ public class AlibabaWorkOrderJob implements JobHandler { return SqlUtil.formatSql(sqlBuilder.toString()); } + /** + * 处理检查内容,提取双引号中的文本并格式化 + * + * @param content 待处理的内容字符串 + * @return 提取并格式化后的内容,每项占一行 + */ + private String handleCheckContent(String content) { + if (StrUtil.isEmpty(content)) return StringUtils.EMPTY; + return extractQuotedContent(content); + } + + // 封装方法对整改措施也进行提取双引号之间的文本 + + /** + * 处理整改措施,提取双引号中的文本并格式化 + * + * @param content 待处理的内容字符串 + * @return 提取并格式化后的内容,每项占一行 + */ + private String handleActionContent(String content) { + return extractQuotedContent(content); + } + + /** + * 提取字符串中双引号包含的内容 + * + * @param content 待处理的内容字符串 + * @return 提取并格式化后的内容,每项占一行 + */ + private String extractQuotedContent(String content) { + // 使用正则表达式将双引号中的内容提取出来 + Pattern pattern = Pattern.compile(REGEX_EXTRACT_CONTENT); + Matcher matcher = pattern.matcher(content); + List extractedContents = new ArrayList<>(); + while (matcher.find()) { + String extractedContent = matcher.group(); + extractedContents.add(extractedContent); + } + // extractedContents每个元素作为一行,将所有行拼接成字符串 + StringBuilder sb = new StringBuilder(); + for (String extractedContent : extractedContents) { + sb.append(extractedContent).append("\n"); + } + return sb.toString().trim(); + } + }