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.设备维护保养导出 --- cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java | 115 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 60 insertions(+), 55 deletions(-) diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java index 6ce3e62..b42a809 100644 --- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java +++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java @@ -39,6 +39,7 @@ import java.io.OutputStream; import java.net.URLEncoder; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -182,17 +183,17 @@ */ @Override public Result submitReviewImpowerStatus(DeviceImpowerDto deviceImpowerDto) { -// User audit = userMapper.selectById(deviceImpowerDto.getAuditId()); -// this.update(Wrappers.<DeviceImpower>lambdaUpdate() -// .eq(DeviceImpower::getImpowerId, deviceImpowerDto.getImpowerId()) -// .set(DeviceImpower::getAuditId, audit.getId()) -// .set(DeviceImpower::getAudit, audit.getName()) -// .set(DeviceImpower::getAuditDate, null) -// .set(DeviceImpower::getStatus, null) -// .set(DeviceImpower::getAuditRemark, null)); -// -// DeviceImpower deviceImpower = baseMapper.selectById(deviceImpowerDto.getImpowerId()); -// + User audit = userMapper.selectById(deviceImpowerDto.getAuditId()); + this.update(Wrappers.<DeviceImpower>lambdaUpdate() + .eq(DeviceImpower::getImpowerId, deviceImpowerDto.getImpowerId()) + .set(DeviceImpower::getAuditId, audit.getId()) + .set(DeviceImpower::getAudit, audit.getName()) + .set(DeviceImpower::getAuditDate, null) + .set(DeviceImpower::getStatus, null) + .set(DeviceImpower::getAuditRemark, null)); + + DeviceImpower deviceImpower = baseMapper.selectById(deviceImpowerDto.getImpowerId()); + // // 鍙戦�佹秷鎭� // Integer userId = SecurityUtils.getUserId().intValue(); // User user = userMapper.selectById(userId); @@ -226,9 +227,9 @@ } /** - * 瀹℃牳璁惧浣跨敤 * - * @param deviceImpowerDto 璁惧浣跨敤 + * + * @param deviceImpowerDto */ @Override public Result reviewImpowerStatus(DeviceImpowerDto deviceImpowerDto) { @@ -245,50 +246,54 @@ /** * 瀵煎嚭璁惧浣跨敤 * - * @param ImpowerId 璁惧浣跨敤id + * @param impowerId 璁惧浣跨敤id */ @Override - public Result exportDeviceImpowerDto(Integer ImpowerId, HttpServletResponse response) { -// // 鏌ヨ璁惧淇濆吇璁″垝 -// DeviceImpowerDto deviceImpower = baseMapper.selectDeviceImpowerById(ImpowerId); -// -// // 鏌ヨ璁惧淇濆吇璁″垝璇︽儏 -// List<DeviceImpowerDetailsDto> deviceImpowerDetailsDtoList = deviceImpowerDetailsMapper.deviceImpowerDetailsList(ImpowerId); -// // 璁剧疆搴忓彿 -// deviceImpowerDetailsDtoList.forEach(deviceImpowerDetails -> { -// deviceImpowerDetails.setIndex(deviceImpowerDetailsDtoList.indexOf(deviceImpowerDetails) + 1); -// }); -// -// // 鑾峰彇璺緞 -// InputStream inputStream = this.getClass().getResourceAsStream("/static/word/traceability-management-details.docx"); -// Configure configure = Configure.builder() -// .bind("deviceImpowerDetailsDtoList", new HackLoopTableRenderPolicy()) -// .build(); -// XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( -// new HashMap<String, Object>() {{ -// put("deviceImpower", deviceImpower); -// put("deviceImpowerDetailsDtoList", deviceImpowerDetailsDtoList); -// // 缂栧埗浜虹鍚嶅湴鍧� -// put("compilerUrl", UserUtils.getFinalUserSignatureUrl(deviceImpower.getCompilerId())); -// // 瀹℃牳浜虹鍚嶅湴鍧� -// put("auditUrl", UserUtils.getFinalUserSignatureUrl(deviceImpower.getAuditId())); -// }}); -// -// try { -// response.setContentType("application/msword"); -// String finalFileName = deviceImpower.getFileName() == null ? "" : deviceImpower.getFileName() + "_"; -// String fileName = URLEncoder.encode( -// finalFileName+ "璁惧浣跨敤", "UTF-8"); -// response.setHeader("Content-disposition", -// "attachment;filename=" + fileName + ".docx"); -// OutputStream os = response.getOutputStream(); -// template.write(os); -// os.flush(); -// os.close(); -// } catch (Exception e) { -// e.printStackTrace(); -// throw new RuntimeException("瀵煎嚭澶辫触"); -// } + public Result exportDeviceImpowerDto(Integer impowerId, HttpServletResponse response) { + // 鏌ヨ璁惧浣跨敤鎺堟潈璁″垝 + DeviceImpower deviceImpower = baseMapper.selectById(impowerId); + DeviceImpowerDto deviceImpowerDto = new DeviceImpowerDto(); + BeanUtils.copyProperties(deviceImpower, deviceImpowerDto); + // 鏍煎紡鍖栨棩鏈熶腑鑻辨枃 + DateTimeFormatter formatterCH = DateTimeFormatter.ofPattern("yyyy 骞� MM 鏈� dd 鏃�"); + DateTimeFormatter formatterEN = DateTimeFormatter.ofPattern("yyyy 'Year' MM 'Month' dd 'Day'"); + deviceImpowerDto.setAuditDateCH(deviceImpower.getAuditDate() == null ? null : deviceImpower.getAuditDate().format(formatterCH)); + deviceImpowerDto.setAuditDateEN(deviceImpower.getAuditDate() == null ? null : deviceImpower.getAuditDate().format(formatterEN)); + + // 鏌ヨ璁惧淇濆吇璁″垝璇︽儏 + List<DeviceImpowerDetailsDto> deviceImpowerDetailsDtoList = deviceImpowerDetailsMapper.deviceImpowerDetailsList(impowerId); + // 璁剧疆搴忓彿 + deviceImpowerDetailsDtoList.forEach(deviceImpowerDetails -> { + deviceImpowerDetails.setIndex(deviceImpowerDetailsDtoList.indexOf(deviceImpowerDetails) + 1); + }); + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-impower.docx"); + Configure configure = Configure.builder() + .bind("deviceImpowerDetailsDtoList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("deviceImpower", deviceImpowerDto); + put("deviceImpowerDetailsDtoList", deviceImpowerDetailsDtoList); + // 鎺堟潈浜哄湴鍧� + put("auditUrl", UserUtils.getFinalUserSignatureUrl(deviceImpower.getAuditId())); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "璁惧浣跨敤鎺堟潈", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } return Result.success(); } } -- Gitblit v1.9.3