Newer
Older
casic-metering / casic-metering-dao / src / main / resources / mapper / business / BusinessInterchangeMapper.xml
wangpeng on 9 Jul 2024 5 KB 业务结算单功能
<?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="signee" property="signee"/>
        <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="measure_category" property="measureCategory"/>
        <result column="secrecy" property="secrecy"/>
        <result column="appearance" property="appearance"/>
        <result column="rely_file" property="relyFile"/>
        <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,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee,bif.create_user
        FROM (
            SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer,
            deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee,create_user
            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.orderNo != null and request.orderNo !=''">
            AND order_code=#{request.orderNo}
        </if>
        <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="getInfoById" resultType="com.casic.missiles.dto.business.interchange.BusinessInterchangeDetailResponse">
        SELECT
        bif.id,bif.order_id,interchangeCode,orderNo,customerNo,customerName,deliverer,delivererTel,reciever,certificationCompany,signee,
        customerAddress,certificationCompanyAddress
        FROM (
        SELECT id,interchange_code AS "interchangeCode",remark,order_id,deliver_time AS "deliverTime",reciever,deliverer,
        deliverer_tel AS "delivererTel",certification_company AS "certificationCompany",signee,
        certification_company_address AS certificationCompanyAddress
        FROM business_interchange
        WHERE is_del = 0 AND id = #{id}
        ) 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",customer_address AS customerAddress
        FROM business_order
        WHERE is_del = 0
        ) bo ON bo.orderId = bif.order_id
    </select>


</mapper>