SampleMapper.xml 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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.sample.SampleMapper">
  4. <select id="getPage" resultType="com.fjhx.sale.entity.sample.vo.SampleVo">
  5. SELECT *
  6. FROM (SELECT t1.*,
  7. IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) AS amountCNY,
  8. CASE
  9. WHEN (IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) - t1.sumClaimMoney) &lt;= 0 THEN
  10. 20
  11. WHEN t1.sumClaimMoney = 0 THEN
  12. 0
  13. ELSE 10
  14. END AS refundStatusNew
  15. FROM (SELECT t1.*,
  16. us.nick_name salesmanName,
  17. (SELECT IFNULL(SUM(IFNULL(cc.money_cny, IFNULL(cc.money, 0) * IFNULL(arw.rate, 1))), 0)
  18. FROM claim_contract cc
  19. left join claim c on cc.claim_id = c.id
  20. LEFT JOIN bytesailing_account.account_running_water arw on c.business_id = arw.id
  21. WHERE cc.contract_id = t1.id) AS sumClaimMoney
  22. FROM sample t1
  23. left join bytesailing_customer.customer c on t1.buy_corporation_id = c.id
  24. left join bytesailing_base.sys_user us on c.user_id = us.user_id) t1) t1
  25. ${ew.customSqlSegment}
  26. </select>
  27. <select id="sampleHandoverList" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  28. SELECT
  29. t1.quantity,
  30. t1.create_time AS ct,
  31. t1.id,
  32. t1.sample_id sampleId,
  33. t1.product_id,
  34. t2.`code` AS `contractCode`,
  35. us.nick_name AS userName,
  36. t2.versions AS contractVersion,
  37. t2.buy_corporation_id buyCorporationId,
  38. <!-- 需要采购的合同数量-->
  39. t1.expend_quantity AS expendQuantity,
  40. <!-- 交接单时间-->
  41. t3.sampleTime,
  42. <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
  43. t2.update_time updateTime,
  44. ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime,
  45. t2.create_user
  46. FROM
  47. sample_product t1
  48. LEFT JOIN sample t2 ON t1.sample_id = t2.id
  49. <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
  50. left join(SELECT business_id,create_time sampleTime from bytesailing_base.file_info GROUP BY business_id HAVING
  51. MAX(create_time)) t3 on
  52. t2.id = t3.business_id
  53. left join bytesailing_customer.customer c on t2.buy_corporation_id = c.id
  54. left join bytesailing_base.sys_user us on c.user_id = us.user_id
  55. ${ew.customSqlSegment}
  56. </select>
  57. <update id="updateSample" parameterType="com.fjhx.sale.entity.sample.po.Sample">
  58. update sample
  59. <set>
  60. <if test="id != null">id = #{id},</if>
  61. <if test="status != null">status = #{status},</if>
  62. <if test="isShow != null">is_show = #{isShow},</if>
  63. <if test="oldSampleId != null">old_sample_id = #{oldSampleId},</if>
  64. <if test="approvedDate != null">approved_date = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s'),</if>
  65. update_time = sysdate()
  66. </set>
  67. where id = #{upId}
  68. </update>
  69. <select id="getAccountRunningWaterBySampleId"
  70. resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
  71. SELECT arw.id,
  72. arw.create_time,
  73. ap.type,
  74. arw.currency,
  75. pad.money amount,
  76. pad.remark remarks,
  77. am.`name` accountManagementName,
  78. am.account_opening accountManagementOpening,
  79. arw.`name`,
  80. arw.status
  81. FROM sample s
  82. JOIN bytesailing_purchase.purchase p ON p.data_resource_id = s.id AND p.del_flag = 0
  83. JOIN bytesailing_purchase.pay_detail `pad` ON pad.purchase_id = p.id AND pad.del_flag = 0
  84. JOIN bytesailing_purchase.pay pa ON pad.pay_id = pa.id AND pa.del_flag = 0
  85. JOIN bytesailing_account.account_payment ap ON ap.business_id = pa.id AND ap.del_flag = 0
  86. JOIN bytesailing_account.account_running_water arw ON arw.business_id = ap.id AND arw.del_flag = 0
  87. LEFT JOIN bytesailing_account.account_management am
  88. ON arw.account_management_id = am.id AND am.del_flag = 0
  89. WHERE s.id = #{sampleId}
  90. UNION ALL
  91. SELECT arw.id,
  92. arw.create_time,
  93. ap.type,
  94. arw.currency,
  95. arfd.amount,
  96. arfd.remarks,
  97. am.`name` accountManagementName,
  98. am.account_opening accountManagementOpening,
  99. arw.`name`,
  100. arw.status
  101. FROM sample s
  102. JOIN bytesailing_account.account_request_funds_detail arfd
  103. ON arfd.contract_id = s.id AND arfd.del_flag = 0
  104. JOIN bytesailing_account.account_payment ap
  105. ON ap.business_id = arfd.account_request_funds_id AND ap.del_flag = 0
  106. JOIN bytesailing_account.account_running_water arw ON arw.business_id = ap.id AND arw.del_flag = 0
  107. LEFT JOIN bytesailing_account.account_management am
  108. ON arw.account_management_id = am.id AND am.del_flag = 0
  109. WHERE s.id = #{sampleId}
  110. UNION ALL
  111. SELECT arw.id,
  112. arw.create_time,
  113. 30 type,
  114. arw.currency,
  115. clc.money,
  116. arw.remarks,
  117. am.`name` accountManagementName,
  118. am.account_opening accountManagementOpening,
  119. arw.`name`,
  120. arw.status
  121. FROM bytesailing_account.account_running_water arw
  122. JOIN claim cl ON cl.business_id = arw.id
  123. JOIN claim_contract clc ON clc.claim_id = cl.id
  124. JOIN sample s ON clc.contract_id = s.id
  125. LEFT JOIN bytesailing_account.account_management am
  126. ON arw.account_management_id = am.id AND am.del_flag = 0
  127. WHERE arw.del_flag = 0
  128. AND s.id = #{sampleId}
  129. </select>
  130. </mapper>