From ebede85283906f52dd45d0755d22140538038ac3 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 27 十二月 2024 13:27:47 +0800
Subject: [PATCH] 完成6.6供应商模块
---
cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java | 142 ++++++++++++++++++++++++-----------------------
1 files changed, 72 insertions(+), 70 deletions(-)
diff --git a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java
index 1ce642a..2e691cd 100644
--- a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java
+++ b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java
@@ -1,15 +1,12 @@
package com.yuanchu.mom.service.impl;
-
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
-import com.alibaba.excel.metadata.data.ImageData;
-import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.util.FileUtils;
+import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
-import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -22,15 +19,18 @@
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.utils.UserUtils;
import org.springframework.beans.BeanUtils;
+import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.net.URLEncoder;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -46,6 +46,7 @@
/**
* 鏂板鏍囧噯鏌ユ柊
+ *
* @param processMethodSearchNewList
* @return
*/
@@ -99,10 +100,14 @@
String endDate = processMethodSearchNew.getEndDate();
String writeUserId = processMethodSearchNew.getWriteUserId().toString();
String ratifyUserId = processMethodSearchNew.getRatifyUserId().toString();
+ String writeDate = processMethodSearchNew.getWriteDate();
+ String ratifyDate = processMethodSearchNew.getRatifyDate();
processMethodSearchNew.setBeginDate(null);
processMethodSearchNew.setEndDate(null);
processMethodSearchNew.setWriteUserId(null);
processMethodSearchNew.setRatifyUserId(null);
+ processMethodSearchNew.setWriteDate(null);
+ processMethodSearchNew.setRatifyDate(null);
List<ProcessMethodSearchNewDto> methodSearchNews = baseMapper.selectMethodSearchNew(QueryWrappers.queryWrappers(processMethodSearchNew), beginDate, endDate);
int index = 1;
@@ -118,9 +123,9 @@
// 澶囨敞
if (methodSearchNew.getRemark() != null) {
if (methodSearchNew.getRemark().equals(1)) {
- methodSearchNew.setIsNewStandardString("鏇挎崲");
+ methodSearchNew.setRemarkString("鏇挎崲");
} else {
- methodSearchNew.setIsNewStandardString("浣滃簾");
+ methodSearchNew.setRemarkString("浣滃簾");
}
}
@@ -150,76 +155,73 @@
index++;
}
+ // 鏌ヨ绛惧悕鍦板潃
String writeUserUrl = UserUtils.getUserSignatureUrl(Integer.valueOf(writeUserId));
String ratifyUserUrl = UserUtils.getUserSignatureUrl(Integer.valueOf(ratifyUserId));
- response.setContentType("application/vnd.ms-excel");
- response.setCharacterEncoding("UTF-8");
+ //鍒涘缓ExcelWriter 鍙互鑷姩鍏虫祦浣嗚繕鏄墜鍔ㄥ叧涓�娆�
+ ExcelWriter excelWriter = null;
+
try {
- // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
- String fileName = URLEncoder.encode("鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8");
- response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ // outputStream锛氳瀵煎嚭鐨勬枃浠剁殑杈撳嚭娴�
+ OutputStream outputStream = response.getOutputStream();
+ // 鑾峰彇妯$増鏂囦欢
+ ClassPathResource classPathResource = new ClassPathResource("/static/excel/check-records.xlsx");
+ // 浣跨敤妯$増鏂囦欢鐨勪袱绉嶆柟寮忥細
+ // 1銆佹枃浠惰矾寰勶細.withTemplate(templateFileName)
+ // 2銆佽緭鍏ユ祦锛�.withTemplate(inputStream)
+ // String templateFileName = classPathResource.getFile().getPath();
+ InputStream inputStream = classPathResource.getInputStream();
+ // 鍒涘缓ExcelWriter
+ excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).build();
+ // 鑾峰彇绗竴涓猻heet椤�
+ WriteSheet writeSheet = EasyExcel.writerSheet(0, "鏍囧噯鏌ユ柊瀵煎嚭").build();
+ //excelWriter.fill() 杩欏湴鏂瑰氨鏄~鍏呭睘鎬с��
+// excelWriter.fill(methodSearchNews, fillConfig, writeSheet);
+ excelWriter.fill(methodSearchNews, writeSheet);
- // 鍒涘缓 ExcelWriter
- ServletOutputStream outputStream = response.getOutputStream();
- ExcelWriter excelWriter = EasyExcel.write(outputStream).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+ // 杩欓噷easy excel妯℃澘瀵煎嚭闂 浼氬垹闄ゅ悗闈㈠唴瀹瑰啀杩涜杩涜濉厖
+ // 鎵�浠ist 鍚庨潰杩樻湁鏁版嵁 鎯冲姙娉曟墜鍔ㄥ啓鍏�
+ // 鎵嬪姩鍒涘缓涓�涓猯ist 瀛樻斁鏁版嵁 鐒跺悗鍐嶈繘琛屽~鍏�
+ // 杩欓噷List<Object>鍙互鐢ㄥ璞′唬鏇� 鍋锋噿鐢╨ist
+ List<List<Object>> totalListList = ListUtils.newArrayList();
+ List<Object> totalList = ListUtils.newArrayList();
+ totalListList.add(totalList);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ // 绗竴鍒�
+ totalList.add("缂栧埗浜猴細");
+ // 绗簩鍒� 璁剧疆绛惧悕
+ totalList.add(FileUtils.readFileToByteArray(new File(writeUserUrl)));
+ // 绗笁鍒�
+ totalList.add("鏃ユ湡锛�");
+ // 绗簲鍒�
+ totalList.add(writeDate);
+ // 绗叚鍒�
+ totalList.add("瀹℃牳锛�");
+ // 绗竷鍒�
+ totalList.add(FileUtils.readFileToByteArray(new File(ratifyUserUrl)));
+ // 绗叓鍒�
+ totalList.add("鏃ユ湡锛�");
+ // 绗節鍒�
+ totalList.add(ratifyDate);
+ // 杩欓噷鏄痺rite 鍒拰fill 鎼為敊浜�
+ excelWriter.write(totalListList, writeSheet);
- // 鑾峰彇 sheet0 瀵硅薄
- WriteSheet mainSheet = EasyExcel.writerSheet(0, "鏍囧噯鏌ユ柊瀵煎嚭").head(ProcessMethodSearchNewDto.class).build();
+ // 璁剧疆杈撳嚭娴佹牸寮忎互鍙婃枃浠跺悕锛�
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("utf-8");
+ String fileName = URLEncoder.encode(
+ "鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".xlsx");
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ // 鍗冧竾鍒繕璁癱lose鍏抽棴娴�
+ if (excelWriter != null) {
+ excelWriter.close();
- // 鍥剧墖瀵硅薄
- ImageData imageData = new ImageData();
- ImageData imageData1 = new ImageData();
- // 璁剧疆鍥剧墖鏁版嵁
- imageData.setImage(FileUtils.readFileToByteArray(new File(writeUserUrl))); // 璁剧疆缂栧埗浜哄浘鐗囩殑鏂囦欢璺緞
- imageData1.setImage(FileUtils.readFileToByteArray(new File(ratifyUserUrl))); // 璁剧疆鎵瑰噯浜哄浘鐗囩殑鏂囦欢璺緞
-
- // 璁剧疆缂栧埗浜哄浘鐗囦綅缃�
- imageData.setRelativeFirstRowIndex(1);
- imageData.setRelativeFirstColumnIndex(2);
- imageData.setRelativeLastRowIndex(1);
- imageData.setRelativeLastColumnIndex(2);
- // 璁剧疆鎵瑰噯浜哄浘鐗囦綅缃�
- imageData1.setRelativeFirstRowIndex(1);
- imageData1.setRelativeFirstColumnIndex(4);
- imageData1.setRelativeLastRowIndex(1);
- imageData1.setRelativeLastColumnIndex(4);
-
-
- List<ImageData> list = new ArrayList<>();
- // 鏀惧叆鍒楄〃涓�
- list.add(imageData);
- list.add(imageData1);
-
-// // 璁剧疆棰濆鐨勬枃瀛楋紙鍙�夛級
-// WriteCellData<Void> writeCellData = new WriteCellData<>();
-//// imageDemoData.setWriteCellDataFile(writeCellData);
-// // 杩欓噷鍙互璁剧疆涓� EMPTY 鍒欎唬琛ㄤ笉闇�瑕佸叾浠栨暟鎹簡
-// writeCellData.setType(CellDataTypeEnum.STRING);
-// writeCellData.setStringValue("棰濆鐨勬斁涓�浜涙枃瀛�");
-
-
- // 灏嗗浘鐗囨暟鎹缃埌鍗曞厓鏍间腑
- WriteCellData<ImageData> writeCellData = new WriteCellData<>();
- writeCellData.setImageDataList(list);
-
- // 鍒涘缓鏁版嵁鍒楄〃
- List<List<WriteCellData>> dataList = new ArrayList<>();
- List<WriteCellData> rowData = new ArrayList<>();
- rowData.add(writeCellData); // 鎶婂浘鐗囨斁鍏ヤ竴琛�
- dataList.add(rowData);
-
-
- // 鍚� sheet0 鍐欏叆鏁版嵁锛堜紶鍏ョ┖list杩欐牱鍙鍑鸿〃澶达級
- excelWriter.write(methodSearchNews, mainSheet);
- // 鍐欏叆 鍥剧墖
- excelWriter.write(dataList,mainSheet);
-
- //鍏抽棴娴�
- excelWriter.finish();
-
- } catch (IOException e) {
- throw new RuntimeException("瀵煎嚭澶辫触");
+ }
}
}
--
Gitblit v1.9.3