You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

496 lines
20 KiB

1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
10 months ago
10 months ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
12 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
10 months ago
10 months ago
11 months ago
11 months ago
1 year ago
1 year ago
10 months ago
1 year ago
11 months ago
1 year ago
1 year ago
  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.spring.modules.quote.mapper.QuoteDetailMapper">
  4. <select id="queryQuoteDetail" resultType="com.spring.modules.quote.entity.QuoteDetail">
  5. select qd.id,
  6. qd.quote_id,
  7. qd.site,
  8. qd.bu_no,
  9. qd.quote_no,
  10. qd.version_no,
  11. qd.item_no,
  12. qd.part_id,
  13. pp.part_no as partNo,
  14. pp.part_desc,
  15. pp.plm_part_no,
  16. qd.internal_inquiry_no,
  17. qd.qty,
  18. qd.quote_count,
  19. qd.status,
  20. qd.part_cost,
  21. qd.adjust_part_cost,
  22. qd.labour_cost,
  23. qd.adjust_labour_cost,
  24. qd.fabricate_cost,
  25. qd.adjust_fabricate_cost,
  26. qd.tool_cost,
  27. qd.adjust_tool_cost,
  28. qd.machine_cost,
  29. qd.adjust_machine_cost,
  30. qd.other_cost,
  31. qd.manage_cost,
  32. qd.total_cost,
  33. qd.profit_rate,
  34. qd.profit_amount,
  35. qd.total_price,
  36. qd.unit_price,
  37. qd.tax_rate,
  38. qd.tax_total_price,
  39. qd.tax_unit_price,
  40. qd.remark,
  41. qd.active,
  42. qd.show_flag,
  43. qd.create_by,
  44. qd.create_date,
  45. qd.update_by,
  46. qd.update_date,
  47. qd.pack_cost,
  48. qd.shipping_cost,
  49. qd.process_time,
  50. qd.yield,
  51. qd.bom_un_yield,
  52. qd.bom_yield,
  53. qd.parent_attrition_rate,
  54. qd.child_attrition_rate,
  55. qd.adjust_bom_un_yield,
  56. qd.quote_cost,
  57. qd.adjust_quote_cost,
  58. qd.quote_total_cost,
  59. qd.quote_profit_rate,
  60. qd.quote_profit_amount,
  61. qd.quote_total_price,
  62. qd.quote_unit_price,
  63. qd.quote_tax_rate,
  64. qd.quote_tax_total_price,
  65. qd.quote_tax_unit_price,
  66. qd.currency1,
  67. dbo.plm_get_dictDataLabel('plm_customer_information_customer_customer_currency', qd.currency1, qd.site) as currencyDesc1,
  68. qd.final_transaction_price,
  69. qd.exchange_rate1,
  70. qd.currency2,
  71. dbo.plm_get_dictDataLabel('plm_customer_information_customer_customer_currency', qd.currency2, qd.site) as currencyDesc2,
  72. qd.exchange_rate2,
  73. qd.moq,
  74. qd.currency_total_cost1,
  75. qd.currency_total_cost2,
  76. qd.quote_currency_total_cost1,
  77. qd.quote_currency_total_cost2,
  78. qd.calculated_items,
  79. qd.test_cost,
  80. qd.adjust_test_cost,
  81. qd.else_cost,
  82. qd.adjust_else_cost,
  83. pp.plm_part_no,
  84. pp.ifs_part_no,
  85. convert(decimal(20,6),(case when exchange_rate2 = 0 or exchange_rate2 is null then 0 else unit_price/exchange_rate2 end)) as unitPriceRate
  86. from plm_quote_detail qd
  87. left join plm_quote q on qd.quote_id = q.id
  88. left join part pp on qd.part_no = pp.part_no and qd.site = pp.site
  89. <where>
  90. <if test="id != null">
  91. and qd.id = #{id}
  92. </if>
  93. <if test="quoteId != null">
  94. and qd.quote_id = #{quoteId}
  95. </if>
  96. <if test="quoteNo != null and quoteNo != ''">
  97. and qd.quote_no = #{quoteNo}
  98. </if>
  99. <if test="site != null and site != ''">
  100. and qd.site = #{site}
  101. </if>
  102. <if test="buNo != null and buNo != ''">
  103. and qd.bu_no = #{buNo}
  104. </if>
  105. <if test="versionNo != null and versionNo != ''">
  106. and qd.version_no = #{versionNo}
  107. </if>
  108. <if test="quoteGroupDetailId != null">
  109. and qd.quote_group_detail_id = #{quoteGroupDetailId}
  110. </if>
  111. </where>
  112. order by qd.id
  113. </select>
  114. <select id="queryQuoteDetailByPage" resultType="com.spring.modules.quote.entity.QuoteDetail">
  115. select qd.id,
  116. qd.quote_id,
  117. qd.site,
  118. qd.bu_no,
  119. qd.quote_no,
  120. qd.version_no,
  121. qd.item_no,
  122. qd.part_id,
  123. pp.part_no as partNo,
  124. pp.part_desc,
  125. pp.plm_part_no,
  126. qd.internal_inquiry_no,
  127. qd.qty,
  128. qd.quote_count,
  129. qd.status,
  130. qd.part_cost,
  131. qd.adjust_part_cost,
  132. qd.labour_cost,
  133. qd.adjust_labour_cost,
  134. qd.fabricate_cost,
  135. qd.adjust_fabricate_cost,
  136. qd.tool_cost,
  137. qd.adjust_tool_cost,
  138. qd.machine_cost,
  139. qd.adjust_machine_cost,
  140. qd.other_cost,
  141. qd.manage_cost,
  142. qd.total_cost,
  143. qd.profit_rate,
  144. qd.profit_amount,
  145. qd.total_price,
  146. qd.unit_price,
  147. qd.tax_rate,
  148. qd.tax_total_price,
  149. qd.tax_unit_price,
  150. qd.remark,
  151. qd.active,
  152. qd.show_flag,
  153. qd.create_by,
  154. qd.create_date,
  155. qd.update_by,
  156. qd.update_date,
  157. qd.pack_cost,
  158. qd.shipping_cost,
  159. qd.process_time,
  160. qd.yield,
  161. qd.bom_un_yield,
  162. qd.bom_yield,
  163. qd.parent_attrition_rate,
  164. qd.child_attrition_rate,
  165. qd.adjust_bom_un_yield,
  166. qd.quote_cost,
  167. qd.adjust_quote_cost,
  168. qd.quote_total_cost,
  169. qd.quote_profit_rate,
  170. qd.quote_profit_amount,
  171. qd.quote_total_price,
  172. qd.quote_unit_price,
  173. qd.quote_tax_rate,
  174. qd.quote_tax_total_price,
  175. qd.quote_tax_unit_price,
  176. qd.currency1,
  177. dbo.plm_get_dictDataLabel('plm_customer_information_customer_customer_currency', qd.currency1,
  178. qd.site) as currencyDesc1,
  179. qd.exchange_rate1,
  180. qd.currency2,
  181. dbo.plm_get_dictDataLabel('plm_customer_information_customer_customer_currency', qd.currency2,
  182. qd.site) as currencyDesc2,
  183. qd.exchange_rate2,
  184. qd.moq,
  185. qd.currency_total_cost1,
  186. qd.currency_total_cost2,
  187. qd.quote_currency_total_cost1,
  188. qd.quote_currency_total_cost2,
  189. qd.calculated_items,
  190. qd.test_cost,
  191. qd.adjust_test_cost,
  192. qd.else_cost,
  193. qd.adjust_else_cost
  194. from plm_quote_detail qd
  195. left join plm_quote q on qd.quote_id = q.id
  196. left join part pp
  197. on qd.part_no = pp.part_no and qd.site = pp.site
  198. <where>
  199. <if test="params.quoteId != null">
  200. and qd.quote_id = #{params.quoteId}
  201. </if>
  202. <if test="params.quoteNo != null and params.quoteNo != ''">
  203. and qd.quote_no = #{params.quoteNo}
  204. </if>
  205. <if test="params.site != null and params.site != ''">
  206. and qd.site = #{params.site}
  207. </if>
  208. <if test="params.buNo != null and params.buNo != ''">
  209. and qd.bu_no = #{params.buNo}
  210. </if>
  211. <if test="params.versionNo != null and params.versionNo != ''">
  212. and qd.version_no = #{params.versionNo}
  213. </if>
  214. <if test="params.quoteGroupDetailId != null">
  215. and qd.quote_group_detail_id = #{params.quoteGroupDetailId}
  216. </if>
  217. </where>
  218. order by qd.id desc
  219. </select>
  220. <select id="queryItemNo" resultType="java.lang.Integer">
  221. select ISNULL(max(item_no),0)+1 from plm_quote_detail where quote_id = #{quoteId}
  222. </select>
  223. <select id="queryQuoteDetailByInquiry" resultType="com.spring.modules.quote.entity.QuoteDetail">
  224. select qd.id,
  225. qd.quote_id,
  226. qd.site,
  227. qd.bu_no,
  228. qd.quote_no,
  229. qd.version_no,
  230. qd.item_no,
  231. qd.part_id,
  232. pp.part_no as partNo,
  233. pp.part_desc,
  234. pp.plm_part_no,
  235. qd.internal_inquiry_no,
  236. qd.qty,
  237. qd.quote_count,
  238. qd.status,
  239. qd.part_cost,
  240. qd.adjust_part_cost,
  241. qd.labour_cost,
  242. qd.adjust_labour_cost,
  243. qd.fabricate_cost,
  244. qd.adjust_fabricate_cost,
  245. qd.tool_cost,
  246. qd.adjust_tool_cost,
  247. qd.machine_cost,
  248. qd.adjust_machine_cost,
  249. qd.other_cost,
  250. qd.manage_cost,
  251. qd.total_cost,
  252. qd.profit_rate,
  253. qd.profit_amount,
  254. qd.total_price,
  255. qd.unit_price,
  256. qd.tax_rate,
  257. qd.tax_total_price,
  258. qd.tax_unit_price,
  259. qd.remark,
  260. qd.active,
  261. qd.show_flag,
  262. qd.create_by,
  263. qd.create_date,
  264. qd.update_by,
  265. qd.update_date,
  266. qd.pack_cost,
  267. qd.shipping_cost,
  268. qd.process_time,
  269. qd.yield,
  270. qd.bom_un_yield,
  271. qd.bom_yield,
  272. qd.parent_attrition_rate,
  273. qd.child_attrition_rate,
  274. qd.adjust_bom_un_yield,
  275. qd.quote_cost,
  276. qd.adjust_quote_cost,
  277. qd.quote_total_cost,
  278. qd.quote_profit_rate,
  279. qd.quote_profit_amount,
  280. qd.quote_total_price,
  281. qd.quote_unit_price,
  282. qd.quote_tax_rate,
  283. qd.quote_tax_total_price,
  284. qd.quote_tax_unit_price,
  285. qd.currency1,
  286. dbo.plm_get_dictDataLabel('plm_customer_information_customer_customer_currency', qd.currency1,
  287. qd.site) as currencyDesc1,
  288. qd.exchange_rate1,
  289. qd.currency2,
  290. dbo.plm_get_dictDataLabel('plm_customer_information_customer_customer_currency', qd.currency2,
  291. qd.site) as currencyDesc2,
  292. qd.exchange_rate2,
  293. qd.moq,
  294. qd.currency_total_cost1,
  295. qd.currency_total_cost2,
  296. qd.quote_currency_total_cost1,
  297. qd.quote_currency_total_cost2,
  298. q.quote_date,
  299. q.quote_version_no,
  300. q.inside_inquiry_no,
  301. qd.calculated_items,
  302. qd.test_cost,
  303. qd.adjust_test_cost,
  304. qd.else_cost,
  305. qd.adjust_else_cost,
  306. pp.ifs_part_no,
  307. convert(decimal(20,6),(case when exchange_rate2 = 0 or exchange_rate2 is null then 0 else unit_price/exchange_rate2 end)) as unitPriceRate
  308. from plm_quote q
  309. left join plm_quote_detail qd on qd.quote_id = q.id
  310. left join part pp
  311. on qd.part_no = pp.part_no and qd.site = pp.site
  312. <where>
  313. and qd.status = '已完成'
  314. <if test="site != null and site != ''">
  315. and qd.site = #{site}
  316. </if>
  317. <if test="internalInquiryNo != null and internalInquiryNo != ''">
  318. and q.inside_inquiry_no = #{internalInquiryNo}
  319. </if>
  320. <if test="projectNo != null and projectNo != ''">
  321. and q.project_no = #{projectNo}
  322. </if>
  323. <if test="partNo != null and partNo != ''">
  324. and pp.plm_part_no = #{partNo}
  325. </if>
  326. </where>
  327. order by qd.part_no
  328. </select>
  329. <update id="updateShowFlag">
  330. UPDATE plm_quote_detail
  331. SET show_flag = #{showFlag}
  332. WHERE id = #{id}
  333. </update>
  334. <!-- 报价明细查询报表 -->
  335. <select id="queryQuoteDetailReport" resultType="com.spring.modules.quote.vo.QuoteDetailReportVo">
  336. SELECT
  337. q.site,
  338. q.bu_no as buNo,
  339. q.quote_version_no as quoteVersionNo,
  340. q.customer_no as customerNo,
  341. c.customer_desc as customerDesc,
  342. q.project_no as projectNo,
  343. p.project_name as projectDesc,
  344. q.status,
  345. pp.plm_part_no as plmPartNo,
  346. pp.ifs_part_no as ifsPartNo,
  347. pp.part_desc as partDesc,
  348. qd.qty,
  349. qd.adjust_part_cost as adjustPartCost,
  350. qd.adjust_labour_cost as adjustLabourCost,
  351. qd.adjust_machine_cost as adjustMachineCost,
  352. qd.adjust_tool_cost as adjustToolCost,
  353. qd.adjust_test_cost as adjustTestCost,
  354. qd.pack_cost as packCost,
  355. qd.shipping_cost as shippingCost,
  356. qd.adjust_else_cost as adjustElseCost,
  357. qd.total_cost as totalCost,
  358. qd.final_transaction_price as finalTransactionPrice,
  359. qd.quote_profit_rate as quoteProfitRate,
  360. qd.quote_profit_amount as quoteProfitAmount,
  361. qd.quote_tax_rate as quoteTaxRate,
  362. qd.quote_tax_total_price as quoteTaxTotalPrice,
  363. qd.unit_price as unitPrice,
  364. qd.tax_rate as taxRate,
  365. qd.tax_unit_price as taxUnitPrice
  366. FROM plm_quote q
  367. INNER JOIN plm_quote_detail qd ON q.id = qd.quote_id
  368. LEFT JOIN plm_customer_information c ON q.customer_no = c.customer_no
  369. LEFT JOIN plm_project_info p ON q.project_no = p.project_id AND q.site = p.site
  370. LEFT JOIN part pp ON pp.part_no = qd.part_no AND pp.site = qd.site
  371. <where>
  372. <if test="query.site != null and query.site != ''">
  373. AND q.site = #{query.site}
  374. </if>
  375. <if test="query.quoteVersionNo != null and query.quoteVersionNo != ''">
  376. AND q.quote_version_no LIKE #{query.quoteVersionNo}
  377. </if>
  378. <if test="query.customerNo != null and query.customerNo != ''">
  379. AND q.customer_no LIKE #{query.customerNo}
  380. </if>
  381. <if test="query.customerDesc != null and query.customerDesc != ''">
  382. AND c.customer_desc LIKE #{query.customerDesc}
  383. </if>
  384. <if test="query.projectNo != null and query.projectNo != ''">
  385. AND q.project_no LIKE #{query.projectNo}
  386. </if>
  387. <if test="query.projectDesc != null and query.projectDesc != ''">
  388. AND p.project_name LIKE #{query.projectDesc}
  389. </if>
  390. <if test="query.quoter != null and query.quoter != ''">
  391. AND dbo.plm_get_user_display(q.site, q.quoter) LIKE #{query.quoter}
  392. </if>
  393. <if test="query.status != null and query.status != ''">
  394. AND q.status = #{query.status}
  395. </if>
  396. <if test="query.startDate != null and query.startDate != ''">
  397. AND q.quote_date &gt;= #{query.startDate}
  398. </if>
  399. <if test="query.endDate != null and query.endDate != ''">
  400. AND q.quote_date &lt;= #{query.endDate}
  401. </if>
  402. <if test="query.insideInquiryNo != null and query.insideInquiryNo != ''">
  403. AND q.inside_inquiry_no LIKE #{query.insideInquiryNo}
  404. </if>
  405. <if test="query.partNo != null and query.partNo != ''">
  406. AND (pp.part_no LIKE #{query.partNo} OR pp.plm_part_no LIKE #{query.partNo} OR pp.ifs_part_no LIKE #{query.partNo})
  407. </if>
  408. </where>
  409. ORDER BY q.quote_version_no DESC, qd.item_no ASC
  410. </select>
  411. <!-- 报价明细查询报表导出 -->
  412. <select id="queryQuoteDetailReportList" resultType="com.spring.modules.quote.vo.QuoteDetailReportVo">
  413. SELECT
  414. q.site,
  415. q.bu_no as buNo,
  416. q.quote_version_no as quoteVersionNo,
  417. q.customer_no as customerNo,
  418. c.customer_desc as customerDesc,
  419. q.project_no as projectNo,
  420. p.project_name as projectDesc,
  421. q.status,
  422. pp.plm_part_no as plmPartNo,
  423. pp.ifs_part_no as ifsPartNo,
  424. pp.part_desc as partDesc,
  425. qd.qty,
  426. qd.adjust_part_cost as adjustPartCost,
  427. qd.adjust_labour_cost as adjustLabourCost,
  428. qd.adjust_machine_cost as adjustMachineCost,
  429. qd.adjust_tool_cost as adjustToolCost,
  430. qd.adjust_test_cost as adjustTestCost,
  431. qd.pack_cost as packCost,
  432. qd.shipping_cost as shippingCost,
  433. qd.adjust_else_cost as adjustElseCost,
  434. qd.total_cost as totalCost,
  435. qd.final_transaction_price as finalTransactionPrice,
  436. qd.quote_profit_rate as quoteProfitRate,
  437. qd.quote_profit_amount as quoteProfitAmount,
  438. qd.quote_tax_rate as quoteTaxRate,
  439. qd.quote_tax_total_price as quoteTaxTotalPrice,
  440. qd.unit_price as unitPrice,
  441. qd.tax_rate as taxRate,
  442. qd.tax_unit_price as taxUnitPrice
  443. FROM plm_quote q
  444. INNER JOIN plm_quote_detail qd ON q.id = qd.quote_id
  445. LEFT JOIN plm_customer_information c ON q.customer_no = c.customer_no
  446. LEFT JOIN plm_project_info p ON q.project_no = p.project_id AND q.site = p.site
  447. LEFT JOIN part pp ON pp.part_no = qd.part_no AND pp.site = qd.site
  448. <where>
  449. <if test="query.site != null and query.site != ''">
  450. AND q.site = #{query.site}
  451. </if>
  452. <if test="query.quoteVersionNo != null and query.quoteVersionNo != ''">
  453. AND q.quote_version_no LIKE #{query.quoteVersionNo}
  454. </if>
  455. <if test="query.customerNo != null and query.customerNo != ''">
  456. AND q.customer_no LIKE #{query.customerNo}
  457. </if>
  458. <if test="query.customerDesc != null and query.customerDesc != ''">
  459. AND c.customer_desc LIKE #{query.customerDesc}
  460. </if>
  461. <if test="query.projectNo != null and query.projectNo != ''">
  462. AND q.project_no LIKE #{query.projectNo}
  463. </if>
  464. <if test="query.projectDesc != null and query.projectDesc != ''">
  465. AND p.project_name LIKE #{query.projectDesc}
  466. </if>
  467. <if test="query.quoter != null and query.quoter != ''">
  468. AND dbo.plm_get_user_display(q.site, q.quoter) LIKE #{query.quoter}
  469. </if>
  470. <if test="query.status != null and query.status != ''">
  471. AND q.status = #{query.status}
  472. </if>
  473. <if test="query.startDate != null and query.startDate != ''">
  474. AND q.quote_date &gt;= #{query.startDate}
  475. </if>
  476. <if test="query.endDate != null and query.endDate != ''">
  477. AND q.quote_date &lt;= #{query.endDate}
  478. </if>
  479. <if test="query.insideInquiryNo != null and query.insideInquiryNo != ''">
  480. AND q.inside_inquiry_no LIKE #{query.insideInquiryNo}
  481. </if>
  482. <if test="query.partNo != null and query.partNo != ''">
  483. AND (pp.part_no LIKE #{query.partNo} OR pp.plm_part_no LIKE #{query.partNo} OR pp.ifs_part_no LIKE #{query.partNo})
  484. </if>
  485. </where>
  486. ORDER BY q.quote_version_no DESC, qd.item_no ASC
  487. </select>
  488. </mapper>