From 4f45f29e6b53f4c01b414409c5000ff4e212b3d9 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 05 六月 2026 13:36:54 +0800
Subject: [PATCH] 增加eip

---
 report-server/src/main/java/com/ruoyi/report/service/impl/ReportDeviceRecordServiceImpl.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/report-server/src/main/java/com/ruoyi/report/service/impl/ReportDeviceRecordServiceImpl.java b/report-server/src/main/java/com/ruoyi/report/service/impl/ReportDeviceRecordServiceImpl.java
new file mode 100644
index 0000000..9e8249c
--- /dev/null
+++ b/report-server/src/main/java/com/ruoyi/report/service/impl/ReportDeviceRecordServiceImpl.java
@@ -0,0 +1,61 @@
+package com.ruoyi.report.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.report.dto.DeviceRecordDto;
+import com.ruoyi.report.mapper.ReportDeviceRecordMapper;
+import com.ruoyi.report.service.ReportDeviceRecordService;
+import com.ruoyi.report.vo.DeviceRecordVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * 璁惧浣跨敤璁板綍鎶ヨ〃鏈嶅姟瀹炵幇
+ */
+@Service
+@AllArgsConstructor
+public class ReportDeviceRecordServiceImpl implements ReportDeviceRecordService {
+
+    private ReportDeviceRecordMapper reportDeviceRecordMapper;
+
+    @Override
+    public Page<DeviceRecordVo> pageDeviceRecord(Page page, DeviceRecordDto dto) {
+        return reportDeviceRecordMapper.pageDeviceRecord(page, dto);
+    }
+
+    @Override
+    public List<Map<String, Object>> getStatistics(DeviceRecordDto dto) {
+        return reportDeviceRecordMapper.getStatistics(dto);
+    }
+
+    @Override
+    public void exportDeviceRecord(DeviceRecordDto dto, HttpServletResponse response) {
+        try {
+            // 鏌ヨ鍏ㄩ儴鏁版嵁
+            Page<DeviceRecordVo> page = new Page<>();
+            page.setSize(Long.MAX_VALUE);
+            Page<DeviceRecordVo> result = reportDeviceRecordMapper.pageDeviceRecord(page, dto);
+
+            List<DeviceRecordVo> records = result.getRecords();
+
+            // 璁剧疆鍝嶅簲澶�
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            String fileName = "璁惧浣跨敤璁板綍_" + DateUtil.format(new Date(), "yyyyMMddHHmmss");
+            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+
+            // 浣跨敤EasyExcel瀵煎嚭
+            EasyExcel.write(response.getOutputStream(), DeviceRecordVo.class)
+                    .sheet("璁惧浣跨敤璁板綍")
+                    .doWrite(records);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.9.3