O
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.

546 lines
24 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years 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.xujie.sys.modules.quote.mapper.QuotationInformationMapper">
  4. <resultMap id="getQuotation" type="com.xujie.sys.modules.quote.entity.vo.QuotationInformationVo">
  5. <result column="site" property="site"/>
  6. <result column="quotation_no" property="quotationNo"/>
  7. <result column="customer_no" property="customerNo"/>
  8. <result column="customerDesc" property="customerDesc"/>
  9. <result column="customerCurrency" property="customerCurrency"/>
  10. <result column="project_id" property="projectId"/>
  11. <result column="project_no" property="projectNo"/>
  12. <result column="project_desc" property="projectDesc"/>
  13. <result column="tracker" property="tracker"/>
  14. <result column="quoter" property="quoter"/>
  15. <result column="quoterName" property="quoterName"/>
  16. <result column="quotation_status" property="quotationStatus"/>
  17. <result column="projectPartId" property="projectPartId"/>
  18. <result column="test_part_no" property="testPartNo"/>
  19. <result column="part_desc" property="partDesc"/>
  20. <result column="priority_level" property="priorityLevel"/>
  21. <result column="required_completion_date" property="requiredCompletionDate"/>
  22. <result column="remark" property="remark"/>
  23. <result column="technical_considerations" property="technicalConsiderations"/>
  24. <result column="customer_responsible_person" property="customerResponsiblePerson"/>
  25. <result column="customer_responsible_person_phone" property="customerResponsiblePersonPhone"/>
  26. <result column="create_date" property="createDate"/>
  27. <result column="create_by" property="createBy"/>
  28. <result column="update_date" property="updateDate"/>
  29. <result column="update_by" property="updateBy"/>
  30. <result column="next_to_do" property="nextToDo"/>
  31. <result column="actuality_quotation_date" property="actualityQuotationDate"/>
  32. <result column="quotation_result_information" property="quotationResultInformation"/>
  33. <result column="actuality_submission_date" property="actualitySubmissionDate"/>
  34. <result column="submission_method" property="submissionMethod"/>
  35. <result column="submission_remark" property="submissionRemark"/>
  36. <result column="actuality_reply_date" property="actualityReplyDate"/>
  37. <result column="confirm_results" property="confirmResults"/>
  38. <result column="confirm_by" property="confirmBy"/>
  39. <result column="confirm_information" property="confirmInformation"/>
  40. <result column="quotation_result_status" property="quotationResultStatus"/>
  41. <result column="quotation_batch_no" property="quotationBatchNo"/>
  42. <result column="quotation_item_no" property="quotationItemNo"/>
  43. <result column="delivery_terms" property="deliveryTerms"/>
  44. <result column="quote_type" property="quoteType"/>
  45. <result column="quoteTypeLabel" property="quoteTypeLabel"/>
  46. <result column="deliveryTermsLabel" property="deliveryTermsLabel"/>
  47. <result column="finalCustomerId" property="finalCustomerId"/>
  48. <result column="sourcing" property="sourcing"/>
  49. <result column="finalCustomerName" property="finalCustomerName"/>
  50. <result column="quotation_amount" property="quotationAmount"/>
  51. <result column="customer_quote_no" property="customerQuoteNo"/>
  52. <result column="is_reject" property="isReject"/>
  53. <result column="node_id" property="nodeId"/>
  54. <result column="node_name" property="nodeName"/>
  55. <!-- <association property="priceCheckDetail" javaType="com.xujie.sys.modules.quote.entity.PriceCheckDetail">-->
  56. <!-- <result column="site" property="site"/>-->
  57. <!-- <result column="quotation_no" property="quotationNo"/>-->
  58. <!-- <result column="associated_part_no" property="associatedPartNo"/>-->
  59. <!-- <result column="material_required" property="materialRequired"/>-->
  60. <!-- <result column="yearly_or_monthly_required" property="yearlyOrMonthlyRequirement"/>-->
  61. <!-- <result column="running_width" property="runningWidth"/>-->
  62. <!-- </association>-->
  63. </resultMap>
  64. <!-- 报价信息列表 -->
  65. <select id="quotationInformationSearch" resultMap="getQuotation" parameterType="com.xujie.sys.modules.quote.entity.vo.QuotationInformationVo">
  66. SELECT
  67. a.site,
  68. a.quotation_no,
  69. a.customer_no,
  70. dbo.plm_get_customer_desc(a.site, a.customer_no) as customerDesc,
  71. dbo.plm_get_customer_currency(a.site, a.customer_no) as customerCurrency,
  72. a.project_id,
  73. b.project_no,
  74. b.project_desc,
  75. b.project_manager,
  76. b.project_owner,
  77. dbo.plm_get_project_final_customer_id(a.project_id) as finalCustomerId,
  78. dbo.plm_get_customer_desc(a.site, dbo.plm_get_project_final_customer_id(a.project_id)) as finalCustomerName,
  79. a.quoter,
  80. dbo.plm_get_user_display(a.site, quoter) as quoterName,
  81. a.quotation_status,
  82. a.test_part_id as projectPartId,
  83. c.test_part_no,
  84. c.part_desc,
  85. a.priority_level,
  86. a.required_completion_date,
  87. a.remark,
  88. a.technical_considerations,
  89. a.customer_responsible_person,
  90. a.customer_responsible_person_phone,
  91. a.create_date,
  92. a.create_by,
  93. a.update_date,
  94. a.update_by,
  95. a.next_to_do,
  96. a.actuality_quotation_date,
  97. a.quotation_result_information,
  98. a.actuality_submission_date,
  99. a.submission_method,
  100. a.submission_remark,
  101. a.actuality_reply_date,
  102. a.confirm_results,
  103. a.confirm_by,
  104. a.confirm_information,
  105. a.quotation_result_status,
  106. a.quotation_batch_no,
  107. a.quotation_item_no,
  108. a.delivery_terms,
  109. a.quote_type,
  110. dbo.plm_get_dictDataLabel('quote_type', a.quote_type, a.site) as quoteTypeLabel,
  111. dbo.plm_get_dictDataLabel('delivery_terms', a.delivery_terms, a.site) as deliveryTermsLabel,
  112. a.quotation_amount,
  113. a.customer_quote_no,
  114. a.sourcing,
  115. a.step_id,
  116. a.reject_flag,
  117. a.reject_step_id
  118. FROM plm_request_for_quotation as a
  119. left join plm_project_info as b on a.project_id = b.id
  120. left join plm_project_part as c on a.test_part_id = c.id
  121. <where>
  122. a.site = #{query.site}
  123. <if test="query.quotationNo != null and query.quotationNo != ''">
  124. AND a.quotation_no = #{query.quotationNo}
  125. </if>
  126. <if test="query.quotationBatchNo != null and query.quotationBatchNo != ''">
  127. AND a.quotation_batch_no like #{query.quotationBatchNo}
  128. </if>
  129. <if test="query.quotationItemNo != null and query.quotationItemNo != ''">
  130. AND a.quotation_item_no = #{query.quotationItemNo}
  131. </if>
  132. <if test="query.customerNo != null and query.customerNo != ''">
  133. AND a.customer_no like #{query.customerNo}
  134. </if>
  135. <if test="query.customerDesc != null and query.customerDesc != ''">
  136. AND dbo.plm_get_customer_desc(a.site, a.customer_no) like #{query.customerDesc}
  137. </if>
  138. <if test="query.projectNo != null and query.projectNo != ''">
  139. AND b.project_no like #{query.projectNo}
  140. </if>
  141. <if test="query.projectDesc != null and query.projectDesc != ''">
  142. AND b.projectDesc like #{query.projectDesc}
  143. </if>
  144. <if test="query.quoterName != null and query.quoterName != ''">
  145. AND dbo.plm_get_user_display(a.site, a.quoter) like #{query.quoterName}
  146. </if>
  147. <if test="query.testPartNo != null and query.testPartNo != ''">
  148. AND test_part_id like #{query.testPartNo}
  149. </if>
  150. <if test="query.partDesc != null and query.partDesc != ''">
  151. AND dbo.plm_get_part_desc(a.test_part_id) like #{query.partDesc}
  152. </if>
  153. <if test="query.quotationStatus != null and query.quotationStatus != ''">
  154. AND a.quotation_status = #{query.quotationStatus}
  155. </if>
  156. <if test="query.priorityLevel != null and query.priorityLevel != ''">
  157. AND a.priority_level = #{query.priorityLevel}
  158. </if>
  159. <if test="query.startDate != null">
  160. AND a.required_completion_date >= #{query.startDate}
  161. </if>
  162. <if test="query.endDate != null">
  163. AND #{query.endDate} >= a.required_completion_date
  164. </if>
  165. <if test="query.quotationResultStatus != null and query.quotationResultStatus != ''">
  166. AND a.quotation_result_status = #{query.quotationResultStatus}
  167. </if>
  168. order by a.quotation_batch_no desc, a.quotation_item_no
  169. </where>
  170. </select>
  171. <!--按照orderRef1查询文件文件参数-->
  172. <select id="getFileContentList" resultType="SysOssEntity" parameterType="SysOssEntity">
  173. SELECT
  174. id,
  175. url,
  176. create_date,
  177. file_name,
  178. new_file_name,
  179. created_by,
  180. order_ref1,
  181. order_ref2,
  182. order_ref3,
  183. file_type,
  184. file_suffix,
  185. file_type_code,
  186. FROM sys_oss
  187. <where>
  188. <if test="orderRef1 != '' and orderRef1 != null ">
  189. and order_ref1 = #{orderRef1}
  190. </if>
  191. <if test="orderRef2 != '' and orderRef2 != null ">
  192. and order_ref2 = #{orderRef2}
  193. </if>
  194. <!-- <if test="orderRef2 != '' and orderRef2 != null ">-->
  195. <!-- and order_ref2 in-->
  196. <!-- <foreach collection="refArr" item="item" open="(" separator="," close=")">-->
  197. <!-- #{item}-->
  198. <!-- </foreach>-->
  199. <!-- </if>-->
  200. <if test="orderRef3 != '' and orderRef3 != null ">
  201. and order_ref3 = #{orderRef3}
  202. </if>
  203. </where>
  204. </select>
  205. <!-- 获得报价单号 -->
  206. <select id="getQuotationNo" resultType="string" parameterType="QuotationInformationEntity">
  207. SELECT
  208. Right('0000000000' + convert(VARCHAR(10), isnull(max(convert(INT, SUBSTRING(quotation_batch_no, 3, 10))), 0) + 1), 8)
  209. FROM plm_request_for_quotation
  210. WHERE site = #{site}
  211. </select>
  212. <!-- 批量删除文件-->
  213. <delete id="batchDeleteQuotationFile" parameterType="com.xujie.sys.modules.quote.entity.vo.SysOssVo">
  214. DELETE FROM sys_oss
  215. <where>
  216. order_ref1 = #{orderRef1} and order_ref2 = #{orderRef2}
  217. <if test = "fileName != null and fileName != ''">
  218. AND file_name = #{fileName}
  219. </if>
  220. </where>
  221. </delete>
  222. <select id="searchQuotationByQuotationNo" resultType="com.xujie.sys.modules.quote.entity.vo.QuotationInformationVo">
  223. SELECT
  224. site,
  225. quotation_no,
  226. customer_no,
  227. dbo.plm_get_customer_desc(site, customer_no) as customerDesc,
  228. dbo.plm_get_customer_currency(site, customer_no) as customerCurrency,
  229. project_id,
  230. dbo.plm_get_project_desc(project_id) as projectDesc,
  231. tracker,
  232. dbo.plm_get_user_display(site, tracker) as trackerName,
  233. quoter,
  234. dbo.plm_get_user_display(site, quoter) as quoterName,
  235. quotation_status,
  236. test_part_id,
  237. dbo.plm_get_part_desc(test_part_id) as partDesc,
  238. priority_level,
  239. required_completion_date,
  240. remark,
  241. technical_considerations,
  242. customer_responsible_person,
  243. customer_responsible_person_phone,
  244. create_date,
  245. create_by,
  246. update_date,
  247. update_by,
  248. next_to_do,
  249. actuality_quotation_date,
  250. quotation_result_information,
  251. actuality_submission_date,
  252. submission_method,
  253. submission_remark,
  254. actuality_reply_date,
  255. confirm_results,
  256. confirm_by,
  257. confirm_information,
  258. quotation_result_status,
  259. quotation_batch_no,
  260. quotation_item_no
  261. FROM plm_request_for_quotation
  262. <where>
  263. site = #{site}
  264. <if test = "quotationNo != null and quotationNo != ''">
  265. AND quotation_no like #{quotationNo}
  266. </if>
  267. </where>
  268. </select>
  269. <select id="searchQuotationByQuotationNoList" resultType="com.xujie.sys.modules.quote.entity.vo.QuotationInformationVo">
  270. SELECT
  271. site,
  272. quotation_no,
  273. customer_no,
  274. dbo.plm_get_customer_desc(site, customer_no) as customerDesc,
  275. dbo.plm_get_customer_currency(site, customer_no) as customerCurrency,
  276. project_id,
  277. dbo.plm_get_project_desc(project_id) as projectDesc,
  278. dbo.plm_get_project_final_customer_id(project_id) as finalCustomerId,
  279. dbo.plm_get_customer_desc(site, dbo.plm_get_project_final_customer_id(project_id)) as finalCustomerName,
  280. tracker,
  281. dbo.plm_get_user_display(site, tracker) as trackerName,
  282. quoter,
  283. dbo.plm_get_user_display(site, quoter) as quoterName,
  284. quotation_status,
  285. test_part_id,
  286. dbo.plm_get_part_desc(test_part_id) as partDesc,
  287. priority_level,
  288. required_completion_date,
  289. remark,
  290. technical_considerations,
  291. customer_responsible_person,
  292. customer_responsible_person_phone,
  293. create_date,
  294. create_by,
  295. update_date,
  296. update_by,
  297. next_to_do,
  298. actuality_quotation_date,
  299. quotation_result_information,
  300. actuality_submission_date,
  301. submission_method,
  302. submission_remark,
  303. actuality_reply_date,
  304. confirm_results,
  305. confirm_by,
  306. confirm_information,
  307. quotation_result_status,
  308. quotation_batch_no,
  309. quotation_item_no,
  310. quotation_amount
  311. FROM plm_request_for_quotation
  312. <where>
  313. site = #{site}
  314. <if test = "quotationNo != null and quotationNo != ''">
  315. AND quotation_no like #{quotationNo}
  316. </if>
  317. <if test = "quotationBatchNo != null and quotationBatchNo != ''">
  318. AND quotation_batch_no like #{quotationBatchNo}
  319. </if>
  320. <if test = "quotationItemNo != null">
  321. AND quotation_item_no = #{quotationItemNo}
  322. </if>
  323. <if test = "testPartNo != null and testPartNo != ''">
  324. AND test_part_id like #{testPartNo}
  325. </if>
  326. <if test = "partDesc != null and partDesc != ''">
  327. AND dbo.plm_get_part_desc(test_part_id) like #{partDesc}
  328. </if>
  329. order by quotation_batch_no desc,quotation_item_no
  330. </where>
  331. </select>
  332. <resultMap id="getTestPropertiesVo" type="com.xujie.sys.modules.quote.entity.vo.PriceCheckPropertiesVo">
  333. <result column="site" property="site"/>
  334. <result column="quotation_no" property="quotationNo"/>
  335. <result column="function_type" property="functionType"/>
  336. <result column="item_no" property="itemNo"/>
  337. <result column="seq_no" property="seqNo"/>
  338. <result column="item_desc" property="itemDesc"/>
  339. <result column="default_value" property="defaultValue"/>
  340. <result column="value_type" property="valueType"/>
  341. <result column="value_type_db" property="valueTypeDb"/>
  342. <result column="value_choose_flag" property="valueChooseFlag"/>
  343. <result column="max_value" property="maxValue"/>
  344. <result column="min_value" property="minValue"/>
  345. <result column="text_value" property="textValue"/>
  346. <result column="num_value" property="numValue"/>
  347. <!-- <collection select="com.spring.modules.test.mapper.TestInformationMapper.selectAvailBleValue" column="{site=site,itemNo=item_no,functionType=function_type}" property="list" ofType="com.xujie.sys.modules.part.entity.PlmPropertiesItemAvailable">-->
  348. <!-- </collection>-->
  349. </resultMap>
  350. <select id="searchPriceCheckPropertiesVo" resultMap="getTestPropertiesVo">
  351. SELECT
  352. a.site,
  353. a.function_type,
  354. a.item_no,
  355. a.seq_no,
  356. a.item_desc,
  357. a.default_value,
  358. a.value_type,
  359. a.value_type_db,
  360. a.value_choose_flag,
  361. a.max_value,
  362. a.min_value,
  363. a.text_value,
  364. a.num_value,
  365. a.quotation_no
  366. FROM plm_price_check_properties a
  367. left join plm_properties_model_detail b on a.site = b.site and a.function_type = b.function_type and b.code_no = 'XJ001' and a.item_no = b.properties_item_no
  368. where quotation_no = #{quotationNo} and a.site = #{site} order by b.order_id
  369. </select>
  370. <select id="searchPriceCheckProperties" resultType="com.xujie.sys.modules.quote.entity.PriceCheckProperties">
  371. SELECT
  372. a.site,
  373. a.function_type,
  374. a.properties_item_no as itemNo,
  375. a.seq_no,
  376. b.item_desc,
  377. b.default_value,
  378. b.value_type,
  379. b.value_type_db,
  380. b.value_choose_flag,
  381. b.max_value,
  382. b.min_value
  383. FROM plm_properties_model_detail a
  384. left join plm_properties_item b on a.function_type = b.item_type and a.properties_item_no = b.item_no and a.site = b.site
  385. where a.function_type = #{type} and a.code_no = #{code} and a.site = #{site}
  386. order by a.order_id
  387. </select>
  388. <select id="searchPriceCheckPropertiesItemList"
  389. resultType="com.xujie.sys.modules.quote.entity.PriceCheckProperties">
  390. select
  391. site,
  392. item_type as functionType,
  393. item_no,
  394. item_desc,
  395. default_value,
  396. value_type,
  397. value_type_db,
  398. value_choose_flag,
  399. max_value,
  400. min_value
  401. from plm_properties_item where item_type = #{type} and site = #{site}
  402. <if test="itemNo != null and itemNo != ''">
  403. AND item_no = #{itemNo}
  404. </if>
  405. <if test="itemDesc != null and itemDesc != ''">
  406. AND item_desc like #{itemDesc}
  407. </if>
  408. <if test="list != null and list.size() != 0">
  409. and item_no not in (
  410. <foreach collection="list" item="item" separator=",">
  411. #{item}
  412. </foreach>
  413. )
  414. </if>
  415. </select>
  416. <select id="getProjectIdByNo" resultType="integer">
  417. select id as projectId from plm_project_info where project_no = #{projectNo} and site = #{site}
  418. </select>
  419. <select id="getQuoterByName" resultType="java.lang.String">
  420. select username from CKT_MES_II_REAL.dbo.sys_user where user_display = #{userDisplay} and site = #{site}
  421. </select>
  422. <select id="getProjectPartIdByNo" resultType="java.lang.Integer">
  423. select id as projectPartId from plm_project_part where test_part_no = #{testPartNo} and site = #{site} and project_id = #{projectId}
  424. </select>
  425. <select id="queryQuotationInformationByPage"
  426. resultType="com.xujie.sys.modules.quote.entity.vo.QuotationInformationVo">
  427. SELECT
  428. a.site,
  429. a.quotation_no,
  430. a.customer_no,
  431. dbo.plm_get_customer_desc(a.site, a.customer_no) as customerDesc,
  432. dbo.plm_get_customer_currency(a.site, a.customer_no) as customerCurrency,
  433. a.project_id,
  434. b.project_no,
  435. b.project_desc,
  436. b.project_manager,
  437. b.project_owner,
  438. dbo.plm_get_project_final_customer_id(a.project_id) as finalCustomerId,
  439. dbo.plm_get_customer_desc(a.site,
  440. dbo.plm_get_project_final_customer_id(a.project_id)) as finalCustomerName,
  441. a.quoter,
  442. dbo.plm_get_user_display(a.site, quoter) as quoterName,
  443. a.quotation_status,
  444. a.test_part_id as projectPartId,
  445. c.test_part_no,
  446. c.part_desc,
  447. a.priority_level,
  448. a.required_completion_date,
  449. a.remark,
  450. a.technical_considerations,
  451. a.customer_responsible_person,
  452. a.customer_responsible_person_phone,
  453. a.create_date,
  454. a.create_by,
  455. a.update_date,
  456. a.update_by,
  457. a.next_to_do,
  458. a.actuality_quotation_date,
  459. a.quotation_result_information,
  460. a.actuality_submission_date,
  461. a.submission_method,
  462. a.submission_remark,
  463. a.actuality_reply_date,
  464. a.confirm_results,
  465. a.confirm_by,
  466. a.confirm_information,
  467. a.quotation_result_status,
  468. a.quotation_batch_no,
  469. a.quotation_item_no,
  470. a.delivery_terms,
  471. a.quote_type,
  472. dbo.plm_get_dictDataLabel('quote_type', a.quote_type, a.site) as quoteTypeLabel,
  473. dbo.plm_get_dictDataLabel('delivery_terms', a.delivery_terms, a.site) as deliveryTermsLabel,
  474. a.quotation_amount,
  475. a.customer_quote_no,
  476. a.sourcing,
  477. a.step_id,
  478. a.reject_flag,
  479. a.reject_step_id,
  480. bu.id as buId
  481. FROM plm_request_for_quotation as a
  482. left join plm_project_info as b on a.project_id = b.id
  483. left join plm_project_part as c on a.test_part_id = c.id
  484. left join BU as bu on b.site = bu.site and b.bu_no = bu.bu_no
  485. <where>
  486. a.site in (select site from eam_access_site where username = #{params.createBy})
  487. <if test="params.quotationNo != null and params.quotationNo != ''">
  488. AND a.quotation_no = #{params.quotationNo}
  489. </if>
  490. <if test="params.quotationBatchNo != null and params.quotationBatchNo != ''">
  491. AND a.quotation_batch_no like #{params.quotationBatchNo}
  492. </if>
  493. <if test="params.quotationItemNo != null and params.quotationItemNo != ''">
  494. AND a.quotation_item_no = #{params.quotationItemNo}
  495. </if>
  496. <if test="params.customerNo != null and params.customerNo != ''">
  497. AND a.customer_no like #{params.customerNo}
  498. </if>
  499. <if test="params.customerDesc != null and params.customerDesc != ''">
  500. AND dbo.plm_get_customer_desc(a.site, a.customer_no) like #{params.customerDesc}
  501. </if>
  502. <if test="params.projectNo != null and params.projectNo != ''">
  503. AND b.project_no like #{params.projectNo}
  504. </if>
  505. <if test="params.projectDesc != null and params.projectDesc != ''">
  506. AND b.project_desc like #{params.projectDesc}
  507. </if>
  508. <if test="params.quoterName != null and params.quoterName != ''">
  509. AND dbo.plm_get_user_display(a.site, a.quoter) like #{params.quoterName}
  510. </if>
  511. <if test="params.testPartNo != null and params.testPartNo != ''">
  512. AND test_part_id like #{params.testPartNo}
  513. </if>
  514. <if test="params.partDesc != null and params.partDesc != ''">
  515. AND dbo.plm_get_part_desc(a.test_part_id) like #{params.partDesc}
  516. </if>
  517. <if test="params.quotationStatus != null and params.quotationStatus != ''">
  518. AND a.quotation_status = #{params.quotationStatus}
  519. </if>
  520. <if test="params.priorityLevel != null and params.priorityLevel != ''">
  521. AND a.priority_level = #{params.priorityLevel}
  522. </if>
  523. <if test="params.startDate != null">
  524. AND a.required_completion_date >= #{params.startDate}
  525. </if>
  526. <if test="params.endDate != null">
  527. AND #{params.endDate} >= a.required_completion_date
  528. </if>
  529. <if test="params.quotationResultStatus != null and params.quotationResultStatus != ''">
  530. AND a.quotation_result_status = #{params.quotationResultStatus}
  531. </if>
  532. order by a.quotation_batch_no desc, a.quotation_item_no
  533. </where>
  534. </select>
  535. </mapper>