ContractProductMapper.xml 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.fjhx.sale.mapper.contract.ContractProductMapper">
  4. <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  5. SELECT t1.id,
  6. t2.create_time AS contractTime,
  7. t1.contract_id,
  8. t1.product_id,
  9. t2.`code` AS contractCode,
  10. t2.user_name AS userName,
  11. t2.create_user AS salesmanId,
  12. t2.version AS contractVersion,
  13. t1.expend_quantity AS expendQuantity,
  14. (SELECT create_time
  15. FROM claim_contract
  16. WHERE contract_id = t2.id
  17. ORDER BY create_time DESC
  18. LIMIT 1) AS claimTime,
  19. t2.contract_template_id AS contractTemplateId,
  20. t1.quantity
  21. FROM contract_product t1
  22. LEFT JOIN contract t2
  23. LEFT JOIN claim_contract co
  24. on co.contract_id = t2.id
  25. ON t1.contract_id = t2.id
  26. ${ew.customSqlSegment}
  27. </select>
  28. <select id="getEHSDPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  29. SELECT
  30. *
  31. FROM
  32. (
  33. SELECT
  34. IFNULL(t3.`status`,0) AS qualityStatus,
  35. t1.create_time AS ct,
  36. "外销合同" AS orderType,
  37. t1.id,
  38. t1.product_model AS productModel,
  39. t1.product_name AS productName,
  40. t1.contract_id,
  41. t1.product_id,
  42. t2.`code` AS `contractCode`,
  43. t2.user_name AS userName,
  44. t2.version AS contractVersion,
  45. t1.expend_quantity AS expendQuantity,
  46. t2.sell_corporation_id,
  47. t2.buy_corporation_id,
  48. ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
  49. FROM
  50. contract_product t1
  51. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  52. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  53. WHERE
  54. t2.`status` &gt;= 30
  55. AND t2.`status` &lt; 88 AND t1.expend_quantity > 0
  56. UNION ALL
  57. SELECT
  58. IFNULL(t3.`status`,0) AS qualityStatus,
  59. t1.create_time AS ct,
  60. "样品单" AS orderType,
  61. t1.id,
  62. t1.product_model AS productModel,
  63. t1.product_name AS productName,
  64. t1.sample_id,
  65. t1.product_id,
  66. t2.`code` AS `contractCode`,
  67. t2.user_name AS userName,
  68. t2.versions AS contractVersion,
  69. t1.expend_quantity AS expendQuantity,
  70. t2.sell_corporation_id,
  71. t2.buy_corporation_id,
  72. ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
  73. FROM
  74. sample_product t1
  75. LEFT JOIN sample t2 ON t1.sample_id = t2.id
  76. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  77. WHERE
  78. t2.`status` &gt;= 30
  79. AND t2.`status` &lt; 88 AND t1.expend_quantity > 0
  80. ) t1
  81. ${ew.customSqlSegment}
  82. </select>
  83. <select id="getEHSDQualityPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  84. SELECT
  85. *
  86. FROM
  87. (
  88. SELECT
  89. t1.create_time AS ct,
  90. "外销合同" AS orderType,
  91. t1.id,
  92. t1.product_model AS productModel,
  93. t1.product_name AS productName,
  94. t1.contract_id,
  95. t1.product_id,
  96. t2.`code` AS `contractCode`,
  97. t2.user_name AS userName,
  98. t2.version AS contractVersion,
  99. t1.expend_quantity AS expendQuantity,
  100. t3.`status` AS qualityStatus,
  101. t3.create_time AS qualityTime,
  102. t3.user_name AS qualityUserName,
  103. t2.buy_corporation_id,
  104. t3.summary AS summary
  105. FROM
  106. contract_product t1
  107. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  108. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  109. WHERE
  110. t2.`status` &gt;= 30
  111. AND t2.`status` &lt; 88
  112. UNION ALL
  113. SELECT
  114. t1.create_time AS ct,
  115. "样品单" AS orderType,
  116. t1.id,
  117. t1.product_model AS productModel,
  118. t1.product_name AS productName,
  119. t1.sample_id,
  120. t1.product_id,
  121. t2.`code` AS `contractCode`,
  122. t2.user_name AS userName,
  123. t2.versions AS contractVersion,
  124. t1.expend_quantity AS expendQuantity,
  125. t3.`status` AS qualityStatus,
  126. t3.create_time AS qualityTime,
  127. t3.user_name AS qualityUserName,
  128. t2.buy_corporation_id
  129. t3.summary AS summary
  130. FROM
  131. sample_product t1
  132. LEFT JOIN sample t2 ON t1.sample_id = t2.id
  133. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  134. WHERE
  135. t2.`status` &gt;= 30
  136. AND t2.`status` &lt; 88
  137. ) t1
  138. ${ew.customSqlSegment}
  139. </select>
  140. <select id="getListByIds" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  141. SELECT t1.id,
  142. t1.contract_id,
  143. t1.product_id,
  144. t2.`code` AS contractCode,
  145. t2.user_name AS userName,
  146. t2.version AS contractVersion,
  147. t1.expend_quantity expendQuantity,
  148. t1.quantity
  149. FROM contract_product t1
  150. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  151. ${ew.customSqlSegment}
  152. </select>
  153. <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  154. SELECT
  155. *
  156. FROM
  157. (
  158. SELECT
  159. t2.*,
  160. t1.id AS contractId,
  161. t1.`code` AS contractCode,
  162. t2.quantity AS cpQuantity,
  163. t2.id AS contractProductId,
  164. ( SELECT IFNULL( SUM( pd.pack_quantity * pdd.quantity ), 0 ) FROM pack_detail_product pdd LEFT JOIN pack_detail
  165. pd ON pdd.pack_detail_id = pd.id WHERE pdd.contract_product_id = t2.id ) AS sumPackQuantity
  166. FROM
  167. contract t1
  168. LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
  169. <where>
  170. <if test="customerId neq null and customerId neq '' ">
  171. buy_corporation_id = #{customerId}
  172. </if>
  173. </where>
  174. ) t1
  175. WHERE t1.sumPackQuantity &lt; t1.cpQuantity
  176. <if test="contractIds neq null and contractIds.size() > 0">
  177. <foreach collection="contractIds" item="contractId" open="AND contractId IN (" separator="," close=")">
  178. #{contractId}
  179. </foreach>
  180. </if>
  181. </select>
  182. <select id="contractHandoverPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  183. SELECT
  184. t1.create_time AS ct,
  185. t1.id,
  186. t1.contract_id,
  187. t1.product_id,
  188. t2.`code` AS `contractCode`,
  189. t2.user_name AS userName,
  190. t2.version AS contractVersion,
  191. t2.buy_corporation_id buyCorporationId,
  192. <!-- 待采购数量-->
  193. t1.expend_quantity AS expendQuantity,
  194. <!-- 交接单时间-->
  195. t3.sampleTime,
  196. <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
  197. t2.update_time updateTime,
  198. <!-- 合同到账时间-->
  199. ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
  200. FROM
  201. contract_product t1
  202. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  203. <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
  204. left join(SELECT business_id,create_time sampleTime from bytesailing_base.file_info GROUP BY business_id HAVING MAX(create_time)) t3 on
  205. t2.id = t3.business_id
  206. ${ew.customSqlSegment}
  207. </select>
  208. </mapper>