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/SampleRecordServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 deletions(-)
diff --git a/report-server/src/main/java/com/ruoyi/report/service/impl/SampleRecordServiceImpl.java b/report-server/src/main/java/com/ruoyi/report/service/impl/SampleRecordServiceImpl.java
new file mode 100644
index 0000000..0a77cc8
--- /dev/null
+++ b/report-server/src/main/java/com/ruoyi/report/service/impl/SampleRecordServiceImpl.java
@@ -0,0 +1,89 @@
+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.SampleRecordDto;
+import com.ruoyi.report.mapper.SampleRecordMapper;
+import com.ruoyi.report.service.SampleRecordService;
+import com.ruoyi.report.vo.SampleRecordVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * 鏍峰搧棰嗘牱璁板綍鏈嶅姟瀹炵幇
+ */
+@Service
+@AllArgsConstructor
+public class SampleRecordServiceImpl implements SampleRecordService {
+
+ private SampleRecordMapper sampleRecordMapper;
+
+ @Override
+ public Page<SampleRecordVo> pageSampleRecord(Page page, SampleRecordDto dto) {
+ Page<SampleRecordVo> result = sampleRecordMapper.pageSampleRecord(page, dto);
+ // 澶勭悊鎿嶄綔绫诲瀷鍚嶇О
+ List<SampleRecordVo> records = result.getRecords();
+ for (SampleRecordVo vo : records) {
+ vo.setOperateTypeName(formatOperateType(vo.getOperateType()));
+ }
+ return result;
+ }
+
+ @Override
+ public List<SampleRecordVo> getFlowRecord(Long sampleId) {
+ List<SampleRecordVo> list = sampleRecordMapper.getFlowRecord(sampleId);
+ for (SampleRecordVo vo : list) {
+ vo.setOperateTypeName(formatOperateType(vo.getOperateType()));
+ }
+ return list;
+ }
+
+ @Override
+ public void exportSampleRecord(SampleRecordDto dto, HttpServletResponse response) {
+ try {
+ // 鏌ヨ鍏ㄩ儴鏁版嵁
+ Page<SampleRecordVo> page = new Page<>();
+ page.setSize(Long.MAX_VALUE);
+ Page<SampleRecordVo> result = sampleRecordMapper.pageSampleRecord(page, dto);
+
+ // 澶勭悊鏁版嵁
+ List<SampleRecordVo> records = result.getRecords();
+ for (SampleRecordVo vo : records) {
+ vo.setOperateTypeName(formatOperateType(vo.getOperateType()));
+ }
+
+ // 璁剧疆鍝嶅簲澶�
+ 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(), SampleRecordVo.class)
+ .sheet("鏍峰搧棰嗘牱璁板綍")
+ .doWrite(records);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 鏍煎紡鍖栨搷浣滅被鍨�
+ */
+ private String formatOperateType(String val) {
+ if (val == null) return "";
+ Map<String, String> map = new HashMap<>();
+ map.put("in", "鍏ュ簱");
+ map.put("out", "鍑哄簱");
+ map.put("move", "绉诲簱");
+ map.put("receive", "棰嗙敤");
+ map.put("return", "褰掕繕");
+ return map.getOrDefault(val, val);
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.9.3