Bonus-Cloud-JYY-Smart-Canteen/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/ims/GoodsTransferMapper.xml

168 lines
9.2 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.bonus.canteen.core.ims.mapper.GoodsTransferMapper">
<resultMap type="com.bonus.canteen.core.ims.domain.GoodsTransfer" id="GoodsTransferResult">
<result property="goodsTransferId" column="goods_transfer_id" />
<result property="goodsTransferCode" column="goods_transfer_code" />
<result property="outWarehouseId" column="out_warehouse_id" />
<result property="intoWarehouseId" column="into_warehouse_id" />
<result property="requestArrivalTime" column="request_arrival_time" />
<result property="transferStatus" column="transfer_status" />
<result property="processInstanceId" column="process_instance_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectGoodsTransferVo">
select goods_transfer_id, goods_transfer_code, out_warehouse_id, into_warehouse_id, request_arrival_time, transfer_status, process_instance_id, remark, create_by, create_time, update_by, update_time from ims_goods_transfer
</sql>
<select id="selectGoodsTransferList" parameterType="com.bonus.canteen.core.ims.domain.GoodsTransfer" resultMap="GoodsTransferResult">
<include refid="selectGoodsTransferVo"/>
<where>
<if test="goodsTransferId != null "> goods_transfer_id = #{goodsTransferId}</if>
<if test="goodsTransferCode != null and goodsTransferCode != ''"> and goods_transfer_code = #{goodsTransferCode}</if>
<if test="outWarehouseId != null "> and out_warehouse_id = #{outWarehouseId}</if>
<if test="intoWarehouseId != null "> and into_warehouse_id = #{intoWarehouseId}</if>
<if test="requestArrivalTime != null "> and request_arrival_time = #{requestArrivalTime}</if>
<if test="transferStatus != null "> and transfer_status = #{transferStatus}</if>
<if test="processInstanceId != null "> and process_instance_id = #{processInstanceId}</if>
</where>
</select>
<select id="selectGoodsTransferByGoodsTransferId" parameterType="Long" resultMap="GoodsTransferResult">
<include refid="selectGoodsTransferVo"/>
where goods_transfer_id = #{goodsTransferId}
</select>
<insert id="insertGoodsTransfer" parameterType="com.bonus.canteen.core.ims.domain.GoodsTransfer" useGeneratedKeys="true" keyProperty="goodsTransferId">
insert into ims_goods_transfer
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="goodsTransferCode != null">goods_transfer_code,</if>
<if test="outWarehouseId != null">out_warehouse_id,</if>
<if test="intoWarehouseId != null">into_warehouse_id,</if>
<if test="requestArrivalTime != null">request_arrival_time,</if>
<if test="transferStatus != null">transfer_status,</if>
<if test="processInstanceId != null">process_instance_id,</if>
<if test="remark != null">remark,</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="goodsTransferCode != null">#{goodsTransferCode},</if>
<if test="outWarehouseId != null">#{outWarehouseId},</if>
<if test="intoWarehouseId != null">#{intoWarehouseId},</if>
<if test="requestArrivalTime != null">#{requestArrivalTime},</if>
<if test="transferStatus != null">#{transferStatus},</if>
<if test="processInstanceId != null">#{processInstanceId},</if>
<if test="remark != null">#{remark},</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="updateGoodsTransfer" parameterType="com.bonus.canteen.core.ims.domain.GoodsTransfer">
update ims_goods_transfer
<trim prefix="SET" suffixOverrides=",">
<if test="goodsTransferCode != null">goods_transfer_code = #{goodsTransferCode},</if>
<if test="outWarehouseId != null">out_warehouse_id = #{outWarehouseId},</if>
<if test="intoWarehouseId != null">into_warehouse_id = #{intoWarehouseId},</if>
<if test="requestArrivalTime != null">request_arrival_time = #{requestArrivalTime},</if>
<if test="transferStatus != null">transfer_status = #{transferStatus},</if>
<if test="processInstanceId != null">process_instance_id = #{processInstanceId},</if>
<if test="remark != null">remark = #{remark},</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 goods_transfer_id = #{goodsTransferId}
</update>
<delete id="deleteGoodsTransferByGoodsTransferId" parameterType="Long">
delete from ims_goods_transfer where goods_transfer_id = #{goodsTransferId}
</delete>
<delete id="deleteGoodsTransferByGoodsTransferIds" parameterType="String">
delete from ims_goods_transfer where goods_transfer_id in
<foreach item="goodsTransferId" collection="array" open="(" separator="," close=")">
#{goodsTransferId}
</foreach>
</delete>
<select id="getGoodsAllocationList" resultType="com.bonus.canteen.core.ims.vo.GoodsAllocationVO">
SELECT
dga.goods_transfer_id,
dga.goods_transfer_code,
dga.into_warehouse_id,
dga.out_warehouse_id,
dga.request_arrival_time,
dw.warehouse_name AS outWarehouseName,
dw2.warehouse_name AS intoWarehouseName,
( SELECT count( 1 ) FROM ims_goods_transfer_detail dgad WHERE dgad.goods_transfer_id = dga.goods_transfer_id ) AS materialCount,
( SELECT sum( dgad2.order_num ) FROM ims_goods_transfer_detail dgad2 WHERE dgad2.goods_transfer_id = dga.goods_transfer_id ) AS orderNumTotal,
dga.transfer_status,
dga.create_by,
dga.create_time,
dga.remark,
dga.process_instance_id,
dw.area_id,
aa.area_name
FROM
ims_goods_transfer dga
LEFT JOIN ims_warehouse_info dw ON dga.out_warehouse_id = dw.warehouse_id
LEFT JOIN ims_warehouse_info dw2 ON dga.into_warehouse_id = dw2.warehouse_id
LEFT JOIN basic_area aa ON aa.area_id = dw.area_id
<where>
<if test="content.goodsTransferId != null and content.goodsTransferId != ''">
and dga.goods_transfer_id = #{content.goodsTransferId}
</if>
<if test="content.goodsTransferCode != null and content.goodsTransferCode != ''">
and dga.goods_transfer_code like CONCAT('%', #{content.goodsTransferCode}, '%')
</if>
<if test="content.outWarehouseId != null">
and dga.out_warehouse_id = #{content.outWarehouseId}
</if>
<if test="content.intoWarehouseId != null ">
and dga.into_warehouse_id = #{content.intoWarehouseId}
</if>
<if test="content.startTime != null and content.startTime != ''">
and dga.request_arrival_time <![CDATA[ >= ]]> #{content.startTime}
</if>
<if test="content.endTime != null and content.endTime != ''">
and dga.request_arrival_time <![CDATA[ <= ]]> #{content.endTime}
</if>
<if test="content.transferStatus != null">
and dga.allocation_status = #{content.transferStatus}
</if>
<if test="content.areaIdList != null and content.areaIdList.size() > 0">
AND aa.area_id in
<foreach collection="content.areaIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</where>
order by dga.create_time desc
</select>
<select id="getLibraryNumByMaterialIdAndWarehouseId" resultType="string">
select material_num from ims_inventory
where material_id = #{materialId} and warehouse_id = #{warehouseId}
</select>
<update id="updateAllowTransferNumByMaterialIdAndWarehouseId">
update ims_goods_transfer_detail
set allow_transfer_num = #{libraryNum}
where material_id = #{materialId} and inventory_id = #{inventoryId}
</update>
</mapper>