feat(job): 处理工单检查内容和整改措施字符串提取
- 新增处理检查内容字段,提取双引号中的文本 - 新增处理整改措施字段,提取双引号中的文本 - 添加正则表达式常量用于内容提取 - 引入 commons-lang3 工具类库支持空值判断 - 实现 extractQuotedContent 方法统一处理字符串提取逻辑 - 格式化提取结果为每项占一行的字符串结构
This commit is contained in:
@@ -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.quartz.core.handler.JobHandler;
|
||||||
import com.jeelowcode.tool.framework.tenant.core.job.TenantJob;
|
import com.jeelowcode.tool.framework.tenant.core.job.TenantJob;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -21,6 +22,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
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;
|
||||||
|
|
||||||
@@ -31,6 +34,9 @@ import static com.jeelowcode.tool.framework.common.util.date.DateUtils.FORMAT_YE
|
|||||||
@Component
|
@Component
|
||||||
public class AlibabaWorkOrderJob implements JobHandler {
|
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.setCampusName(resultSet.getString("campusName"));
|
||||||
workOrder.setCheckArea(resultSet.getString("checkArea"));
|
workOrder.setCheckArea(resultSet.getString("checkArea"));
|
||||||
workOrder.setCheckItem(resultSet.getString("checkItem"));
|
workOrder.setCheckItem(resultSet.getString("checkItem"));
|
||||||
workOrder.setCheckContent(resultSet.getString("checkContent"));
|
workOrder.setCheckContent(handleCheckContent(resultSet.getString("checkContent")));
|
||||||
workOrder.setCheckPersonId(resultSet.getString("checkPersonId"));
|
workOrder.setCheckPersonId(resultSet.getString("checkPersonId"));
|
||||||
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(resultSet.getString("correctAction"));
|
workOrder.setCorrectAction(handleActionContent(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"));
|
||||||
@@ -498,4 +504,50 @@ public class AlibabaWorkOrderJob implements JobHandler {
|
|||||||
return SqlUtil.formatSql(sqlBuilder.toString());
|
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<String> 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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user