From 1400e91e8c807fb40707d1f4cd88a99b096242d8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 14 八月 2025 09:45:16 +0800
Subject: [PATCH] 生成总报告数值为空逻辑校验
---
cnas-server/src/main/resources/mapper/DeviceMapper.xml | 148 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 108 insertions(+), 40 deletions(-)
diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
index 7f8d103..4a8ddca 100644
--- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -3,7 +3,6 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMapper">
-
<select id="selectDeviceParameter" resultType="com.yuanchu.mom.pojo.Device">
select * from(
select id,
@@ -79,45 +78,6 @@
</where>
</select>
- <update id="upDeviceParameter" parameterType="com.yuanchu.mom.pojo.Device">
-
- UPDATE device
- <set>
- <if test="largeCategory!=null and largeCategory!='' ">large_category=#{largeCategory},</if>
- <if test="dateProduction!=null ">date_production=#{dateProduction},</if>
- <if test="equipmentManager!=null ">equipment_manager=#{equipmentManager},</if>
- <if test="authorizedPerson!=null ">authorized_person=#{authorizedPerson}</if>
- <if test="deviceName!=null ">device_name=#{deviceName}</if>
- <if test="internalCode!=null ">internal_code=#{internalCode}</if>
- <if test="assetCode!=null ">asset_code=#{assetCode}</if>
- <if test="calibrationDate!=null ">calibration_date=#{calibrationDate}</if>
- <if test="scrapTime!=null ">scrap_time=#{scrapTime}</if>
- <if test="acceptanceRecords!=null ">acceptance_records=#{acceptanceRecords}</if>
- <if test="subclass!=null ">subclass=#{subclass}</if>
- <if test="factoryNo!=null ">factory_no=#{factoryNo}</if>
- <if test="acquisitionDate!=null ">create_time=#{acquisition_date}</if>
- <if test="factoryNo!=null ">create_time=#{factory_no}</if>
- <if test="acquisitionDate!=null ">acquisition_date=#{acquisitionDate}</if>
- <if test="accurateMeasurement!=null ">accurate_measurement=#{accurateMeasurement}</if>
- <if test="notes!=null ">notes=#{notes}</if>
- <if test="specificationModel!=null ">specification_model=#{specificationModel}</if>
- <if test="deviceStatus!=null ">device_status=#{deviceStatus}</if>
- <if test="storagePoint!=null ">storage_point=#{storagePoint}</if>
- <if test="latestTraceability!=null ">latest_traceability=#{latestTraceability}</if>
- <if test="downTime!=null ">down_time=#{downTime}</if>
- <if test="maintenanceRecords!=null ">maintenance_records=#{maintenanceRecords}</if>
- <if test="manufacturer!=null ">manufacturer=#{manufacturer}</if>
- <if test="detectionType!=null ">detection_type=#{detectionType}</if>
- <if test="procurementCosts!=null ">procurement_costs=#{procurementCosts}</if>
- <if test="calibrationCerticate!=null ">calibration_certicate=#{calibrationCerticate}</if>
- <if test="status!=null ">status=#{status}</if>
- <if test="imageUpload!=null ">image_upload=#{imageUpload}</if>
- <if test="imageName!=null ">image_name=#{imageName}</if>
- </set>
- <where>
- id=#{id}
- </where>
- </update>
<select id="selectDeviceImage" resultType="com.yuanchu.mom.pojo.Device">
select (image_upload, create_user, create_time) values (#{image_upload}
, #{createUser}
@@ -128,4 +88,112 @@
equipment_manager
from device
</select>
+
+ <select id="selectDeviceParameterPage" resultType="com.yuanchu.mom.dto.DeviceDto">
+ select * from(
+ SELECT
+ d.*,
+ GROUP_CONCAT(
+ CONCAT_WS(', ',
+ TRIM(BOTH '["]' FROM SUBSTRING_INDEX(REPLACE(sample, '[["', ''), '"]]', 1)),
+ inspection_item,
+ inspection_item_subclass
+ )
+ SEPARATOR ';'
+ ) AS insProductItem,
+ u.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,cmr.next_calibration_date,status
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="getInspectionItemSubclass" resultType="map">
+ SELECT ip.inspection_item,
+ if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '',
+ ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass
+ FROM ins_product ip
+ where ip.ins_sample_id = #{id}
+ </select>
+
+
+ <resultMap id="treeDeviceDto" type="map">
+ <result property="label" column="laboratory_name"/>
+ <result property="value" column="value" />
+ <collection property="children" resultMap="storagePointMap" javaType="List"/>
+ </resultMap>
+
+ <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
+ 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