shudonghui 1 år sedan
förälder
incheckning
eac792f5aa

+ 9 - 4
sop-business/src/main/java/com/qmth/sop/business/bean/result/TBDingSubmitQueryResult.java

@@ -1,11 +1,14 @@
 package com.qmth.sop.business.bean.result;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.HeadFontStyle;
 import com.alibaba.excel.annotation.write.style.HeadStyle;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.sop.business.templete.converter.DingSubmitStatusEnumConverter;
+import com.qmth.sop.business.templete.converter.LongLocalDateTimeConverter;
 import com.qmth.sop.common.enums.DingSubmitStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -27,6 +30,7 @@ import java.io.Serializable;
 public class TBDingSubmitQueryResult implements Serializable {
     @ApiModelProperty(value = "考勤提交记录id")
     @JsonSerialize(using = ToStringSerializer.class)
+    @ExcelIgnore
     private Long id;
 
     @ApiModelProperty(value = "服务单元")
@@ -45,10 +49,10 @@ public class TBDingSubmitQueryResult implements Serializable {
     @ExcelProperty(value = "城市")
     private String city;
     @ApiModelProperty(value = "项目开始时间")
-    @ExcelProperty(value = "项目开始时间")
+    @ExcelProperty(value = "项目开始时间",converter = LongLocalDateTimeConverter.class)
     private Long examStartTime;
     @ApiModelProperty(value = "项目结束时间")
-    @ExcelProperty(value = "项目结束时间")
+    @ExcelProperty(value = "项目结束时间",converter = LongLocalDateTimeConverter.class)
     private Long examEndTime;
     @ApiModelProperty(value = "姓名")
     @ExcelProperty(value = "姓名")
@@ -84,10 +88,11 @@ public class TBDingSubmitQueryResult implements Serializable {
     @ExcelProperty(value = "提交人")
     private String submitter;
     @ApiModelProperty(value = "提交时间")
-    @ExcelProperty(value = "提交时间")
+    @ExcelProperty(value = "提交时间",converter = LongLocalDateTimeConverter.class)
     private Long submissionTime;
     @ApiModelProperty(value = "状态,START:已开始,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
-    @ExcelProperty(value = "提交状态")
+    @ExcelProperty(value = "提交状态",converter = DingSubmitStatusEnumConverter.class)
+
     private DingSubmitStatusEnum status;
 
     public Long getId() {

+ 26 - 0
sop-business/src/main/java/com/qmth/sop/business/templete/converter/DingSubmitStatusEnumConverter.java

@@ -0,0 +1,26 @@
+package com.qmth.sop.business.templete.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.WriteConverterContext;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import com.qmth.sop.common.enums.DingSubmitStatusEnum;
+
+public class DingSubmitStatusEnumConverter implements Converter<DingSubmitStatusEnum> {
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+    @Override
+    public WriteCellData<?> convertToExcelData(DingSubmitStatusEnum value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+        return new WriteCellData<>(value.toString());
+    }
+
+    @Override
+    public WriteCellData<?> convertToExcelData(WriteConverterContext<DingSubmitStatusEnum> context) {
+        return new WriteCellData<>(context.getValue().toString());
+    }
+}

+ 37 - 0
sop-business/src/main/java/com/qmth/sop/business/templete/converter/LongLocalDateTimeConverter.java

@@ -0,0 +1,37 @@
+package com.qmth.sop.business.templete.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.WriteConverterContext;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import com.qmth.sop.common.enums.DingSubmitStatusEnum;
+
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
+
+public class LongLocalDateTimeConverter implements Converter<Long> {
+
+    private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+    @Override
+    public WriteCellData<?> convertToExcelData(Long value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        //Long时间戳转换时间字符串
+        LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(value/1000, 0, ZoneOffset.ofHours(8));
+        return new WriteCellData<>(DATE_TIME_FORMATTER.format(localDateTime));
+    }
+
+    @Override
+    public WriteCellData<?> convertToExcelData(WriteConverterContext<Long> context) throws Exception {
+      //Long时间戳转换时间字符串
+        LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(context.getValue()/1000, 0, ZoneOffset.ofHours(8));
+        return new WriteCellData<>(DATE_TIME_FORMATTER.format(localDateTime));
+    }
+}

+ 1 - 3
sop-business/src/main/java/com/qmth/sop/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -337,9 +337,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             fileTemp = SystemConstant.getFileTempVar(SystemConstant.XLSX_PREFIX);
 
             List<TBDingSubmitQueryResult> tbDingCountQueryResults = tbDingService.query((SysUser) map.get("account"), (Long) map.get("serviceId"), (String) map.get("status"), (Long) map.get("createId"), (String) map.get("userName"), (Long) map.get("supplierId"), (String) map.get("String"), (String) map.get("sopNo"), (Long) map.get("days"));
-//            tbDingCountQueryResults.forEach(e -> {
-//                e.setStatus(FlowStatusEnum.convertToEnum(e.getStatus()).getTitle());
-//            });
+
             EasyExcel.write(fileTemp, TBDingSubmitQueryResult.class).sheet("考勤打卡统计导出").doWrite(tbDingCountQueryResults);
 
             BasicAttachment basicAttachment = basicAttachmentService.saveAttachment(fileTemp, UploadFileEnum.FILE);