ProcurementContractMapper.xml 4.99 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.lframework.xingyun.sc.procurement.mappers.contract.ProcurementContractMapper">

    <resultMap id="ProcurementContractResult" type="com.lframework.xingyun.sc.procurement.entity.contract.ProcurementContract">
        <id column="id" property="id"/>
        <result column="procurement_plan_id" property="procurementPlanId"/>
        <result column="procurement_plan_code" property="procurementPlanCode"/>
        <result column="supplier_id" property="supplierId"/>
        <result column="supplier_name" property="supplierName"/>
        <result column="company_short_id" property="companyShortId"/>
        <result column="company_full_name" property="companyFullName"/>
        <result column="sign_place" property="signPlace"/>
        <result column="sign_time" property="signTime"/>
        <result column="delivery_time" property="deliveryTime"/>
        <result column="settlement_ratio" property="settlementRatio"/>
        <result column="total_quantity" property="totalQuantity"/>
        <result column="total_excluding_tax_amount" property="totalExcludingTaxAmount"/>
        <result column="total_tax_amount" property="totalTaxAmount"/>
        <result column="total_amount" property="totalAmount"/>
        <result column="special_agreement" property="specialAgreement"/>
        <result column="attachment_file_ids" property="attachmentFileIds"/>
        <result column="attachment_file_names" property="attachmentFileNames"/>
        <result column="approval_status" property="approvalStatus"/>
        <result column="originator_id" property="originatorId"/>
        <result column="originator_name" property="originatorName"/>
        <result column="deleted" property="deleted"/>
        <result column="create_by_id" property="createById"/>
        <result column="create_by" property="createBy"/>
        <result column="update_by_id" property="updateById"/>
        <result column="update_by" property="updateBy"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>

    <sql id="PC_sql">
        SELECT
            pc.id,
            pc.procurement_plan_id,
            pc.procurement_plan_code,
            pc.supplier_id,
            pdcc.unit_name AS supplier_name,
            pc.company_short_id,
            bdcs.company_name AS company_full_name,
            pc.sign_place,
            pc.sign_time,
            pc.delivery_time,
            pc.settlement_ratio,
            pc.total_quantity,
            pc.total_excluding_tax_amount,
            pc.total_tax_amount,
            pc.total_amount,
            pc.special_agreement,
            pc.attachment_file_ids,
            pc.attachment_file_names,
            pc.approval_status,
            pc.originator_id,
            pc.originator_name,
            pc.deleted,
            pc.create_by_id,
            pc.create_by,
            pc.update_by_id,
            pc.update_by,
            pc.create_time,
            pc.update_time
        FROM procurement_contract AS pc
        LEFT JOIN procurement_domestic_customer_credit pdcc ON pdcc.id = pc.supplier_id
        LEFT JOIN base_data_company_short bdcs ON bdcs.id = pc.company_short_id
    </sql>

    <select id="query" resultMap="ProcurementContractResult">
        <include refid="PC_sql"/>
        <where>
            <if test="vo.procurementPlanCode != null and vo.procurementPlanCode != ''">
                AND pc.procurement_plan_code LIKE CONCAT('%', #{vo.procurementPlanCode}, '%')
            </if>
            <if test="vo.supplierName != null and vo.supplierName != ''">
                AND pdcc.unit_name LIKE CONCAT('%', #{vo.supplierName}, '%')
            </if>
            <if test="vo.companyFullName != null and vo.companyFullName != ''">
                AND bdcs.company_name LIKE CONCAT('%', #{vo.companyFullName}, '%')
            </if>
            <if test="vo.approvalStatus != null and vo.approvalStatus != ''">
                AND pc.approval_status = #{vo.approvalStatus}
            </if>
            <if test="vo.startSignTime != null">
                AND pc.sign_time <![CDATA[ >= ]]> #{vo.startSignTime}
            </if>
            <if test="vo.endSignTime != null">
                AND pc.sign_time <![CDATA[ <= ]]> #{vo.endSignTime}
            </if>
            <if test="vo.startDeliveryTime != null">
                AND pc.delivery_time <![CDATA[ >= ]]> #{vo.startDeliveryTime}
            </if>
            <if test="vo.endDeliveryTime != null">
                AND pc.delivery_time <![CDATA[ <= ]]> #{vo.endDeliveryTime}
            </if>
            <if test="vo.deleted != null">
                AND pc.deleted = #{vo.deleted}
            </if>
        </where>
        ORDER BY pc.create_time DESC
    </select>

    <select id="findById" resultMap="ProcurementContractResult">
        <include refid="PC_sql"/>
        WHERE pc.id = #{id}
    </select>
</mapper>