2024-06-24 16:57:12 +08:00
<?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.ruoyi.redBook.mapper.OARedBookMapper" >
<select id= "productModelList" parameterType= "Product" resultType= "Product" >
select uid_0,name_0,isnull(example_0,'') example_0
from rb_productType
where web_show_0=1
<if test= "uid_0 != null and uid_0 != ''" >
and puid_0 = #{uid_0}
</if>
<if test= "uid_0 == null or uid_0 == ''" >
and puid_0 = 0
</if>
order by order_0
</select>
<select id= "productRemarkList" parameterType= "Product" resultType= "Product" >
select type_uid_0,remark_0 from [rb_productRemark] where type_uid_0 = #{uid_0}
</select>
<select id= "productExtList" parameterType= "Product" resultType= "Product" >
select model_ext_0 as name_0 from rb_productType A
inner join [rb_material_redbook_ext] B on A.name_0=B.model_0
where A.uid_0 = #{uid_0} and B.show_0=1
</select>
<select id= "productYsxhList" parameterType= "Product" resultType= "Product" >
select #{uid_0} uid_0,name_0 from (
select name_0,1 order_0 from rb_productType where uid_0 = #{uid_0}
union all
select model_ext_0 as name_0,B.order_0
from rb_productType A
inner join [rb_material_redbook_ext] B on A.name_0=B.model_0
where A.uid_0 = #{uid_0} and B.show_0=1 and isnull(B.type_uid_0,0)=0
union all
select model_ext_0 as name_0,B.order_0
from rb_productType A
inner join [rb_material_redbook_ext] B on A.uid_0=B.type_uid_0
where A.uid_0 = #{uid_0} and B.show_0=1
) A order by order_0
</select>
<select id= "judgesection" parameterType= "Product" resultType= "Product" >
select A.uid_0,A.name_0,cast(cast(B.截面 as float) as nvarchar(20)) 截面
from rb_productType A
left join p_section B on A.uid_0=B.type_uid_0
where A.uid_0 = #{uid_0} and 截面 is not null order by A.name_0,B.截面
</select>
<select id= "productJmList" parameterType= "Product" resultType= "Product" >
select A.uid_0,A.name_0,cast(cast(B.截面 as float) as nvarchar(20)) section
from rb_productType A
left join p_section B on A.uid_0=B.type_uid_0
where A.uid_0 = #{uid_0} and B.model_0 = #{name_0} and 截面 is not null order by A.name_0,B.截面
</select>
<select id= "searchData" parameterType= "Product" resultType= "Product" >
select B.uid_0,A.namevoltage name_0,isnull(A.电压等级,N' - ') voltage ,A.单位 stu,A.型号 model,isnull(A.规格,'') spec ,
convert(decimal,convert(float,A.红本价格)) price,convert(varchar(10),B.date_0,23) pricedate
from [rb_product_price] A
left join rb_productVersion B on A.version_uid_0=B.uid_0
where B.sta_0=1 and A.type_uid_0 = #{uid_0}
<if test= "section != null and section != ''" >
and A.截面 = #{section}
</if>
and A.型号 = #{name_0} order by A.order_0
</select>
<select id= "handleSearchData" resultType= "Product" parameterType= "String" >
select B.uid_0,A.namevoltage name_0,isnull(A.电压等级,N' - ') voltage ,A.单位 stu,A.型号 model,isnull(A.规格,'') spec ,
convert(decimal,convert(float,A.红本价格)) price,convert(varchar(10),B.date_0,23) pricedate
from [rb_product_price] A
left join rb_productVersion B on A.version_uid_0=B.uid_0
where B.sta_0=1
<if test= "name_0 != null and name_0 != ''" >
and A.型号 like '%${name_0}%'
</if>
<if test= "model != null and model != ''" >
and A.规格 = #{model}
</if>
order by len(A.namevoltage)
</select>
<insert id= "insertOAQuot" parameterType= "OAQuot" >
insert into OAQuot
<trim prefix= "(" suffix= ")" suffixOverrides= "," >
<if test= "quot_id != null" > quot_id,</if>
<if test= "quotCode != null and quotCode != ''" > quotCode,</if>
<if test= "quotCustomer != null and quotCustomer != ''" > quotCustomer,</if>
<if test= "quotProject != null and quotProject != ''" > quotProject,</if>
<if test= "quotLxr != null and quotLxr != ''" > quotLxr,</if>
<if test= "quotLxrdh != null and quotLxrdh != ''" > quotLxrdh,</if>
<if test= "totalPrice != null and totalPrice != ''" > totalPrice,</if>
2024-07-24 14:53:01 +08:00
<if test= "perc != null and perc != ''" > perc,</if>
<if test= "perc2 != null and perc2 != ''" > perc2,</if>
2024-06-24 16:57:12 +08:00
<if test= "rbDateUid != null and rbDateUid != ''" > rbDateUid,</if>
<if test= "createBy != null" > create_by,</if>
<if test= "createTime != null" > create_time,</if>
<if test= "updateBy != null" > update_by,</if>
<if test= "updateTime != null" > update_time,</if>
</trim>
<trim prefix= "values (" suffix= ")" suffixOverrides= "," >
<if test= "quot_id != null" > #{quot_id},</if>
<if test= "quotCode != null and quotCode != ''" > #{quotCode},</if>
<if test= "quotCustomer != null and quotCustomer != ''" > #{quotCustomer},</if>
<if test= "quotProject != null and quotProject != ''" > #{quotProject},</if>
<if test= "quotLxr != null and quotLxr != ''" > #{quotLxr},</if>
<if test= "quotLxrdh != null and quotLxrdh != ''" > #{quotLxrdh},</if>
<if test= "totalPrice != null and totalPrice != ''" > #{totalPrice},</if>
2024-07-24 14:53:01 +08:00
<if test= "perc != null and perc != ''" > #{perc},</if>
<if test= "perc2 != null and perc2 != ''" > #{perc2},</if>
2024-06-24 16:57:12 +08:00
<if test= "rbDateUid != null and rbDateUid != ''" > #{rbDateUid},</if>
<if test= "createBy != null" > #{createBy},</if>
<if test= "createTime != null" > #{createTime},</if>
<if test= "updateBy != null" > #{updateBy},</if>
<if test= "updateTime != null" > #{updateTime},</if>
</trim>
</insert>
<update id= "updateOAQuot" parameterType= "OAQuot" >
update OAQuot
<trim prefix= "SET" suffixOverrides= "," >
<if test= "quotCode != null" > quotCode = #{quotCode},</if>
<if test= "quotCustomer != null and quotCustomer != ''" > quotCustomer = #{quotCustomer},</if>
<if test= "quotProject != null and quotProject != ''" > quotProject = #{quotProject},</if>
<if test= "quotLxr != null and quotLxr != ''" > quotLxr = #{quotLxr},</if>
<if test= "quotLxrdh != null and quotLxrdh != ''" > quotLxrdh = #{quotLxrdh},</if>
<if test= "totalPrice != null and totalPrice != ''" > totalPrice = #{totalPrice},</if>
2024-07-24 14:53:01 +08:00
<if test= "perc != null and perc != ''" > perc = #{perc},</if>
<if test= "perc2 != null and perc2 != ''" > perc2 = #{perc2},</if>
2024-06-24 16:57:12 +08:00
<if test= "rbDateUid != null and rbDateUid != ''" > rbDateUid = #{rbDateUid},</if>
<if test= "quotApprovalStatus != null and quotApprovalStatus != ''" > quotApprovalStatus = #{quotApprovalStatus},</if>
<if test= "createBy != null" > create_by = #{createBy},</if>
<if test= "createTime != null" > create_time = #{createTime},</if>
<if test= "updateBy != null" > update_by = #{updateBy},</if>
<if test= "updateTime != null" > update_time = #{updateTime},</if>
</trim>
where quot_id = #{quot_id}
</update>
<insert id= "batchOAQuotProduct" >
2024-07-24 14:53:01 +08:00
insert into OAQuotProduct(uid_0,quot_product_id, name_0, name_1, spec, voltage,stu,price,setPrice,count,allPrice,per,per2,quot_id,number) values
2024-06-24 16:57:12 +08:00
<foreach item= "item" index= "index" collection= "list" separator= "," >
2024-07-24 14:53:01 +08:00
(#{item.uid_0}, #{item.quot_product_id}, #{item.name_0}, #{item.name_1}, #{item.spec}, #{item.voltage}, #{item.stu},cast(#{item.price,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.setPrice,jdbcType=DECIMAL} as decimal(18,2)), cast(#{item.count,jdbcType=DECIMAL} as decimal(18,3)), cast(#{item.allPrice,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.per,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.per2,jdbcType=DECIMAL} as decimal(18,2)), #{item.quot_id}, #{item.index})
2024-06-24 16:57:12 +08:00
</foreach>
</insert>
<select id= "versionList" resultType= "RbVersionDateResult" >
select uid_0 value,
convert(varchar(10),[date_0],23)+' 铜:'+convert(varchar(10),[tong_price_0])+' 铝:'+convert(varchar(10),[lv_price_0]) label
from [rb_productVersion] A
inner join (select max(uid_0) muid from rb_productVersion
where sta_0=1 or sta_0=0 group by date_0 )B on A.uid_0=B.muid
order by sta_0 desc,uid_0 desc
</select>
<select id= "queryRedBPriceByParams" resultType= "OAQuotProduct" >
SELECT a.红本价格 AS setPrice, a.namevoltage AS name_0, a.规格 AS spec, a.电压等级 AS voltage
FROM rb_product_price a
JOIN (VALUES
<foreach collection= "params" item= "param" open= "(" separator= "),(" close= ")" >
#{param.uid_0}, #{param.name_0}, #{param.spec}, #{param.voltage}
</foreach>
) AS v(version_uid_0,产品型号, 规格, 电压等级)
ON a.version_uid_0 = v.version_uid_0
AND a.namevoltage = v.产品型号
AND a.规格 = v.规格
AND a.电压等级 = v.电压等级
</select>
<select id= "getFixDatePrice" resultType= "String" >
select top 1 红本价格 from rb_product_price A
inner join [rb_productVersion] B on A.version_uid_0=B.uid_0
2024-07-24 14:53:01 +08:00
where A.[namevoltage] = #{name_0}
and B.uid_0 = #{uid_0}
2024-06-24 16:57:12 +08:00
and (B.sta_0=1 or sta_0=0)
</select>
<select id= "getFixDatePrice2" resultType= "OAQuotProduct" >
select top 1 B.uid_0,A.namevoltage name_0,isnull(A.电压等级,N' - ') voltage ,A.单位 stu,
convert(decimal,convert(float,A.红本价格)) price,convert(varchar(10),B.date_0,23) pricedate
from [rb_product_price] A
left join rb_productVersion B on A.version_uid_0=B.uid_0
where A.型号 = #{name_1} and A.规格 = #{spec} and UPPER(A.电压等级) = #{voltage}
and B.uid_0 = #{uid_0}
and (B.sta_0=1 or sta_0=0)
</select>
<select id= "getFixDatePrice3" resultType= "OAQuotProduct" >
select top 1 B.uid_0,A.namevoltage name_0,isnull(A.电压等级,N' - ') voltage,A.单位 stu,
A.型号 name_1,isnull(A.规格,'') spec
,convert(decimal,convert(float,A.红本价格)) price,convert(varchar(10),B.date_0,23) pricedate
from [rb_product_price] A
left join rb_productVersion B on A.version_uid_0=B.uid_0
where (B.sta_0=1 or sta_0=0) and A.namevoltage=#{name_0}
and B.uid_0 = #{uid_0}
</select>
<sql id= "quotsJoins" >
LEFT JOIN sys_user u on u.user_name=a.create_by
LEFT JOIN sys_dept d on u.dept_id = d.dept_id
</sql>
<select id= "listQuots" parameterType= "OAQuot" resultType= "OAQuot" >
select a.quot_id,a.quotCode,a.quotCustomer,a.quotProject,a.quotLxr,a.quotLxrdh,a.totalPrice,a.quotApprovalStatus,
a.create_by,u.nick_name createName,a.create_time createTime,
a.update_by,a.update_time updateTime
from OAQuot a
<include refid= "quotsJoins" />
<where >
<if test= "params.beginTime != null and params.beginTime != ''" > <!-- 开始时间检索 -->
and datediff(d, a.create_time, #{params.beginTime}) <![CDATA[<=]]> 0
</if>
<if test= "params.endTime != null and params.endTime != ''" > <!-- 结束时间检索 -->
and datediff(d, a.create_time, #{params.endTime}) <![CDATA[>=]]> 0
</if>
<if test= "quotCustomer != null and quotCustomer != ''" > <!-- 客户检索 -->
and a.quotCustomer like '%${quotCustomer}%'
</if>
<if test= "quotApprovalStatus != null and quotApprovalStatus != ''" > <!-- 提交状态 -->
and a.quotApprovalStatus = #{quotApprovalStatus}
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>
order by a.quotCode desc
</select>
<resultMap type= "OAQuot" id= "QuotResult" >
<result property= "quot_id" column= "quot_id" />
<result property= "quotCode" column= "quotCode" />
<result property= "quotCustomer" column= "quotCustomer" />
<result property= "quotProject" column= "quotProject" />
<result property= "quotLxr" column= "quotLxr" />
<result property= "quotLxrdh" column= "quotLxrdh" />
<result property= "totalPrice" column= "totalPrice" />
2024-07-24 14:53:01 +08:00
<result property= "perc" column= "perc" />
<result property= "perc2" column= "perc2" />
2024-06-24 16:57:12 +08:00
<result property= "rbDateUid" column= "rbDateUid" />
<result property= "quotApprovalStatus" column= "quotApprovalStatus" />
</resultMap>
<resultMap id= "QuotQuotMaterialResult" type= "OAQuot" extends= "QuotResult" >
<collection property= "selectedResultData" notNullColumn= "quot_product_id" javaType= "java.util.List" resultMap= "QuotMaterialResult" />
</resultMap>
<resultMap type= "OAQuotProduct" id= "QuotMaterialResult" >
2024-07-24 14:53:01 +08:00
<result property= "uid_0" column= "uid_0" />
2024-06-24 16:57:12 +08:00
<result property= "quot_product_id" column= "quot_product_id" />
<result property= "name_0" column= "name_0" />
<result property= "name_1" column= "name_1" />
<result property= "spec" column= "spec" />
<result property= "voltage" column= "voltage" />
<result property= "stu" column= "stu" />
<result property= "per" column= "per" />
<result property= "per2" column= "per2" />
<result property= "price" column= "price" />
<result property= "setPrice" column= "setPrice" />
<result property= "count" column= "count" />
<result property= "allPrice" column= "allPrice" />
</resultMap>
<select id= "selectQuotByQuotId" parameterType= "String" resultMap= "QuotQuotMaterialResult" >
select a.quot_id, a.quotCode, a.quotCustomer, a.quotProject, a.quotLxr,
2024-07-24 14:53:01 +08:00
a.quotLxrdh, a.totalPrice,a.perc,a.perc2,a.rbDateUid,a.quotApprovalStatus,
2024-06-24 16:57:12 +08:00
2024-07-24 14:53:01 +08:00
b.uid_0,b.quot_product_id, b.name_0, b.name_1,
2024-06-24 16:57:12 +08:00
b.spec, b.voltage, b.stu,
b.per,b.per2,b.price,b.setPrice,b.count,b.allPrice,b.quot_id
from OAQuot a
left join OAQuotProduct b on b.quot_id = a.quot_id
where a.quot_id = #{quotId} order by b.number
</select>
<delete id= "deleteQuotsByQuotId" parameterType= "java.lang.String" >
delete from OAQuot where quot_id = #{quotId}
</delete>
<delete id= "deleteQuotProductsByCusId" parameterType= "java.lang.String" >
delete from OAQuotProduct where quot_id = #{quotId}
</delete>
<select id= "rb_price_version" resultType= "String" >
select top 1 muid from
(
select max(uid_0) muid,date_0 from rb_productVersion
where sta_0=1 or sta_0=0 group by date_0
)a order by date_0 desc
</select>
<select id= "getCode" resultType= "String" statementType= "CALLABLE" >
{call GetSerialNo(#{type,mode=IN,jdbcType=VARCHAR})}
</select>
</mapper>