123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- <?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.fjhx.sale.mapper.contract.ContractProductMapper">
- <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
- SELECT t1.id,
- t2.create_time AS contractTime,
- t1.contract_id,
- t1.product_id,
- t2.`code` AS contractCode,
- t2.user_name AS userName,
- t2.create_user AS salesmanId,
- t2.version AS contractVersion,
- t1.expend_quantity AS expendQuantity,
- (SELECT create_time
- FROM claim_contract
- WHERE contract_id = t2.id
- ORDER BY create_time DESC
- LIMIT 1) AS claimTime,
- t2.contract_template_id AS contractTemplateId,
- t1.quantity
- FROM contract_product t1
- LEFT JOIN contract t2
- LEFT JOIN claim_contract co
- on co.contract_id = t2.id
- ON t1.contract_id = t2.id
- ${ew.customSqlSegment}
- </select>
- <select id="getEHSDPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
- SELECT
- *
- FROM
- (
- SELECT
- IFNULL(t3.`status`,0) AS qualityStatus,
- t1.create_time AS ct,
- "外销合同" AS orderType,
- t1.id,
- t1.product_model AS productModel,
- t1.product_name AS productName,
- t1.contract_id,
- t1.product_id,
- t2.`code` AS `contractCode`,
- t2.user_name AS userName,
- t2.version AS contractVersion,
- t1.expend_quantity AS expendQuantity,
- t2.sell_corporation_id,
- t2.buy_corporation_id,
- ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
- FROM
- contract_product t1
- LEFT JOIN contract t2 ON t1.contract_id = t2.id
- LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
- WHERE
- t2.`status` >= 30
- AND t2.`status` < 88 AND t1.expend_quantity > 0
- UNION ALL
- SELECT
- IFNULL(t3.`status`,0) AS qualityStatus,
- t1.create_time AS ct,
- "样品单" AS orderType,
- t1.id,
- t1.product_model AS productModel,
- t1.product_name AS productName,
- t1.sample_id,
- t1.product_id,
- t2.`code` AS `contractCode`,
- t2.user_name AS userName,
- t2.versions AS contractVersion,
- t1.expend_quantity AS expendQuantity,
- t2.sell_corporation_id,
- t2.buy_corporation_id,
- ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
- FROM
- sample_product t1
- LEFT JOIN sample t2 ON t1.sample_id = t2.id
- LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
- WHERE
- t2.`status` >= 30
- AND t2.`status` < 88 AND t1.expend_quantity > 0
- ) t1
- ${ew.customSqlSegment}
- </select>
- <select id="getEHSDQualityPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
- SELECT
- *
- FROM
- (
- SELECT
- t1.create_time AS ct,
- "外销合同" AS orderType,
- t1.id,
- t1.product_model AS productModel,
- t1.product_name AS productName,
- t1.contract_id,
- t1.product_id,
- t2.`code` AS `contractCode`,
- t2.user_name AS userName,
- t2.version AS contractVersion,
- t1.expend_quantity AS expendQuantity,
- t3.`status` AS qualityStatus,
- t3.create_time AS qualityTime,
- t3.user_name AS qualityUserName,
- t2.buy_corporation_id,
- t3.summary AS summary
- FROM
- contract_product t1
- LEFT JOIN contract t2 ON t1.contract_id = t2.id
- LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
- WHERE
- t2.`status` >= 30
- AND t2.`status` < 88
- UNION ALL
- SELECT
- t1.create_time AS ct,
- "样品单" AS orderType,
- t1.id,
- t1.product_model AS productModel,
- t1.product_name AS productName,
- t1.sample_id,
- t1.product_id,
- t2.`code` AS `contractCode`,
- t2.user_name AS userName,
- t2.versions AS contractVersion,
- t1.expend_quantity AS expendQuantity,
- t3.`status` AS qualityStatus,
- t3.create_time AS qualityTime,
- t3.user_name AS qualityUserName,
- t2.buy_corporation_id
- t3.summary AS summary
- FROM
- sample_product t1
- LEFT JOIN sample t2 ON t1.sample_id = t2.id
- LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
- WHERE
- t2.`status` >= 30
- AND t2.`status` < 88
- ) t1
- ${ew.customSqlSegment}
- </select>
- <select id="getListByIds" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
- SELECT t1.id,
- t1.contract_id,
- t1.product_id,
- t2.`code` AS contractCode,
- t2.user_name AS userName,
- t2.version AS contractVersion,
- t1.expend_quantity expendQuantity,
- t1.quantity
- FROM contract_product t1
- LEFT JOIN contract t2 ON t1.contract_id = t2.id
- ${ew.customSqlSegment}
- </select>
- <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
- SELECT
- *
- FROM
- (
- SELECT
- t2.*,
- t1.id AS contractId,
- t1.`code` AS contractCode,
- t2.quantity AS cpQuantity,
- t2.id AS contractProductId,
- ( SELECT IFNULL( SUM( pd.pack_quantity * pdd.quantity ), 0 ) FROM pack_detail_product pdd LEFT JOIN pack_detail
- pd ON pdd.pack_detail_id = pd.id WHERE pdd.contract_product_id = t2.id ) AS sumPackQuantity
- FROM
- contract t1
- LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
- <where>
- <if test="customerId neq null and customerId neq '' ">
- buy_corporation_id = #{customerId}
- </if>
- </where>
- ) t1
- WHERE t1.sumPackQuantity < t1.cpQuantity
- <if test="contractIds neq null and contractIds.size() > 0">
- <foreach collection="contractIds" item="contractId" open="AND contractId IN (" separator="," close=")">
- #{contractId}
- </foreach>
- </if>
- </select>
- <select id="contractHandoverPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
- SELECT
- t1.create_time AS ct,
- t1.id,
- t1.contract_id,
- t1.product_id,
- t2.`code` AS `contractCode`,
- t2.user_name AS userName,
- t2.version AS contractVersion,
- t2.buy_corporation_id buyCorporationId,
- <!-- 待采购数量-->
- t1.expend_quantity AS expendQuantity,
- <!-- 交接单时间-->
- t3.sampleTime,
- <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
- t2.update_time updateTime,
- <!-- 合同到账时间-->
- ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
- FROM
- contract_product t1
- LEFT JOIN contract t2 ON t1.contract_id = t2.id
- <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
- left join(SELECT business_id,create_time sampleTime from bytesailing_base.file_info GROUP BY business_id HAVING MAX(create_time)) t3 on
- t2.id = t3.business_id
- ${ew.customSqlSegment}
- </select>
- </mapper>
|