From 8371104912700f4e0f8ec34a0e7d4e399efb7217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 8 May 2025 16:55:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=BE=E5=A4=87=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/DeviceController.java | 25 +++++++++++-------- .../admin/controller/TestController.java | 6 +++-- .../admin/service/DeviceQRCodeService.java | 5 ++-- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java index cd6d42a8..04f328d9 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java @@ -708,7 +708,7 @@ public class DeviceController extends ControllerBase { devices.forEach(device -> { try { DeviceQRCodeVO vo=new DeviceQRCodeVO(); - byte[] bytes=deviceQRCodeService.generate(device.getDeviceNo()); + byte[] bytes=deviceQRCodeService.generate(device.getDeviceNo(),device.getModelNo()); vo.setDeviceNo(device.getDeviceNo()); vo.setUrl(fileUploadService.upload("temp/qrcode/device/"+IdUtil.fastUUID()+".png",new ByteArrayInputStream(bytes))); vos.add(vo); @@ -725,14 +725,14 @@ public class DeviceController extends ControllerBase { */ @PostMapping("exportImages") public ResponseEntity exportImages(@Valid @RequestBody IdPostRequest request){ - Collection deviceNos=deviceService.listByIds(request.getIds()).stream().map(Device::getDeviceNo).collect(Collectors.toSet()); - if (CollUtil.isNotEmpty(deviceNos)){ + List devices=deviceService.listByIds(request.getIds()); + if (CollUtil.isNotEmpty(devices)){ try { - if (deviceNos.size()==1){ - String deviceNo=deviceNos.stream().findFirst().get(); - byte[] bytes=deviceQRCodeService.generate(deviceNo); + if (devices.size()==1){ + Device device=devices.get(0); + byte[] bytes=deviceQRCodeService.generate(device.getDeviceNo(),device.getModelNo()); HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ deviceNo+".jpg"); + headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ device.getDeviceNo()+".jpg"); return ResponseEntity.ok() .headers(headers) .contentType(MediaType.APPLICATION_OCTET_STREAM) @@ -741,10 +741,15 @@ public class DeviceController extends ControllerBase { Path tempZipFile = Files.createTempFile("files", ".zip"); try (FileOutputStream fos = new FileOutputStream(tempZipFile.toFile()); ZipOutputStream zos = new ZipOutputStream(fos)) { - for (String deviceNo : deviceNos) { - ZipEntry zipEntry = new ZipEntry(deviceNo+".jpg"); + List tds=new ArrayList<>(); + for (Device device : devices) { + if (tds.stream().anyMatch(td -> StrUtil.equals(td.getDeviceNo(), device.getDeviceNo()))){ + continue; + } + tds.add(device); + ZipEntry zipEntry = new ZipEntry(device.getDeviceNo()+".jpg"); zos.putNextEntry(zipEntry); - byte[] bytes=deviceQRCodeService.generate(deviceNo); + byte[] bytes=deviceQRCodeService.generate(device.getDeviceNo(),device.getModelNo()); zos.write(bytes, 0, bytes.length); zos.closeEntry(); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java index c8a697d9..46b34c0e 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TestController.java @@ -26,9 +26,11 @@ public class TestController extends ControllerBase{ * @param deviceNo 设备编号 */ @GetMapping("showDeviceQRCode") - public void showDeviceQRCode(HttpServletResponse response, @RequestParam(defaultValue = "dsadwe3d3cdsd") String deviceNo){ + public void showDeviceQRCode(HttpServletResponse response + , @RequestParam(defaultValue = "dsadwe3d3cdsd") String deviceNo + , @RequestParam(defaultValue = "sadasd") String modelNo){ try { - byte[] bytes=deviceQRCodeService.generate(deviceNo); + byte[] bytes=deviceQRCodeService.generate(deviceNo,modelNo); response.setContentType("image/png"); response.setHeader("Content-Disposition", "attachment;filename=qrcode.png"); try (OutputStream outputStream = response.getOutputStream()) { diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java index 81de98d0..ee8f8ee3 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.admin.service; +import cn.hutool.core.util.StrUtil; import com.nflg.mobilebroken.common.util.QRCodeUtil; import com.nflg.mobilebroken.repository.entity.ParamConfig; import com.nflg.mobilebroken.repository.service.IParamConfigService; @@ -15,8 +16,8 @@ public class DeviceQRCodeService { @Resource private IParamConfigService paramConfigService; - public byte[] generate(String deviceNo) throws Exception { + public byte[] generate(String deviceNo, String modelNo) throws Exception { ParamConfig config = paramConfigService.lambdaQuery().eq(ParamConfig::getCode, "DeviceQRCodeHost").one(); - return QRCodeUtil.generateDeviceQRCode(deviceNo ,config.getValue() + deviceNo,200, 200); + return QRCodeUtil.generateDeviceQRCode(deviceNo ,StrUtil.format(config.getValue(), deviceNo,modelNo),200, 200); } }