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.

458 lines
19 KiB

2 months ago
2 months ago
2 months ago
2 months ago
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,SourcingStaff,
  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.SourcingStaff 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, s.TaxCode,t.TaxDesc AS taxDesc,s.tax AS taxRate,
  18. s.ABC,s.Active,s.BankName,s.BankAccount,s.TaxNo,
  19. s.Other_contact1,s.Other_contact2,s.Other_contact3,
  20. s.Memo
  21. FROM srm_supplier s LEFT JOIN SupplierGroup sg ON sg.supplier_group = s.supplier_group
  22. AND sg.Site = s.site LEFT JOIN Currency c ON c.Currency = s.Currency
  23. AND c.Site = s.site LEFT JOIN Tax t ON t.TaxCode = s.TaxCode
  24. AND t.Site = s.site
  25. LEFT JOIN DeliveryTerm dt
  26. ON dt.DeliveryTermID = s.DeliveryTerm
  27. AND dt.Site = s.site
  28. LEFT JOIN PaymentTerm pt
  29. ON pt.PaymentTermID = s.PaymentTerm
  30. AND pt.Site = s.site
  31. <where>
  32. <if test="query.site != null and query.site != ''">
  33. AND s.site = #{query.site}
  34. </if>
  35. <if test="query.supplierNo != null and query.supplierNo != ''">
  36. AND s.supplier_no LIKE '%' + #{query.supplierNo} + '%'
  37. </if>
  38. <if test="query.supplierName != null and query.supplierName != ''">
  39. AND s.supplier_name LIKE '%' + #{query.supplierName} + '%'
  40. </if>
  41. <if test="query.supplierGroup != null and query.supplierGroup != ''">
  42. AND s.supplier_group = #{query.supplierGroup}
  43. </if>
  44. <if test="query.active != null and query.active != ''">
  45. AND s.Active = #{query.active}
  46. </if>
  47. </where>
  48. ORDER BY id
  49. </select>
  50. <select id="checkSrmSupplierList" resultType="SrmSupplierData">
  51. SELECT
  52. id,site,supplier_no,supplier_name,supplier_group,create_date,create_by,update_date,update_by,supplier_doc_type,
  53. TaxCode,tax,FaxNo,PhoneNo,PhoneNo2,PhoneNo3,Contact,Address,PaymentTerm,DeliveryTerm,Buyer,SourcingStaff,
  54. Currency,ABC,Active,BankName,BankAccount,TaxNo,Email,Email2,Other_contact1,Other_contact2,Other_contact3,Memo
  55. FROM srm_supplier
  56. <where>
  57. <if test="site != null and site != ''">
  58. AND site=#{site}
  59. </if>
  60. <if test = "supplierNo != null and supplierNo != ''">
  61. AND supplier_no = #{supplierNo}
  62. </if>
  63. </where>
  64. </select>
  65. <update id="updateTransNo" >
  66. EXEC UpdateTransNo #{site}, #{transType}
  67. </update>
  68. <select id="getTransNo" resultType="String">
  69. SELECT
  70. dbo.Get_TransNo(#{site},#{transType}) as transNo
  71. </select>
  72. <select id="searchSupplierGroupRequestList" resultType="SrmSupplierGroupRequsetData">
  73. 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],
  74. a.create_by,a.update_date,a.update_by,dbo.plm_get_user_display(a.site,a.create_by) requestBy
  75. from srm_supplierGroupRequset a
  76. <where>
  77. <if test="site !=null and site !=''">
  78. and a.site =#{site}
  79. </if>
  80. <if test="requestNo !=null and requestNo !=''">
  81. and a.request_no like '%' + #{requestNo} + '%'
  82. </if>
  83. <if test="supplierNo !=null and supplierNo !=''">
  84. and a.supplier_no like '%' + #{supplierNo} + '%'
  85. </if>
  86. <if test="status !=null and status !=''">
  87. and a.status like '%' + #{status} + '%'
  88. </if>
  89. </where>
  90. order by a.create_date desc
  91. </select>
  92. <select id="getSupplierGroupRequestList" resultType="SrmSupplierGroupRequsetData">
  93. SELECT
  94. 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],
  95. 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
  96. FROM srm_supplierGroupRequset a
  97. left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
  98. <where>
  99. <if test="query.site != null and query.site != ''">
  100. AND a.site=#{query.site}
  101. </if>
  102. <if test="query.startDate != null ">
  103. AND a.request_date >= #{query.startDate}
  104. </if>
  105. <if test="query.endDate != null ">
  106. AND #{query.endDate} >=a.request_date
  107. </if>
  108. <if test = "query.requestNo != null and query.requestNo != ''">
  109. AND a.request_no like '%' + #{query.requestNo} + '%'
  110. </if>
  111. <if test = "query.supplierNo != null and query.supplierNo != ''">
  112. AND a.supplier_no like '%' + #{query.supplierNo} + '%'
  113. </if>
  114. <if test = "query.supplierName != null and query.supplierName != ''">
  115. AND b.supplier_name like '%' + #{query.supplierName} + '%'
  116. </if>
  117. <if test = "query.status != null and query.status != ''">
  118. AND a.status like '%' + #{query.status} + '%'
  119. </if>
  120. <if test = "query.requestBy != null and query.requestBy != ''">
  121. AND dbo.plm_get_user_display(a.site,a.create_by) like '%' + #{query.requestBy} + '%'
  122. </if>
  123. </where>
  124. </select>
  125. <!-- 新增:用于MyBatis Plus内置分页的查询方法(无ORDER BY,避免SQL Server分页问题) -->
  126. <select id="queryPage" resultType="SrmSupplierGroupRequsetData">
  127. SELECT
  128. 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,
  129. 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
  130. FROM srm_supplierGroupRequset a
  131. left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
  132. <where>
  133. <if test="query.site != null and query.site != ''">
  134. AND a.site=#{query.site}
  135. </if>
  136. <if test="query.startDate != null ">
  137. AND a.request_date >= #{query.startDate}
  138. </if>
  139. <if test="query.endDate != null ">
  140. AND #{query.endDate} >=a.request_date
  141. </if>
  142. <if test = "query.requestNo != null and query.requestNo != ''">
  143. AND a.request_no like '%' + #{query.requestNo} + '%'
  144. </if>
  145. <if test = "query.supplierNo != null and query.supplierNo != ''">
  146. AND a.supplier_no like '%' + #{query.supplierNo} + '%'
  147. </if>
  148. <if test = "query.supplierName != null and query.supplierName != ''">
  149. AND b.supplier_name like '%' + #{query.supplierName} + '%'
  150. </if>
  151. <if test = "query.status != null and query.status != ''">
  152. AND a.status like '%' + #{query.status} + '%'
  153. </if>
  154. <if test = "query.requestBy != null and query.requestBy != ''">
  155. AND dbo.plm_get_user_display(a.site,a.create_by) like '%' + #{query.requestBy} + '%'
  156. </if>
  157. </where>
  158. order by a.request_date desc
  159. </select>
  160. <insert id="saveSrmSupplierGroupRequsetData" >
  161. insert into srm_supplierGroupRequset(site,request_no,request_date,supplier_no,old_supplier_group,new_supplier_group,reason,[status],create_date,create_by)
  162. values(#{site},#{requestNo},#{requestDate},#{supplierNo},#{oldSupplierGroup},#{newSupplierGroup},#{reason},#{status},GetDate(),#{createBy})
  163. </insert>
  164. <update id="confirmRequest">
  165. update srm_supplierGroupRequset set update_by=#{updateBy},update_date=GetDate(),status=#{status}
  166. where id=#{id,jdbcType=INTEGER}
  167. </update>
  168. <update id="updateSupplierGroup">
  169. update srm_supplier set supplier_group=#{newSupplierGroup} where site=#{site} and supplier_no=#{supplierNo}
  170. </update>
  171. <select id="getNewSupplierContract" resultType="SrmSupplierContractData">
  172. select a.id,a.site,a.contractId,a.supplierNo,a.contractDate,a.validTo,a.amout,a.currency,a.contractNo,a.contractName,a.contractDetail,
  173. a.create_by,a.create_date,a.update_by,a.update_date,b.supplier_name,a.needRenew
  174. from srm_supplierContract a left join srm_supplier b on a.supplierNo=b.supplier_no
  175. <where>
  176. <if test="site != null and site != ''">
  177. AND a.site=#{site}
  178. </if>
  179. <if test = "supplierNo != null and supplierNo != ''">
  180. AND a.supplierNo = #{supplierNo}
  181. </if>
  182. <if test = "contractId != null and contractId != ''">
  183. AND a.contractId = #{contractId}
  184. </if>
  185. </where>
  186. order by a.contractDate desc
  187. </select>
  188. <insert id="createNewSupplierContract">
  189. insert into srm_supplierContract (site,contractId,supplierNo,contractDate,validTo,amout,currency,contractNo,
  190. contractName,contractDetail,create_by,create_date,needRenew) values
  191. (#{site},#{contractId},#{supplierNo},#{contractDate},#{validTo},#{amout},#{currency},#{contractNo},
  192. #{contractName},#{contractDetail},#{createBy},GETDATE(),#{needRenew})
  193. </insert>
  194. <update id="updateSupplierContract">
  195. update srm_supplierContract set contractDate=#{contractDate},validTo=#{validTo},amout=#{amout},currency=#{currency},contractNo=#{contractNo},
  196. contractName=#{contractName},contractDetail=#{contractDetail},update_date=GETDATE(),update_by=#{updateBy}
  197. where id=#{id}
  198. </update>
  199. <delete id="deleteSupplierContract">
  200. delete from srm_supplierContract where id=#{id}
  201. </delete>
  202. <insert id="saveSrmContractRequset">
  203. insert into srm_contractRequset(site,request_no,request_date,supplier_no,contractId,
  204. [status],create_date,create_by)
  205. values(#{site},#{requestNo},#{requestDate},#{supplierNo},#{contractId},
  206. #{status},GetDate(),#{createBy})
  207. </insert>
  208. <select id="getContractRequestList" resultType="SrmContractRequsetData">
  209. 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,
  210. a.update_by ,b.supplier_name,c.contractNo,c.contractName,c.contractDetail
  211. from srm_contractRequset a
  212. left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
  213. left join srm_supplierContract c on a.site=c.site and a.contractId=c.contractId
  214. <where>
  215. <if test="query.site != null and query.site != ''">
  216. AND a.site=#{query.site}
  217. </if>
  218. <if test="query.startDate != null ">
  219. AND a.request_date >= #{query.startDate}
  220. </if>
  221. <if test="query.endDate != null ">
  222. AND #{query.endDate} >=a.request_date
  223. </if>
  224. <if test = "query.requestNo != null and query.requestNo != ''">
  225. AND a.request_no like '%' + #{query.requestNo} + '%'
  226. </if>
  227. <if test = "query.supplierNo != null and query.supplierNo != ''">
  228. AND a.supplier_no like '%' + #{query.supplierNo} + '%'
  229. </if>
  230. <if test = "query.supplierName != null and query.supplierName != ''">
  231. AND b.supplier_name like '%' + #{query.supplierName} + '%'
  232. </if>
  233. <if test = "query.status != null and query.status != ''">
  234. AND a.status like '%' + #{query.status} + '%'
  235. </if>
  236. </where>
  237. order by a.request_date desc
  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. SourcingStaff,
  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="supplierNo != null and supplierNo != ''">
  325. supplier_no = #{supplierNo},
  326. </if>
  327. <if test="supplierName != null and supplierName != ''">
  328. supplier_name = #{supplierName},
  329. </if>
  330. <if test="supplierGroup != null and supplierGroup != ''">
  331. supplier_group = #{supplierGroup},
  332. </if>
  333. <if test="active != null and active != ''">
  334. active = #{active},
  335. </if>
  336. <if test="supplierDocType != null and supplierDocType != ''">
  337. supplier_doc_type = #{supplierDocType},
  338. </if>
  339. <if test="taxCode != null and taxCode != ''">
  340. taxCode = #{taxCode},
  341. </if>
  342. <if test="abc != null and abc != ''">
  343. abc = #{abc},
  344. </if>
  345. <if test="sourcingstaff != null and sourcingstaff != ''">
  346. sourcingStaff = #{sourcingstaff},
  347. </if>
  348. <if test="currency != null and currency != ''">
  349. currency = #{currency},
  350. </if>
  351. <if test="paymentTerm != null and paymentTerm != ''">
  352. paymentTerm = #{paymentTerm},
  353. </if>
  354. <if test="deliveryTerm != null and deliveryTerm != ''">
  355. deliveryTerm = #{deliveryTerm},
  356. </if>
  357. <if test="phoneNo != null and phoneNo != ''">
  358. phoneNo = #{phoneNo},
  359. </if>
  360. <if test="phoneNo2 != null and phoneNo2 != ''">
  361. phoneNo2 = #{phoneNo2},
  362. </if>
  363. <if test="phoneNo3 != null and phoneNo3 != ''">
  364. phoneNo3 = #{phoneNo3},
  365. </if>
  366. <if test="email != null and email != ''">
  367. email = #{email},
  368. </if>
  369. <if test="email2 != null and email2 != ''">
  370. email2 = #{email2},
  371. </if>
  372. <if test="faxNo != null and faxNo != ''">
  373. faxNo = #{faxNo},
  374. </if>
  375. <if test="otherContact1 != null and otherContact1 != ''">
  376. otherContact1 = #{otherContact1},
  377. </if>
  378. <if test="otherContact2 != null and otherContact2 != ''">
  379. otherContact2 = #{otherContact2},
  380. </if>
  381. <if test="otherContact3 != null and otherContact3 != ''">
  382. otherContact3 = #{otherContact3},
  383. </if>
  384. <if test="bankName != null and bankName != ''">
  385. bankName = #{bankName},
  386. </if>
  387. <if test="bankAccount != null and bankAccount != ''">
  388. bankAccount = #{bankAccount},
  389. </if>
  390. <if test="address != null and address != ''">
  391. address = #{address},
  392. </if>
  393. <if test="memo != null and memo != ''">
  394. memo = #{memo},
  395. </if>
  396. </set>
  397. WHERE id = #{id}
  398. </update>
  399. <!-- 根据ID查询供应商 -->
  400. <select id="selectSrmSupplierById" parameterType="java.lang.Integer" resultType="com.xujie.modules.srm.entity.SrmSupplier">
  401. SELECT <include refid="Base_Column_List" /> FROM srm_supplier WHERE id = #{id}
  402. </select>
  403. <!-- 检查供应商是否存在 -->
  404. <select id="checkSupplierExists" parameterType="com.xujie.modules.srm.entity.SrmSupplier" resultType="java.lang.Integer">
  405. SELECT COUNT(1) FROM srm_supplier WHERE 1=1
  406. <if test="site != null and site != ''">
  407. AND site = #{site}
  408. </if>
  409. <if test="supplierNo != null and supplierNo != ''">
  410. AND supplier_no = #{supplierNo}
  411. </if>
  412. <if test="supplierName != null and supplierName != ''">
  413. AND supplier_name = #{supplierName}
  414. </if>
  415. <if test="taxCode != null and taxCode != ''">
  416. AND TaxCode = #{taxCode}
  417. </if>
  418. </select>
  419. <!-- 根据ID删除供应商 -->
  420. <delete id="deleteSrmSupplierById" parameterType="java.lang.Integer">
  421. DELETE FROM srm_supplier WHERE id = #{id}
  422. </delete>
  423. <!-- 根据ID检查供应商是否存在 -->
  424. <select id="existsById" parameterType="java.lang.Integer" resultType="java.lang.Integer">
  425. SELECT COUNT(1) FROM srm_supplier WHERE id = #{id}
  426. </select>
  427. <select id="checkSupplierNameExists" resultType="int">
  428. SELECT COUNT(1)
  429. FROM srm_supplier
  430. WHERE site = #{site}
  431. AND supplier_name = #{supplierName}
  432. AND id <![CDATA[ <> ]]> #{id}
  433. </select>
  434. </mapper>