ContractProductMapper.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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. t1.quantity
  50. FROM
  51. contract_product t1
  52. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  53. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  54. WHERE
  55. t2.`status` &gt;= 30
  56. AND t2.`status` &lt; 88
  57. UNION ALL
  58. SELECT
  59. IFNULL(t3.`status`,0) AS qualityStatus,
  60. t1.create_time AS ct,
  61. "样品单" AS orderType,
  62. t1.id,
  63. t1.product_model AS productModel,
  64. t1.product_name AS productName,
  65. t1.sample_id,
  66. t1.product_id,
  67. t2.`code` AS `contractCode`,
  68. t2.user_name AS userName,
  69. t2.versions AS contractVersion,
  70. t1.expend_quantity AS expendQuantity,
  71. t2.sell_corporation_id,
  72. t2.buy_corporation_id,
  73. ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime,
  74. t1.quantity
  75. FROM
  76. sample_product t1
  77. LEFT JOIN sample t2 ON t1.sample_id = t2.id
  78. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  79. WHERE
  80. t2.`status` &gt;= 30
  81. AND t2.`status` &lt; 88
  82. ) t1
  83. ${ew.customSqlSegment}
  84. </select>
  85. <select id="getEHSDQualityPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  86. SELECT
  87. *
  88. FROM
  89. (
  90. SELECT
  91. t1.create_time AS ct,
  92. "外销合同" AS orderType,
  93. t1.id,
  94. t1.product_model AS productModel,
  95. t1.product_name AS productName,
  96. t1.contract_id,
  97. t1.product_id,
  98. t2.`code` AS `contractCode`,
  99. t2.user_name AS userName,
  100. t2.version AS contractVersion,
  101. t1.expend_quantity AS expendQuantity,
  102. t3.`status` AS qualityStatus,
  103. t3.create_time AS qualityTime,
  104. t3.user_name AS qualityUserName,
  105. t2.buy_corporation_id,
  106. t3.summary AS summary
  107. FROM
  108. contract_product t1
  109. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  110. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  111. WHERE
  112. t2.`status` &gt;= 30
  113. AND t2.`status` &lt; 88
  114. UNION ALL
  115. SELECT
  116. t1.create_time AS ct,
  117. "样品单" AS orderType,
  118. t1.id,
  119. t1.product_model AS productModel,
  120. t1.product_name AS productName,
  121. t1.sample_id,
  122. t1.product_id,
  123. t2.`code` AS `contractCode`,
  124. t2.user_name AS userName,
  125. t2.versions AS contractVersion,
  126. t1.expend_quantity AS expendQuantity,
  127. t3.`status` AS qualityStatus,
  128. t3.create_time AS qualityTime,
  129. t3.user_name AS qualityUserName,
  130. t2.buy_corporation_id
  131. t3.summary AS summary
  132. FROM
  133. sample_product t1
  134. LEFT JOIN sample t2 ON t1.sample_id = t2.id
  135. LEFT JOIN ehsd_quality t3 ON t1.id = t3.business_id
  136. WHERE
  137. t2.`status` &gt;= 30
  138. AND t2.`status` &lt; 88
  139. ) t1
  140. ${ew.customSqlSegment}
  141. </select>
  142. <select id="getListByIds" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  143. SELECT t1.id,
  144. t1.contract_id,
  145. t1.product_id,
  146. t2.`code` AS contractCode,
  147. t2.user_name AS userName,
  148. t2.version AS contractVersion,
  149. t1.expend_quantity expendQuantity,
  150. t1.quantity
  151. FROM contract_product t1
  152. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  153. ${ew.customSqlSegment}
  154. </select>
  155. <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  156. SELECT
  157. *
  158. FROM
  159. (
  160. SELECT
  161. t2.*,
  162. t1.id AS contractId,
  163. t1.`code` AS contractCode,
  164. t2.quantity AS cpQuantity,
  165. t2.id AS contractProductId,
  166. ( SELECT IFNULL( SUM( pd.pack_quantity * pdd.quantity ), 0 ) FROM pack_detail_product pdd LEFT JOIN pack_detail
  167. pd ON pdd.pack_detail_id = pd.id WHERE pdd.contract_product_id = t2.id ) AS sumPackQuantity
  168. FROM
  169. contract t1
  170. LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
  171. <where>
  172. <if test="customerId neq null and customerId neq '' ">
  173. buy_corporation_id = #{customerId}
  174. </if>
  175. </where>
  176. ) t1
  177. WHERE t1.sumPackQuantity &lt; t1.cpQuantity
  178. <if test="contractIds neq null and contractIds.size() > 0">
  179. <foreach collection="contractIds" item="contractId" open="AND contractId IN (" separator="," close=")">
  180. #{contractId}
  181. </foreach>
  182. </if>
  183. </select>
  184. <select id="contractHandoverPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  185. SELECT
  186. t1.create_time AS ct,
  187. t1.id,
  188. t1.contract_id,
  189. t1.product_id,
  190. t2.`code` AS `contractCode`,
  191. us.nick_name AS userName,
  192. t2.version AS contractVersion,
  193. t2.buy_corporation_id buyCorporationId,
  194. t1.quantity,
  195. <!-- 待采购数量-->
  196. t1.expend_quantity AS expendQuantity,
  197. <!-- 交接单时间-->
  198. t3.sampleTime,
  199. <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
  200. t2.update_time updateTime,
  201. <!-- 合同到账时间-->
  202. ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime,
  203. t2.create_user
  204. FROM
  205. contract_product t1
  206. LEFT JOIN contract t2 ON t1.contract_id = t2.id
  207. <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
  208. left join(SELECT business_id,create_time sampleTime from bytesailing_base.file_info GROUP BY business_id HAVING
  209. MAX(create_time)) t3 on
  210. t2.id = t3.business_id
  211. left join bytesailing_customer.customer c on t2.buy_corporation_id = c.id
  212. left join bytesailing_base.sys_user us on c.user_id = us.user_id
  213. ${ew.customSqlSegment}
  214. </select>
  215. </mapper>