From f90e6baa39d8c33f06f067904627e65aec516b60 Mon Sep 17 00:00:00 2001 From: yang chen Date: Thu, 27 Nov 2025 11:30:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(job):=20=E5=A4=84=E7=90=86=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=A3=80=E6=9F=A5=E5=86=85=E5=AE=B9=E5=92=8C=E6=95=B4?= =?UTF-8?q?=E6=94=B9=E6=8E=AA=E6=96=BD=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=8F=90?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增处理检查内容字段,提取双引号中的文本 - 新增处理整改措施字段,提取双引号中的文本 - 添加正则表达式常量用于内容提取 - 引入 commons-lang3 工具类库支持空值判断 - 实现 extractQuotedContent 方法统一处理字符串提取逻辑 - 格式化提取结果为每项占一行的字符串结构 --- .../module/biz/job/AlibabaWorkOrderJob.java | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) 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(); + } + }