Files
jshERP/jshERP-boot/src/main/resources/mapper_xml/SerialNumberMapperEx.xml

221 lines
8.4 KiB
XML

<?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.jsh.erp.datasource.mappers.SerialNumberMapperEx">
<resultMap extends="com.jsh.erp.datasource.mappers.SerialNumberMapper.BaseResultMap" id="SerialNumberExBaseResultMap" type="com.jsh.erp.datasource.entities.SerialNumberEx">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="materialCode" jdbcType="VARCHAR" property="materialCode" />
<result column="materialName" jdbcType="VARCHAR" property="materialName" />
<result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
<result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
<result column="depotHeadNumber" jdbcType="VARCHAR" property="depotHeadNumber" />
<result column="depotHeadType" jdbcType="VARCHAR" property="depotHeadType" />
<result column="depotName" jdbcType="VARCHAR" property="depotName" />
</resultMap>
<insert id="addSerialNumber" parameterType="com.jsh.erp.datasource.entities.SerialNumberEx"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into jsh_serial_number
(material_id, serial_number, is_sell, remark,delete_flag,
create_time, creator,update_time, updater,in_bill_no, out_bill_no)
values
(#{materialId},#{serialNumber},#{isSell},#{remark},#{deleteFlag},
#{createTime},#{creator},#{updateTime},#{updater},#{inBillNo},#{outBillNo}
)
</insert>
<update id="updateSerialNumber" parameterType="com.jsh.erp.datasource.entities.SerialNumberEx">
update jsh_serial_number
<set>
<if test="materialId != null">
material_id = #{materialId,jdbcType=BIGINT},
</if>
<if test="serialNumber != null">
serial_number = #{serialNumber,jdbcType=VARCHAR},
</if>
<if test="isSell != null">
is_sell = #{isSell,jdbcType=VARCHAR},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
<if test="deleteFlag != null">
delete_flag = #{deleteFlag,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="updater != null">
updater = #{updater,jdbcType=BIGINT},
</if>
<if test="inBillNo != null">
in_bill_no = #{inBillNo,jdbcType=VARCHAR},
</if>
<if test="outBillNo != null">
out_bill_no = #{outBillNo,jdbcType=VARCHAR}
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="findSerialNumberByMaterialId" resultType="java.lang.Integer">
SELECT
count(ser.id)
FROM jsh_serial_number ser
where 1=1
<if test="materialId != null">
and ser.material_Id=#{materialId}
</if>
and ifnull(ser.delete_flag,'0') !='1'
and ser.is_sell !='1'
</select>
<update id="sellSerialNumber">
update jsh_serial_number
<set>
is_sell = '1',
<if test="outBillNo !=null ">
out_bill_no = #{outBillNo},
</if>
<if test="updateTime !=null ">
update_time = #{updateTime},
</if>
<if test="updater != null">
updater = #{updater},
</if>
</set>
where 1=1
<if test="materialId != null">
and material_id = #{materialId}
</if>
and is_sell != '1'
and ifnull(delete_flag,'0') !='1'
<if test="snArray != null">
and serial_number
in (
<foreach collection="snArray" item="sn" separator=",">
#{sn}
</foreach>
)
</if>
</update>
<update id="cancelSerialNumber">
update jsh_serial_number
<set>
is_sell = '0', out_bill_no=null,
<if test="updateTime !=null ">
update_time = #{updateTime},
</if>
<if test="updater != null">
updater = #{updater},
</if>
</set>
where 1=1
<if test="materialId != null">
and material_id = #{materialId}
</if>
<if test="outBillNo !=null ">
and out_bill_no = #{outBillNo,jdbcType=VARCHAR}
</if>
and is_sell != '0'
and ifnull(delete_flag,'0') !='1'
<if test="count != null">
and id in
( select batchSN.id from
( select selFrom.id from jsh_serial_number selFrom
where 1=1
<if test="materialId != null">
and selFrom.material_id = #{materialId}
</if>
<if test="outBillNo !=null ">
and selFrom.out_bill_no = #{outBillNo,jdbcType=VARCHAR}
</if>
and selFrom.is_sell !='0'
and ifnull(selFrom.delete_flag,'0') !='1'
limit 0,#{count}
) batchSN
)
</if>
</update>
<insert id="batAddSerialNumber"
useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into jsh_serial_number
(material_id, serial_number, is_sell, remark,delete_flag,
create_time, creator,update_time, updater)
values
<foreach collection='list' item='each' separator=','>
(#{each.materialId},#{each.serialNumber},'0',#{each.remark},'0',
#{each.createTime},#{each.creator},#{each.updateTime},#{each.updater}
)
</foreach>
</insert>
<update id="batchDeleteSerialNumberByIds">
update jsh_serial_number
set update_time=#{updateTime},updater=#{updater},delete_flag='1'
where 1=1
and id in (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</update>
<select id="getEnableSerialNumberList" resultType="com.jsh.erp.datasource.entities.SerialNumberEx">
select
ser.id, ser.serial_number, ser.in_bill_no, ser.create_time, ser.update_time
FROM jsh_serial_number ser
left join jsh_material m on m.id=ser.material_id and ifnull(m.delete_flag, '0') != '1'
left join jsh_material_extend me on me.material_id=m.id and ifnull(me.delete_flag,'0') !='1'
where 1=1 and me.default_flag=1
<if test="name != null">
<bind name="bindName" value="'%'+name+'%'"/>
and ser.serial_number like #{bindName}
</if>
<if test="depotId != null">
and ser.depot_id = #{depotId}
</if>
<if test="barCode != null">
and me.bar_code= #{barCode}
</if>
and (ser.is_sell = '0'
<if test="number != null">
or ser.out_bill_no = #{number}
</if>
)
and ifnull(ser.delete_flag,'0') !='1'
order by ser.id desc
<if test="offset != null and rows != null">
limit #{offset},#{rows}
</if>
</select>
<select id="getEnableSerialNumberCount" resultType="java.lang.Long">
select
count(1)
FROM jsh_serial_number ser
left join jsh_material m on m.id=ser.material_id and ifnull(m.delete_flag, '0') != '1'
left join jsh_material_extend me on me.material_id=m.id and ifnull(me.delete_flag,'0') !='1'
where 1=1 and me.default_flag=1
<if test="name != null">
<bind name="bindName" value="'%'+name+'%'"/>
and ser.serial_number like #{bindName}
</if>
<if test="depotId != null">
and ser.depot_id = #{depotId}
</if>
<if test="barCode != null">
and me.bar_code= #{barCode}
</if>
and (ser.is_sell = '0'
<if test="number != null">
or ser.out_bill_no = #{number}
</if>
)
and ifnull(ser.delete_flag,'0') !='1'
</select>
<select id="getIsNotSellCountByParam" resultType="java.lang.Integer">
select count(1) from jsh_serial_number
where material_id = #{materialId}
and serial_number = #{serialNumber}
and is_sell = '0'
and ifnull(delete_flag,'0') !='1'
</select>
</mapper>