Newer
Older
casic-metering / casic-metering-dao / src / main / resources / mapper / business / BusinessOrderSampleRelationMapper.xml
<?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="com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.casic.missiles.model.business.BusinessOrderSampleRelation">
        <id column="id" property="id" />
        <result column="order_id" property="orderId" />
        <result column="sample_id" property="sampleId" />
        <result column="sample_status" property="sampleStatus" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, order_id, sample_id, sample_status
    </sql>

    <!-- 各状态列表查询结果列 -->
    <sql id="Status_Column_List">
        csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
        bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
    </sql>

    <!-- 详情查询结果列 -->
    <sql id="Detail_Column_List">
        bosr.sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, csi.manufacturer, csi.manufacturer_country,
        csi.manufacturing_date, csi.ABC, bo.customer_id, bo.customer_name, bo.customer_phone, bo.customer_address, bo.id AS orderId,
        bo.order_code, bo.deliverer, bo.deliverer_tel, bo.plan_deliver_time, bo.require_over_time, bosr.mesure_content, csi.measure_period,
        csi.measure_last_time, csi.valid_deadline, bosr.remark, csi.minio_file_name, csi.measure_type, csi.label_bind
    </sql>

    <select id="selectSampleListByStatus" resultType="com.casic.missiles.dto.business.SampleHandOutListResponse">
        SELECT <include refid="Status_Column_List"/>
        FROM business_order bo
        JOIN business_order_sample_relation bosr ON bo.id = bosr.order_id
        JOIN customer_sample_info csi ON csi.id = bosr.sample_id
        WHERE bo.is_del = 0
        <if test="request.sampleStatus == 8"><!--超期状态,样品在待分发和检测中下的超期-->
            AND (bosr.sample_status = 2 OR bosr.sample_status = 3)
            AND bo.require_over_time &lt; NOW()
        </if>
        <if test="request.sampleStatus != 8"><!--非超期状态的其它状态-->
            AND bosr.sample_status = #{request.sampleStatus}
        </if>
        <if test="request.sampleNo != null and request.sampleNo !=''">
            AND csi.sample_no LIKE concat('%',#{request.sampleNo},'%')
        </if>
        <if test="request.sampleName != null and request.sampleName !=''">
            AND csi.sample_name LIKE concat('%',#{request.sampleName},'%')
        </if>
        <if test="request.orderNo != null and request.orderNo !=''">
            AND bo.order_code LIKE concat('%',#{request.orderNo},'%')
        </if>
        <if test="request.customerNo != null and request.customerNo !=''">
            AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
        </if>
        <if test="request.customerName != null and request.customerName !=''">
            AND bo.customer_name LIKE concat('%',#{request.customerName},'%')
        </if>
        <if test="request.startTime != null and request.startTime !=''">
            AND bo.require_over_time &lt;= #{request.startTime}
        </if>
        <if test="request.endTime != null and request.endTime !=''">
            AND bo.require_over_time &gt; #{request.endTime}
        </if>
        <if test="request.isUrgent != null and request.isUrgent !=''">
            AND bo.is_urgent = #{request.isUrgent}
        </if>
        <if test="request.sampleBelong != null and request.sampleBelong !=''">
            AND csi.sample_belong = #{request.sampleBelong}
        </if>
    </select>

    <select id="selectSampleDetail" resultType="com.casic.missiles.dto.business.SampleHandOutDetailResponse">
        SELECT <include refid="Detail_Column_List"/>
        FROM business_order_sample_relation bosr
        JOIN customer_sample_info csi ON bosr.sample_id = csi.id
        JOIN business_order bo ON bosr.order_id = bo.id
        WHERE bo.is_del = 0 AND csi.is_del = 0
        AND bosr.order_id = #{request.orderId}
        AND bosr.sample_id = #{request.sampleId}
    </select>

</mapper>