From fdde707bb95af657d838426f1329128b1ff167ab Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 15 三月 2025 15:12:08 +0800
Subject: [PATCH] 报告调整
---
cnas-server/src/main/resources/mapper/DeviceMapper.xml | 72 ++++++++++++++++++++++++++++++-----
1 files changed, 61 insertions(+), 11 deletions(-)
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index b9f80a9..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}
@@ -127,23 +147,53 @@
<resultMap id="treeDeviceDto" type="map">
- <result property="largeCategory" column="large_category"/>
- <collection property="children" resultMap="DeviceDto" javaType="List"/>
+ <result property="label" column="laboratory_name"/>
+ <result property="value" column="value" />
+ <collection property="children" resultMap="storagePointMap" javaType="List"/>
</resultMap>
- <resultMap id="DeviceDto" type="map">
- <id property="id" column="id"/>
- <result property="deviceName" column="device_name"/>
+ <resultMap id="storagePointMap" type="map">
+ <result property="value" column="value"/>
+ <result property="label" column="storage_point"/>
+ <collection property="children" resultMap="deviceNameMap" javaType="List"/>
+ </resultMap>
+
+ <resultMap id="deviceNameMap" type="map">
+ <result property="value" column="id"/>
+ <result property="label" column="device_name"/>
</resultMap>
<select id="treeDevice" resultMap="treeDeviceDto">
- select id,
- case when large_category is null || large_category ='' then '鍏朵粬'
- else large_category end as large_category, device_name
- from device
+ select
+ d.id,
+ case when l.laboratory_name is null || l.laboratory_name ='' then '鍏朵粬' else l.laboratory_name end as laboratory_name,
+ case when d.large_category is null || d.large_category ='' then '鍏朵粬' else d.large_category end as storage_point,
+ d.device_name,
+ null as value
+ from device d
+ LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
<where>
<if test="deviceName!=null and deviceName!=''">
and device_name like concat('%',#{deviceName},'%')
</if>
</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