Browse Source

Merge branch 'dev_workdiary_service'

dev
wangxianzhang 3 years ago
parent
commit
1f83f07a81
  1. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java
  2. 59
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/converter/WorkDiaryServiceEasyExcelDateConverter.java
  3. 42
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java

9
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java

@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.poi.excel.converter.EasyExcelDateConverter; import com.epmet.commons.tools.utils.poi.excel.converter.EasyExcelDateConverter;
import com.epmet.dto.result.WorkdiaryServiceRecordDTO; import com.epmet.dto.result.WorkdiaryServiceRecordDTO;
import com.epmet.excel.converter.WorkDiaryServiceEasyExcelDateConverter;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -63,10 +64,8 @@ public class WorkdiaryServiceRecordExcel {
@NotNull(message = "服务时间必填") @NotNull(message = "服务时间必填")
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty(value = "服务时间") @ExcelProperty(value = "服务时间", converter = WorkDiaryServiceEasyExcelDateConverter.class)
//@DateTimeFormat("yyyy-MM-dd") private Date serviceTime;
//@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private String serviceTime;
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty(value = "备注") @ExcelProperty(value = "备注")
@ -74,6 +73,6 @@ public class WorkdiaryServiceRecordExcel {
public WorkdiaryServiceRecordExcel(WorkdiaryServiceRecordDTO dto) { public WorkdiaryServiceRecordExcel(WorkdiaryServiceRecordDTO dto) {
BeanUtil.copyProperties(dto, this); BeanUtil.copyProperties(dto, this);
this.serviceTime = DateUtils.format(dto.getServiceTime()); //this.serviceTime = DateUtils.format(dto.getServiceTime());
} }
} }

59
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/converter/WorkDiaryServiceEasyExcelDateConverter.java

@ -0,0 +1,59 @@
package com.epmet.excel.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Date;
/**
* 框架easyexcel
* 目的工作日志(服务)对服务时间日期类型的转换
*/
public class WorkDiaryServiceEasyExcelDateConverter implements Converter<Date> {
private static final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd";
/**
* excel内容转化为java时间
* @param cellData
* @param contentProperty
* @param globalConfiguration
* @return
* @throws Exception
*/
public Date convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
if (cellData.getType() == CellDataTypeEnum.NUMBER) {
// 数字类型,是1900-01-03到excel中数据日期的天数差值
LocalDateTime localDate = LocalDateTime.of(1900, 1, 1, 0, 0, 0)
// 不知为何,这个日期差值,多了2天,需要减去
.minus(2L, ChronoUnit.DAYS)
.plus(cellData.getNumberValue().longValue(), ChronoUnit.DAYS);
return Date.from(localDate.atZone(ZoneId.systemDefault()).toInstant());
} else {
// 字符串,正常格式化
Date dateData = new SimpleDateFormat(PATTERN_YYYY_MM_DD).parse(cellData.getStringValue());
return dateData;
}
}
/**
* java日期转为excel内容
* @param value
* @param contentProperty
* @param globalConfiguration
* @return
* @throws Exception
*/
public WriteCellData<?> convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String dataStr = new SimpleDateFormat(PATTERN_YYYY_MM_DD).format(value);
return new WriteCellData(dataStr);
}
}

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

@ -480,26 +480,26 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
} }
// ---------服务时间 Start 使用正则处理--------- // ---------服务时间 Start 使用正则处理---------
String serviceTimeStr = row.getServiceTime(); //String serviceTimeStr = row.getServiceTime();
String year; //String year;
String month; //String month;
String day; //String day;
Matcher stm = WORKDIARY_SERVICE_TIME_REGEX.matcher(serviceTimeStr); //Matcher stm = WORKDIARY_SERVICE_TIME_REGEX.matcher(serviceTimeStr);
if (stm.matches()) { //if (stm.matches()) {
year = stm.group("year"); // year = stm.group("year");
month = stm.group("month"); // month = stm.group("month");
day = stm.group("day"); // day = stm.group("day");
} else { //} else {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), // throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"服务时间格式不正确", // "服务时间格式不正确",
"服务时间格式不正确"); // "服务时间格式不正确");
} //}
//
year = String.format("%04d", Integer.valueOf(year)); //year = String.format("%04d", Integer.valueOf(year));
month = String.format("%02d", Integer.valueOf(month)); //month = String.format("%02d", Integer.valueOf(month));
day = String.format("%02d", Integer.valueOf(day)); //day = String.format("%02d", Integer.valueOf(day));
//
Date serviceTime = DateUtils.parseDate(String.format("%s-%s-%s", year, month, day), DateUtils.DATE_PATTERN); //Date serviceTime = DateUtils.parseDate(String.format("%s-%s-%s", year, month, day), DateUtils.DATE_PATTERN);
// ---------服务时间 End--------- // ---------服务时间 End---------
@ -516,7 +516,7 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
row.getApplicantAddress(), row.getApplicantAddress(),
row.getApplicantMobile(), row.getApplicantMobile(),
row.getServiceContent(), row.getServiceContent(),
serviceTime, row.getServiceTime(),
row.getPrincipalName(), row.getPrincipalName(),
row.getRemark()); row.getRemark());

Loading…
Cancel
Save