ContractMapper.xml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  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.ContractMapper">
  4. <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  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. c.name customerName,
  17. us.nick_name salesmanName,
  18. us.user_id salesmanId,
  19. (SELECT IFNULL(SUM(cc.contract_money), 0)
  20. FROM claim_contract cc
  21. WHERE cc.contract_id = t1.id) AS sumClaimMoney,
  22. po.produce_status
  23. FROM contract t1
  24. left join customer c on t1.buy_corporation_id = c.id
  25. left join sys_user us on c.user_id = us.user_id
  26. LEFT JOIN production_order po ON po.contract_id = t1.id) t1
  27. GROUP BY t1.id) t1
  28. ${ew.customSqlSegment}
  29. </select>
  30. <select id="getHeadStatistic" resultType="java.util.Map">
  31. SELECT IFNULL(SUM(t1.amountCNY), 0) AS sumAmount,
  32. IFNULL(SUM(sumClaimMoney), 0) AS sumClaimMoney,
  33. count(1) AS `count`,
  34. IFNULL(GROUP_CONCAT(DISTINCT t1.buy_corporation_id ), "") AS customerList
  35. FROM (SELECT t1.*,
  36. IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) AS amountCNY,
  37. CASE
  38. WHEN (IFNULL(t1.amount, 0) * IFNULL(t1.rate, 0) - t1.sumClaimMoney) &lt;= 0 THEN
  39. 20
  40. WHEN t1.sumClaimMoney = 0 THEN
  41. 0
  42. ELSE 10
  43. END AS refundStatusNew
  44. FROM (SELECT t1.*,
  45. (SELECT IFNULL(SUM(IFNULL(cc.money, 0) * IFNULL(arw.rate, 1)), 0)
  46. FROM claim_contract cc
  47. left join claim c on cc.claim_id = c.id
  48. LEFT JOIN account_running_water arw on c.business_id = arw.id
  49. WHERE cc.contract_id = t1.id) AS sumClaimMoney,
  50. c.name customerName,
  51. us.nick_name salesmanName,
  52. us.user_id salesmanId
  53. FROM contract t1
  54. left join customer c on t1.buy_corporation_id = c.id
  55. left join sys_user us on c.user_id = us.user_id) t1) t1
  56. ${ew.customSqlSegment}
  57. </select>
  58. <select id="getProfitClearingPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
  59. SELECT t1.*,
  60. if(t1.amount &lt; t1.sumPurchaseContractMoney, 1, 0) AS isLoss
  61. from (SELECT t1.id AS contractId,
  62. us1.nick_name userName,
  63. t1.*,
  64. (select IFNULL(SUM(amount), 0)
  65. from ehsd_purchase
  66. where data_resource_id = t1.id
  67. and `status` in (10, 30, 60)) as sumPurchaseContractMoney
  68. FROM contract t1
  69. LEFT JOIN customer cu
  70. on t1.buy_corporation_id = cu.id and cu.del_flag = 0
  71. LEFT JOIN sys_user us1
  72. ON cu.user_id = us1.user_id and us1.del_flag = 0) t1 ${ew.customSqlSegment}
  73. </select>
  74. <select id="getProfitBudgetPage" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
  75. SELECT t1.*,
  76. if(t1.amount &lt; t1.sumPurchaseContractMoney, 1, 0) AS isLoss
  77. FROM (SELECT (SELECT GROUP_CONCAT(id) FROM contract_product WHERE contract_id = t1.id) AS contractProductIds,
  78. t1.id AS contractId,
  79. t1.`code`,
  80. t1.buy_corporation_id,
  81. us1.nick_name userName,
  82. t1.amount,
  83. t1.currency,
  84. t1.currency_rate_json,
  85. t1.rate AS rate,
  86. t1.create_time,
  87. t2.id,
  88. t2.trailer_fee_currency,
  89. t2.trailer_fee,
  90. t2.customs_fee_currency,
  91. t2.customs_fee,
  92. t2.agency_fee_currency,
  93. t2.agency_fee,
  94. t2.port_mixed_fee_currency,
  95. t2.port_mixed_fee,
  96. t2.inspection_red_pack_currency,
  97. t2.inspection_red_pack,
  98. t2.commission_currency,
  99. t2.commission,
  100. t2.other_currency,
  101. t2.other,
  102. IFNULL(t1.budget_money, 0) AS budgetMoney,
  103. cu.NAME customerName,
  104. t1.is_settled,
  105. t1.is_change,
  106. t1.status,
  107. t1.is_show,
  108. (SELECT IFNULL(SUM(amount), 0)
  109. FROM ehsd_purchase
  110. WHERE data_resource_id = t1.id
  111. AND `status` IN (10, 30, 60)) AS sumPurchaseContractMoney
  112. FROM contract t1
  113. LEFT JOIN contract_budget t2 ON t1.id = t2.contract_id
  114. LEFT JOIN customer cu ON t1.buy_corporation_id = cu.id
  115. AND cu.del_flag = 0
  116. LEFT JOIN sys_user us1 ON cu.user_id = us1.user_id
  117. AND us1.del_flag = 0) t1
  118. ${ew.customSqlSegment}
  119. </select>
  120. <select id="getProfitBudgetHeadStatistic" resultType="com.fjhx.sale.entity.contract.vo.ContractBudgetVo">
  121. SELECT t1.*,
  122. if(t1.amount &lt; t1.sumPurchaseContractMoney, 1, 0) AS isLoss
  123. FROM (SELECT t1.id AS contractId,
  124. t1.amount,
  125. t1.currency,
  126. t1.currency_rate_json,
  127. t1.rate AS rate,
  128. t2.*,
  129. t1.is_settled,
  130. t1.is_change,
  131. t1.status,
  132. t1.is_show,
  133. us1.nick_name,
  134. t1.code,
  135. (SELECT IFNULL(SUM(amount), 0)
  136. FROM ehsd_purchase
  137. WHERE data_resource_id = t1.id
  138. AND `status` IN (10, 30, 60)) AS sumPurchaseContractMoney
  139. FROM contract t1
  140. LEFT JOIN contract_budget t2 ON t1.id = t2.contract_id
  141. LEFT JOIN customer cu on t1.buy_corporation_id = cu.id and cu.del_flag = 0
  142. LEFT JOIN sys_user us1 ON cu.user_id = us1.user_id and us1.del_flag = 0) t1
  143. ${ew.customSqlSegment}
  144. </select>
  145. <select id="getNoPackContractByCustomerId" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  146. SELECT
  147. *
  148. FROM
  149. (
  150. SELECT
  151. t1.*,
  152. t2.quantity AS cpQuantity,
  153. ( SELECT IFNULL( SUM( pd.pack_quantity * pdd.quantity ), 0 ) FROM pack_detail_product pdd LEFT JOIN pack_detail
  154. pd ON pdd.pack_detail_id = pd.id WHERE pdd.contract_product_id = t2.id ) AS sumPackQuantity
  155. FROM
  156. contract t1
  157. LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
  158. <where>
  159. <if test="customerId neq null and customerId neq '' ">
  160. buy_corporation_id = #{customerId}
  161. </if>
  162. </where>
  163. ) t1
  164. WHERE t1.sumPackQuantity &lt; t1.cpQuantity
  165. AND t1.`status`=30
  166. GROUP BY t1.id
  167. </select>
  168. <select id="getSalesTotal" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  169. SELECT
  170. SUM( amount ) AS sumAmount,
  171. SUM( contractCount ) AS contractCount
  172. FROM
  173. (
  174. SELECT
  175. SUM( amount * rate ) amount,
  176. count(*) contractCount
  177. FROM
  178. contract
  179. WHERE
  180. buy_corporation_id = #{id}
  181. AND STATUS BETWEEN 0
  182. AND 87
  183. AND is_show != 1
  184. AND is_change = 0
  185. AND del_flag = 0
  186. GROUP BY
  187. buy_corporation_id UNION ALL
  188. SELECT
  189. SUM( amount * rate ) amount,
  190. count(*) contractCount
  191. FROM
  192. sample
  193. WHERE
  194. buy_corporation_id = #{id}
  195. AND STATUS BETWEEN 0
  196. AND 87
  197. AND is_show != 1
  198. AND is_change = 0
  199. AND del_flag = 0
  200. GROUP BY
  201. buy_corporation_id
  202. ) t1
  203. </select>
  204. <select id="getSalesTotalList" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  205. SELECT
  206. *
  207. FROM
  208. (
  209. SELECT
  210. currency,
  211. sell_corporation_id,
  212. id,
  213. "外销合同" AS type,
  214. create_time,
  215. create_user,
  216. `code`,
  217. buy_corporation_id,
  218. advance_ratio,
  219. amount,
  220. rate,
  221. amount * rate AS amountCNY,
  222. (SELECT IFNULL(SUM(IFNULL(cc.money, 0) * IFNULL(arw.rate, 1)), 0)
  223. FROM claim_contract cc
  224. LEFT JOIN claim c ON cc.claim_id = c.id
  225. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  226. WHERE cc.contract_id = t1.id) AS sumClaimMoney
  227. FROM contract t1
  228. WHERE buy_corporation_id = #{id}
  229. AND STATUS BETWEEN 0
  230. AND 87
  231. AND is_show != 1
  232. AND is_change = 0
  233. AND del_flag = 0 UNION ALL
  234. SELECT
  235. currency,
  236. sell_corporation_id,
  237. id,
  238. "样品单" AS type,
  239. create_time,
  240. create_user,
  241. `code`,
  242. buy_corporation_id, advance_ratio, amount, rate, amount * rate AS amountCNY, (
  243. SELECT
  244. IFNULL( SUM ( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
  245. FROM
  246. claim_contract cc
  247. LEFT JOIN claim c ON cc.claim_id = c.id
  248. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  249. WHERE
  250. cc.contract_id = t1.id
  251. ) AS sumClaimMoney
  252. FROM
  253. sample t1
  254. WHERE
  255. buy_corporation_id = #{id}
  256. AND STATUS BETWEEN 0
  257. AND 87
  258. AND is_show != 1
  259. AND is_change = 0
  260. AND del_flag = 0
  261. ) t1
  262. </select>
  263. <select id="getAmount" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  264. SELECT
  265. SUM(amount) amount,
  266. DATE_FORMAT(create_time,'%Y-%m') time
  267. FROM
  268. contract
  269. WHERE
  270. buy_corporation_id = #{id}
  271. and (DATE_FORMAT(create_time,'%Y-%m') >= #{beginTime} and #{endTime} >= DATE_FORMAT(create_time,'%Y-%m'))
  272. GROUP BY
  273. TIME
  274. </select>
  275. <select id="contractStatistics" resultType="com.fjhx.sale.entity.sale.vo.SaleQuotationVo">
  276. SELECT COUNT(*) count,
  277. ifnull(c.`status`,-1) status,
  278. ifnull(DATE_FORMAT(sq.create_time,'%Y-%m'),-1) time
  279. FROM
  280. customer c
  281. left JOIN contract sq
  282. ON sq.buy_corporation_id = c.id
  283. ${ew.customSqlSegment}
  284. </select>
  285. <select id="countrySalesStatistics" resultType="com.fjhx.sale.entity.contract.dto.ContractDto">
  286. SELECT sum(cc.amount) amount,
  287. COUNT(cc.buy_country_id) count,
  288. ai.name countryName
  289. FROM
  290. contract cc
  291. LEFT JOIN customize_area ai
  292. ON cc.buy_country_id = ai.id
  293. ${ew.customSqlSegment}
  294. </select>
  295. <select id="customSalesStatistics" resultType="com.fjhx.sale.entity.contract.dto.ContractDto">
  296. SELECT sum(cc.amount) amount,
  297. bc.name corporationName
  298. FROM contract cc
  299. LEFT JOIN customer bc ON cc.buy_corporation_id = bc.id
  300. ${ew.customSqlSegment}
  301. </select>
  302. <select id="salesmanSalesStatistics" resultType="com.fjhx.sale.entity.contract.dto.ContractDto">
  303. SELECT SUM(cc.amount) amount,
  304. su.nick_name userName
  305. FROM contract cc
  306. LEFT JOIN sys_user su ON cc.create_user = su.user_id
  307. ${ew.customSqlSegment}
  308. </select>
  309. <select id="productSalesStatistics" resultType="com.fjhx.sale.entity.contract.dto.ContractDto">
  310. SELECT SUM(cp.amount) amount,
  311. pi.name productName
  312. FROM contract_product cp
  313. LEFT JOIN product_info pi ON cp.product_id = pi.id
  314. ${ew.customSqlSegment}
  315. </select>
  316. <select id="salesVolumeStatistics" resultType="com.fjhx.sale.entity.contract.dto.ContractDto">
  317. SELECT SUM(cp.quantity) quantity,
  318. pi.name productName
  319. FROM contract_product cp
  320. LEFT JOIN product_info pi ON cp.product_id = pi.id
  321. ${ew.customSqlSegment}
  322. </select>
  323. <select id="getAccountRunningWaterByContractId"
  324. resultType="com.fjhx.account.entity.account.vo.AccountRunningWaterVo">
  325. SELECT arw.id,
  326. arw.create_time,
  327. ap.type,
  328. arw.currency,
  329. pad.money amount,
  330. pad.remark remarks,
  331. am.`name` accountManagementName,
  332. am.account_opening accountManagementOpening,
  333. arw.`name`,
  334. arw.status
  335. FROM contract c
  336. JOIN purchase p ON p.data_resource_id = c.id AND p.del_flag = 0
  337. JOIN pay_detail `pad` ON pad.purchase_id = p.id AND pad.del_flag = 0
  338. JOIN pay pa ON pad.pay_id = pa.id AND pa.del_flag = 0
  339. JOIN account_payment ap ON ap.business_id = pa.id AND ap.del_flag = 0
  340. JOIN account_running_water arw ON arw.business_id = ap.id AND arw.del_flag = 0
  341. LEFT JOIN account_management am
  342. ON arw.account_management_id = am.id AND am.del_flag = 0
  343. WHERE c.id = #{contractId}
  344. UNION ALL
  345. SELECT arw.id,
  346. arw.create_time,
  347. ap.type,
  348. arw.currency,
  349. arfd.amount,
  350. arfd.remarks,
  351. am.`name` accountManagementName,
  352. am.account_opening accountManagementOpening,
  353. arw.`name`,
  354. arw.status
  355. FROM contract c
  356. JOIN account_request_funds_detail arfd
  357. ON arfd.contract_id = c.id AND arfd.del_flag = 0
  358. JOIN account_payment ap
  359. ON ap.business_id = arfd.account_request_funds_id AND ap.del_flag = 0
  360. JOIN account_running_water arw ON arw.business_id = ap.id AND arw.del_flag = 0
  361. LEFT JOIN account_management am
  362. ON arw.account_management_id = am.id AND am.del_flag = 0
  363. WHERE c.id = #{contractId}
  364. group by arfd.id
  365. UNION ALL
  366. SELECT arw.id,
  367. arw.create_time,
  368. 30 type,
  369. arw.currency,
  370. clc.money,
  371. arw.remarks,
  372. am.`name` accountManagementName,
  373. am.account_opening accountManagementOpening,
  374. arw.`name`,
  375. arw.status
  376. FROM account_running_water arw
  377. JOIN claim cl ON cl.business_id = arw.id
  378. JOIN claim_contract clc ON clc.claim_id = cl.id
  379. JOIN contract c ON clc.contract_id = c.id
  380. LEFT JOIN account_management am
  381. ON arw.account_management_id = am.id AND am.del_flag = 0
  382. WHERE arw.del_flag = 0
  383. AND c.id = #{contractId}
  384. </select>
  385. <select id="getContractAndSamplePagez" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  386. SELECT
  387. *
  388. FROM
  389. (
  390. SELECT
  391. t1.id,
  392. t1.sell_corporation_id,
  393. t1.contract_type,
  394. 1 AS dataType,
  395. t1.`code`,
  396. t1.buy_corporation_id,
  397. t1.version,
  398. t1.amount,
  399. t1.create_user,
  400. t1.create_time,
  401. t1.refund_status,
  402. t1.`status`,
  403. (SELECT IFNULL(SUM(IFNULL(cc.money, 0) * IFNULL(arw.rate, 1)), 0)
  404. FROM claim_contract cc
  405. LEFT JOIN claim c ON cc.claim_id = c.id
  406. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  407. WHERE cc.contract_id = t1.id) AS sumClaimMoney,
  408. (SELECT IFNULL(SUM(cc.contract_money), 0)
  409. FROM claim_contract cc
  410. LEFT JOIN claim c ON cc.claim_id = c.id
  411. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  412. WHERE cc.contract_id = t1.id) AS sumContractClaimMoney,
  413. t1.currency
  414. FROM contract t1
  415. WHERE t1.`status` >= 30
  416. AND t1.`status` &lt; 88
  417. AND t1.is_show != 1
  418. AND t1.is_change = 0
  419. UNION
  420. SELECT
  421. t1.id, t1.sell_corporation_id, 3 AS contract_type, 2 AS dataType, t1.`code`, t1.buy_corporation_id, t1.versions AS version, t1.amount, t1.create_user, t1.create_time, IF( sumClaimMoney >= t1.amount, 20, IF ( sumClaimMoney != 0, 10, 0 ) ) AS refund_status, t1.`status`, t1.sumClaimMoney, t1.sumContractClaimMoney, t1.currency
  422. FROM
  423. (
  424. SELECT
  425. t1.*, (
  426. SELECT
  427. IFNULL( SUM ( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
  428. FROM
  429. claim_contract cc
  430. LEFT JOIN claim c ON cc.claim_id = c.id
  431. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  432. WHERE
  433. cc.contract_id = t1.id
  434. ) AS sumClaimMoney, (
  435. SELECT
  436. IFNULL( SUM (cc.contract_money), 0 )
  437. FROM
  438. claim_contract cc
  439. LEFT JOIN claim c ON cc.claim_id = c.id
  440. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  441. WHERE
  442. cc.contract_id = t1.id
  443. ) AS sumContractClaimMoney
  444. FROM
  445. sample t1
  446. WHERE
  447. t1.`status` >= 30
  448. AND t1.`status` &lt; 88
  449. AND t1.is_show != 1
  450. AND t1.is_change = 0
  451. ) AS t1) t1
  452. ${ew.customSqlSegment}
  453. </select>
  454. <update id="updateContract" parameterType="com.fjhx.sale.entity.contract.po.Contract">
  455. update contract
  456. <set>
  457. <if test="id != null">id = #{id},</if>
  458. <if test="status != null">status = #{status},</if>
  459. <if test="isChange != null">is_change = #{isChange},</if>
  460. <if test="isShow != null">is_show = #{isShow},</if>
  461. <if test="oldContractId != null">old_contract_id = #{oldContractId},</if>
  462. <if test="approvedDate != null">approved_date = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s'),</if>
  463. update_time = sysdate()
  464. </set>
  465. where id = #{upId}
  466. </update>
  467. <select id="getExportCopyList" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
  468. SELECT * FROM (SELECT
  469. t1.*,
  470. CASE
  471. WHEN t1.purchaseAmountCNY &lt; t1.amountCNY AND t1.sumClaimMoney &lt; t1.amountCNY THEN 10
  472. WHEN t1.purchaseAmountCNY &lt; t1.amountCNY AND t1.sumClaimMoney >= t1.amountCNY THEN 20
  473. WHEN t1.purchaseAmountCNY >= t1.amountCNY AND t1.sumClaimMoney &lt; t1.amountCNY THEN 30
  474. WHEN t1.purchaseAmountCNY >= t1.amountCNY AND t1.sumClaimMoney >= t1.amountCNY THEN 40
  475. ELSE 88
  476. END AS orderStatus
  477. FROM
  478. (
  479. SELECT
  480. t1.*,
  481. IFNULL( t1.amount * t1.rate, 0 ) AS amountCNY,
  482. <if test="documentaryType neq null ">
  483. (SELECT count(1) FROM ehsd_purchase p LEFT JOIN ehsd_documentary pd ON p.id = pd.business_id WHERE p.data_resource_id = t1.id AND pd.documentary_type = #{documentaryType}) AS documentaryCount,
  484. </if>
  485. IFNULL(t1.advance_ratio,0)*IFNULL(t1.amount,0)/100 AS earnest,
  486. ( SELECT create_time FROM claim_contract WHERE contract_id = t1.id ORDER BY create_time ASC LIMIT 1) AS claimTime,
  487. ( SELECT count( 1 ) FROM ehsd_purchase WHERE `status` = 30 AND data_resource_id = t1.id ) AS purchaseCount,
  488. ( SELECT IFNULL(SUM(amount*rate),0) FROM ehsd_purchase WHERE `status` = 30 AND data_resource_id = t1.id) AS
  489. purchaseAmountCNY,
  490. ( SELECT count( 1 ) FROM pack_detail WHERE FIND_IN_SET( contract_ids, t1.id ) AND shipment_status = 1 ) AS
  491. packCount,
  492. (
  493. SELECT
  494. IFNULL( SUM( IFNULL( cc.money, 0 ) * IFNULL( arw.rate, 1 )), 0 )
  495. FROM
  496. claim_contract cc
  497. LEFT JOIN claim c ON cc.claim_id = c.id
  498. LEFT JOIN account_running_water arw ON c.business_id = arw.id
  499. WHERE
  500. cc.contract_id = t1.id
  501. ) AS sumClaimMoney,
  502. cus.nick_name as salesmanName
  503. FROM
  504. contract t1
  505. left join customer cu on t1.buy_corporation_id = cu.id
  506. left join sys_user cus on cu.user_id = cus.user_id
  507. WHERE t1.`status` = 30
  508. ) t1
  509. ) t1
  510. ${ew.customSqlSegment}
  511. </select>
  512. <select id="getContractProductInfo" resultType="com.fjhx.item.entity.product.bo.ProductAnalysisBo">
  513. SELECT cp.product_id,
  514. count(DISTINCT (cp.contract_id)) AS orderCount,
  515. IFNULL(sum(cp.quantity), 0) AS saleQuantity,
  516. IFNULL(sum(cp.price * cp.quantity * c.rate), 0) AS saleAmount,
  517. IFNULL(min(cp.price * c.rate), 0) AS saleMinPrice,
  518. IFNULL(max(cp.price * c.rate), 0) AS saleMaxPrice
  519. FROM contract_product cp
  520. LEFT JOIN contract c ON cp.contract_id = c.id
  521. ${ew.customSqlSegment}
  522. </select>
  523. <select id="getPurchaseProductInfo" resultType="com.fjhx.item.entity.product.bo.ProductAnalysisBo">
  524. SELECT epp.product_id,
  525. IFNULL(sum(epp.quantity), 0) AS purchasesQuantity,
  526. IFNULL(sum(epp.price * epp.quantity * ep.rate), 0) AS purchasesAmount,
  527. IFNULL(min(epp.price * ep.rate), 0) AS purchasesMinPrice,
  528. IFNULL(max(epp.price * ep.rate), 0) AS purchasesMaxPrice
  529. FROM ehsd_purchase_product epp
  530. LEFT JOIN ehsd_purchase ep ON epp.purchase_id = ep.id
  531. ${ew.customSqlSegment}
  532. </select>
  533. <select id="getProductPriceInfo" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
  534. SELECT cp.*,
  535. c.currency,
  536. c.code contractCode,
  537. c.is_settled
  538. FROM contract_product cp
  539. LEFT JOIN contract c ON cp.contract_id = c.id
  540. ${ew.customSqlSegment}
  541. </select>
  542. <select id="getProductionOrderCount" resultType="java.lang.Long">
  543. SELECT COUNT(1)
  544. FROM production_order po
  545. ${ew.customSqlSegment}
  546. </select>
  547. <delete id="removeProductionOrderByContractId">
  548. --生产订单
  549. DELETE
  550. FROM production_order
  551. WHERE contract_id = #{contractId};
  552. </delete>
  553. <delete id="removeProductionOrderDetailByContractId">
  554. --生产任务
  555. DELETE
  556. FROM production_order_detail
  557. WHERE contract_id = #{contractId};
  558. </delete>
  559. <delete id="removeMaterialPreparationoByContractId">
  560. --备料
  561. DELETE
  562. FROM material_preparation
  563. WHERE contract_id = #{contractId};
  564. </delete>
  565. </mapper>