<?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> <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 is_del = 0 <if test="request.sampleStatus == 8"><!--超期状态,样品在待分发和检测中下的超期--> AND (bosr.sample_status = 2 OR bosr.sample_status = 3) AND require_over_time < 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 <= #{request.startTime} </if> <if test="request.endTime != null and request.endTime !=''"> AND bo.require_over_time > #{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> </mapper>