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.
 
 
 
 
 
 

480 lines
20 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xujie.modules.srm.mapper.SrmSupplierMapper">
<!-- 基础字段映射 -->
<sql id="Base_Column_List">
id,site,supplier_no,supplier_name,supplier_group,create_date,create_by,update_date,update_by,supplier_doc_type,
TaxCode,tax,FaxNo,PhoneNo,PhoneNo2,PhoneNo3,Contact,Address,PaymentTerm,DeliveryTerm,Buyer,Sourcing_staff,
Currency,ABC,Active,BankName,BankAccount,TaxNo,Email,Email2,Other_contact1,Other_contact2,Other_contact3,Memo
</sql>
<select id="searchSrmSupplierList" resultType="SrmSupplierData">
SELECT
s.id,s.site,s.supplier_no,s.supplier_name,s.supplier_group,sg.GroupDesc AS groupDesc,s.supplier_doc_type,
s.create_date,s.create_by,s.update_date,s.update_by,s.Buyer,s.Sourcing_staff AS sourcingStaff,s.PhoneNo,
s.PhoneNo2,s.PhoneNo3,s.FaxNo,s.Contact,s.Address,s.Email,s.Email2,
s.PaymentTerm,pt.PaymentTerm AS paymentTermDesc,
s.DeliveryTerm,dt.DeliveryTerm AS deliveryTermDesc,
s.Currency,c.CurrencyDesc AS currencyDesc,
s.TaxCode,t.TaxDesc AS taxDesc,s.tax AS taxRate,
s.ABC,s.Active,s.BankName,s.BankAccount,s.TaxNo,
s.Other_contact1,s.Other_contact2,s.Other_contact3,
s.Memo
FROM srm_supplier s LEFT JOIN SupplierGroup sg ON sg.supplier_group = s.supplier_group
AND sg.Site = s.site LEFT JOIN Currency c ON c.Currency = s.Currency
AND c.Site = s.site LEFT JOIN Tax t ON t.TaxCode = s.TaxCode
AND t.Site = s.site
LEFT JOIN DeliveryTerm dt
ON dt.DeliveryTermID = s.DeliveryTerm
AND dt.Site = s.site
LEFT JOIN PaymentTerm pt
ON pt.PaymentTermID = s.PaymentTerm
AND pt.Site = s.site
<where>
<if test="query.site != null and query.site != ''">
AND s.site = #{query.site}
</if>
<if test="query.supplierNo != null and query.supplierNo != ''">
AND s.supplier_no LIKE '%' + #{query.supplierNo} + '%'
</if>
<if test="query.supplierName != null and query.supplierName != ''">
AND s.supplier_name LIKE '%' + #{query.supplierName} + '%'
</if>
<if test="query.supplierGroup != null and query.supplierGroup != ''">
AND s.supplier_group = #{query.supplierGroup}
</if>
<if test="query.active != null and query.active != ''">
AND s.Active = #{query.active}
</if>
</where>
ORDER BY s.create_date DESC
</select>
<select id="checkSrmSupplierList" resultType="SrmSupplierData">
SELECT
id,site,supplier_no,supplier_name,supplier_group,create_date,create_by,update_date,update_by,supplier_doc_type,
TaxCode,tax,FaxNo,PhoneNo,PhoneNo2,PhoneNo3,Contact,Address,PaymentTerm,DeliveryTerm,Buyer,Sourcing_staff,
Currency,ABC,Active,BankName,BankAccount,TaxNo,Email,Email2,Other_contact1,Other_contact2,Other_contact3,Memo
FROM srm_supplier
<where>
<if test="site != null and site != ''">
AND site=#{site}
</if>
<if test = "supplierNo != null and supplierNo != ''">
AND supplier_no = #{supplierNo}
</if>
</where>
</select>
<update id="updateTransNo" >
EXEC UpdateTransNo #{site}, #{transType}
</update>
<select id="getTransNo" resultType="String">
SELECT
dbo.Get_TransNo(#{site},#{transType}) as transNo
</select>
<select id="searchSupplierGroupRequestList" resultType="SrmSupplierGroupRequsetData">
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],
a.create_by,a.update_date,a.update_by,dbo.plm_get_user_display(a.site,a.create_by) requestBy
from srm_supplierGroupRequset a
<where>
<if test="site !=null and site !=''">
and a.site =#{site}
</if>
<if test="requestNo !=null and requestNo !=''">
and a.request_no like '%' + #{requestNo} + '%'
</if>
<if test="supplierNo !=null and supplierNo !=''">
and a.supplier_no like '%' + #{supplierNo} + '%'
</if>
<if test="status !=null and status !=''">
and a.status like '%' + #{status} + '%'
</if>
</where>
order by a.create_date desc
</select>
<select id="getSupplierGroupRequestList" resultType="SrmSupplierGroupRequsetData">
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],
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
FROM srm_supplierGroupRequset a
left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
<where>
<if test="query.site != null and query.site != ''">
AND a.site=#{query.site}
</if>
<if test="query.startDate != null ">
AND a.request_date >= #{query.startDate}
</if>
<if test="query.endDate != null ">
AND #{query.endDate} >=a.request_date
</if>
<if test = "query.requestNo != null and query.requestNo != ''">
AND a.request_no like '%' + #{query.requestNo} + '%'
</if>
<if test = "query.supplierNo != null and query.supplierNo != ''">
AND a.supplier_no like '%' + #{query.supplierNo} + '%'
</if>
<if test = "query.supplierName != null and query.supplierName != ''">
AND b.supplier_name like '%' + #{query.supplierName} + '%'
</if>
<if test = "query.status != null and query.status != ''">
AND a.status like '%' + #{query.status} + '%'
</if>
<if test = "query.requestBy != null and query.requestBy != ''">
AND dbo.plm_get_user_display(a.site,a.create_by) like '%' + #{query.requestBy} + '%'
</if>
</where>
order by a.request_date desc
</select>
<!-- 新增:用于MyBatis Plus内置分页的查询方法(无ORDER BY,避免SQL Server分页问题) -->
<select id="queryPage" resultType="SrmSupplierGroupRequsetData">
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],
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
FROM srm_supplierGroupRequset a
left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
<where>
<if test="query.site != null and query.site != ''">
AND a.site=#{query.site}
</if>
<if test="query.startDate != null ">
AND a.request_date >= #{query.startDate}
</if>
<if test="query.endDate != null ">
AND #{query.endDate} >=a.request_date
</if>
<if test = "query.requestNo != null and query.requestNo != ''">
AND a.request_no like '%' + #{query.requestNo} + '%'
</if>
<if test = "query.supplierNo != null and query.supplierNo != ''">
AND a.supplier_no like '%' + #{query.supplierNo} + '%'
</if>
<if test = "query.supplierName != null and query.supplierName != ''">
AND b.supplier_name like '%' + #{query.supplierName} + '%'
</if>
<if test = "query.status != null and query.status != ''">
AND a.status like '%' + #{query.status} + '%'
</if>
<if test = "query.requestBy != null and query.requestBy != ''">
AND dbo.plm_get_user_display(a.site,a.create_by) like '%' + #{query.requestBy} + '%'
</if>
</where>
</select>
<insert id="saveSrmSupplierGroupRequsetData" >
insert into srm_supplierGroupRequset(site,request_no,request_date,supplier_no,old_supplier_group,new_supplier_group,reason,[status],create_date,create_by)
values(#{site},#{requestNo},#{requestDate},#{supplierNo},#{oldSupplierGroup},#{newSupplierGroup},#{reason},#{status},GetDate(),#{createBy})
</insert>
<update id="confirmRequest">
update srm_supplierGroupRequset set update_by=#{updateBy},update_date=GetDate(),status=#{status}
where id=#{id,jdbcType=INTEGER}
</update>
<update id="updateSupplierGroup">
update srm_supplier set supplier_group=#{newSupplierGroup} where site=#{site} and supplier_no=#{supplierNo}
</update>
<select id="getNewSupplierContract" resultType="SrmSupplierContractData">
select a.id,a.site,a.contractId,a.supplierNo,a.contractDate,a.validTo,a.amout,a.currency,a.contractNo,a.contractName,a.contractDetail,
a.create_by,a.create_date,a.update_by,a.update_date,b.supplier_name,a.needRenew
from srm_supplierContract a left join srm_supplier b on a.supplierNo=b.supplier_no
<where>
<if test="site != null and site != ''">
AND a.site=#{site}
</if>
<if test = "supplierNo != null and supplierNo != ''">
AND a.supplierNo = #{supplierNo}
</if>
<if test = "contractId != null and contractId != ''">
AND a.contractId = #{contractId}
</if>
</where>
order by a.contractDate desc
</select>
<insert id="createNewSupplierContract">
insert into srm_supplierContract (site,contractId,supplierNo,contractDate,validTo,amout,currency,contractNo,
contractName,contractDetail,create_by,create_date,needRenew) values
(#{site},#{contractId},#{supplierNo},#{contractDate},#{validTo},#{amout},#{currency},#{contractNo},
#{contractName},#{contractDetail},#{createBy},GETDATE(),#{needRenew})
</insert>
<update id="updateSupplierContract">
update srm_supplierContract set contractDate=#{contractDate},validTo=#{validTo},amout=#{amout},currency=#{currency},contractNo=#{contractNo},
contractName=#{contractName},contractDetail=#{contractDetail},update_date=GETDATE(),update_by=#{updateBy}
where id=#{id}
</update>
<delete id="deleteSupplierContract">
delete from srm_supplierContract where id=#{id}
</delete>
<insert id="saveSrmContractRequset">
insert into srm_contractRequset(site,request_no,request_date,supplier_no,contractId,
[status],create_date,create_by)
values(#{site},#{requestNo},#{requestDate},#{supplierNo},#{contractId},
#{status},GetDate(),#{createBy})
</insert>
<select id="getContractRequestList" resultType="SrmContractRequsetData">
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,
a.update_by ,b.supplier_name,c.contractNo,c.contractName,c.contractDetail
from srm_contractRequset a
left join srm_supplier b on a.site=b.site and a.supplier_no=b.supplier_no
left join srm_supplierContract c on a.site=c.site and a.contractId=c.contractId
<where>
<if test="query.site != null and query.site != ''">
AND a.site=#{query.site}
</if>
<if test="query.startDate != null ">
AND a.request_date >= #{query.startDate}
</if>
<if test="query.endDate != null ">
AND #{query.endDate} >=a.request_date
</if>
<if test = "query.requestNo != null and query.requestNo != ''">
AND a.request_no like '%' + #{query.requestNo} + '%'
</if>
<if test = "query.supplierNo != null and query.supplierNo != ''">
AND a.supplier_no like '%' + #{query.supplierNo} + '%'
</if>
<if test = "query.supplierName != null and query.supplierName != ''">
AND b.supplier_name like '%' + #{query.supplierName} + '%'
</if>
<if test = "query.status != null and query.status != ''">
AND a.status like '%' + #{query.status} + '%'
</if>
</where>
</select>
<update id="updateContractRequestStatus">
update srm_contractRequset set status=#{status} where site=#{site} and contractId=#{contractId}
</update>
<update id="updateContractRequestStatusForRequestNo">
update srm_contractRequset set status=#{status} where site=#{site} and request_no=#{requestNo}
</update>
<update id="updateContractRenewFlag">
update srm_supplierContract set needRenew=#{needRenew} where site=#{site} and contractId=#{contractId}
</update>
<!-- 新增供应商 -->
<insert id="insertSrmSupplier" parameterType="com.xujie.modules.srm.entity.SrmSupplier">
INSERT INTO srm_supplier (
site,
supplier_no,
supplier_name,
supplier_group,
create_date,
create_by,
update_date,
update_by,
supplier_doc_type,
TaxCode,
tax,
FaxNo,
PhoneNo,
PhoneNo2,
PhoneNo3,
Contact,
Address,
PaymentTerm,
DeliveryTerm,
Buyer,
Sourcing_staff,
Currency,
ABC,
Active,
BankName,
BankAccount,
TaxNo,
Email,
Email2,
Other_contact1,
Other_contact2,
Other_contact3,
Memo
) VALUES (
#{site},
#{supplierNo},
#{supplierName},
#{supplierGroup},
#{createDate},
#{createBy},
#{updateDate},
#{updateBy},
#{supplierDocType},
#{taxCode},
#{tax},
#{faxNo},
#{phoneNo},
#{phoneNo2},
#{phoneNo3},
#{contact},
#{address},
#{paymentTerm},
#{deliveryTerm},
#{buyer},
#{sourcingstaff},
#{currency},
#{abc},
#{active},
#{bankName},
#{bankAccount},
#{taxNo},
#{email},
#{email2},
#{otherContact1},
#{otherContact2},
#{otherContact3},
#{memo}
)
</insert>
<!-- 更新供应商 -->
<update id="updateSrmSupplier" parameterType="com.xujie.modules.srm.entity.SrmSupplier">
UPDATE srm_supplier
<set>
<if test="site != null and site != ''">
site = #{site},
</if>
<if test="supplierNo != null and supplierNo != ''">
supplier_no = #{supplierNo},
</if>
<if test="supplierName != null and supplierName != ''">
supplier_name = #{supplierName},
</if>
<if test="supplierGroup != null and supplierGroup != ''">
supplier_group = #{supplierGroup},
</if>
<if test="createDate != null">
create_date = #{createDate},
</if>
<if test="createBy != null and createBy != ''">
create_by = #{createBy},
</if>
<if test="updateDate != null">
update_date = #{updateDate},
</if>
<if test="updateBy != null and updateBy != ''">
update_by = #{updateBy},
</if>
<if test="supplierDocType != null and supplierDocType != ''">
supplier_doc_type = #{supplierDocType},
</if>
<if test="taxCode != null and taxCode != ''">
TaxCode = #{taxCode},
</if>
<if test="tax != null and tax != ''">
tax = #{tax},
</if>
<if test="faxNo != null and faxNo != ''">
FaxNo = #{faxNo},
</if>
<if test="phoneNo != null and phoneNo != ''">
PhoneNo = #{phoneNo},
</if>
<if test="phoneNo2 != null and phoneNo2 != ''">
PhoneNo2 = #{phoneNo2},
</if>
<if test="phoneNo3 != null and phoneNo3 != ''">
PhoneNo3 = #{phoneNo3},
</if>
<if test="contact != null and contact != ''">
Contact = #{contact},
</if>
<if test="address != null and address != ''">
Address = #{address},
</if>
<if test="paymentTerm != null and paymentTerm != ''">
PaymentTerm = #{paymentTerm},
</if>
<if test="deliveryTerm != null and deliveryTerm != ''">
DeliveryTerm = #{deliveryTerm},
</if>
<if test="buyer != null and buyer != ''">
Buyer = #{buyer},
</if>
<if test="sourcingstaff != null and sourcingstaff != ''">
Sourcingstaff = #{sourcingstaff},
</if>
<if test="currency != null and currency != ''">
Currency = #{currency},
</if>
<if test="abc != null and abc != ''">
ABC = #{abc},
</if>
<if test="active != null and active != ''">
Active = #{active},
</if>
<if test="bankName != null and bankName != ''">
BankName = #{bankName},
</if>
<if test="bankAccount != null and bankAccount != ''">
BankAccount = #{bankAccount},
</if>
<if test="taxNo != null and taxNo != ''">
TaxNo = #{taxNo},
</if>
<if test="email != null and email != ''">
Email = #{email},
</if>
<if test="email2 != null and email2 != ''">
Email2 = #{email2},
</if>
<if test="otherContact1 != null and otherContact1 != ''">
OtherContact1 = #{otherContact1},
</if>
<if test="otherContact2 != null and otherContact2 != ''">
OtherContact2 = #{otherContact2},
</if>
<if test="otherContact3 != null and otherContact3 != ''">
OtherContact3 = #{otherContact3},
</if>
<if test="memo != null and memo != ''">
Memo = #{memo}
</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据ID查询供应商 -->
<select id="selectSrmSupplierById" parameterType="java.lang.Integer" resultType="com.xujie.modules.srm.entity.SrmSupplier">
SELECT <include refid="Base_Column_List" /> FROM srm_supplier WHERE id = #{id}
</select>
<!-- 检查供应商是否存在 -->
<select id="checkSupplierExists" parameterType="com.xujie.modules.srm.entity.SrmSupplier" resultType="java.lang.Integer">
SELECT COUNT(1) FROM srm_supplier WHERE 1=1
<if test="site != null and site != ''">
AND site = #{site}
</if>
<if test="supplierNo != null and supplierNo != ''">
AND supplier_no = #{supplierNo}
</if>
<if test="supplierName != null and supplierName != ''">
AND supplier_name = #{supplierName}
</if>
<if test="taxCode != null and taxCode != ''">
AND TaxCode = #{taxCode}
</if>
</select>
<!-- 根据ID删除供应商 -->
<delete id="deleteSrmSupplierById" parameterType="java.lang.Integer">
DELETE FROM srm_supplier WHERE id = #{id}
</delete>
<!-- 根据ID检查供应商是否存在 -->
<select id="existsById" parameterType="java.lang.Integer" resultType="java.lang.Integer">
SELECT COUNT(1) FROM srm_supplier WHERE id = #{id}
</select>
</mapper>