Newer
Older
casic-metering / casic-metering-dao / src / main / resources / mapper / business / BusinessInterchangeMapper.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.BusinessInterchangeMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.casic.missiles.model.business.BusinessInterchange">
        <id column="id" property="id"/>
        <result column="interchange_code" property="interchangeCode"/>
        <result column="order_id" property="orderId"/>
        <result column="certification_company" property="certificationCompany"/>
        <result column="certification_company_fex" property="certificationCompanyFex"/>
        <result column="certification_company_email" property="certificationCompanyEmail"/>
        <result column="reciever" property="reciever"/>
        <result column="reciever_phone" property="recieverPhone"/>
        <result column="certification_company_address" property="certificationCompanyAddress"/>
        <result column="customer_id" property="customerId"/>
        <result column="require_over_time" property="requireOverTime"/>
        <result column="deliver_time" property="deliverTime"/>
        <result column="mesure_category" property="mesureCategory"/>
        <result column="secrecy" property="secrecy"/>
        <result column="appearance" property="appearance"/>
        <result column="rely_file" property="relyFile"/>
        <result column="deliverer_sign_file" property="delivererSignFile"/>
        <result column="deliverer_sign_time" property="delivererSignTime"/>
        <result column="reciever_sign_file" property="recieverSignFile"/>
        <result column="remark" property="remark"/>
        <result column="is_del" property="isDel"/>
        <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, interchange_code, order_id, certification_company, certification_company_fex, certification_company_email, reciever, reciever_phone, certification_company_address, customer_id, require_over_time, deliver_time, mesure_category, secrecy, appearance, rely_file, deliverer_sign_file, deliverer_sign_time, reciever_sign_file, remark, is_del, create_user, create_time, update_time
    </sql>

    <select id="selectInterchangeListPage"
            resultType="com.casic.missiles.dto.business.interchange.InterchangeListResponse">
        SELECT
        bif.id,deliverer,customerNo,customerName,delivererTel,orderId,id,interchangeCode,remark,deliverTime,bo.orderId,isUrgent,orderNo,requireOverTime,reciever
        FROM (
            SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS
            "deliverTime",reciever,deliverer,deliverer_tel AS "delivererTel"
            FROM business_interchange
            WHERE is_del = 0
            <if test="request.interchangeCode != null and request.interchangeCode !=''">
                AND interchange_Code=#{request.interchangeCode}
            </if>
            <if test="request.reciever != null and request.reciever !=''">
                AND reciever=#{request.reciever}
            </if>
            <if test="request.startTime != null and request.startTime !=''">
                AND #{request.startTime}  <![CDATA[ <= ]]> DATE_FORMAT(deliver_time,'%Y-%m-%d')
            </if>
            <if test="request.endTime != null and request.endTime !=''">
                AND #{request.endTime}  <![CDATA[ >= ]]> DATE_FORMAT(deliver_time,'%Y-%m-%d')
            </if>
            <if test="request.ids != null ">
                and id in
                <foreach collection="request.ids" item="id" index="index" open="(" close=")" separator=",">
                    #{id}
                </foreach>
            </if>
        ) bif
        JOIN (
        SELECT customer_no AS "customerNo",customer_name AS "customerName",id as "orderId",is_urgent AS
        "isUrgent",order_code AS "orderNo",require_over_time AS "requireOverTime"
        FROM business_order
        WHERE is_del = 0
        <if test="request.deliverer != null and request.deliverer !=''">
            AND deliverer=#{request.deliverer}
        </if>
        <if test="request.customerNo != null and request.customerNo !=''">
            AND customer_no=#{request.customerNo}
        </if>
        <if test="request.customerName != null and request.customerName !=''">
            AND customer_name=#{request.customerName}
        </if>
        ) bo ON bo.orderId = bif.order_id
        ORDER BY bif.deliverTime DESC
    </select>

    <select id="selectMaxExchangeNo" resultType="Long">
        SELECT IFNULL(max(RIGHT(interchange_code, 12)), 0)
        FROM business_interchange
    </select>

    <select id="exchangeSampleList"
            resultType="com.casic.missiles.dto.business.interchange.InterchangeSampleListResponse">
        SELECT orderId,sampleId,sampleName,sampleModel,manufacturingNo,appendixDescn,measureContent,remark,sampleStatus,customerName,measurePeriod,
        validDeadline,measureLastTime,sampleNo,orderNo,customerNo
        FROM (
            SELECT sample_name AS "sampleName",sample_no AS "sampleNo",sample_model AS "sampleModel",manufacturing_no AS
            "manufacturingNo",appendix_descn AS "appendixDescn",remark,customer_name AS "customerName",measure_period AS "measurePeriod",
            valid_deadline AS validDeadline,measure_last_time AS "measureLastTime",create_time,id,measure_content AS "measureContent"
            FROM customer_sample_info
            WHERE customer_id=#{request.customerId}
            <if test="request.sampleNo != null and request.sampleNo !=''">
                AND sample_no like concat('%',#{request.sampleNo},'%')
            </if>
            <if test="request.sampleName != null and request.sampleName !=''">
                AND sample_name like concat('%',#{request.sampleName},'%')
            </if>
        )csi
        JOIN (
            SELECT sample_status AS "sampleSatus",sample_id as "sampleId",order_id AS "orderId",order_code AS "orderNo",customer_no AS "customerNo"
            FROM business_order_sample_relation bosr
            JOIN (
                    SELECT id,order_code,customer_no
                    FROM business_order
                    WHERE customer_id=#{request.customerId}
            )bo ON bo.id=bosr.order_id
            WHERE  interchange_id is null
        )bor ON bor.sampleId=csi.id
        ORDER BY create_time DESC
    </select>

    <select id="getInfoById" resultType="com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse">
    SELECT
        bi.id,
        interchange_code AS "interchangeCode",
        bo.id AS "orderId",
        order_code AS "orderCode",
        certification_company AS "certificationCompany",
        certification_company_fex AS "certificationCompanyFex",
        certification_company_email AS "certificationCompanyEmail",
        reciever,
        reciever_phone AS "recieverPhone",
        certification_company_address AS "certificationCompanyAddress",
        bo.customer_id AS "customerId",
        customer_no AS "customerNo",
        customer_name AS "customerName",
        customer_address AS "customerAddress",
        order_time AS "orderTime",
        bo.require_over_time AS "requireOverTime",
        bo.deliver_time AS "deliverTime",
        measure_category AS "measureCategory",
        secrecy,
        appearance,
        rely_file AS "relyFile",
        bo.deliverer,
        bo.deliver_time AS "deliverTime",
        bo.deliverer_tel AS "delivererTel",
        deliverer_sign_file AS "delivererSignFile",
        deliverer_sign_time AS "delivererSignTime",
        reciever_sign_file AS "recieverSignFile",
        bi.remark,
        bi.create_user AS "createUser",
        bi.create_Time AS createTime,
        bi.update_time AS "updateTime"
    FROM
        ( SELECT * FROM business_interchange WHERE is_del = 0 AND id=#{id} ) bi
        JOIN ( SELECT * FROM business_order WHERE is_del = 0 ) bo ON bi.order_id = bo.id
    </select>


</mapper>