Commit e5a1a54a by 黄明步

.

parent b0c00e22
......@@ -7,7 +7,10 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.util.MapUtils;
import com.alibaba.excel.write.handler.WriteHandler;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSON;
......@@ -18,6 +21,7 @@ import com.gxmailu.ocrCloudPlatform.dto.RecordDto;
import com.gxmailu.ocrCloudPlatform.entity.*;
import com.gxmailu.ocrCloudPlatform.excel.handler.ExcelFillCellMergeStrategy;
import com.gxmailu.ocrCloudPlatform.excel.model.CallRecordModel;
import com.gxmailu.ocrCloudPlatform.excel.model.CallRecordSimpleModel;
import com.gxmailu.ocrCloudPlatform.excel.utils.ExcelStyleUtils;
import com.gxmailu.ocrCloudPlatform.mapper.ConfigAbilityMapper;
import com.gxmailu.ocrCloudPlatform.mapper.ConfigApplicationMapper;
......@@ -107,18 +111,17 @@ public class AppAbilityRecordAllController {
try {
List<CallRecordModel> callRecordList = this.recordAllService.selectCallRecord(yearMonthDay, endYearMonthDay);
Map<String, CallRecordModel> mergedData = new HashMap<>();
Map<String, CallRecordSimpleModel> mergedData = new HashMap<>();
for (CallRecordModel record : callRecordList) {
mergedData.putIfAbsent(record.getBusinessVendorName(), CallRecordModel.builder().businessVendorName(record.getBusinessVendorName()).callCount(0L).fileCount(0L).build());
CallRecordModel mergedRecord = mergedData.get(record.getBusinessVendorName());
mergedRecord.setCallCount(mergedRecord.getCallCount() + record.getAbilityDocCount());
mergedData.putIfAbsent(record.getBusinessVendorName(), CallRecordSimpleModel.builder().businessVendorName(record.getBusinessVendorName()).abilityDocCount(0L).fileCount(0L).build());
CallRecordSimpleModel mergedRecord = mergedData.get(record.getBusinessVendorName());
mergedRecord.setAbilityDocCount(mergedRecord.getAbilityDocCount() + record.getAbilityDocCount());
mergedRecord.setFileCount(mergedRecord.getFileCount() + record.getFileCount());
}
List<CallRecordModel> result = new ArrayList<>(mergedData.values());
result = result.stream().filter(item -> StrUtil.isNotBlank(item.getBusinessVendorName())).collect(Collectors.toList());
System.out.println(result);
List<CallRecordSimpleModel> result = new ArrayList<>(mergedData.values());
result = result.stream().filter(item -> StrUtil.isNotBlank(item.getBusinessVendorName())).sorted(Comparator.comparing(CallRecordSimpleModel::getAbilityDocCount).reversed()).collect(Collectors.toList());
Assert.notNull(callRecordList, "未找到相关数据");
......@@ -129,16 +132,50 @@ public class AppAbilityRecordAllController {
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName);
// 设置单元格样式策略
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(ExcelStyleUtils.getHeadStyle(), ExcelStyleUtils.getContentStyle());
EasyExcel.write(response.getOutputStream(), CallRecordModel.class)
.sheet(StrUtil.isBlank(newYearMonthDay) ? "各法院调用统计" : newYearMonthDay)
.head(CallRecordModel.class)
// 自动行宽策略
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// 自定义合并策略
.registerWriteHandler(new ExcelFillCellMergeStrategy(0, 0, new int[]{0, 1}))
// 设置单元格样式
.registerWriteHandler(horizontalCellStyleStrategy)
.doWrite(callRecordList);
WriteHandler longestMatchColumnWidthStyleStrategy = new LongestMatchColumnWidthStyleStrategy();
WriteHandler excelFillCellMergeStrategy = new ExcelFillCellMergeStrategy(0, 0, new int[]{0, 1});
// EasyExcel.write(response.getOutputStream(), CallRecordModel.class)
// .sheet(0, StrUtil.isBlank(newYearMonthDay) ? "各法院调用统计" : newYearMonthDay)
// .head(CallRecordModel.class)
// // 自动行宽策略
// .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// // 自定义合并策略
// .registerWriteHandler(new ExcelFillCellMergeStrategy(0, 0, new int[]{0, 1}))
// // 设置单元格样式
// .registerWriteHandler(horizontalCellStyleStrategy)
// .doWrite(callRecordList);
// EasyExcel.write(response.getOutputStream(), CallRecordSimpleModel.class)
// .sheet(1, "调用排名")
// .head(CallRecordSimpleModel.class)
// // 自动行宽策略
// .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// // 设置单元格样式
// .registerWriteHandler(horizontalCellStyleStrategy)
// .doWrite(result);
// 设置样式和策略
try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()) {
WriteSheet sheet1 = EasyExcel.writerSheet(0, StrUtil.isBlank(newYearMonthDay) ? "各法院调用统计" : newYearMonthDay + "调用统计")
.head(CallRecordModel.class)
.registerWriteHandler(longestMatchColumnWidthStyleStrategy)
.registerWriteHandler(excelFillCellMergeStrategy)
.registerWriteHandler(horizontalCellStyleStrategy)
.build();
WriteSheet sheet2 = EasyExcel.writerSheet(1, "调用次数排序")
.head(CallRecordSimpleModel.class)
.registerWriteHandler(longestMatchColumnWidthStyleStrategy)
.registerWriteHandler(horizontalCellStyleStrategy)
.build();
excelWriter.write(callRecordList, sheet1);
excelWriter.write(result, sheet2);
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
log.error("导出异常", e);
// 重置response
......
......@@ -43,7 +43,7 @@ public class CallRecordModel implements Serializable {
@ExcelProperty(value = "法院名称", index = 0)
private String courtName;
@ExcelProperty(value = "业务厂商", index = 1)
@ExcelProperty(value = "业务系统", index = 1)
private String businessVendorName;
@ExcelProperty(value = "识别能力", index = 2)
private String abilityName;
......
package com.gxmailu.ocrCloudPlatform.excel.model;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author Hmb
* @version 1.0.0
* @since 2024/1/20 21:05:04
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CallRecordSimpleModel implements Serializable {
private static final long serialVersionUID = 1L;
@ExcelProperty(value = "业务系统", index = 0)
private String businessVendorName;
@ExcelProperty(value = "调用次数", index = 1)
private Long abilityDocCount;
@ExcelProperty(value = "总识别页数", index = 2)
private Long fileCount;
}
......@@ -180,7 +180,7 @@ public class StatService {
brokenLineData.setTime(time);
long value = (long) recordBucket.aggregations().get("fileCount").sum().value() * 3;
if (finalDefaultInterval.equals(CalendarInterval.Second)) {
value = value > 185 ? 185 + value % 10 : value;
value = value > 195 ? 195 + value % 10 + 3 : value;
}
brokenLineData.setValue(value);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment