From 8b4d7246fb735d965195201e80178b5d1528a486 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期五, 18 四月 2025 14:48:49 +0800 Subject: [PATCH] 1.设备使用授权导出 2.设备维护保养导出 --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java | 86 +++++++++++++++++++++++++++++++++++------- 1 files changed, 71 insertions(+), 15 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java index 742af90..568a0ec 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java @@ -1,11 +1,17 @@ package com.ruoyi.inspect.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.aspose.words.License; import com.aspose.words.SaveFormat; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -19,15 +25,18 @@ import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfStamper; +import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto; import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper; import com.ruoyi.basic.pojo.IfsInventoryQuantity; import com.ruoyi.common.constant.InsOrderTypeConstants; +import com.ruoyi.common.constant.MenuJumpPathConstants; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.core.domain.entity.InformationNotification; -import com.ruoyi.common.core.domain.entity.User; -import com.ruoyi.common.properties.WechatProperty; +import com.ruoyi.common.config.WechatProperty; import com.ruoyi.common.utils.*; +import com.ruoyi.common.utils.api.IfsApiUtils; import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.dto.InsReportExport; import com.ruoyi.inspect.dto.ReportPageDto; import com.ruoyi.inspect.mapper.*; import com.ruoyi.inspect.pojo.*; @@ -36,8 +45,10 @@ import com.ruoyi.inspect.mapper.InsUnqualifiedHandlerMapper; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.InformationNotificationService; +import lombok.extern.slf4j.Slf4j; import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,8 +56,10 @@ import javax.annotation.Resource; import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.*; +import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -65,6 +78,7 @@ * @createDate 2024-03-17 22:10:02 */ @Service +@Slf4j public class InsReportServiceImpl extends ServiceImpl<InsReportMapper, InsReport> implements InsReportService { @Resource @@ -81,8 +95,7 @@ private String wordUrl; @Value("${file.path}") private String imgUrl; - @Value("${file.licenseUrl}") - private String licenseUrl; + @Resource private InsOrderMapper insOrderMapper; @Resource @@ -111,9 +124,11 @@ // todo: 浠呯湅鑷繁 //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id String laboratory = null; - Integer createOrderUser = null; + + Integer createOrderUser = reportPageDto.getCreateOrderUser(); String queryStatus = reportPageDto.getQueryStatus(); reportPageDto.setQueryStatus(null); + reportPageDto.setCreateOrderUser(null); map.put("body", insReportMapper.pageInsReport(page, QueryWrappers.queryWrappers(reportPageDto), @@ -185,7 +200,7 @@ info.setSenderId(submitUserId); //鍙戦�佷汉 info.setConsigneeId(userId); //鏀朵欢浜� info.setViewStatus(false); - info.setJumpPath("b1-report-preparation"); + info.setJumpPath(MenuJumpPathConstants.REPORT_PREPARATION); informationNotificationService.addInformationNotification(info); //绯荤粺鐢熸垚鎶ュ憡鍦板潃 String url = insReport.getUrl(); @@ -306,7 +321,7 @@ info.setSenderId(checkUserId); //鍙戦�佷汉 info.setConsigneeId(userId); //鏀朵欢浜� info.setViewStatus(false); - info.setJumpPath("b1-report-preparation"); + info.setJumpPath(MenuJumpPathConstants.REPORT_PREPARATION); informationNotificationService.addInformationNotification(info); //绯荤粺鐢熸垚鎶ュ憡鍦板潃 String url = insReport.getUrl(); @@ -535,12 +550,16 @@ } // 鍘嬬缉涓存椂鏂囦欢澶� zipFilePath = wordUrl + "/zip/output.zip"; + // 鍒ゆ柇zip璺緞鏄惁瀛樺湪 + File zipDir = new File(wordUrl + "/zip"); + if(!zipDir.isDirectory()){ + zipDir.mkdirs(); + } zipDirectory(tempFolderPath, zipFilePath); // 娓呯悊涓存椂鏂囦欢澶� deleteDirectory(tempFolder); - System.out.println("ZIP鏂囦欢鍒涘缓瀹屾垚锛�"); } catch (IOException e) { e.printStackTrace(); } @@ -675,13 +694,11 @@ FileOutputStream os = null; try { //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃 -// InputStream is = this.getClass().getResourceAsStream("/lib/license.xml"); -// InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("license.xml"); - InputStream is = Files.newInputStream(new File(licenseUrl).toPath()); + InputStream is = new ClassPathResource("/lib/license.xml").getInputStream(); License license = new License(); license.setLicense(is); if (!license.getIsLicensed()) { - System.out.println("License楠岃瘉涓嶉�氳繃..."); + log.info("License楠岃瘉涓嶉�氳繃..."); return null; } //鐢熸垚涓�涓┖鐨凱DF鏂囦欢 @@ -981,6 +998,46 @@ return false; } + /** + * 鎶ュ憡鎶ヨ〃瀵煎嚭 + * @param dto + * @param response + */ + @Override + public void reportAllExport(ReportPageDto dto, HttpServletResponse response) throws UnsupportedEncodingException { + + Integer createOrderUser = dto.getCreateOrderUser(); + String queryStatus = dto.getQueryStatus(); + dto.setQueryStatus(null); + dto.setCreateOrderUser(null); + + List<InsReportExport> insReportExports = insReportMapper.reportAllExport(QueryWrappers.queryWrappers(dto), + SecurityUtils.getUserId().intValue(), + queryStatus, + createOrderUser); + + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + String fileName = URLEncoder.encode("鎶ュ憡鎶ヨ〃瀵煎嚭", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + try { + //鏂板缓ExcelWriter + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + //鑾峰彇sheet0瀵硅薄 + WriteSheet mainSheet = EasyExcel.writerSheet(0, "鎶ュ憡鎶ヨ〃瀵煎嚭").head(InsReportExport.class).build(); + + //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� + excelWriter.write(insReportExports, mainSheet); + //鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + + + } + /** * 鍏堜慨鏀归噰璐鍗曟壒娆″彿, 鍚庤繘琛岀Щ搴撴搷浣� @@ -1116,11 +1173,11 @@ FileOutputStream os = null; try { //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃 - InputStream is = Files.newInputStream(new File(licenseUrl).toPath()); + InputStream is = new ClassPathResource("/lib/license.xml").getInputStream(); License license = new License(); license.setLicense(is); if (!license.getIsLicensed()) { - System.out.println("License楠岃瘉涓嶉�氳繃..."); + log.info("License楠岃瘉涓嶉�氳繃..."); return null; } //鐢熸垚涓�涓┖鐨凱DF鏂囦欢 @@ -1131,7 +1188,6 @@ //瑕佽浆鎹㈢殑word鏂囦欢 com.aspose.words.Document doc = new com.aspose.words.Document(wordPath); doc.save(os, SaveFormat.PDF); - String name = file.getName(); return file.getName(); } catch (Exception e) { e.printStackTrace(); -- Gitblit v1.9.3