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.

479 lines
20 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months 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.modules.srm.mapper.SrmSupplierMapper">
  4. <!-- 基础字段映射 -->
  5. <sql id="Base_Column_List">
  6. id,site,supplier_no,supplier_name,supplier_group,create_date,create_by,update_date,update_by,supplier_doc_type,
  7. TaxCode,tax,FaxNo,PhoneNo,PhoneNo2,PhoneNo3,Contact,Address,PaymentTerm,DeliveryTerm,Buyer,Sourcing_staff,
  8. Currency,ABC,Active,BankName,BankAccount,TaxNo,Email,Email2,Other_contact1,Other_contact2,Other_contact3,Memo
  9. </sql>
  10. <select id="searchSrmSupplierList" resultType="SrmSupplierData">
  11. SELECT
  12. s.id,s.site,s.supplier_no,s.supplier_name,s.supplier_group,sg.GroupDesc AS groupDesc,s.supplier_doc_type,
  13. s.create_date,s.create_by,s.update_date,s.update_by,s.Buyer,s.Sourcing_staff AS sourcingStaff,s.PhoneNo,
  14. s.PhoneNo2,s.PhoneNo3,s.FaxNo,s.Contact,s.Address,s.Email,s.Email2,
  15. s.PaymentTerm,pt.PaymentTerm AS paymentTermDesc,
  16. s.DeliveryTerm,dt.DeliveryTerm AS deliveryTermDesc,
  17. s.Currency,c.CurrencyDesc AS currencyDesc,
  18. s.TaxCode,t.TaxDesc AS taxDesc,s.tax AS taxRate,
  19. s.ABC,s.Active,s.BankName,s.BankAccount,s.TaxNo,
  20. s.Other_contact1,s.Other_contact2,s.Other_contact3,
  21. s.Memo
  22. FROM srm_supplier s LEFT JOIN SupplierGroup sg ON sg.supplier_group = s.supplier_group
  23. AND sg.Site = s.site LEFT JOIN Currency c ON c.Currency = s.Currency
  24. AND c.Site = s.site LEFT JOIN Tax t ON t.TaxCode = s.TaxCode
  25. AND t.Site = s.site
  26. LEFT JOIN DeliveryTerm dt
  27. ON dt.DeliveryTermID = s.DeliveryTerm
  28. AND dt.Site = s.site
  29. LEFT JOIN PaymentTerm pt
  30. ON pt.PaymentTermID = s.PaymentTerm
  31. AND pt.Site = s.site
  32. <where>
  33. <if test="query.site != null and query.site != ''">
  34. AND s.site = #{query.site}
  35. </if>
  36. <if test="query.supplierNo != null and query.supplierNo != ''">
  37. AND s.supplier_no LIKE '%' + #{query.supplierNo} + '%'
  38. </if>
  39. <if test="query.supplierName != null and query.supplierName != ''">
  40. AND s.supplier_name LIKE '%' + #{query.supplierName} + '%'
  41. </if>
  42. <if test="query.supplierGroup != null and query.supplierGroup != ''">
  43. AND s.supplier_group = #{query.supplierGroup}
  44. </if>
  45. <if test="query.active != null and query.active != ''">
  46. AND s.Active = #{query.active}
  47. </if>
  48. </where>
  49. ORDER BY s.create_date DESC
  50. </select>
  51. <select id="checkSrmSupplierList" resultType="SrmSupplierData">
  52. SELECT
  53. id,site,supplier_no,supplier_name,supplier_group,create_date,create_by,update_date,update_by,supplier_doc_type,
  54. TaxCode,tax,FaxNo,PhoneNo,PhoneNo2,PhoneNo3,Contact,Address,PaymentTerm,DeliveryTerm,Buyer,Sourcing_staff,
  55. Currency,ABC,Active,BankName,BankAccount,TaxNo,Email,Email2,Other_contact1,Other_contact2,Other_contact3,Memo
  56. FROM srm_supplier
  57. <where>
  58. <if test="site != null and site != ''">
  59. AND site=#{site}
  60. </if>
  61. <if test = "supplierNo != null and supplierNo != ''">
  62. AND supplier_no = #{supplierNo}
  63. </if>
  64. </where>
  65. </select>
  66. <update id="updateTransNo" >
  67. EXEC UpdateTransNo #{site}, #{transType}
  68. </update>
  69. <select id="getTransNo" resultType="String">
  70. SELECT
  71. dbo.Get_TransNo(#{site},#{transType}) as transNo
  72. </select>
  73. <select id="searchSupplierGroupRequestList" resultType="SrmSupplierGroupRequsetData">
  74. select a.id,a.site,a.request_no,a.request_date,a.supplier_no,a.old_supplier_group,a.new_supplier_group,a.reason,a.[status],
  75. a.create_by,a.update_date,a.update_by,dbo.plm_get_user_display(a.site,a.create_by) requestBy
  76. from srm_supplierGroupRequset a
  77. <where>
  78. <if test="site !=null and site !=''">
  79. and a.site =#{site}
  80. </if>
  81. <if test="requestNo !=null and requestNo !=''">
  82. and a.request_no like '%' + #{requestNo} + '%'
  83. </if>
  84. <if test="supplierNo !=null and supplierNo !=''">
  85. and a.supplier_no like '%' + #{supplierNo} + '%'
  86. </if>
  87. <if test="status !=null and status !=''">
  88. and a.status like '%' + #{status} + '%'
  89. </if>
  90. </where>
  91. order by a.create_date desc
  92. </select>
  93. <select id="getSupplierGroupRequestList" resultType="SrmSupplierGroupRequsetData">
  94. SELECT
  95. a.id,a.site,a.request_no,a.request_date,a.supplier_no,a.old_supplier_group,a.new_supplier_group,a.reason,a.[status],
  96. a.create_date,a.create_by,a.update_date,a.update_by,dbo.plm_get_user_display(a.site,a.create_by) requestBy,b.supplier_name
  97. FROM srm_supplierGroupRequset a
  98. left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
  99. <where>
  100. <if test="query.site != null and query.site != ''">
  101. AND a.site=#{query.site}
  102. </if>
  103. <if test="query.startDate != null ">
  104. AND a.request_date >= #{query.startDate}
  105. </if>
  106. <if test="query.endDate != null ">
  107. AND #{query.endDate} >=a.request_date
  108. </if>
  109. <if test = "query.requestNo != null and query.requestNo != ''">
  110. AND a.request_no like '%' + #{query.requestNo} + '%'
  111. </if>
  112. <if test = "query.supplierNo != null and query.supplierNo != ''">
  113. AND a.supplier_no like '%' + #{query.supplierNo} + '%'
  114. </if>
  115. <if test = "query.supplierName != null and query.supplierName != ''">
  116. AND b.supplier_name like '%' + #{query.supplierName} + '%'
  117. </if>
  118. <if test = "query.status != null and query.status != ''">
  119. AND a.status like '%' + #{query.status} + '%'
  120. </if>
  121. <if test = "query.requestBy != null and query.requestBy != ''">
  122. AND dbo.plm_get_user_display(a.site,a.create_by) like '%' + #{query.requestBy} + '%'
  123. </if>
  124. </where>
  125. order by a.request_date desc
  126. </select>
  127. <!-- 新增:用于MyBatis Plus内置分页的查询方法(无ORDER BY,避免SQL Server分页问题) -->
  128. <select id="queryPage" resultType="SrmSupplierGroupRequsetData">
  129. SELECT
  130. a.id,a.site,a.request_no,a.request_date,a.supplier_no,a.old_supplier_group,a.new_supplier_group,a.reason,a.[status],
  131. a.create_date,a.create_by,a.update_date,a.update_by,dbo.plm_get_user_display(a.site,a.create_by) requestBy,b.supplier_name
  132. FROM srm_supplierGroupRequset a
  133. left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
  134. <where>
  135. <if test="query.site != null and query.site != ''">
  136. AND a.site=#{query.site}
  137. </if>
  138. <if test="query.startDate != null ">
  139. AND a.request_date >= #{query.startDate}
  140. </if>
  141. <if test="query.endDate != null ">
  142. AND #{query.endDate} >=a.request_date
  143. </if>
  144. <if test = "query.requestNo != null and query.requestNo != ''">
  145. AND a.request_no like '%' + #{query.requestNo} + '%'
  146. </if>
  147. <if test = "query.supplierNo != null and query.supplierNo != ''">
  148. AND a.supplier_no like '%' + #{query.supplierNo} + '%'
  149. </if>
  150. <if test = "query.supplierName != null and query.supplierName != ''">
  151. AND b.supplier_name like '%' + #{query.supplierName} + '%'
  152. </if>
  153. <if test = "query.status != null and query.status != ''">
  154. AND a.status like '%' + #{query.status} + '%'
  155. </if>
  156. <if test = "query.requestBy != null and query.requestBy != ''">
  157. AND dbo.plm_get_user_display(a.site,a.create_by) like '%' + #{query.requestBy} + '%'
  158. </if>
  159. </where>
  160. </select>
  161. <insert id="saveSrmSupplierGroupRequsetData" >
  162. insert into srm_supplierGroupRequset(site,request_no,request_date,supplier_no,old_supplier_group,new_supplier_group,reason,[status],create_date,create_by)
  163. values(#{site},#{requestNo},#{requestDate},#{supplierNo},#{oldSupplierGroup},#{newSupplierGroup},#{reason},#{status},GetDate(),#{createBy})
  164. </insert>
  165. <update id="confirmRequest">
  166. update srm_supplierGroupRequset set update_by=#{updateBy},update_date=GetDate(),status=#{status}
  167. where id=#{id,jdbcType=INTEGER}
  168. </update>
  169. <update id="updateSupplierGroup">
  170. update srm_supplier set supplier_group=#{newSupplierGroup} where site=#{site} and supplier_no=#{supplierNo}
  171. </update>
  172. <select id="getNewSupplierContract" resultType="SrmSupplierContractData">
  173. select a.id,a.site,a.contractId,a.supplierNo,a.contractDate,a.validTo,a.amout,a.currency,a.contractNo,a.contractName,a.contractDetail,
  174. a.create_by,a.create_date,a.update_by,a.update_date,b.supplier_name,a.needRenew
  175. from srm_supplierContract a left join srm_supplier b on a.supplierNo=b.supplier_no
  176. <where>
  177. <if test="site != null and site != ''">
  178. AND a.site=#{site}
  179. </if>
  180. <if test = "supplierNo != null and supplierNo != ''">
  181. AND a.supplierNo = #{supplierNo}
  182. </if>
  183. <if test = "contractId != null and contractId != ''">
  184. AND a.contractId = #{contractId}
  185. </if>
  186. </where>
  187. order by a.contractDate desc
  188. </select>
  189. <insert id="createNewSupplierContract">
  190. insert into srm_supplierContract (site,contractId,supplierNo,contractDate,validTo,amout,currency,contractNo,
  191. contractName,contractDetail,create_by,create_date,needRenew) values
  192. (#{site},#{contractId},#{supplierNo},#{contractDate},#{validTo},#{amout},#{currency},#{contractNo},
  193. #{contractName},#{contractDetail},#{createBy},GETDATE(),#{needRenew})
  194. </insert>
  195. <update id="updateSupplierContract">
  196. update srm_supplierContract set contractDate=#{contractDate},validTo=#{validTo},amout=#{amout},currency=#{currency},contractNo=#{contractNo},
  197. contractName=#{contractName},contractDetail=#{contractDetail},update_date=GETDATE(),update_by=#{updateBy}
  198. where id=#{id}
  199. </update>
  200. <delete id="deleteSupplierContract">
  201. delete from srm_supplierContract where id=#{id}
  202. </delete>
  203. <insert id="saveSrmContractRequset">
  204. insert into srm_contractRequset(site,request_no,request_date,supplier_no,contractId,
  205. [status],create_date,create_by)
  206. values(#{site},#{requestNo},#{requestDate},#{supplierNo},#{contractId},
  207. #{status},GetDate(),#{createBy})
  208. </insert>
  209. <select id="getContractRequestList" resultType="SrmContractRequsetData">
  210. select a.id,a.site,a.request_no,a.request_date,a.supplier_no,a.contractId,a.[status],a.create_date,a.create_by,a.update_date,
  211. a.update_by ,b.supplier_name,c.contractNo,c.contractName,c.contractDetail
  212. from srm_contractRequset a
  213. left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
  214. left join srm_supplierContract c on a.site=c.site and a.contractId=c.contractId
  215. <where>
  216. <if test="query.site != null and query.site != ''">
  217. AND a.site=#{query.site}
  218. </if>
  219. <if test="query.startDate != null ">
  220. AND a.request_date >= #{query.startDate}
  221. </if>
  222. <if test="query.endDate != null ">
  223. AND #{query.endDate} >=a.request_date
  224. </if>
  225. <if test = "query.requestNo != null and query.requestNo != ''">
  226. AND a.request_no like '%' + #{query.requestNo} + '%'
  227. </if>
  228. <if test = "query.supplierNo != null and query.supplierNo != ''">
  229. AND a.supplier_no like '%' + #{query.supplierNo} + '%'
  230. </if>
  231. <if test = "query.supplierName != null and query.supplierName != ''">
  232. AND b.supplier_name like '%' + #{query.supplierName} + '%'
  233. </if>
  234. <if test = "query.status != null and query.status != ''">
  235. AND a.status like '%' + #{query.status} + '%'
  236. </if>
  237. </where>
  238. </select>
  239. <update id="updateContractRequestStatus">
  240. update srm_contractRequset set status=#{status} where site=#{site} and contractId=#{contractId}
  241. </update>
  242. <update id="updateContractRequestStatusForRequestNo">
  243. update srm_contractRequset set status=#{status} where site=#{site} and request_no=#{requestNo}
  244. </update>
  245. <update id="updateContractRenewFlag">
  246. update srm_supplierContract set needRenew=#{needRenew} where site=#{site} and contractId=#{contractId}
  247. </update>
  248. <!-- 新增供应商 -->
  249. <insert id="insertSrmSupplier" parameterType="com.xujie.modules.srm.entity.SrmSupplier">
  250. INSERT INTO srm_supplier (
  251. site,
  252. supplier_no,
  253. supplier_name,
  254. supplier_group,
  255. create_date,
  256. create_by,
  257. update_date,
  258. update_by,
  259. supplier_doc_type,
  260. TaxCode,
  261. tax,
  262. FaxNo,
  263. PhoneNo,
  264. PhoneNo2,
  265. PhoneNo3,
  266. Contact,
  267. Address,
  268. PaymentTerm,
  269. DeliveryTerm,
  270. Buyer,
  271. Sourcing_staff,
  272. Currency,
  273. ABC,
  274. Active,
  275. BankName,
  276. BankAccount,
  277. TaxNo,
  278. Email,
  279. Email2,
  280. Other_contact1,
  281. Other_contact2,
  282. Other_contact3,
  283. Memo
  284. ) VALUES (
  285. #{site},
  286. #{supplierNo},
  287. #{supplierName},
  288. #{supplierGroup},
  289. #{createDate},
  290. #{createBy},
  291. #{updateDate},
  292. #{updateBy},
  293. #{supplierDocType},
  294. #{taxCode},
  295. #{tax},
  296. #{faxNo},
  297. #{phoneNo},
  298. #{phoneNo2},
  299. #{phoneNo3},
  300. #{contact},
  301. #{address},
  302. #{paymentTerm},
  303. #{deliveryTerm},
  304. #{buyer},
  305. #{sourcingstaff},
  306. #{currency},
  307. #{abc},
  308. #{active},
  309. #{bankName},
  310. #{bankAccount},
  311. #{taxNo},
  312. #{email},
  313. #{email2},
  314. #{otherContact1},
  315. #{otherContact2},
  316. #{otherContact3},
  317. #{memo}
  318. )
  319. </insert>
  320. <!-- 更新供应商 -->
  321. <update id="updateSrmSupplier" parameterType="com.xujie.modules.srm.entity.SrmSupplier">
  322. UPDATE srm_supplier
  323. <set>
  324. <if test="site != null and site != ''">
  325. site = #{site},
  326. </if>
  327. <if test="supplierNo != null and supplierNo != ''">
  328. supplier_no = #{supplierNo},
  329. </if>
  330. <if test="supplierName != null and supplierName != ''">
  331. supplier_name = #{supplierName},
  332. </if>
  333. <if test="supplierGroup != null and supplierGroup != ''">
  334. supplier_group = #{supplierGroup},
  335. </if>
  336. <if test="createDate != null">
  337. create_date = #{createDate},
  338. </if>
  339. <if test="createBy != null and createBy != ''">
  340. create_by = #{createBy},
  341. </if>
  342. <if test="updateDate != null">
  343. update_date = #{updateDate},
  344. </if>
  345. <if test="updateBy != null and updateBy != ''">
  346. update_by = #{updateBy},
  347. </if>
  348. <if test="supplierDocType != null and supplierDocType != ''">
  349. supplier_doc_type = #{supplierDocType},
  350. </if>
  351. <if test="taxCode != null and taxCode != ''">
  352. TaxCode = #{taxCode},
  353. </if>
  354. <if test="tax != null and tax != ''">
  355. tax = #{tax},
  356. </if>
  357. <if test="faxNo != null and faxNo != ''">
  358. FaxNo = #{faxNo},
  359. </if>
  360. <if test="phoneNo != null and phoneNo != ''">
  361. PhoneNo = #{phoneNo},
  362. </if>
  363. <if test="phoneNo2 != null and phoneNo2 != ''">
  364. PhoneNo2 = #{phoneNo2},
  365. </if>
  366. <if test="phoneNo3 != null and phoneNo3 != ''">
  367. PhoneNo3 = #{phoneNo3},
  368. </if>
  369. <if test="contact != null and contact != ''">
  370. Contact = #{contact},
  371. </if>
  372. <if test="address != null and address != ''">
  373. Address = #{address},
  374. </if>
  375. <if test="paymentTerm != null and paymentTerm != ''">
  376. PaymentTerm = #{paymentTerm},
  377. </if>
  378. <if test="deliveryTerm != null and deliveryTerm != ''">
  379. DeliveryTerm = #{deliveryTerm},
  380. </if>
  381. <if test="buyer != null and buyer != ''">
  382. Buyer = #{buyer},
  383. </if>
  384. <if test="sourcingstaff != null and sourcingstaff != ''">
  385. Sourcingstaff = #{sourcingstaff},
  386. </if>
  387. <if test="currency != null and currency != ''">
  388. Currency = #{currency},
  389. </if>
  390. <if test="abc != null and abc != ''">
  391. ABC = #{abc},
  392. </if>
  393. <if test="active != null and active != ''">
  394. Active = #{active},
  395. </if>
  396. <if test="bankName != null and bankName != ''">
  397. BankName = #{bankName},
  398. </if>
  399. <if test="bankAccount != null and bankAccount != ''">
  400. BankAccount = #{bankAccount},
  401. </if>
  402. <if test="taxNo != null and taxNo != ''">
  403. TaxNo = #{taxNo},
  404. </if>
  405. <if test="email != null and email != ''">
  406. Email = #{email},
  407. </if>
  408. <if test="email2 != null and email2 != ''">
  409. Email2 = #{email2},
  410. </if>
  411. <if test="otherContact1 != null and otherContact1 != ''">
  412. OtherContact1 = #{otherContact1},
  413. </if>
  414. <if test="otherContact2 != null and otherContact2 != ''">
  415. OtherContact2 = #{otherContact2},
  416. </if>
  417. <if test="otherContact3 != null and otherContact3 != ''">
  418. OtherContact3 = #{otherContact3},
  419. </if>
  420. <if test="memo != null and memo != ''">
  421. Memo = #{memo}
  422. </if>
  423. </set>
  424. WHERE id = #{id}
  425. </update>
  426. <!-- 根据ID查询供应商 -->
  427. <select id="selectSrmSupplierById" parameterType="java.lang.Integer" resultType="com.xujie.modules.srm.entity.SrmSupplier">
  428. SELECT <include refid="Base_Column_List" /> FROM srm_supplier WHERE id = #{id}
  429. </select>
  430. <!-- 检查供应商是否存在 -->
  431. <select id="checkSupplierExists" parameterType="com.xujie.modules.srm.entity.SrmSupplier" resultType="java.lang.Integer">
  432. SELECT COUNT(1) FROM srm_supplier WHERE 1=1
  433. <if test="site != null and site != ''">
  434. AND site = #{site}
  435. </if>
  436. <if test="supplierNo != null and supplierNo != ''">
  437. AND supplier_no = #{supplierNo}
  438. </if>
  439. <if test="supplierName != null and supplierName != ''">
  440. AND supplier_name = #{supplierName}
  441. </if>
  442. <if test="taxCode != null and taxCode != ''">
  443. AND TaxCode = #{taxCode}
  444. </if>
  445. </select>
  446. <!-- 根据ID删除供应商 -->
  447. <delete id="deleteSrmSupplierById" parameterType="java.lang.Integer">
  448. DELETE FROM srm_supplier WHERE id = #{id}
  449. </delete>
  450. <!-- 根据ID检查供应商是否存在 -->
  451. <select id="existsById" parameterType="java.lang.Integer" resultType="java.lang.Integer">
  452. SELECT COUNT(1) FROM srm_supplier WHERE id = #{id}
  453. </select>
  454. </mapper>