From 05e5ffa3d347218cfa12e8c4a58fae78d7146ff4 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期五, 16 十月 2026 14:57:30 +0800
Subject: [PATCH] 设备导出支持按筛选条件导出 - 仪器设备一览表导出: 支持设备名称/管理编号/状态/设备分类筛选, 无筛选时导出全部 - 设备使用记录导出: 支持样品编号/管理编号筛选; 未选中具体设备时可导出全部设备记录

---
 cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java |   72 +++--------------------------------
 1 files changed, 7 insertions(+), 65 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
index 4a0b914..e2acac2 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
@@ -7,17 +7,13 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.config.Configure;
-import com.deepoove.poi.data.Pictures;
 import com.ruoyi.basic.mapper.LaboratoryMapper;
 import com.ruoyi.basic.pojo.Laboratory;
-import com.ruoyi.common.core.domain.entity.User;
 import com.ruoyi.device.dto.DeviceStateDto;
 import com.ruoyi.device.mapper.DeviceStateMapper;
 import com.ruoyi.device.pojo.DeviceState;
 import com.ruoyi.device.service.DeviceStateService;
-import com.ruoyi.framework.exception.ErrorException;
-import com.ruoyi.system.mapper.UserMapper;
-import org.springframework.beans.factory.annotation.Value;
+import com.ruoyi.inspect.util.UserUtils;
 import org.springframework.stereotype.Service;
 
 import jakarta.annotation.Resource;
@@ -41,12 +37,6 @@
 
     @Resource
     private LaboratoryMapper laboratoryMapper;
-
-    @Resource
-    private UserMapper userMapper;
-
-    @Value("${file.path}")
-    private String imgUrl;
 
     @Override
     public IPage<DeviceStateDto> getDeviceStatePage(Integer deviceId, Page page, String processNumber) {
@@ -73,71 +63,23 @@
             Laboratory laboratory = laboratoryMapper.selectOne(Wrappers.<Laboratory>lambdaQuery()
                     .eq(Laboratory::getLaboratoryNumber, largeCategory)
                     .select(Laboratory::getLaboratoryName));
-            laboratoryName = laboratory.getLaboratoryName();
+            laboratoryName = laboratory != null ? laboratory.getLaboratoryName() : "";
         } else {
             laboratoryName = "";
-        }
-
-        //todo: 璁惧鐘舵�佹煡璇㈢鍚嶅湴鍧� 鏆傛椂浜哄悕鏌ヨ
-        //鑾峰彇鐢宠浜虹殑绛惧悕鍦板潃
-        String applicantUrl = null;
-        if (deviceStateDto.getSubmitOperatingPersonnel() != null) {
-            applicantUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
-                            .eq(User::getName, deviceStateDto.getSubmitOperatingPersonnel()))
-                    .getSignatureUrl();
-            if (StringUtils.isBlank(applicantUrl)) {
-                throw new ErrorException("鎵句笉鍒扮敵璇蜂汉鐨勭鍚�");
-            }
-        }
-
-        //鑾峰彇閮ㄩ棬璐熻矗浜虹殑绛惧悕鍦板潃
-        String headOfDepartmentUrl = null;
-        if (deviceStateDto.getDepartmentNextPesponsible() != null) {
-            headOfDepartmentUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
-                    .eq(User::getName, deviceStateDto.getDepartmentNextPesponsible()))
-                    .getSignatureUrl();
-            if (StringUtils.isBlank(headOfDepartmentUrl)) {
-                throw new ErrorException("鎵句笉鍒伴儴闂ㄨ礋璐d汉鐨勭鍚�");
-            }
-        }
-
-        //鑾峰彇璁¢噺瀹ゅ娴嬩汉鐨勭鍚嶅湴鍧�
-        String measurementRoomUrl = null;
-        if (deviceStateDto.getMeasuringRoomNextPesponsible() != null) {
-            measurementRoomUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
-                            .eq(User::getName, deviceStateDto.getMeasuringRoomNextPesponsible()))
-                    .getSignatureUrl();
-            if (StringUtils.isBlank(measurementRoomUrl)) {
-                throw new ErrorException("鎵句笉鍒拌閲忓澶嶆祴浜虹殑绛惧悕");
-            }
-        }
-
-        //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃
-        String approvedUrl = null;
-        if (deviceStateDto.getApprovalNextPesponsible() != null) {
-            approvedUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
-                            .eq(User::getName, deviceStateDto.getApprovalNextPesponsible()))
-                    .getSignatureUrl();
-            if (StringUtils.isBlank(approvedUrl)) {
-                throw new ErrorException("鎵句笉鍒版壒鍑嗕汉鐨勭鍚�");
-            }
         }
 
         // 鑾峰彇璺緞
         InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-status.docx");
         Configure configure = Configure.builder()
                 .build();
-        String finalApplicantUrl = applicantUrl; // 鐢宠浜虹殑绛惧悕鍦板潃
-        String finalHeadOfDepartmentUrl = headOfDepartmentUrl; // 閮ㄩ棬璐熻矗浜虹殑绛惧悕鍦板潃
-        String finalMeasurementRoomUrl = measurementRoomUrl; // 璁¢噺瀹ゅ娴嬩汉鐨勭鍚嶅湴鍧�
-        String finalApprovedUrl = approvedUrl; // 鎵瑰噯浜虹殑绛惧悕鍦板潃
         XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                 new HashMap<String, Object>() {{
                     put("deviceStateDto", deviceStateDto);
-                    put("submitOperatingPersonnelUrl", StringUtils.isNotBlank(finalApplicantUrl) ? Pictures.ofLocal(imgUrl + "/" + finalApplicantUrl).create() : null);
-                    put("departmentNextPesponsibleUrl", StringUtils.isNotBlank(finalHeadOfDepartmentUrl) ? Pictures.ofLocal(imgUrl + "/" + finalHeadOfDepartmentUrl).create() : null);
-                    put("measuringRoomNextPesponsibleUrl", StringUtils.isNotBlank(finalMeasurementRoomUrl) ? Pictures.ofLocal(imgUrl + "/" + finalMeasurementRoomUrl).create() : null);
-                    put("approvalNextPesponsibleUrl", StringUtils.isNotBlank(finalApprovedUrl) ? Pictures.ofLocal(imgUrl + "/" + finalApprovedUrl).create() : null);
+                    // 绛惧悕鍏滃簳: 浜哄憳鏈厤缃鍚嶆垨绛惧悕鏂囦欢缂哄け鏃惰繑鍥為�忔槑鍥剧墖, 淇濊瘉瀵煎嚭涓嶅洜绌哄浘鐗囨姤閿�
+                    put("submitOperatingPersonnelUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceStateDto.getSubmitOperatingPersonnel()));
+                    put("departmentNextPesponsibleUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceStateDto.getDepartmentNextPesponsible()));
+                    put("measuringRoomNextPesponsibleUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceStateDto.getMeasuringRoomNextPesponsible()));
+                    put("approvalNextPesponsibleUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceStateDto.getApprovalNextPesponsible()));
                     put("laboratory", laboratoryName);
                 }});
 

--
Gitblit v1.9.3