Browse Source

【工作日志】服务时间使用正则表达式优化

master
wangxianzhang 3 years ago
parent
commit
35acf55f64
  1. 44
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java

44
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java

@ -70,6 +70,8 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -98,6 +100,17 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
private ThreadLocal<List<ImportResultDesc>> importResultDescTl = new ThreadLocal<>(); private ThreadLocal<List<ImportResultDesc>> importResultDescTl = new ThreadLocal<>();
/**
* 工作日志-服务时间-正则表达式
* 支持模式
* 2022-01-01
* 2022-1-1
* 2022/01/01
* 2022/01-1
* ...
*/
private static final Pattern WORKDIARY_SERVICE_TIME_REGEX = Pattern.compile("^(\\s*)(?<year>\\d{4})[-/](?<month>\\d{1,2})[-/](?<day>\\d{1,2})(\\s*)$");
/** /**
* 导入结果描述 * 导入结果描述
*/ */
@ -466,24 +479,29 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
row.setApplicantAddress(house.getFullName()); row.setApplicantAddress(house.getFullName());
} }
// 时间转化 // ---------服务时间 Start 使用正则处理---------
String serviceTimeStr = row.getServiceTime(); String serviceTimeStr = row.getServiceTime();
String spliter = null; String year;
if (serviceTimeStr.contains("/")) { String month;
spliter = "/"; String day;
} else if (serviceTimeStr.contains("-")) { Matcher stm = WORKDIARY_SERVICE_TIME_REGEX.matcher(serviceTimeStr);
spliter = "-"; if (stm.matches()) {
year = stm.group("year");
month = stm.group("month");
day = stm.group("day");
} else { } else {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "时间格式不正确", "时间格式不正确"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"服务时间格式不正确",
"服务时间格式不正确");
} }
String[] arr = serviceTimeStr.split(spliter); year = String.format("%04d", Integer.valueOf(year));
month = String.format("%02d", Integer.valueOf(month));
day = String.format("%02d", Integer.valueOf(day));
String year = String.format("%04d", Integer.valueOf(arr[0])); Date serviceTime = DateUtils.parseDate(String.format("%s-%s-%s", year, month, day), DateUtils.DATE_PATTERN);
String month = String.format("%02d", Integer.valueOf(arr[1]));
String day = String.format("%02d", Integer.valueOf(arr[2]));
Date date = DateUtils.parseDate(String.format("%s-%s-%s", year, month, day), DateUtils.DATE_PATTERN); // ---------服务时间 End---------
// 填充到entity // 填充到entity
WorkdiaryServiceRecordEntity record = new WorkdiaryServiceRecordEntity( WorkdiaryServiceRecordEntity record = new WorkdiaryServiceRecordEntity(
@ -498,7 +516,7 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
row.getApplicantAddress(), row.getApplicantAddress(),
row.getApplicantMobile(), row.getApplicantMobile(),
row.getServiceContent(), row.getServiceContent(),
date, serviceTime,
row.getPrincipalName(), row.getPrincipalName(),
row.getRemark()); row.getRemark());

Loading…
Cancel
Save