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/DeviceServiceImpl.java | 5 +++--
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java | 4 +++-
cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java | 5 ++++-
cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml | 7 +++++++
cnas-device/src/main/java/com/ruoyi/device/service/DeviceService.java | 3 ++-
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java | 16 ++++++++--------
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java | 4 ++--
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java | 4 ++--
8 files changed, 31 insertions(+), 17 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java
index 7022e75..a26a6d5 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java
@@ -210,8 +210,8 @@
@Operation(summary = "浠櫒璁惧涓�瑙堣〃瀵煎嚭")
@GetMapping("/exportEquipmentDetails")
- public void exportEquipmentDetails(HttpServletResponse response) {
- deviceService.exportEquipmentDetails(response);
+ public void exportEquipmentDetails(DeviceDto itemParameter, HttpServletResponse response) {
+ deviceService.exportEquipmentDetails(itemParameter, response);
}
@Operation(summary = "涓嬭浇璁惧瀵煎叆妯℃澘")
diff --git a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java
index cec5390..4a844be 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/controller/DeviceRecordController.java
@@ -57,7 +57,7 @@
@Operation(summary = "璁惧浣跨敤璁板綍瀵煎嚭")
@GetMapping("/exportUseRecord")
- public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response){
- deviceRecordService.exportUseRecord(deviceId, exportDate, response);
+ public void exportUseRecord(Integer deviceId, String sampleCode, String managementNumber, String exportDate, HttpServletResponse response){
+ deviceRecordService.exportUseRecord(deviceId, sampleCode, managementNumber, exportDate, response);
}
}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java
index 66e47cf..cce6942 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceRecordMapper.java
@@ -31,8 +31,10 @@
/**
* 鏌ヨ瀵煎嚭璁惧浣跨敤璁板綍
* @param deviceId
+ * @param sampleCode 鏍峰搧缂栧彿绛涢��
+ * @param managementNumber 绠$悊缂栧彿绛涢��
* @param exportDate
* @return
*/
- List<DeviceRecord> selectExportList(@Param("deviceId") Integer deviceId, @Param("exportDate") String exportDate);
+ List<DeviceRecord> selectExportList(@Param("deviceId") Integer deviceId, @Param("sampleCode") String sampleCode, @Param("managementNumber") String managementNumber, @Param("exportDate") String exportDate);
}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java
index 7366e74..c0560c6 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceRecordService.java
@@ -25,7 +25,10 @@
* 瀵煎嚭璁惧浣跨敤璁板綍
*
* @param deviceId
+ * @param sampleCode 鏍峰搧缂栧彿绛涢��
+ * @param managementNumber 绠$悊缂栧彿绛涢��
+ * @param exportDate 瀵煎嚭鏈堜唤
* @param response
*/
- void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response);
+ void exportUseRecord(Integer deviceId, String sampleCode, String managementNumber, String exportDate, HttpServletResponse response);
}
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceService.java b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceService.java
index 5258d6c..b1233f5 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/DeviceService.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/DeviceService.java
@@ -52,9 +52,10 @@
/**
* 瀵煎嚭璁惧宸ュ叿鏄庣粏
+ * @param itemParameter 瀵煎嚭绛涢�夋潯浠�(璁惧鍚嶇О/绠$悊缂栧彿/鐘舵��/璁惧鍒嗙被), 涓虹┖鏃跺鍑哄叏閮�
* @param response
*/
- void exportEquipmentDetails(HttpServletResponse response);
+ void exportEquipmentDetails(DeviceDto itemParameter, HttpServletResponse response);
void downloadImportTemplate(HttpServletResponse response);
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
index 75ac0af..d49ccbb 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceRecordServiceImpl.java
@@ -64,11 +64,11 @@
@Override
- public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response) {
- // 鏌ヨcnas璁惧浣跨敤璁板綍
- List<DeviceRecord> deviceList = baseMapper.selectExportList(deviceId, exportDate);
- // 璁惧淇℃伅
- Device device = deviceMapper.selectById(deviceId);
+ public void exportUseRecord(Integer deviceId, String sampleCode, String managementNumber, String exportDate, HttpServletResponse response) {
+ // 鏌ヨcnas璁惧浣跨敤璁板綍(鎸夊綋鍓嶇瓫閫夋潯浠�, 鏉′欢涓虹┖鏃跺鍑哄叏閮�)
+ List<DeviceRecord> deviceList = baseMapper.selectExportList(deviceId, sampleCode, managementNumber, exportDate);
+ // 璁惧淇℃伅(鏈�変腑鍏蜂綋璁惧鏃跺鍑哄叏閮ㄨ澶囩殑璁板綍, 璁惧淇℃伅鐣欑┖)
+ Device device = deviceId == null ? null : deviceMapper.selectById(deviceId);
// 鏌ヨ璁惧灞炰簬鍝釜瀹為獙瀹�
@@ -118,13 +118,13 @@
Configure configure = Configure.builder()
.bind("useRecord", new HackLoopTableRenderPolicy())
.build();
- String deviceName = device.getDeviceName();
- String managementNumber = device.getManagementNumber();
+ String deviceName = device == null ? "" : device.getDeviceName();
+ String deviceManagementNumber = device == null ? "" : device.getManagementNumber();
XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
new HashMap<String, Object>() {{
put("useRecord", deviceExportList);
put("deviceName", deviceName);
- put("managementNumber", managementNumber);
+ put("managementNumber", deviceManagementNumber);
put("laboratory", laboratoryName);
}});
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
index e006b84..5a007c1 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -619,8 +619,9 @@
}
@Override
- public void exportEquipmentDetails(HttpServletResponse response) {
- List<Device> deviceList = baseMapper.selectList(null);
+ public void exportEquipmentDetails(DeviceDto itemParameter, HttpServletResponse response) {
+ // 鎸夊綋鍓嶇瓫閫夋潯浠跺鍑�(鏉′欢涓虹┖鏃跺鍑哄叏閮�)
+ List<Device> deviceList = baseMapper.selectList(QueryWrappers.<Device>queryWrappers(itemParameter));
List<DeviceExport> deviceExportList = new ArrayList<>();
int index = 1;
diff --git a/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml b/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml
index 8a5e3cf..26dc79b 100644
--- a/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml
+++ b/cnas-device/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml
@@ -39,10 +39,17 @@
<select id="selectExportList" resultType="com.ruoyi.device.dto.DeviceRecordDto">
select dr.*
from device_record dr
+ left join device d on d.id = dr.device_id
where dr.use_start_date is not null
<if test="deviceId != null">
and dr.device_id = #{deviceId}
</if>
+ <if test="sampleCode != '' and sampleCode != null">
+ and dr.sample_code like concat('%', #{sampleCode}, '%')
+ </if>
+ <if test="managementNumber != '' and managementNumber != null">
+ and d.management_number like concat('%', #{managementNumber}, '%')
+ </if>
<if test="exportDate != '' and exportDate != null">
and DATE_FORMAT(dr.use_start_date, '%Y-%m') = #{exportDate}
</if>
--
Gitblit v1.9.3