TkRepairRecordMapper.xml 3.9 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkRepairRecordMapper">
    <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO" id="repairRecordMap">
        <result property="id" column="id"/>
        <result property="code" column="code"/>
        <result property="repairDate" column="repair_date"/>
        <result property="orderId" column="order_id"/>
        <result property="repairBy" column="repair_by"/>
        <result property="description" column="description"/>
        <result property="malfunctionReasonId" column="malfunctionReasonId"/>
        <result property="malfunctionReasonName" column="malfunctionReasonName"/>
        <result property="repairName" column="repairName"/>
        <result property="deviceAccountName" column="deviceAccountName"/>
        <association property="tkRepairOrderDTO"
                     javaType="org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO">
            <id property="id" column="order_id"/>
            <result property="orderCode" column="order_code"/>
            <result property="deviceId" column="device_id"/>
            <result property="reportDate" column="report_date"/>
            <result property="reportBy" column="report_by"/>
            <result property="status" column="roStatus" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
            <result property="emergency" column="emergency"/>
            <result property="situationImg" column="situation_img"/>
            <result property="description" column="roDescription"/>
            <result property="reportByName" column="reportByName"/>
        </association>
    </resultMap>
    <select id="getRepairRecordPage" resultMap="repairRecordMap">
        SELECT rr.id,rr.code,rr.order_id,rr.repair_date,rr.repair_by,rr.description,da.name as deviceAccountName,
        ro.order_code,ro.device_id,ro.report_date,ro.report_by,ro.status as roStatus,
        ro.emergency,ro.situation_img,ro.description as roDescription,su2.real_name as reportByName,
        mr.id as malfunctionReasonId, mr.reason as malfunctionReasonName,
        rr.tenant_id,rr.create_time,rr.updater,rr.update_time,rr.creator,su.real_name as repairName
        from qg_repair_record rr
        inner join qg_repair_order ro on ro.id=rr.order_id
        inner join sys_user su on su.id=rr.repair_by
        inner join sys_user su2 on su2.id=ro.report_by
        inner join qg_device_account da on da.id=ro.device_id
        inner join qg_malfunction_reason mr on mr.id=rr.malfunction_reason_id
        <where>
            <if test="queryMap.id !=null and queryMap.id !=''">
                AND rr.id = #{queryMap.id}
            </if>
            <if test="queryMap.tenantId !=null and queryMap.tenantId !=''">
                AND rr.tenant_id = #{queryMap.tenantId}
            </if>
            <if test="queryMap.orderId !=null and queryMap.orderId !=''">
                AND rr.order_id = #{queryMap.orderId}
            </if>
            <if test="queryMap.repairBy !=null and queryMap.repairBy !=''">
                AND rr.repair_by = #{queryMap.repairBy}
            </if>
            <if test="queryMap.reportBy !=null and queryMap.reportBy !=''">
                AND ro.report_by = #{queryMap.reportBy}
            </if>
            <if test="queryMap.deviceId !=null and queryMap.deviceId !=''">
                AND ro.device_id = #{queryMap.deviceId}
            </if>
            <if test="queryMap.deviceName !=null and queryMap.deviceName !=''">
                AND da.name LIKE concat('%',#{queryMap.deviceName}::TEXT,'%')
            </if>
            <if test="queryMap.orderCode !=null and queryMap.orderCode !=''">
                AND ro.order_code LIKE concat('%',#{queryMap.orderCode}::TEXT,'%')
            </if>
        </where>
    </select>
</mapper>