zss
2025-01-13 8d85246f061e3da623c7b9eb4e323ee724b4de0b
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,
@@ -59,19 +58,14 @@
        </if>
    </select>
    <select id="authorizedPerson" resultType="com.yuanchu.mom.pojo.Device">
        select *
        from (select id,
                     authorized_person,
                     status
              from device) a
        select id,
               authorized_person
        from device
    </select>
    <select id="search" resultType="com.yuanchu.mom.pojo.Device">
        select *
        from device
        <where>
            <if test="status!=null">
                and status = #{status}
            </if>
            <if test="deviceName!=null and deviceName!=''">
                and device_name like concat('%',#{deviceName},'%')
            </if>
@@ -84,46 +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}
@@ -134,4 +88,81 @@
               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
        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 device_metric_record 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
        ) 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>
</mapper>