From 2a60c91efc7885aad16cae41f7a087e001480daa Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 23 十二月 2024 14:50:26 +0800 Subject: [PATCH] 更新至(22dcfc) --- cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodVerifyServiceImpl.java | 2 cnas-process/src/main/resources/static/excel/check-records.xlsx | 0 cnas-process/src/main/java/com/yuanchu/mom/service/impl/QualityMonitorServiceImpl.java | 4 cnas-process/src/main/java/com/yuanchu/mom/controller/QualityMonitorController.java | 12 ++-- cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodSearchNewServiceImpl.java | 132 +++++++++++++++++++++---------------------- cnas-process/src/main/resources/static/method-verify.docx | 0 6 files changed, 73 insertions(+), 77 deletions(-) diff --git a/cnas-process/src/main/java/com/yuanchu/mom/controller/QualityMonitorController.java b/cnas-process/src/main/java/com/yuanchu/mom/controller/QualityMonitorController.java index 0e331e6..3322b76 100644 --- a/cnas-process/src/main/java/com/yuanchu/mom/controller/QualityMonitorController.java +++ b/cnas-process/src/main/java/com/yuanchu/mom/controller/QualityMonitorController.java @@ -200,13 +200,13 @@ /** * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 - * @param detailsRatifyId 鐩戞帶璁″垝璇︽儏瀹炴柦id + * @param qualityMonitorDetailsId 鐩戞帶璁″垝璇︽儏瀹炴柦id */ @ValueAuth @ApiOperation(value = "瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅") @GetMapping("/exportQualityMonitorRatify") - public void exportQualityMonitorRatify(Integer detailsRatifyId, HttpServletResponse response){ - qualityMonitorService.exportQualityMonitorRatify(detailsRatifyId, response); + public void exportQualityMonitorRatify(Integer qualityMonitorDetailsId, HttpServletResponse response){ + qualityMonitorService.exportQualityMonitorRatify(qualityMonitorDetailsId, response); } /************************************************************ 璇勪环 *******************************************************************/ @@ -235,13 +235,13 @@ /** * 瀵煎嚭鐩戞帶璇勪环 - * @param detailsEvaluateId 鐩戞帶璇勪环id + * @param qualityMonitorDetailsId 鐩戞帶璇勪环id */ @ValueAuth @ApiOperation(value = "瀵煎嚭鐩戞帶璇勪环") @GetMapping("/exportQualityMonitorEvaluate") - public void exportQualityMonitorEvaluate(Integer detailsEvaluateId, HttpServletResponse response){ - qualityMonitorService.exportQualityMonitorEvaluate(detailsEvaluateId, response); + public void exportQualityMonitorEvaluate(Integer qualityMonitorDetailsId, HttpServletResponse response){ + qualityMonitorService.exportQualityMonitorEvaluate(qualityMonitorDetailsId, response); } /** 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..7c9ca22 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,14 +19,16 @@ 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.util.ArrayList; import java.util.List; @@ -46,6 +45,7 @@ /** * 鏂板鏍囧噯鏌ユ柊 + * * @param processMethodSearchNewList * @return */ @@ -150,76 +150,72 @@ 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); + // 绗竴鍒� + totalList.add("鏌ユ柊浜猴細"); + // 绗簩鍒� 璁剧疆绛惧悕 + totalList.add(FileUtils.readFileToByteArray(new File(writeUserUrl))); + // 绗笁鍒� + totalList.add("鏃ユ湡锛�"); + // 绗簲鍒� + totalList.add("2024-12-23"); // 鏃ユ湡鍐欐 + // 绗叚鍒� + totalList.add("瀹℃牳锛�"); + // 绗竷鍒� + totalList.add(FileUtils.readFileToByteArray(new File(ratifyUserUrl))); + // 绗叓鍒� + totalList.add("鏃ユ湡锛�"); + // 绗節鍒� + totalList.add("2024-12-23"); // 鏃ユ湡鍐欐 + // 杩欓噷鏄痺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("瀵煎嚭澶辫触"); + } } } diff --git a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodVerifyServiceImpl.java b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodVerifyServiceImpl.java index c3627ea..d7ace3d 100644 --- a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodVerifyServiceImpl.java +++ b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/ProcessMethodVerifyServiceImpl.java @@ -357,7 +357,7 @@ // 锛堝叾浠栵級鏄惁婊¤冻 processMethodVerifyExportWordDto.setOtherIsSatisfiedStr(processMethodVerify.getOtherIsSatisfied() == 1 ? "鈭�" : "脳"); // 纭鏃ユ湡 - processMethodVerifyExportWordDto.setConfirmDateStr(processMethodVerify.getConfirmDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + processMethodVerifyExportWordDto.setConfirmDateStr(processMethodVerify.getConfirmDate() != null ? processMethodVerify.getConfirmDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")): null); return processMethodVerifyExportWordDto; } diff --git a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/QualityMonitorServiceImpl.java b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/QualityMonitorServiceImpl.java index f4c89f5..f7e0def 100644 --- a/cnas-process/src/main/java/com/yuanchu/mom/service/impl/QualityMonitorServiceImpl.java +++ b/cnas-process/src/main/java/com/yuanchu/mom/service/impl/QualityMonitorServiceImpl.java @@ -367,7 +367,7 @@ */ @Override public void exportQualityMonitorRatify(Integer detailsRatifyId, HttpServletResponse response) { - QualityMonitorDetailsRatify qualityMonitorDetailsRatify = qualityMonitorDetailsRatifyMapper.selectById(detailsRatifyId); + QualityMonitorDetailsRatify qualityMonitorDetailsRatify = qualityMonitorDetailsRatifyMapper.selectOne(Wrappers.<QualityMonitorDetailsRatify>lambdaQuery().eq(QualityMonitorDetailsRatify::getQualityMonitorDetailsId, detailsRatifyId)); // 鑾峰彇璺緞 InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor-details-ratify.docx"); @@ -502,7 +502,7 @@ @Override public void exportQualityMonitorEvaluate(Integer detailsEvaluateId, HttpServletResponse response) { // 鏌ヨ鐩戞帶璇勪环淇℃伅 - QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate = qualityMonitorDetailsEvaluateMapper.selectById(detailsEvaluateId); + QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate = qualityMonitorDetailsEvaluateMapper.selectOne(Wrappers.<QualityMonitorDetailsEvaluate>lambdaQuery().eq(QualityMonitorDetailsEvaluate::getQualityMonitorDetailsId,detailsEvaluateId)); // 娓叉煋word妯℃澘瀵硅薄 QualityMonitorDetailsEvaluateDto qualityMonitorDetailsEvaluateDto = new QualityMonitorDetailsEvaluateDto(); BeanUtils.copyProperties(qualityMonitorDetailsEvaluate, qualityMonitorDetailsEvaluateDto); diff --git a/cnas-process/src/main/resources/static/excel/check-records.xlsx b/cnas-process/src/main/resources/static/excel/check-records.xlsx new file mode 100644 index 0000000..5f9b346 --- /dev/null +++ b/cnas-process/src/main/resources/static/excel/check-records.xlsx Binary files differ diff --git a/cnas-process/src/main/resources/static/method-verify.docx b/cnas-process/src/main/resources/static/method-verify.docx index 0368726..6f83d94 100644 --- a/cnas-process/src/main/resources/static/method-verify.docx +++ b/cnas-process/src/main/resources/static/method-verify.docx Binary files differ -- Gitblit v1.9.3