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

280 lines
17 KiB
XML
Raw Normal View History

2025-07-08 11:24:05 +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.bonus.canteen.core.ims.mapper.ImsIntoInventoryMapper">
<resultMap type="com.bonus.canteen.core.ims.domain.ImsIntoInventory" id="ImsIntoInventoryResult">
<result property="intoId" column="into_id" />
<result property="intoCode" column="into_code" />
<result property="warehouseId" column="warehouse_id" />
<result property="intoDate" column="into_date" />
<result property="totalNum" column="total_num" />
<result property="intoType" column="into_type" />
<result property="status" column="status" />
<result property="refundOutId" column="refund_out_id" />
<result property="relateDeliveryGoodsId" column="relate_delivery_goods_id" />
<result property="totalAmount" column="total_amount" />
<result property="relateOrderGoodsId" column="relate_order_goods_id" />
<result property="relateInspectGoodsId" column="relate_inspect_goods_id" />
<result property="intoRelateOutId" column="into_relate_out_id" />
<result property="goodsAllocationId" column="goods_allocation_id" />
<result property="remark" column="remark" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="warehouseName" column="warehouse_name" />
2025-07-09 13:47:00 +08:00
<result property="areaName" column="area_name" />
<result property="areaId" column="area_id" />
2025-07-08 11:24:05 +08:00
</resultMap>
<resultMap id="ImsIntoInventoryImsIntoInventoryDetailResult" type="com.bonus.canteen.core.ims.domain.ImsIntoInventory" extends="ImsIntoInventoryResult">
<collection property="imsIntoInventoryDetailList" ofType="com.bonus.canteen.core.ims.domain.ImsIntoInventoryDetail" column="into_id" select="selectImsIntoInventoryDetailList" />
</resultMap>
<resultMap type="com.bonus.canteen.core.ims.domain.ImsIntoInventoryDetail" id="ImsIntoInventoryDetailResult">
<result property="intoDetailId" column="into_detail_id" />
<result property="intoId" column="into_id" />
<result property="intoCode" column="into_code" />
<result property="inventoryId" column="inventory_id" />
<result property="materialId" column="material_id" />
<result property="supplierId" column="supplier_id" />
<result property="unitId" column="unit_id" />
<result property="size" column="size" />
<result property="unitPrice" column="unit_price" />
<result property="totalPrice" column="total_price" />
<result property="deliveryNum" column="delivery_num" />
<result property="purNum" column="pur_num" />
<result property="unqualifiedNum" column="unqualified_num" />
<result property="inventoryNum" column="inventory_num" />
<result property="productDate" column="product_date" />
<result property="expireTime" column="expire_time" />
<result property="imgUrl" column="img_url" />
<result property="ifFillInventory" column="if_fill_inventory" />
<result property="relateOrderGoodsDetailId" column="relate_order_goods_detail_id" />
<result property="relateDeliveryGoodsDetailId" column="relate_delivery_goods_detail_id" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="supplierName" column="supplier_name" />
2025-07-09 13:47:00 +08:00
<result property="materialName" column="material_name" />
<result property="materialTypeName" column="material_type_name" />
<result property="unitName" column="unit_name" />
<result property="barCode" column="bar_code" />
<result property="materialSize" column="material_size" />
<result property="materialCode" column="material_code" />
2025-07-08 11:24:05 +08:00
</resultMap>
<sql id="selectImsIntoInventoryVo">
select into_id, into_code, iii.warehouse_id, into_date, total_num, into_type, status,
refund_out_id, relate_delivery_goods_id, total_amount, relate_order_goods_id,
relate_inspect_goods_id, into_relate_out_id, goods_allocation_id, remark, iii.del_flag,
2025-07-09 13:47:00 +08:00
iii.create_by, iii.create_time, iii.update_by, iii.update_time, iwi.warehouse_name,
ba.area_name, ba.area_id
2025-07-08 11:24:05 +08:00
from ims_into_inventory iii
left join ims_warehouse_info iwi on iii.warehouse_id = iwi.warehouse_id
2025-07-09 13:47:00 +08:00
left join basic_area ba on iwi.area_id = ba.area_id
2025-07-08 11:24:05 +08:00
</sql>
<select id="selectImsIntoInventoryList" parameterType="com.bonus.canteen.core.ims.domain.ImsIntoInventory" resultMap="ImsIntoInventoryResult">
<include refid="selectImsIntoInventoryVo"/>
<where>
iii.del_flag = '0'
<if test="intoCode != null and intoCode != ''"> and iii.into_code = #{intoCode}</if>
<if test="warehouseId != null "> and iii.warehouse_id = #{warehouseId}</if>
<if test="intoDate != null "> and iii.into_date = #{intoDate}</if>
<if test="totalNum != null "> and iii.total_num = #{totalNum}</if>
<if test="intoType != null "> and iii.into_type = #{intoType}</if>
<if test="status != null "> and iii.status = #{status}</if>
<if test="refundOutId != null and refundOutId != ''"> and iii.refund_out_id = #{refundOutId}</if>
<if test="relateDeliveryGoodsId != null and relateDeliveryGoodsId != ''"> and iii.relate_delivery_goods_id = #{relateDeliveryGoodsId}</if>
<if test="totalAmount != null "> and total_amount = #{totalAmount}</if>
<if test="relateOrderGoodsId != null and relateOrderGoodsId != ''"> and iii.relate_order_goods_id = #{relateOrderGoodsId}</if>
<if test="relateInspectGoodsId != null and relateInspectGoodsId != ''"> and iii.relate_inspect_goods_id = #{relateInspectGoodsId}</if>
<if test="intoRelateOutId != null and intoRelateOutId != ''"> and iii.into_relate_out_id = #{intoRelateOutId}</if>
<if test="goodsAllocationId != null and goodsAllocationId != ''"> and iii.goods_allocation_id = #{goodsAllocationId}</if>
<if test="startDateTime != null">
and iii.into_date <![CDATA[ >= ]]> #{startDateTime}
</if>
<if test="endDateTime != null">
and iii.into_date <![CDATA[ <= ]]> #{endDateTime}
</if>
</where>
</select>
<select id="selectImsIntoInventoryByIntoId" parameterType="Long" resultMap="ImsIntoInventoryImsIntoInventoryDetailResult">
select into_id, into_code, iii.warehouse_id, into_date, total_num, into_type,
status, refund_out_id, relate_delivery_goods_id, total_amount,
relate_order_goods_id, relate_inspect_goods_id, into_relate_out_id,
2025-07-09 13:47:00 +08:00
goods_allocation_id, remark, iii.del_flag, iii.create_by, iii.create_time,
iii.update_by, iii.update_time, iwi.warehouse_name, ba.area_name, ba.area_id
2025-07-08 11:24:05 +08:00
from ims_into_inventory iii
left join ims_warehouse_info iwi on iii.warehouse_id = iwi.warehouse_id
2025-07-09 13:47:00 +08:00
left join basic_area ba on iwi.area_id = ba.area_id
2025-07-08 11:24:05 +08:00
where iii.into_id = #{intoId} and iii.del_flag = '0'
</select>
<select id="selectImsIntoInventoryDetailList" resultMap="ImsIntoInventoryDetailResult">
2025-07-09 13:47:00 +08:00
select into_detail_id, into_id, into_code, inventory_id, iiid.material_id, iiid.supplier_id,
iiid.unit_id, iiid.size, iiid.unit_price, total_price, delivery_num, pur_num, unqualified_num,
inventory_num, product_date, expire_time, iiid.img_url, if_fill_inventory,
2025-07-08 11:24:05 +08:00
relate_order_goods_detail_id, relate_delivery_goods_detail_id, iiid.del_flag,
2025-07-09 13:47:00 +08:00
iiid.create_by, iiid.create_time, iiid.update_by, iiid.update_time, isr.supplier_name,
cm.material_name, cmt.material_type_name,
iu.unit_name, cm.bar_code, cm.size AS material_size, cm.material_code
2025-07-08 11:24:05 +08:00
from ims_into_inventory_detail iiid
left join ims_supplier isr on iiid.supplier_id = isr.supplier_id
2025-07-09 13:47:00 +08:00
left join cook_material cm on iiid.material_id = cm.material_id
left join cook_material_type cmt on cm.material_type_id = cmt.material_type_id
left join ims_unit iu on iiid.unit_id = iu.unit_id
2025-07-08 11:24:05 +08:00
where iiid.into_id = #{into_id} and iiid.del_flag = '0'
</select>
2025-07-09 13:47:00 +08:00
<select id="selectImsIntoInventoryDetailListByInventoryId" resultMap="ImsIntoInventoryDetailResult">
select into_detail_id,
iiid.into_id,
iiid.into_code,
inventory_id,
material_id,
iiid.supplier_id,
unit_id,
size,
unit_price,
total_price,
delivery_num,
pur_num,
unqualified_num,
inventory_num,
product_date,
expire_time,
img_url,
if_fill_inventory,
relate_order_goods_detail_id,
relate_delivery_goods_detail_id,
iiid.del_flag,
iiid.create_by,
iiid.create_time,
iiid.update_by,
iiid.update_time
from ims_into_inventory_detail iiid
left join ims_into_inventory iii on iii.into_id = iiid.into_id
where iiid.inventory_id = #{inventoryId}
and iii.status = '2'
and iiid.inventory_num > 0
and iiid.del_flag = '0'
order by iii.into_date
</select>
2025-07-08 11:24:05 +08:00
<insert id="insertImsIntoInventory" parameterType="com.bonus.canteen.core.ims.domain.ImsIntoInventory" useGeneratedKeys="true" keyProperty="intoId">
insert into ims_into_inventory
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="intoCode != null and intoCode != ''">into_code,</if>
<if test="warehouseId != null">warehouse_id,</if>
<if test="intoDate != null">into_date,</if>
<if test="totalNum != null">total_num,</if>
<if test="intoType != null">into_type,</if>
<if test="status != null">status,</if>
<if test="refundOutId != null">refund_out_id,</if>
<if test="relateDeliveryGoodsId != null">relate_delivery_goods_id,</if>
<if test="totalAmount != null">total_amount,</if>
<if test="relateOrderGoodsId != null">relate_order_goods_id,</if>
<if test="relateInspectGoodsId != null">relate_inspect_goods_id,</if>
<if test="intoRelateOutId != null">into_relate_out_id,</if>
<if test="goodsAllocationId != null">goods_allocation_id,</if>
<if test="remark != null">remark,</if>
<if test="delFlag != null">del_flag,</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="intoCode != null and intoCode != ''">#{intoCode},</if>
<if test="warehouseId != null">#{warehouseId},</if>
<if test="intoDate != null">#{intoDate},</if>
<if test="totalNum != null">#{totalNum},</if>
<if test="intoType != null">#{intoType},</if>
<if test="status != null">#{status},</if>
<if test="refundOutId != null">#{refundOutId},</if>
<if test="relateDeliveryGoodsId != null">#{relateDeliveryGoodsId},</if>
<if test="totalAmount != null">#{totalAmount},</if>
<if test="relateOrderGoodsId != null">#{relateOrderGoodsId},</if>
<if test="relateInspectGoodsId != null">#{relateInspectGoodsId},</if>
<if test="intoRelateOutId != null">#{intoRelateOutId},</if>
<if test="goodsAllocationId != null">#{goodsAllocationId},</if>
<if test="remark != null">#{remark},</if>
<if test="delFlag != null">#{delFlag},</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="updateImsIntoInventory" parameterType="com.bonus.canteen.core.ims.domain.ImsIntoInventory">
update ims_into_inventory
<trim prefix="SET" suffixOverrides=",">
<if test="intoCode != null and intoCode != ''">into_code = #{intoCode},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="intoDate != null">into_date = #{intoDate},</if>
<if test="totalNum != null">total_num = #{totalNum},</if>
<if test="intoType != null">into_type = #{intoType},</if>
<if test="status != null">status = #{status},</if>
<if test="refundOutId != null">refund_out_id = #{refundOutId},</if>
<if test="relateDeliveryGoodsId != null">relate_delivery_goods_id = #{relateDeliveryGoodsId},</if>
<if test="totalAmount != null">total_amount = #{totalAmount},</if>
<if test="relateOrderGoodsId != null">relate_order_goods_id = #{relateOrderGoodsId},</if>
<if test="relateInspectGoodsId != null">relate_inspect_goods_id = #{relateInspectGoodsId},</if>
<if test="intoRelateOutId != null">into_relate_out_id = #{intoRelateOutId},</if>
<if test="goodsAllocationId != null">goods_allocation_id = #{goodsAllocationId},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="delFlag != null">del_flag = #{delFlag},</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 into_id = #{intoId}
</update>
<delete id="deleteImsIntoInventoryByIntoId" parameterType="Long">
update ims_into_inventory set del_flag = '2' where into_id = #{intoId}
</delete>
<delete id="deleteImsIntoInventoryByIntoIds" parameterType="String">
update ims_into_inventory set del_flag = '2' where into_id in
<foreach item="intoId" collection="array" open="(" separator="," close=")">
#{intoId}
</foreach>
</delete>
<delete id="deleteImsIntoInventoryDetailByIntoIds" parameterType="String">
update ims_into_inventory_detail set del_flag = '2' where into_id in
<foreach item="intoId" collection="array" open="(" separator="," close=")">
#{intoId}
</foreach>
</delete>
<delete id="deleteImsIntoInventoryDetailByIntoId" parameterType="Long">
update ims_into_inventory_detail set del_flag = '2' where into_id = #{intoId}
</delete>
<insert id="batchImsIntoInventoryDetail">
insert into ims_into_inventory_detail( into_detail_id, into_id, into_code, inventory_id, material_id, supplier_id, unit_id, size, unit_price, total_price, delivery_num, pur_num, unqualified_num, inventory_num, product_date, expire_time, img_url, if_fill_inventory, relate_order_goods_detail_id, relate_delivery_goods_detail_id, del_flag, create_by, create_time, update_by, update_time) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.intoDetailId}, #{item.intoId}, #{item.intoCode}, #{item.inventoryId}, #{item.materialId}, #{item.supplierId}, #{item.unitId}, #{item.size}, #{item.unitPrice}, #{item.totalPrice}, #{item.deliveryNum}, #{item.purNum}, #{item.unqualifiedNum}, #{item.inventoryNum}, #{item.productDate}, #{item.expireTime}, #{item.imgUrl}, #{item.ifFillInventory}, #{item.relateOrderGoodsDetailId}, #{item.relateDeliveryGoodsDetailId}, #{item.delFlag}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime})
</foreach>
</insert>
2025-07-09 13:47:00 +08:00
<update id="updateIntoInventoryNum">
update ims_into_inventory_detail
set inventory_num = inventory_num - #{fetchNum}
where into_detail_id = #{intoDetailId}
AND inventory_num >= #{fetchNum}
AND del_flag = '0'
</update>
2025-07-08 11:24:05 +08:00
</mapper>