Files
FT541-WMS/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml
2026-05-18 15:15:49 +08:00

345 lines
21 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.ruoyi.in.stockindetail.mapper.InStockinDetailMapper">
<resultMap type="InStockinDetail" id="InStockinDetailResult">
<result property="stockinDetailId" column="stockin_detail_id" />
<result property="stockinGuid" column="stockin_guid" />
<result property="stockinId" column="stockin_id" />
<result property="lotNo" column="lot_no" />
<result property="productGuid" column="product_guid" />
<result property="productId" column="product_id" />
<result property="quantity" column="quantity" />
<result property="quantityX" column="quantity_x" />
<result property="quantityJ" column="quantity_j" />
<result property="price" column="price" />
<result property="cargoNo" column="cargo_no" />
<result property="remark" column="remark" />
<result property="assignNum" column="assign_num" />
<result property="assignNumX" column="assign_num_x" />
<result property="assignNumJ" column="assign_num_j" />
<result property="printDate" column="print_date" />
<result property="stockStatus" column="stock_status" />
<result property="supplierId" column="supplier_id" />
<result property="customerId" column="customer_id" />
<result property="unit" column="unit" />
<result property="spec" column="spec" />
<result property="spare1" column="spare1" />
<result property="spare2" column="spare2" />
<result property="spare3" column="spare3" />
<result property="spare4" column="spare4" />
<result property="spare5" column="spare5" />
<result property="spare6" column="spare6" />
<result property="spare7" column="spare7" />
<result property="spare8" column="spare8" />
<result property="spare9" column="spare9" />
<result property="scanNum" column="scan_num" />
<result property="scanNumX" column="scan_num_x" />
<result property="scanNumJ" column="scan_num_j" />
<result property="warehouseName" column="warehouse_name" />
<result property="warehouseId" column="warehouse_id" />
<result property="productName" column="product_name" />
<result property="supplierName" column="supplier_name" />
<collection
property="trayList"
javaType="java.util.List"
ofType="InStockTraycodeBindMsg">
<result property="id" column="bind_msg_id"/>
<result property="quantity" column="traycode_quantity"/>
<result property="trayCode" column="tray_code"/>
<result property="location" column="location"/>
</collection>
</resultMap>
<sql id="selectInStockinDetailVo">
select
isd.stockin_detail_id, isd.stockin_guid, isd.stockin_id, isd.lot_no, isd.product_guid,
isd.product_id, isd.quantity, (CAST(isd.quantity AS INT) - CAST(isd.scan_num AS INT)) as quantity_x, isd.quantity_j, isd.price, bp.cargo_no, isd.remark,
isd.assign_num, isd.assign_num_x, isd.assign_num_j, isd.print_date, isd.stock_status,
isd.supplier_id, isd.customer_id, bp.unit, bp.spec, isd.spare1, isd.spare2, isd.spare3, isd.spare4,
isd.spare5, isd.spare6, isd.scan_num, isd.scan_num_x, isd.scan_num_j,
bp.product_name,
isd.spare7,
isd.spare8,
isd.spare9,
bs.supplier_name,
istbm.tray_code,
istbm.location,
istbm.quantity as traycode_quantity,
istbm.id as bind_msg_id
from in_stockin_detail isd
left join in_stock_traycode_bind_msg istbm on isd.stockin_detail_id = istbm.in_stock_detail_id
left join bas_product bp on bp.product_id = isd.product_id
left join bas_supplier bs on bs.supplier_no = isd.supplier_id
</sql>
<select id="selectInStockinDetailList" parameterType="InStockinDetail" resultMap="InStockinDetailResult">
<include refid="selectInStockinDetailVo"/>
<where>
<if test="stockinGuid != null and stockinGuid != ''"> and isd.stockin_guid = #{stockinGuid}</if>
<if test="stockinId != null and stockinId != ''"> and isd.stockin_id = #{stockinId}</if>
<if test="lotNo != null and lotNo != ''"> and isd.lot_no = #{lotNo}</if>
<if test="productGuid != null and productGuid != ''"> and isd.product_guid = #{productGuid}</if>
<if test="productId != null and productId != ''"> and isd.product_id = #{productId}</if>
<if test="quantity != null and quantity != ''"> and isd.quantity = #{quantity}</if>
<if test="quantityX != null and quantityX != ''"> and isd.quantity_x = #{quantityX}</if>
<if test="quantityJ != null and quantityJ != ''"> and isd.quantity_j = #{quantityJ}</if>
<if test="price != null and price != ''"> and isd.price = #{price}</if>
<if test="cargoNo != null and cargoNo != ''"> and isd.cargo_no = #{cargoNo}</if>
<if test="assignNum != null and assignNum != ''"> and isd.assign_num = #{assignNum}</if>
<if test="assignNumX != null and assignNumX != ''"> and isd.assign_num_x = #{assignNumX}</if>
<if test="assignNumJ != null and assignNumJ != ''"> and isd.assign_num_j = #{assignNumJ}</if>
<if test="printDate != null and printDate != ''"> and isd.print_date = #{printDate}</if>
<if test="stockStatus != null and stockStatus != ''"> and isd.stock_status = #{stockStatus}</if>
<if test="supplierId != null and supplierId != ''"> and isd.supplier_id = #{supplierId}</if>
<if test="customerId != null and customerId != ''"> and isd.customer_id = #{customerId}</if>
<if test="unit != null and unit != ''"> and isd.unit = #{unit}</if>
<if test="spec != null and spec != ''"> and isd.spec = #{spec}</if>
<if test="spare1 != null and spare1 != ''"> and isd.spare1 = #{spare1}</if>
<if test="spare2 != null and spare2 != ''"> and isd.spare2 = #{spare2}</if>
<if test="spare3 != null and spare3 != ''"> and isd.spare3 = #{spare3}</if>
<if test="spare4 != null and spare4 != ''"> and isd.spare4 = #{spare4}</if>
<if test="spare5 != null and spare5 != ''"> and isd.spare5 like concat('%',#{spare5},'%') </if>
<if test="spare6 != null and spare6 != ''"> and isd.spare6 like concat('%',#{spare6},'%') </if>
<if test="spare7 != null and spare7 != ''"> and isd.spare7 like concat('%',#{spare7},'%') </if>
<if test="spare9 != null and spare9 != ''"> and isd.spare9 like concat('%',#{spare9},'%') </if>
<if test="scanNum != null and scanNum != ''"> and isd.scan_num = #{scanNum}</if>
<if test="scanNumX != null and scanNumX != ''"> and isd.scan_num_x = #{scanNumX}</if>
<if test="scanNumJ != null and scanNumJ != ''"> and isd.scan_num_j = #{scanNumJ}</if>
<if test="assignedStatus != null and assignedStatus == 'assigned'"> and isd.assign_num &gt; 0</if>
<if test="assignedStatus != null and assignedStatus == 'unassigned'"> and isd.assign_num = 0</if>
</where>
</select>
<select id="selectInStockinDetailByStockinDetailId" parameterType="String" resultMap="InStockinDetailResult">
<include refid="selectInStockinDetailVo"/>
where stockin_detail_id = #{stockinDetailId}
</select>
<insert id="insertInStockinDetail" parameterType="InStockinDetail">
insert into in_stockin_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="stockinDetailId != null">stockin_detail_id,</if>
<if test="stockinGuid != null and stockinGuid != ''">stockin_guid,</if>
<if test="stockinId != null and stockinId != ''">stockin_id,</if>
<if test="lotNo != null and lotNo != ''">lot_no,</if>
<if test="productGuid != null">product_guid,</if>
<if test="productId != null and productId != ''">product_id,</if>
<if test="quantity != null">quantity,</if>
<if test="quantityX != null">quantity_x,</if>
<if test="quantityJ != null">quantity_j,</if>
<if test="price != null">price,</if>
<if test="cargoNo != null">cargo_no,</if>
<if test="remark != null">remark,</if>
<if test="assignNum != null">assign_num,</if>
<if test="assignNumX != null">assign_num_x,</if>
<if test="assignNumJ != null">assign_num_j,</if>
<if test="printDate != null">print_date,</if>
<if test="stockStatus != null">stock_status,</if>
<if test="supplierId != null">supplier_id,</if>
<if test="customerId != null">customer_id,</if>
<if test="unit != null">unit,</if>
<if test="spec != null">spec,</if>
<if test="spare1 != null">spare1,</if>
<if test="spare2 != null">spare2,</if>
<if test="spare3 != null">spare3,</if>
<if test="spare4 != null">spare4,</if>
<if test="spare5 != null">spare5,</if>
<if test="spare6 != null">spare6,</if>
<if test="spare7 != null">spare7,</if>
<if test="spare8 != null">spare8,</if>
<if test="spare9 != null">spare9,</if>
<if test="scanNum != null">scan_num,</if>
<if test="scanNumX != null">scan_num_x,</if>
<if test="scanNumJ != null">scan_num_j,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockinDetailId != null">#{stockinDetailId},</if>
<if test="stockinGuid != null and stockinGuid != ''">#{stockinGuid},</if>
<if test="stockinId != null and stockinId != ''">#{stockinId},</if>
<if test="lotNo != null and lotNo != ''">#{lotNo},</if>
<if test="productGuid != null">#{productGuid},</if>
<if test="productId != null and productId != ''">#{productId},</if>
<if test="quantity != null">#{quantity},</if>
<if test="quantityX != null">#{quantityX},</if>
<if test="quantityJ != null">#{quantityJ},</if>
<if test="price != null">#{price},</if>
<if test="cargoNo != null">#{cargoNo},</if>
<if test="remark != null">#{remark},</if>
<if test="assignNum != null">#{assignNum},</if>
<if test="assignNumX != null">#{assignNumX},</if>
<if test="assignNumJ != null">#{assignNumJ},</if>
<if test="printDate != null">#{printDate},</if>
<if test="stockStatus != null">#{stockStatus},</if>
<if test="supplierId != null">#{supplierId},</if>
<if test="customerId != null">#{customerId},</if>
<if test="unit != null">#{unit},</if>
<if test="spec != null">#{spec},</if>
<if test="spare1 != null">#{spare1},</if>
<if test="spare2 != null">#{spare2},</if>
<if test="spare3 != null">#{spare3},</if>
<if test="spare4 != null">#{spare4},</if>
<if test="spare5 != null">#{spare5},</if>
<if test="spare6 != null">#{spare6},</if>
<if test="spare7 != null">#{spare7},</if>
<if test="spare8 != null">#{spare8},</if>
<if test="spare9 != null">#{spare9},</if>
<if test="scanNum != null">#{scanNum},</if>
<if test="scanNumX != null">#{scanNumX},</if>
<if test="scanNumJ != null">#{scanNumJ},</if>
</trim>
</insert>
<insert id="insertInStockinDetailList">
INSERT INTO in_stockin_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<!-- 动态选择字段 -->
<if test="list[0].stockinDetailId != null">stockin_detail_id,</if>
<if test="list[0].stockinGuid != null and list[0].stockinGuid != ''">stockin_guid,</if>
<if test="list[0].stockinId != null and list[0].stockinId != ''">stockin_id,</if>
<if test="list[0].lotNo != null and list[0].lotNo != ''">lot_no,</if>
<if test="list[0].productGuid != null">product_guid,</if>
<if test="list[0].productId != null and list[0].productId != ''">product_id,</if>
<if test="list[0].quantity != null">quantity,</if>
<if test="list[0].quantityX != null">quantity_x,</if>
<if test="list[0].quantityJ != null">quantity_j,</if>
<if test="list[0].price != null">price,</if>
<if test="list[0].cargoNo != null">cargo_no,</if>
<if test="list[0].remark != null">remark,</if>
<if test="list[0].assignNum != null">assign_num,</if>
<if test="list[0].assignNumX != null">assign_num_x,</if>
<if test="list[0].assignNumJ != null">assign_num_j,</if>
<if test="list[0].printDate != null">print_date,</if>
<if test="list[0].stockStatus != null">stock_status,</if>
<if test="list[0].supplierId != null">supplier_id,</if>
<if test="list[0].customerId != null">customer_id,</if>
<if test="list[0].unit != null">unit,</if>
<if test="list[0].spec != null">spec,</if>
<if test="list[0].spare1 != null">spare1,</if>
<if test="list[0].spare2 != null">spare2,</if>
<if test="list[0].spare3 != null">spare3,</if>
<if test="list[0].spare4 != null">spare4,</if>
<if test="list[0].spare5 != null">spare5,</if>
<if test="list[0].spare6 != null">spare6,</if>
<if test="list[0].scanNum != null">scan_num,</if>
<if test="list[0].scanNumX != null">scan_num_x,</if>
<if test="list[0].scanNumJ != null">scan_num_j,</if>
</trim>
<!-- values 部分:遍历列表插入多行 -->
VALUES
<foreach collection="list" item="item" separator=",">
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="item.stockinDetailId != null">#{item.stockinDetailId},</if>
<if test="item.stockinGuid != null and item.stockinGuid != ''">#{item.stockinGuid},</if>
<if test="item.stockinId != null and item.stockinId != ''">#{item.stockinId},</if>
<if test="item.lotNo != null and item.lotNo != ''">#{item.lotNo},</if>
<if test="item.productGuid != null">#{item.productGuid},</if>
<if test="item.productId != null and item.productId != ''">#{item.productId},</if>
<if test="item.quantity != null">#{item.quantity},</if>
<if test="item.quantityX != null">#{item.quantityX},</if>
<if test="item.quantityJ != null">#{item.quantityJ},</if>
<if test="item.price != null">#{item.price},</if>
<if test="item.cargoNo != null">#{item.cargoNo},</if>
<if test="item.remark != null">#{item.remark},</if>
<if test="item.assignNum != null">#{item.assignNum},</if>
<if test="item.assignNumX != null">#{item.assignNumX},</if>
<if test="item.assignNumJ != null">#{item.assignNumJ},</if>
<if test="item.printDate != null">#{item.printDate},</if>
<if test="item.stockStatus != null">#{item.stockStatus},</if>
<if test="item.supplierId != null">#{item.supplierId},</if>
<if test="item.customerId != null">#{item.customerId},</if>
<if test="item.unit != null">#{item.unit},</if>
<if test="item.spec != null">#{item.spec},</if>
<if test="item.spare1 != null">#{item.spare1},</if>
<if test="item.spare2 != null">#{item.spare2},</if>
<if test="item.spare3 != null">#{item.spare3},</if>
<if test="item.spare4 != null">#{item.spare4},</if>
<if test="item.spare5 != null">#{item.spare5},</if>
<if test="item.spare6 != null">#{item.spare6},</if>
<if test="item.scanNum != null">#{item.scanNum},</if>
<if test="item.scanNumX != null">#{item.scanNumX},</if>
<if test="item.scanNumJ != null">#{item.scanNumJ},</if>
</trim>
</foreach>
</insert>
<insert id="insertInStockinDetailHistory">
insert into in_stockin_detail_finish
select * from in_stockin_detail where stockin_guid = #{stockinGuid}
</insert>
<update id="updateInStockinDetail" parameterType="InStockinDetail">
update in_stockin_detail
<trim prefix="SET" suffixOverrides=",">
<if test="stockinGuid != null and stockinGuid != ''">stockin_guid = #{stockinGuid},</if>
<if test="stockinId != null and stockinId != ''">stockin_id = #{stockinId},</if>
<if test="lotNo != null and lotNo != ''">lot_no = #{lotNo},</if>
<if test="productGuid != null">product_guid = #{productGuid},</if>
<if test="productId != null and productId != ''">product_id = #{productId},</if>
<if test="quantity != null">quantity = #{quantity},</if>
<if test="quantityX != null">quantity_x = #{quantityX},</if>
<if test="quantityJ != null">quantity_j = #{quantityJ},</if>
<if test="price != null">price = #{price},</if>
<if test="cargoNo != null">cargo_no = #{cargoNo},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="assignNum != null">assign_num = #{assignNum},</if>
<if test="assignNumX != null">assign_num_x = #{assignNumX},</if>
<if test="assignNumJ != null">assign_num_j = #{assignNumJ},</if>
<if test="printDate != null">print_date = #{printDate},</if>
<if test="stockStatus != null">stock_status = #{stockStatus},</if>
<if test="supplierId != null">supplier_id = #{supplierId},</if>
<if test="customerId != null">customer_id = #{customerId},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="spec != null">spec = #{spec},</if>
<if test="spare1 != null">spare1 = #{spare1},</if>
<if test="spare2 != null">spare2 = #{spare2},</if>
<if test="spare3 != null">spare3 = #{spare3},</if>
<if test="spare4 != null">spare4 = #{spare4},</if>
<if test="spare5 != null">spare5 = #{spare5},</if>
<if test="spare6 != null">spare6 = #{spare6},</if>
<if test="scanNum != null">scan_num = #{scanNum},</if>
<if test="scanNumX != null">scan_num_x = #{scanNumX},</if>
<if test="scanNumJ != null">scan_num_j = #{scanNumJ},</if>
</trim>
where stockin_detail_id = #{stockinDetailId}
</update>
<delete id="deleteInStockinDetailByStockinDetailId" parameterType="String">
delete from in_stockin_detail where stockin_detail_id = #{stockinDetailId}
</delete>
<delete id="deleteInStockinDetailByStockinDetailIds" parameterType="String">
delete from in_stockin_detail where stockin_detail_id in
<foreach item="stockinDetailId" collection="array" open="(" separator="," close=")">
#{stockinDetailId}
</foreach>
</delete>
<delete id="deleteInStockinDetailByStockinGuid">
delete from in_stockin_detail where stockin_guid = #{stockinGuid}
</delete>
<select id="selectStockinByDetailById" parameterType="InstockinDetail" resultMap="InStockinDetailResult">
select
isd.stockin_detail_id, isd.stockin_guid, isd.stockin_id, isd.lot_no, isd.product_guid,
isd.product_id, isd.quantity-isd.scan_num as quantity, isd.quantity_x, isd.quantity_j, isd.price, isd.cargo_no, isd.remark,
isd.assign_num, isd.assign_num_x, isd.assign_num_j, isd.print_date, isd.stock_status,
isd.supplier_id, isd.customer_id, isd.unit, isd.spec, isd.spare1, isd.spare2, isd.spare3, isd.spare4,
isd.spare5, isd.spare6, isd.scan_num, isd.scan_num_x, isd.scan_num_j,
bp.product_name, bp.spare1 as englishDesc,
bp.spare2 as netWeight,bp.spare5 as length,bp.spare6 as width,bp.spare7 as height,bp.spare8 as volume,bw.warehouse_name,ist.warehouse_id
from in_stockin_detail isd
left join bas_product bp on bp.product_id = isd.product_id
left join in_stockin ist on ist.stockin_guid = isd.stockin_guid
left join bas_warehouse bw on bw.warehouse_id = ist.warehouse_id
<where>
<if test="stockinDetailId != null and stockinDetailId != '' ">
isd.stockin_detail_id = #{stockinDetailId}
</if>
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
${params.warehouseDataScope}
</if>
</where>
order by ist.create_date desc
</select>
</mapper>