<?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.BizBusinessOrderSampleRelationMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.business.BizBusinessOrderSampleRelation"> <id column="id" property="id" /> <result column="order_id" property="orderId" /> <result column="sample_id" property="sampleId" /> <result column="sample_no" property="sampleNo" /> <result column="sample_name" property="sampleName" /> <result column="sample_model" property="sampleModel" /> <result column="interchange_id" property="interchangeId" /> <result column="back_interchange_id" property="backInterchangeId" /> <result column="sample_status" property="sampleStatus" /> <result column="remark" property="remark" /> <result column="real_deliver_time" property="realDeliverTime" /> <result column="return_time" property="returnTime" /> <result column="measure_type" property="measureType" /> <result column="appendix_descn" property="appendixDescn" /> <result column="appearance_inspect" property="appearanceInspect" /> <result column="special_require" property="specialRequire" /> <result column="measure_content" property="measureContent" /> <result column="measure_complete_time" property="measureCompleteTime" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, order_id, sample_id, sample_no, sample_name, sample_model, interchange_id, back_interchange_id, sample_status, remark, real_deliver_time, return_time, measure_type, appendix_descn, appearance_inspect, special_require, measure_content, measure_complete_time, create_time, update_time </sql> <!-- 各状态列表查询结果列 --> <sql id="Status_Column_List"> eei.id AS sample_id, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.category, eei.manufacture_no AS manufactureNo, bo.order_no AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, bo.require_over_time, bosr.sample_status, bosr.real_deliver_time, eei.manufacturer, eei.help_instruction </sql> <!-- 详情查询结果列 --> <sql id="Detail_Column_List"> bosr.sample_id, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.manufacture_no AS manufactureNo, bo.customer_id, bo.customer_name, bo.id AS orderId, bo.order_no, bosr.measure_content </sql> <select id="isBindLabel" resultType="java.lang.Long"> SELECT id FROM eqpt_equipment_info WHERE 1=1 <if test="label != null and label !=''"> and RFID =#{label} </if> </select> <update id="bindLabel"> UPDATE eqpt_equipment_info SET RFID = #{request.label} WHERE id = #{request.equipmentId} </update> <select id="selectSampleListByStatus" resultType="com.casic.missiles.dto.business.labExecutive.SampleHandOutListResponse"> SELECT <include refid="Status_Column_List"/> FROM biz_business_order_info bo JOIN biz_business_order_sample_relation bosr ON bo.id = bosr.order_id JOIN eqpt_equipment_info eei ON eei.id = bosr.sample_id WHERE 1=1 AND bosr.measure_type = 1<!--检定方式:内检--> <if test="request != null and request.sampleStatus == 8"><!--超期状态,样品在待分发和检测中下的超期--> AND (bosr.sample_status = 2 OR bosr.sample_status = 3) AND bo.require_over_time < NOW() </if> <if test="request != null and request.sampleStatus != 8"><!--非超期状态的其它状态--> AND bosr.sample_status = #{request.sampleStatus} </if> <if test="request != null and request.sampleNo != null and request.sampleNo !=''"> AND eei.equipment_no LIKE concat('%',#{request.sampleNo},'%') </if> <if test="request != null and request.sampleName != null and request.sampleName !=''"> AND eei.equipment_name LIKE concat('%',#{request.sampleName},'%') </if> <if test="request != null and request.orderNo != null and request.orderNo !=''"> AND bo.order_no LIKE concat('%',#{request.orderNo},'%') </if> <if test="request != null and request.customerName != null and request.customerName !=''"> AND bo.customer_name LIKE concat('%',#{request.customerName},'%') </if> <if test="request != null and request.startTime != null and request.startTime !=''"> AND bo.require_over_time >= #{request.startTime} </if> <if test="request != null and request.endTime != null and request.endTime !=''"> AND bo.require_over_time < #{request.endTime} </if> <if test="request != null and request.isUrgent != null and request.isUrgent !=''"> AND bo.is_urgent = #{request.isUrgent} </if> <if test="request != null and request.measureCompany != null and request.measureCompany !=''"> AND bo.measure_company = #{request.measureCompany} </if> <if test="request != null and request.category != null and request.category !=''"> AND eei.category = #{request.category} </if> <if test="request != null and request.ids != null and request.ids.size() > 0"> AND eei.id IN <foreach collection="request.ids" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </if> ORDER BY bosr.create_time DESC </select> <select id="selectSampleDetail" resultType="com.casic.missiles.dto.business.labExecutive.SampleHandOutDetailResponse"> SELECT <include refid="Detail_Column_List"/> FROM biz_business_order_sample_relation bosr JOIN eqpt_equipment_info eei ON bosr.sample_id = eei.id JOIN biz_business_order_info bo ON bosr.order_id = bo.id WHERE bosr.order_id = #{orderId} AND bosr.sample_id = #{sampleId} </select> <update id="updateByOrderIdAndSampleId"> UPDATE biz_business_order_sample_relation SET sample_status = #{status} <if test="remark != null and remark !=''"> ,remark = #{remark} </if> <if test="status == 5"><!--待归还时更新检测完成时间--> ,measure_complete_time = NOW() </if> WHERE order_id = #{orderId} AND sample_id = #{sampleId} </update> <select id="getSampleListByStatus" resultType="com.casic.missiles.dto.business.dispatch.SampleDispatchListResponse"> SELECT bosr.id, eei.id AS sampleId, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, bo.order_no, bo.id AS orderId, bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, bo.require_over_time, bosr.sample_status, bosr.real_deliver_time, bosr.measure_type, bo.plan_deliver_time, bosr.return_time, eei.RFID AS labelBind, eei.model AS sampleModel, eei.manufacture_no, eei.certificate_valid AS certificateValid, bosr.appendix_descn, bosr.appearance_inspect, bosr.special_require, bosr.measure_content, eei.help_instruction, eei.manufacturer, eei.category, bosr.interchange_id, bosr.back_interchange_id FROM ( SELECT * FROM biz_business_order_info bo WHERE 1=1 <if test="request != null and request.sampleStatus == 8"><!--超期状态,样品在待分发和检测中下的超期--> AND bo.require_over_time < NOW() </if> <if test="request != null and request.orderNo != null and request.orderNo !=''"> AND bo.order_no LIKE concat('%',#{request.orderNo},'%') </if> <if test="request != null and request.customerName != null and request.customerName !=''"> AND bo.customer_name LIKE concat('%',#{request.customerName},'%') </if> <if test="request != null and request.deliverer != null and request.deliverer !=''"> AND bo.deliverer LIKE concat('%',#{request.deliverer},'%') </if> <if test="request != null and request.measureCompany != null and request.measureCompany !=''"> AND bo.measure_company = #{request.measureCompany} </if> <if test="request != null and request.planDeliverStartTime != null and request.planDeliverStartTime !=''"> AND bo.plan_deliver_time >= #{request.planDeliverStartTime} </if> <if test="request != null and request.planDeliverEndTime != null and request.planDeliverEndTime !=''"> AND bo.plan_deliver_time < #{request.planDeliverEndTime} </if> ) bo JOIN( SELECT * FROM biz_business_order_sample_relation bosr WHERE 1=1 <if test="request != null and request.sampleStatus == 2"> AND (bosr.sample_status = 2 OR bosr.sample_status = 3 OR bosr.sample_status = 4) </if> <if test="request != null and request.sampleStatus == 8"><!--超期状态,样品在待分发和检测中下的超期--> AND bosr.sample_status = 3 </if> <if test="request != null and request.sampleStatus != null and request.sampleStatus != 8 and request.sampleStatus != 2"><!--非超期状态的其它状态--> AND bosr.sample_status = #{request.sampleStatus} </if> <if test="request != null and request.interchangeType != null and request.interchangeType == 1"><!--收入交接单--> AND bosr.interchange_id is not null </if> <if test="request != null and request.interchangeType != null and request.interchangeType == 2"><!--归还交接单--> AND bosr.back_interchange_id is not null </if> <if test="request != null and request.interchangeType != null and request.interchangeType == 0"> AND bosr.back_interchange_id is null AND bosr.interchange_id is null </if> <if test="request != null and request.ids != null and request.ids.size() > 0"> and bosr.id in <foreach collection="request.ids" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> ) bosr ON bo.id = bosr.order_id JOIN ( SELECT * FROM eqpt_equipment_info eei WHERE 1=1 <if test="request != null and request.sampleNo != null and request.sampleNo !=''"> AND eei.equipment_no LIKE concat('%',#{request.sampleNo},'%') </if> <if test="request != null and request.sampleName != null and request.sampleName !=''"> AND eei.equipment_name LIKE concat('%',#{request.sampleName},'%') </if> <if test="request != null and request.model != null and request.model !=''"> AND eei.model LIKE concat('%',#{request.model},'%') </if> <if test="request != null and request.manufactureNo != null and request.manufactureNo !=''"> AND eei.manufacture_no LIKE concat('%',#{request.manufactureNo},'%') </if> <if test="request != null and request.manufacturer != null and request.manufacturer !=''"> AND eei.manufacturer LIKE concat('%',#{request.manufacturer},'%') </if> <if test="request != null and request.helpInstruction != null and request.helpInstruction !=''"> AND eei.help_instruction LIKE concat('%',#{request.helpInstruction},'%') </if> ) eei ON eei.id = bosr.sample_id ORDER BY bosr.create_time DESC </select> <select id="listPageForInterchange" resultType="com.casic.missiles.dto.business.interchange.InterchangeSampleListResponse"> SELECT eei.id AS sampleId, eei.sampleNo, eei.sampleName, eei.sampleModel, bor.appendix_descn, bor.appearance_inspect, bor.special_require, bor.measure_content, eei.manufacture_no AS manufactureNo, eei.manufacturer, eei.certificate_valid AS certificateValid, eei.meter_identify AS meterIdentify, eei.limit_instruction AS limitInstruction FROM ( SELECT id, equipment_no AS sampleNo, equipment_name AS sampleName, model AS sampleModel, manufacture_no, manufacturer, certificate_valid, meter_identify, limit_instruction FROM eqpt_equipment_info WHERE 1=1 <if test="request != null and request.sampleNo != null and request.sampleNo !=''"> AND equipment_no like concat('%',#{request.sampleNo},'%') </if> <if test="request != null and request.sampleName != null and request.sampleName !=''"> AND equipment_name like concat('%',#{request.sampleName},'%') </if> ) eei JOIN ( SELECT bosr.sample_id, bosr.appendix_descn, bosr.appearance_inspect, bosr.special_require, bosr.measure_content, bosr.create_time FROM biz_business_order_sample_relation bosr JOIN ( SELECT id FROM biz_business_order_info WHERE customer_id = #{request.customerId} )bo ON bo.id = bosr.order_id WHERE bosr.interchange_id is null <if test="request != null and request.orderId != null and request.orderId !=''"> AND bosr.order_id = #{request.orderId} </if> )bor ON bor.sample_id = eei.id ORDER BY bor.create_time DESC </select> <select id="selectSampleIdsForInterchange" resultType="java.lang.Long"> SELECT bosr.sample_id FROM biz_business_order_sample_relation bosr JOIN biz_business_order_info boi ON boi.id = bosr.order_id WHERE boi.receive_status = 2 <!-- 已接收 --> </select> <select id="selectSampleListForInterChange" resultType="com.casic.missiles.dto.business.interchange.InterchangeSampleListResponse"> SELECT eei.id AS sampleId, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.manufacturer, eei.manufacture_no, eei.meter_identify, eei.limit_instruction, eei.certificate_valid, bbosr.sample_status, bbosr.appendix_descn, bbosr.appearance_inspect, bbosr.special_require, bbosr.measure_content, bbosr.measure_complete_time FROM biz_business_order_sample_relation bbosr JOIN eqpt_equipment_info eei ON bbosr.sample_id = eei.id WHERE (bbosr.interchange_id = #{interchangeId} OR bbosr.back_interchange_id = #{interchangeId}) AND bbosr.order_id = #{orderId} </select> <select id="selectReceivedListPage" resultType="com.casic.missiles.model.eqpt.EqptEquipmentInfo"> SELECT eei.*, bboi.id AS orderId, bboi.order_no, bboi.customer_name FROM biz_business_order_sample_relation bbosr JOIN eqpt_equipment_info eei ON bbosr.sample_id = eei.id JOIN biz_business_order_info bboi ON bboi.id = bbosr.order_id WHERE bboi.receive_status = 2 <if test="request != null and request.customerId != null and request.customerId !=''"> and eei.company_id = #{request.customerId} </if> <if test="request != null and request.equipmentNo != null and request.equipmentNo !=''"> and eei.equipment_no like concat('%',#{request.equipmentNo},'%') </if> <if test="request != null and request.equipmentName != null and request.equipmentName !=''"> and eei.equipment_name like concat('%',#{request.equipmentName},'%') </if> <if test="request != null and request.equipmentType != null and request.equipmentType !=''"> and eei.equipment_type = #{request.equipmentType} </if> <if test="request != null and request.certificateValidStart != null and request.certificateValidStart !=''"> and eei.certificate_valid >= #{request.certificateValidStart} </if> <if test="request != null and request.certificateValidEnd != null and request.certificateValidEnd !=''"> and eei.certificate_valid <= #{request.certificateValidEnd} </if> </select> <select id="selectListForReadWriter" resultType="com.casic.missiles.dto.business.dispatch.ReadSampleDTO"> SELECT sr.id, sr.order_id, sr.sample_id, bo.order_no, bo.customer_id, bo.customer_name, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.manufacture_no, eei.RFID AS labelBind, eei.certificate_valid AS certificateValid FROM eqpt_equipment_info eei <!-- 按委托书id和样品id分组取的就是关联表里最新的关联 --> LEFT JOIN (SELECT order_id, sample_id FROM biz_business_order_sample_relation GROUP BY order_id, sample_id) sr ON sr.sample_id = eei.id LEFT JOIN biz_business_order_info bo ON bo.id = sr.order_id WHERE eei.is_del = 0 <if test="gunSet != null"> and eei.equipment_no in <foreach collection="gunSet" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> <if test="tIds != null"> and eei.RFID in <foreach collection="tIds" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> <if test="customerId != null and customerId !=''"> AND bo.customer_id = #{customerId} </if> AND eei.id NOT IN ( SELECT sample_id FROM biz_business_order_sample_relation bosrr JOIN ( SELECT id FROM biz_business_order_info WHERE receive_status ='2' OR receive_status ='1' OR receive_status ='' <!-- 委托书创建,引入的委托书只能是只能为接收状态--> )boo ON boo.id = bosrr.order_id ) ORDER BY eei.create_time DESC </select> <select id="selectSampleListByOrderId" resultMap="BaseResultMap"> SELECT bbosr.*, eei.category FROM biz_business_order_sample_relation bbosr JOIN eqpt_equipment_info eei ON bbosr.sample_id = eei.id WHERE bbosr.order_id = #{id} </select> <update id="updateInterchange"> UPDATE biz_business_order_sample_relation SET interchange_id = null WHERE order_id = #{orderId} AND interchange_id = #{interchangeId} </update> <update id="updateBackInterchange"> UPDATE biz_business_order_sample_relation SET back_interchange_id = null WHERE order_id = #{orderId} AND back_interchange_id = #{interchangeId} </update> </mapper>