From bcc80a6833abe9f24abdb978f7c7f01b664a574f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 18 二月 2025 14:48:45 +0800 Subject: [PATCH] 优化调整 --- cnas-server/src/main/resources/mapper/DeviceMapper.xml | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml index 1bb8478..4a8ddca 100644 --- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml +++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml @@ -102,15 +102,35 @@ SEPARATOR ';' ) AS insProductItem, u.name , - l.laboratory_name + l.laboratory_name, + cmr.next_calibration_date nextCalibrationDateTwo, + CASE + WHEN cmr.next_calibration_date IS NULL THEN 0 + WHEN cmr.next_calibration_date BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 45 DAY) THEN 1 + ELSE 0 + END AS status FROM device d LEFT JOIN `user` u ON u.id = d.equipment_manager LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id + LEFT JOIN (SELECT + device_id, + type, + MAX(next_calibration_date) AS next_calibration_date + FROM + device_metric_record + GROUP BY + device_id )cmr ON d.id = cmr.device_id LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids) + <where> + <if test="laboratoryNameIsNull != null and laboratoryNameIsNull == true"> + l.laboratory_name is null + </if> + AND cmr.type = 'calibrate' or cmr.type is null or cmr.type = '' + </where> GROUP BY d.id, - u.name, l.laboratory_name + u.name, l.laboratory_name,cmr.next_calibration_date,status ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} @@ -158,4 +178,22 @@ </where> order by l.laboratory_name desc, d.large_category desc </select> + <select id="selectDeviceByCode" resultType="com.yuanchu.mom.dto.DeviceDto"> + SELECT d.*, + GROUP_CONCAT(DISTINCT inspection_item SEPARATOR ';') AS ins_product_item, + l.laboratory_name, + u1.name equipmentManager_name, + u2.name authorized_person_name + FROM device d + LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids) + LEFT JOIN laboratory l ON d.subordinate_departments_id = l.id + LEFT JOIN user u1 ON u1.id = d.equipment_manager + LEFT JOIN user u2 ON u2.id = d.authorized_person + WHERE d.id = #{id} + + GROUP BY d.id, + l.laboratory_name, + u1.name, + u2.name + </select> </mapper> -- Gitblit v1.9.3