<?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.BusinessLabExecutiveInfoMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.business.BusinessLabExecutiveInfo"> <id column="id" property="id"/> <result column="order_id" property="orderId"/> <result column="sample_id" property="sampleId"/> <result column="measure_dept_id" property="measureDeptId"/> <result column="measure_person_id" property="measurePersonId"/> <result column="measure_item" property="measureItem"/> <result column="measure_sequence" property="measureSequence"/> <result column="execute_sequence" property="executeSequence"/> <result column="measure_status" property="measureStatus"/> <result column="is_auto" property="isAuto"/> <result column="require_certifications" property="requireCertifications"/> <result column="operate_time" property="operateTime"/> <result column="start_time" property="startTime"/> <result column="end_time" property="endTime"/> <result column="remark" property="remark"/> <result column="create_user" property="createUser"/> <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, order_id, sample_id, measure_dept_id, measure_person_id, measure_item, measure_sequence, execute_sequence, measure_status, is_auto, require_certifications, operate_time, start_time, end_time, remark, is_del, create_user, create_time, update_time </sql> <!-- 各状态列表查询结果列 --> <sql id="Status_Column_List"> blei.id AS id, eei.id AS sample_id, eei.equipment_no AS sampleNo, eei.equipment_name AS sampleName, eei.model AS sampleModel, eei.check_cycle, eei.manufacture_no AS manufactureNo, eei.manufacturer, eei.help_instruction AS helpInstruction, bo.order_no AS orderNo, bo.id AS orderId, bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, bo.require_over_time, blei.require_certifications, blei.measure_status, bo.customer_address, blei.measure_person_id, eei.RFID AS labelBind, bbdmi.measure_valid_date AS certificateValid, bbdmi.trace_date, bbdmi.conclusion, bbdmi.restriction_instruction, bbdmi.meter_identify, eei.category, bbdmi.id AS dataId, eei.certificate_valid AS deviceCertificateValid </sql> <select id="selectListByInMeasureStatus" resultType="com.casic.missiles.dto.business.labExecutive.HandOutLabExecutiveDTO"> SELECT blei.order_id, blei.sample_id, blei.measure_dept_id, sd.SIMPLE_NAME AS deptName, blei.measure_status, blei.require_certifications FROM biz_business_lab_executive_info blei JOIN sys_dept sd ON blei.measure_dept_id = sd.ID WHERE blei.order_id = #{orderId} AND blei.sample_id = #{sampleId} AND (blei.measure_status = 1 OR blei.measure_status = 2 OR blei.measure_status = 3)<!--待分配or待检测or检测中均属于分发中的检测中--> </select> <select id="getMeasureNumberStatus" resultType="Integer"> SELECT require_certifications FROM (SELECT * FROM biz_business_lab_executive_info blei WHERE blei.order_id = #{orderId} AND blei.sample_id = #{sampleId} ) blei JOIN sys_dept sd ON blei.measure_dept_id = sd.ID limit 1 </select> <select id="selectExecutiveList" resultType="com.casic.missiles.dto.business.labExecutive.MeasureProcessDTO"> SELECT blei.id, blei.measure_dept_id AS measureSegmentId, sd.SIMPLE_NAME AS measureSegment, blei.measure_person_id, brsi.staff_name AS measurePerson, blei.measure_status, blei.require_certifications, blei.update_time, blei.measure_sequence FROM biz_business_lab_executive_info blei JOIN sys_dept sd ON blei.measure_dept_id = sd.ID LEFT JOIN biz_resource_staff_info brsi ON blei.measure_person_id = brsi.id WHERE blei.order_id = #{orderId} AND blei.sample_id = #{sampleId} ORDER BY blei.measure_sequence ASC </select> <select id="selectListByDeptIdAndStatus" resultType="com.casic.missiles.dto.business.labExecutive.SampleLabExecutiveListResponse"> SELECT <include refid="Status_Column_List"/> FROM biz_business_lab_executive_info blei JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id JOIN biz_business_order_info bo ON bo.id = blei.order_id LEFT JOIN biz_business_device_measure_item_info bbdmii ON (eei.model_id = bbdmii.device_model_id) LEFT JOIN biz_business_device_measure_info bbdmi ON (bbdmi.order_id = blei.order_id AND bbdmi.sample_id = blei.sample_id) WHERE 1=1 <if test="deptId != null"> AND blei.measure_dept_id = #{deptId} </if> <if test="status != null and status != ''"> AND blei.measure_status = #{status} </if> <if test="statusList != null"> AND blei.measure_status IN <foreach collection="statusList" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </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.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> <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.traceDateStart != null and request.traceDateStart !=''"> AND bbdmi.trace_date >= #{request.traceDateStart} </if> <if test="request != null and request.traceDateEnd != null and request.traceDateEnd !=''"> AND bbdmi.trace_date <= #{request.traceDateEnd} </if> <if test="request != null and request.measureValidDateStart != null and request.measureValidDateStart !=''"> AND bbdmi.measure_valid_date >= #{request.measureValidDateStart} </if> <if test="request != null and request.measureValidDateEnd != null and request.measureValidDateEnd !=''"> AND bbdmi.measure_valid_date <= #{request.measureValidDateEnd} </if> <if test="request != null and request.meterIdentify != null and request.meterIdentify !=''"> AND bbdmi.meter_identify = #{request.meterIdentify} </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.conclusion != null and request.conclusion !=''"> AND bbdmi.conclusion = #{request.conclusion} </if> <if test="request != null and request.restrictionInstruction != null and request.restrictionInstruction !=''"> AND bbdmi.restriction_instruction LIKE concat('%',#{request.restrictionInstruction},'%') </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 IF(bbdmii.device_type IS NOT NULL, bbdmii.device_type = #{request.category}, bbdmii.device_type IS NULL) </if> <if test="request != null and request.ids != null and request.ids.size() > 0"> and blei.id in <foreach collection="request.ids" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> ORDER BY blei.update_time DESC </select> <select id="selectListByUserIdAndStatus" resultType="com.casic.missiles.dto.business.labExecutive.SampleLabExecutiveListResponse"> SELECT <include refid="Status_Column_List"/>, sd.ID AS measureDeptId, sd.SIMPLE_NAME AS measureDeptName, bbdma.certificate_file, bbdma.id AS certificate_id FROM biz_business_lab_executive_info blei JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id JOIN biz_business_order_info bo ON bo.id = blei.order_id LEFT JOIN sys_dept sd ON blei.measure_dept_id = sd.ID LEFT JOIN biz_business_device_measure_info bbdmi ON (bbdmi.order_id = blei.order_id AND bbdmi.sample_id = blei.sample_id) LEFT JOIN biz_business_device_measure_approval bbdma ON (bbdma.data_id = bbdmi.id AND bbdma.approval_status != 5) WHERE blei.measure_person_id = #{userId} AND blei.measure_status = #{status} <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> <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.traceDateStart != null and request.traceDateStart !=''"> AND bbdmi.trace_date >= #{request.traceDateStart} </if> <if test="request != null and request.traceDateEnd != null and request.traceDateEnd !=''"> AND bbdmi.trace_date <= #{request.traceDateEnd} </if> <if test="request != null and request.measureValidDateStart != null and request.measureValidDateStart !=''"> AND bbdmi.measure_valid_date >= #{request.measureValidDateStart} </if> <if test="request != null and request.measureValidDateEnd != null and request.measureValidDateEnd !=''"> AND bbdmi.measure_valid_date <= #{request.measureValidDateEnd} </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.meterIdentify != null and request.meterIdentify !=''"> AND bbdmi.meter_identify = #{request.meterIdentify} </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.conclusion != null and request.conclusion !=''"> AND bbdmi.conclusion = #{request.conclusion} </if> <if test="request != null and request.restrictionInstruction != null and request.restrictionInstruction !=''"> AND bbdmi.restriction_instruction LIKE concat('%',#{request.restrictionInstruction},'%') </if> <if test="request != null and request.ids != null"> and blei.id in <foreach collection="request.ids" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </if> ORDER BY blei.update_time DESC </select> <update id="updateForSampleInMeasureOperate"> UPDATE biz_business_lab_executive_info SET measure_status = #{status}, start_time = NOW() WHERE measure_person_id = #{userId} AND (order_id, sample_id) IN <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> (#{item.orderId}, #{item.sampleId}) </foreach> </update> <update id="updateForSampleMeasureCompleteOperate"> UPDATE biz_business_lab_executive_info SET measure_status = #{status}, end_time = NOW() WHERE measure_person_id = #{userId} AND (order_id, sample_id) IN <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> (#{item.orderId}, #{item.sampleId}) </foreach> </update> <select id="selectListForSampleOperate" resultType="com.casic.missiles.dto.business.labExecutive.SampleOperateRequest"> SELECT order_id, sample_id FROM biz_business_lab_executive_info WHERE measure_person_id = #{userId} AND measure_status = #{status} AND (order_id, sample_id) IN <foreach collection="list" item="item" index="index" open="(" close=")" separator=","> (#{item.orderId}, #{item.sampleId}) </foreach> </select> <update id="updateForSendBack"> UPDATE biz_business_lab_executive_info SET measure_sequence = measure_sequence - 1 WHERE (measure_status IS NULL OR measure_status = "") AND order_id = #{orderId} AND sample_id = #{sampleId} </update> <select id="selectMinSeq" resultType="java.lang.Long"> SELECT id FROM biz_business_lab_executive_info WHERE measure_sequence = ( SELECT MIN(measure_sequence) FROM biz_business_lab_executive_info WHERE (measure_status IS NULL OR measure_status = "") AND order_id = #{orderId} AND sample_id = #{sampleId} ) AND (measure_status IS NULL OR measure_status = "") AND order_id = #{orderId} AND sample_id = #{sampleId} </select> <select id="selectCertCount" resultType="java.lang.Integer"> SELECT IFNULL(SUM(require_certifications), 0) FROM biz_business_lab_executive_info WHERE order_id = #{orderId} AND sample_id = #{sampleId} </select> <!-- <select id="selectListByDeptId" resultType="com.casic.missiles.dto.business.workbench.SampleMeasureResponse">--> <!-- SELECT eei.id AS sample_id, eei.sample_name, bo.customer_id, bo.customer_name, blei.measure_status--> <!-- FROM biz_business_lab_executive_info blei--> <!-- JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id--> <!-- JOIN biz_business_order_info bo ON bo.id = blei.order_id--> <!-- WHERE blei.measure_dept_id = #{deptId} AND blei.measure_status IS NOT NULL--> <!-- AND DATE_FORMAT(blei.create_time, '%Y%m') = DATE_FORMAT(CURDATE() ,'%Y%m')--> <!-- ORDER BY blei.update_time DESC--> <!-- </select>--> <!-- <select id="selectListByUserId" resultType="com.casic.missiles.dto.business.workbench.SampleMeasureResponse">--> <!-- SELECT eei.id AS sample_id, eei.sample_name, bo.customer_id, bo.customer_name, blei.measure_status--> <!-- FROM biz_business_lab_executive_info blei--> <!-- JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id--> <!-- JOIN biz_business_order_info bo ON bo.id = blei.order_id--> <!-- WHERE blei.measure_person_id = #{userId} AND blei.measure_status IS NOT NULL--> <!-- AND DATE_FORMAT(blei.create_time, '%Y%m') = DATE_FORMAT(CURDATE() ,'%Y%m')--> <!-- ORDER BY blei.update_time DESC--> <!-- </select>--> <!-- <select id="selectAllList" resultType="com.casic.missiles.dto.business.workbench.SampleMeasureResponse">--> <!-- SELECT eei.id AS sample_id, eei.sample_name, bo.customer_id, bo.customer_name, blei.measure_status--> <!-- FROM biz_business_lab_executive_info blei--> <!-- JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id--> <!-- JOIN biz_business_order_info bo ON bo.id = blei.order_id--> <!-- WHERE blei.measure_status IS NOT NULL--> <!-- AND DATE_FORMAT(blei.create_time, '%Y%m') = DATE_FORMAT(CURDATE() ,'%Y%m')--> <!-- ORDER BY blei.update_time DESC--> <!-- </select>--> <!-- <select id="selectListGroupByStatus" resultType="com.casic.missiles.dto.business.workbench.SampleMeasureChartResponse">--> <!-- SELECT blei.measure_status, COUNT(blei.id) AS measureQuantity--> <!-- FROM biz_business_lab_executive_info blei--> <!-- JOIN eqpt_equipment_info eei ON eei.id = blei.sample_id--> <!-- JOIN biz_business_order_info bo ON bo.id = blei.order_id--> <!-- WHERE blei.measure_status IS NOT NULL--> <!-- AND blei.measure_status IN (2,3,4)--> <!-- AND DATE_FORMAT(blei.create_time, '%Y%m') = DATE_FORMAT(CURDATE() ,'%Y%m')--> <!-- GROUP BY blei.measure_status--> <!-- </select>--> </mapper>