feat: 打通出库作业链路

This commit is contained in:
zgw
2026-06-24 09:13:18 +08:00
parent a3c023a8d3
commit 1af5b3cbd3
141 changed files with 17337 additions and 1065 deletions

View File

@@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:sqlserver://172.16.4.12:1433;databaseName=flrd-wms;encrypt=false;sendStringParametersAsUnicode=true
url: jdbc:sqlserver://172.16.4.12:1433;databaseName=FTC25009-WMS;encrypt=false;sendStringParametersAsUnicode=true
username: sa
password: Flrd0914.
# 从库数据源

View File

@@ -166,11 +166,11 @@ external:
reportMaterialConsume: /material/consume
reportQualityCheck: /quality/check
WCS:
base-url: http://10.0.3.100:9000
base-url: http://172.16.4.63:8084
token: wcs-token
apis:
sendPutawayTask: /task/dispatch
sendRetrieveTask: /task/dispatch
sendPutawayTask: /wcs/api/receiveWmsJob
sendRetrieveTask: /wcs/api/receiveWmsJob
queryDeviceStatus: /device/status
sendCraneMove: /crane/move
cancelTask: /task/cancel

View File

@@ -0,0 +1,22 @@
<?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.api.mapper.ApiLogMapper">
<insert id="insertApiLog" parameterType="com.ruoyi.api.domain.ApiLog">
insert into bas_api_log(
direction, sys_code, interface_name, request_url, request_method,
request_body, response_body, msg_type, http_status, cost_ms,
status, error_msg, source_ip, trace_id, create_time
) values (
#{direction}, #{sysCode}, #{interfaceName}, #{requestUrl}, #{requestMethod},
#{requestBody}, #{responseBody}, #{msgType}, #{httpStatus}, #{costMs},
#{status}, #{errorMsg}, #{sourceIp}, #{traceId}, getdate()
)
</insert>
<delete id="deleteExpiredApiLog">
delete from bas_api_log where create_time &lt; dateadd(day, -30, getdate())
</delete>
</mapper>

View File

@@ -69,6 +69,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</insert>
<select id="lockBarcodeFormatForGenerate" parameterType="Long" resultType="java.lang.Long">
select id
from bas_barcode_format with (UPDLOCK, HOLDLOCK)
where id = #{formatId}
</select>
<select id="selectMaxSerialByFormat" parameterType="java.util.Map" resultType="java.lang.Long">
select isnull(max(try_convert(bigint,
substring(barcode_no, #{prefixLength} + 1, len(barcode_no) - #{prefixLength} - #{suffixLength})
)), 0)
from bas_barcode_data
where format_id = #{formatId}
and len(isnull(barcode_no, '')) &gt; #{prefixLength} + #{suffixLength}
and (#{prefixLength} = 0 or left(barcode_no, #{prefixLength}) = #{prefix})
and (#{suffixLength} = 0 or right(barcode_no, #{suffixLength}) = #{suffix})
and try_convert(bigint,
substring(barcode_no, #{prefixLength} + 1, len(barcode_no) - #{prefixLength} - #{suffixLength})
) is not null
</select>
<update id="updateBasBarcodeData" parameterType="BasBarcodeData">
update bas_barcode_data
<trim prefix="SET" suffixOverrides=",">
@@ -92,4 +112,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -13,22 +13,70 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="unit" column="unit" />
<result property="spec" column="spec" />
<result property="remark" column="remark" />
<result property="createOrgCode" column="create_org_code" />
<result property="createOrgName" column="create_org_name" />
<result property="useOrgCode" column="use_org_code" />
<result property="useOrgName" column="use_org_name" />
<result property="mnemonicCode" column="mnemonic_code" />
<result property="oldProductCode" column="old_product_code" />
<result property="matchByLot" column="match_by_lot" />
<result property="drawingNo" column="drawing_no" />
<result property="partCode" column="part_code" />
<result property="productType" column="product_type" />
<result property="projectNo" column="project_no" />
<result property="brand" column="brand" />
<result property="purchaseRemark" column="purchase_remark" />
<result property="productQualityCode" column="product_quality_code" />
<result property="productQualityName" column="product_quality_name" />
<result property="erpClass" column="erp_class" />
<result property="featureItem" column="feature_item" />
<result property="inventoryCategoryCode" column="inventory_category_code" />
<result property="inventoryCategoryName" column="inventory_category_name" />
<result property="allowPurchase" column="allow_purchase" />
<result property="allowInventory" column="allow_inventory" />
<result property="allowSubcontract" column="allow_subcontract" />
<result property="allowSale" column="allow_sale" />
<result property="allowProduce" column="allow_produce" />
<result property="allowAsset" column="allow_asset" />
<result property="grossWeight" column="gross_weight" />
<result property="netWeight" column="net_weight" />
<result property="weightUnitCode" column="weight_unit_code" />
<result property="weightUnitName" column="weight_unit_name" />
<result property="isSuite" column="is_suite" />
</resultMap>
<sql id="selectBasProductVo">
select product_id, product_name, parent_id, price, cargo_no, unit, spec, remark from bas_product
select product_id, product_name, parent_id, price, cargo_no, unit, spec, remark,
create_org_code, create_org_name, use_org_code, use_org_name,
mnemonic_code, old_product_code, match_by_lot, drawing_no, part_code,
product_type, project_no, brand, purchase_remark,
product_quality_code, product_quality_name, erp_class, feature_item,
inventory_category_code, inventory_category_name,
allow_purchase, allow_inventory, allow_subcontract, allow_sale,
allow_produce, allow_asset, gross_weight, net_weight,
weight_unit_code, weight_unit_name, is_suite
from bas_product
</sql>
<select id="selectBasProductList" parameterType="BasProduct" resultMap="BasProductResult">
<include refid="selectBasProductVo"/>
<where>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if>
<if test="price != null and price != ''"> and price = #{price}</if>
<if test="cargoNo != null and cargoNo != ''"> and cargo_no = #{cargoNo}</if>
<if test="cargoNo != null and cargoNo != ''"> and (cargo_no like concat('%', #{cargoNo}, '%') or drawing_no like concat('%', #{cargoNo}, '%'))</if>
<if test="drawingNo != null and drawingNo != ''"> and drawing_no like concat('%', #{drawingNo}, '%')</if>
<if test="oldProductCode != null and oldProductCode != ''"> and old_product_code like concat('%', #{oldProductCode}, '%')</if>
<if test="unit != null and unit != ''"> and unit = #{unit}</if>
<if test="spec != null and spec != ''"> and spec = #{spec}</if>
<if test="spec != null and spec != ''"> and spec like concat('%', #{spec}, '%')</if>
<if test="mnemonicCode != null and mnemonicCode != ''"> and mnemonic_code like concat('%', #{mnemonicCode}, '%')</if>
<if test="productType != null and productType != ''"> and product_type = #{productType}</if>
<if test="projectNo != null and projectNo != ''"> and project_no like concat('%', #{projectNo}, '%')</if>
<if test="brand != null and brand != ''"> and brand like concat('%', #{brand}, '%')</if>
<if test="productQualityName != null and productQualityName != ''"> and product_quality_name like concat('%', #{productQualityName}, '%')</if>
</where>
order by product_id desc
</select>
<select id="selectBasProductByProductId" parameterType="String" resultMap="BasProductResult">
@@ -47,6 +95,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="unit != null">unit,</if>
<if test="spec != null">spec,</if>
<if test="remark != null">remark,</if>
<if test="createOrgCode != null">create_org_code,</if>
<if test="createOrgName != null">create_org_name,</if>
<if test="useOrgCode != null">use_org_code,</if>
<if test="useOrgName != null">use_org_name,</if>
<if test="mnemonicCode != null">mnemonic_code,</if>
<if test="oldProductCode != null">old_product_code,</if>
<if test="matchByLot != null">match_by_lot,</if>
<if test="drawingNo != null">drawing_no,</if>
<if test="partCode != null">part_code,</if>
<if test="productType != null">product_type,</if>
<if test="projectNo != null">project_no,</if>
<if test="brand != null">brand,</if>
<if test="purchaseRemark != null">purchase_remark,</if>
<if test="productQualityCode != null">product_quality_code,</if>
<if test="productQualityName != null">product_quality_name,</if>
<if test="erpClass != null">erp_class,</if>
<if test="featureItem != null">feature_item,</if>
<if test="inventoryCategoryCode != null">inventory_category_code,</if>
<if test="inventoryCategoryName != null">inventory_category_name,</if>
<if test="allowPurchase != null">allow_purchase,</if>
<if test="allowInventory != null">allow_inventory,</if>
<if test="allowSubcontract != null">allow_subcontract,</if>
<if test="allowSale != null">allow_sale,</if>
<if test="allowProduce != null">allow_produce,</if>
<if test="allowAsset != null">allow_asset,</if>
<if test="grossWeight != null">gross_weight,</if>
<if test="netWeight != null">net_weight,</if>
<if test="weightUnitCode != null">weight_unit_code,</if>
<if test="weightUnitName != null">weight_unit_name,</if>
<if test="isSuite != null">is_suite,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="productId != null">#{productId},</if>
@@ -57,6 +135,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="unit != null">#{unit},</if>
<if test="spec != null">#{spec},</if>
<if test="remark != null">#{remark},</if>
<if test="createOrgCode != null">#{createOrgCode},</if>
<if test="createOrgName != null">#{createOrgName},</if>
<if test="useOrgCode != null">#{useOrgCode},</if>
<if test="useOrgName != null">#{useOrgName},</if>
<if test="mnemonicCode != null">#{mnemonicCode},</if>
<if test="oldProductCode != null">#{oldProductCode},</if>
<if test="matchByLot != null">#{matchByLot},</if>
<if test="drawingNo != null">#{drawingNo},</if>
<if test="partCode != null">#{partCode},</if>
<if test="productType != null">#{productType},</if>
<if test="projectNo != null">#{projectNo},</if>
<if test="brand != null">#{brand},</if>
<if test="purchaseRemark != null">#{purchaseRemark},</if>
<if test="productQualityCode != null">#{productQualityCode},</if>
<if test="productQualityName != null">#{productQualityName},</if>
<if test="erpClass != null">#{erpClass},</if>
<if test="featureItem != null">#{featureItem},</if>
<if test="inventoryCategoryCode != null">#{inventoryCategoryCode},</if>
<if test="inventoryCategoryName != null">#{inventoryCategoryName},</if>
<if test="allowPurchase != null">#{allowPurchase},</if>
<if test="allowInventory != null">#{allowInventory},</if>
<if test="allowSubcontract != null">#{allowSubcontract},</if>
<if test="allowSale != null">#{allowSale},</if>
<if test="allowProduce != null">#{allowProduce},</if>
<if test="allowAsset != null">#{allowAsset},</if>
<if test="grossWeight != null">#{grossWeight},</if>
<if test="netWeight != null">#{netWeight},</if>
<if test="weightUnitCode != null">#{weightUnitCode},</if>
<if test="weightUnitName != null">#{weightUnitName},</if>
<if test="isSuite != null">#{isSuite},</if>
</trim>
</insert>
@@ -70,6 +178,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="unit != null">unit = #{unit},</if>
<if test="spec != null">spec = #{spec},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createOrgCode != null">create_org_code = #{createOrgCode},</if>
<if test="createOrgName != null">create_org_name = #{createOrgName},</if>
<if test="useOrgCode != null">use_org_code = #{useOrgCode},</if>
<if test="useOrgName != null">use_org_name = #{useOrgName},</if>
<if test="mnemonicCode != null">mnemonic_code = #{mnemonicCode},</if>
<if test="oldProductCode != null">old_product_code = #{oldProductCode},</if>
<if test="matchByLot != null">match_by_lot = #{matchByLot},</if>
<if test="drawingNo != null">drawing_no = #{drawingNo},</if>
<if test="partCode != null">part_code = #{partCode},</if>
<if test="productType != null">product_type = #{productType},</if>
<if test="projectNo != null">project_no = #{projectNo},</if>
<if test="brand != null">brand = #{brand},</if>
<if test="purchaseRemark != null">purchase_remark = #{purchaseRemark},</if>
<if test="productQualityCode != null">product_quality_code = #{productQualityCode},</if>
<if test="productQualityName != null">product_quality_name = #{productQualityName},</if>
<if test="erpClass != null">erp_class = #{erpClass},</if>
<if test="featureItem != null">feature_item = #{featureItem},</if>
<if test="inventoryCategoryCode != null">inventory_category_code = #{inventoryCategoryCode},</if>
<if test="inventoryCategoryName != null">inventory_category_name = #{inventoryCategoryName},</if>
<if test="allowPurchase != null">allow_purchase = #{allowPurchase},</if>
<if test="allowInventory != null">allow_inventory = #{allowInventory},</if>
<if test="allowSubcontract != null">allow_subcontract = #{allowSubcontract},</if>
<if test="allowSale != null">allow_sale = #{allowSale},</if>
<if test="allowProduce != null">allow_produce = #{allowProduce},</if>
<if test="allowAsset != null">allow_asset = #{allowAsset},</if>
<if test="grossWeight != null">gross_weight = #{grossWeight},</if>
<if test="netWeight != null">net_weight = #{netWeight},</if>
<if test="weightUnitCode != null">weight_unit_code = #{weightUnitCode},</if>
<if test="weightUnitName != null">weight_unit_name = #{weightUnitName},</if>
<if test="isSuite != null">is_suite = #{isSuite},</if>
</trim>
where product_id = #{productId}
</update>
@@ -84,4 +222,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{productId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -0,0 +1,127 @@
<?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.bas.stationpoint.mapper.BasStationPointMapper">
<resultMap type="BasStationPoint" id="BasStationPointResult">
<result property="id" column="id" />
<result property="pointId" column="point_id" />
<result property="pointName" column="point_name" />
<result property="warehouseId" column="warehouse_id" />
<result property="roadwayId" column="roadway_id" />
<result property="pointType" column="point_type" />
<result property="pointSize" column="point_size" />
<result property="trayType" column="tray_type" />
<result property="status" column="status" />
<result property="pointStatus" column="point_status" />
<result property="remark" column="remark" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectBasStationPointVo">
select id, point_id, point_name, warehouse_id, roadway_id, point_type, point_size, tray_type, status, point_status, remark, create_time, update_time from bas_station_point
</sql>
<select id="selectBasStationPointList" parameterType="BasStationPoint" resultMap="BasStationPointResult">
<include refid="selectBasStationPointVo"/>
<where>
<if test="pointId != null and pointId != ''"> and point_id = #{pointId}</if>
<if test="pointName != null and pointName != ''"> and point_name like concat('%', #{pointName}, '%')</if>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="roadwayId != null and roadwayId != ''"> and roadway_id = #{roadwayId}</if>
<if test="pointType != null and pointType != ''"> and point_type = #{pointType}</if>
<if test="pointSize != null and pointSize != ''"> and point_size = #{pointSize}</if>
<if test="trayType != null and trayType != ''"> and charindex(',' + #{trayType} + ',', ',' + tray_type + ',') &gt; 0</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="pointStatus != null and pointStatus != ''"> and point_status = #{pointStatus}</if>
</where>
order by warehouse_id, point_type, roadway_id, point_id
</select>
<select id="selectBasStationPointById" parameterType="Long" resultMap="BasStationPointResult">
<include refid="selectBasStationPointVo"/>
where id = #{id}
</select>
<select id="selectBasStationPointByPointId" parameterType="String" resultMap="BasStationPointResult">
<include refid="selectBasStationPointVo"/>
where point_id = #{pointId}
</select>
<insert id="insertBasStationPoint" parameterType="BasStationPoint" useGeneratedKeys="true" keyProperty="id">
insert into bas_station_point
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="pointId != null and pointId != ''">point_id,</if>
<if test="pointName != null and pointName != ''">point_name,</if>
<if test="warehouseId != null and warehouseId != ''">warehouse_id,</if>
<if test="roadwayId != null and roadwayId != ''">roadway_id,</if>
<if test="pointType != null and pointType != ''">point_type,</if>
<if test="pointSize != null and pointSize != ''">point_size,</if>
<if test="trayType != null and trayType != ''">tray_type,</if>
<if test="status != null and status != ''">status,</if>
<if test="pointStatus != null and pointStatus != ''">point_status,</if>
<if test="remark != null">remark,</if>
create_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="pointId != null and pointId != ''">#{pointId},</if>
<if test="pointName != null and pointName != ''">#{pointName},</if>
<if test="warehouseId != null and warehouseId != ''">#{warehouseId},</if>
<if test="roadwayId != null and roadwayId != ''">#{roadwayId},</if>
<if test="pointType != null and pointType != ''">#{pointType},</if>
<if test="pointSize != null and pointSize != ''">#{pointSize},</if>
<if test="trayType != null and trayType != ''">#{trayType},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="pointStatus != null and pointStatus != ''">#{pointStatus},</if>
<if test="remark != null">#{remark},</if>
getdate(),
</trim>
</insert>
<update id="updateBasStationPoint" parameterType="BasStationPoint">
update bas_station_point
<trim prefix="SET" suffixOverrides=",">
<if test="pointId != null and pointId != ''">point_id = #{pointId},</if>
<if test="pointName != null and pointName != ''">point_name = #{pointName},</if>
<if test="warehouseId != null and warehouseId != ''">warehouse_id = #{warehouseId},</if>
<if test="roadwayId != null and roadwayId != ''">roadway_id = #{roadwayId},</if>
<if test="pointType != null and pointType != ''">point_type = #{pointType},</if>
<if test="pointSize != null and pointSize != ''">point_size = #{pointSize},</if>
<if test="trayType != null and trayType != ''">tray_type = #{trayType},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="pointStatus != null and pointStatus != ''">point_status = #{pointStatus},</if>
<if test="remark != null">remark = #{remark},</if>
update_time = getdate(),
</trim>
where id = #{id}
</update>
<delete id="deleteBasStationPointById" parameterType="Long">
delete from bas_station_point where id = #{id}
</delete>
<delete id="deleteBasStationPointByIds" parameterType="String">
delete from bas_station_point where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<update id="occupyBasStationPoint" parameterType="String">
update bas_station_point
set point_status = '1',
update_time = getdate()
where point_id = #{pointId}
and status = '0'
and point_status = '0'
</update>
<update id="releaseBasStationPoint" parameterType="String">
update bas_station_point
set point_status = '0',
update_time = getdate()
where point_id = #{pointId}
</update>
</mapper>

View File

@@ -0,0 +1,148 @@
<?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.bas.stock.mapper.BasStockDetailMapper">
<resultMap type="BasStockDetail" id="BasStockDetailResult">
<result property="detailId" column="detail_id" />
<result property="stockId" column="stock_id" />
<result property="productStatus" column="product_status" />
<result property="lotNo" column="lot_no" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="outQuantity" column="out_quantity" />
<result property="jobDetailId" column="job_detail_id" />
<result property="stockinDetailId" column="stockin_detail_id" />
<result property="cargoSpaceId" column="cargo_space_id" />
<result property="cargoSpaceName" column="cargo_space_name" />
<result property="stockStatus" column="stock_status" />
<result property="inDate" column="in_date" />
<result property="backDate" column="back_date" />
<result property="trayCode" column="tray_code" />
<result property="warehouseId" column="warehouse_id" />
<result property="warehouseName" column="warehouse_name" />
<result property="availableQuantity" column="available_quantity" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectBasStockDetailVo">
select bsd.detail_id, bsd.stock_id, bsd.product_status, bsd.lot_no, bsd.product_id, bsd.product_name,
bsd.quantity, bsd.out_quantity, bsd.job_detail_id, bsd.stockin_detail_id,
bs.cargo_space_id, bcs.cargo_space_name, bs.stock_status, bs.in_date, bs.back_date,
bs.tray_code, bs.warehouse_id, bs.warehouse_name,
ISNULL(bsd.quantity, 0) - ISNULL(bsd.out_quantity, 0) as available_quantity,
bsd.create_time, bsd.update_time, bsd.remark
from bas_stock_detail bsd
left join bas_stock bs on bsd.stock_id = bs.stock_id
left join bas_cargo_space bcs on bs.cargo_space_id = bcs.cargo_space_id
</sql>
<select id="selectBasStockDetailList" parameterType="BasStockDetail" resultMap="BasStockDetailResult">
<include refid="selectBasStockDetailVo" />
<where>
<if test="detailId != null and detailId != ''"> and bsd.detail_id = #{detailId}</if>
<if test="stockId != null and stockId != ''"> and bsd.stock_id = #{stockId}</if>
<if test="productStatus != null and productStatus != ''"> and bsd.product_status = #{productStatus}</if>
<if test="lotNo != null and lotNo != ''"> and bsd.lot_no = #{lotNo}</if>
<if test="productId != null and productId != ''"> and bsd.product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and bsd.product_name like concat('%', #{productName}, '%')</if>
<if test="jobDetailId != null and jobDetailId != ''"> and bsd.job_detail_id = #{jobDetailId}</if>
<if test="stockinDetailId != null and stockinDetailId != ''"> and bsd.stockin_detail_id = #{stockinDetailId}</if>
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and bs.cargo_space_id = #{cargoSpaceId}</if>
<if test="stockStatus != null and stockStatus != ''"> and bs.stock_status = #{stockStatus}</if>
<if test="trayCode != null and trayCode != ''"> and bs.tray_code = #{trayCode}</if>
<if test="warehouseId != null and warehouseId != ''"> and bs.warehouse_id = #{warehouseId}</if>
<if test="warehouseName != null and warehouseName != ''"> and bs.warehouse_name like concat('%', #{warehouseName}, '%')</if>
<if test="params.beginInDate != null and params.beginInDate != '' and params.endInDate != null and params.endInDate != ''"> and bs.in_date between #{params.beginInDate} and #{params.endInDate}</if>
<if test="params.beginBackDate != null and params.beginBackDate != '' and params.endBackDate != null and params.endBackDate != ''"> and bs.back_date between #{params.beginBackDate} and #{params.endBackDate}</if>
${params.warehouseScope}
</where>
order by bs.warehouse_id, bs.cargo_space_id, bs.tray_code, bsd.product_id, bsd.detail_id
</select>
<select id="selectBasStockDetailByDetailId" parameterType="String" resultMap="BasStockDetailResult">
<include refid="selectBasStockDetailVo" />
where bsd.detail_id = #{detailId}
</select>
<select id="selectStockIdsByDetailIds" parameterType="String" resultType="String">
select distinct stock_id from bas_stock_detail where detail_id in
<foreach item="detailId" collection="array" open="(" separator="," close=")">
#{detailId}
</foreach>
</select>
<insert id="insertBasStockDetail" parameterType="BasStockDetail">
insert into bas_stock_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="detailId != null">detail_id,</if>
<if test="stockId != null">stock_id,</if>
<if test="productStatus != null">product_status,</if>
<if test="lotNo != null">lot_no,</if>
<if test="productId != null">product_id,</if>
<if test="productName != null">product_name,</if>
<if test="quantity != null">quantity,</if>
<if test="outQuantity != null">out_quantity,</if>
<if test="jobDetailId != null">job_detail_id,</if>
<if test="stockinDetailId != null">stockin_detail_id,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="detailId != null">#{detailId},</if>
<if test="stockId != null">#{stockId},</if>
<if test="productStatus != null">#{productStatus},</if>
<if test="lotNo != null">#{lotNo},</if>
<if test="productId != null">#{productId},</if>
<if test="productName != null">#{productName},</if>
<if test="quantity != null">#{quantity},</if>
<if test="outQuantity != null">#{outQuantity},</if>
<if test="jobDetailId != null">#{jobDetailId},</if>
<if test="stockinDetailId != null">#{stockinDetailId},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateBasStockDetail" parameterType="BasStockDetail">
update bas_stock_detail
<trim prefix="SET" suffixOverrides=",">
<if test="stockId != null">stock_id = #{stockId},</if>
<if test="productStatus != null">product_status = #{productStatus},</if>
<if test="lotNo != null">lot_no = #{lotNo},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="quantity != null">quantity = #{quantity},</if>
<if test="outQuantity != null">out_quantity = #{outQuantity},</if>
<if test="jobDetailId != null">job_detail_id = #{jobDetailId},</if>
<if test="stockinDetailId != null">stockin_detail_id = #{stockinDetailId},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where detail_id = #{detailId}
</update>
<delete id="deleteBasStockDetailByDetailId" parameterType="String">
delete from bas_stock_detail where detail_id = #{detailId}
</delete>
<delete id="deleteBasStockDetailByDetailIds" parameterType="String">
delete from bas_stock_detail where detail_id in
<foreach item="detailId" collection="array" open="(" separator="," close=")">
#{detailId}
</foreach>
</delete>
<delete id="deleteBasStockDetailByStockIds" parameterType="String">
delete from bas_stock_detail where stock_id in
<foreach item="stockId" collection="array" open="(" separator="," close=")">
#{stockId}
</foreach>
</delete>
</mapper>

View File

@@ -30,43 +30,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="deptName" column="dept_name" />
<result property="suplierId" column="suplier_id" />
<result property="suplierName" column="suplier_name" />
<result property="detailCount" column="detail_count" />
<result property="availableQuantity" column="available_quantity" />
</resultMap>
<sql id="selectBasStockVo">
select stock_id, cargo_space_id, stock_status, product_status, lot_no, in_date, back_date, product_id, product_name, quantity, job_id, job_detail_id, tray_code, out_quantity, stockin_detail_id, stockin_id, in_type, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, suplier_id, suplier_name from bas_stock
select stock_id, cargo_space_id, stock_status, product_status, lot_no, in_date, back_date, product_id, product_name, quantity, job_id, job_detail_id, tray_code, out_quantity, stockin_detail_id, stockin_id, in_type, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id as suplier_id, supplier_name as suplier_name from bas_stock
</sql>
<select id="selectBasStockList" parameterType="BasStock" resultMap="BasStockResult">
select bs.stock_id, bs.cargo_space_id, bs.stock_status, bs.product_status,
bs.lot_no, bs.in_date, bs.back_date, bs.product_id, bs.product_name,
bs.quantity, bs.job_id, bs.job_detail_id, bs.tray_code, bs.out_quantity,
bs.stockin_detail_id, bs.stockin_id, bs.in_type, bs.warehouse_id, bs.warehouse_name,
bs.user_id, bs.user_name, bs.dept_id, bs.dept_name, bs.suplier_id, bs.suplier_name
select bs.stock_id, bs.cargo_space_id, bs.stock_status,
null as product_status, null as lot_no, bs.in_date, bs.back_date,
null as product_id, null as product_name,
ISNULL(bsa.quantity, 0) as quantity,
bs.job_id, null as job_detail_id,
bs.tray_code, ISNULL(bsa.out_quantity, 0) as out_quantity,
null as stockin_detail_id,
bs.stockin_id, bs.in_type, bs.warehouse_id, bs.warehouse_name,
bs.user_id, bs.user_name, bs.dept_id, bs.dept_name, bs.supplier_id as suplier_id, bs.supplier_name as suplier_name,
ISNULL(bsa.detail_count, 0) as detail_count,
ISNULL(bsa.quantity, 0) - ISNULL(bsa.out_quantity, 0) as available_quantity
from bas_stock bs
left join bas_cargo_space bcs on bs.cargo_space_id = bcs.cargo_space_id
left join (
select stock_id,
count(1) as detail_count,
sum(ISNULL(quantity, 0)) as quantity,
sum(ISNULL(out_quantity, 0)) as out_quantity
from bas_stock_detail
group by stock_id
) bsa on bsa.stock_id = bs.stock_id
where
bcs.status = '2'
<if test="stockId != null and stockId != ''"> and bs.stock_id = #{stockId}</if>
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and bs.cargo_space_id = #{cargoSpaceId}</if>
<if test="stockStatus != null and stockStatus != ''"> and bs.stock_status = #{stockStatus}</if>
<if test="productStatus != null and productStatus != ''"> and bs.product_status = #{productStatus}</if>
<if test="lotNo != null and lotNo != ''"> and bs.lot_no = #{lotNo}</if>
<if test="productStatus != null and productStatus != ''"> and exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.product_status = #{productStatus})</if>
<if test="lotNo != null and lotNo != ''"> and exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.lot_no = #{lotNo})</if>
<if test="params.beginInDate != null and params.beginInDate != '' and params.endInDate != null and params.endInDate != ''"> and bs.in_date between #{params.beginInDate} and #{params.endInDate}</if>
<if test="params.beginBackDate != null and params.beginBackDate != '' and params.endBackDate != null and params.endBackDate != ''"> and bs.back_date between #{params.beginBackDate} and #{params.endBackDate}</if>
<if test="productId != null and productId != ''"> and bs.product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and bs.product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null "> and bs.quantity = #{quantity}</if>
<if test="productId != null and productId != ''"> and exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.product_id = #{productId})</if>
<if test="productName != null and productName != ''"> and exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.product_name like concat('%', #{productName}, '%'))</if>
<if test="quantity != null "> and (ISNULL(bsa.quantity, 0) = #{quantity} or exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.quantity = #{quantity}))</if>
<if test="jobId != null and jobId != ''"> and bs.job_id = #{jobId}</if>
<if test="jobDetailId != null and jobDetailId != ''"> and bs.job_detail_id = #{jobDetailId}</if>
<if test="jobDetailId != null and jobDetailId != ''"> and exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.job_detail_id = #{jobDetailId})</if>
<if test="trayCode != null and trayCode != ''"> and bs.tray_code = #{trayCode}</if>
<if test="outQuantity != null "> and bs.out_quantity = #{outQuantity}</if>
<if test="stockinDetailId != null and stockinDetailId != ''"> and bs.stockin_detail_id = #{stockinDetailId}</if>
<if test="outQuantity != null "> and (ISNULL(bsa.out_quantity, 0) = #{outQuantity} or exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.out_quantity = #{outQuantity}))</if>
<if test="stockinDetailId != null and stockinDetailId != ''"> and exists (select 1 from bas_stock_detail x where x.stock_id = bs.stock_id and x.stockin_detail_id = #{stockinDetailId})</if>
<if test="stockinId != null and stockinId != ''"> and bs.stockin_id = #{stockinId}</if>
<if test="inType != null and inType != ''"> and bs.in_type = #{inType}</if>
<if test="warehouseId != null and warehouseId != ''"> and bs.warehouse_id = #{warehouseId}</if>
<if test="warehouseName != null and warehouseName != ''"> and bs.warehouse_name like concat('%', #{warehouseName}, '%')</if>
<if test="userName != null and userName != ''"> and bs.user_name like concat('%', #{userName}, '%')</if>
<if test="deptName != null and deptName != ''"> and bs.dept_name like concat('%', #{deptName}, '%')</if>
<if test="suplierName != null and suplierName != ''"> and bs.suplier_name like concat('%', #{suplierName}, '%')</if>
<if test="suplierName != null and suplierName != ''"> and bs.supplier_name like concat('%', #{suplierName}, '%')</if>
${params.warehouseScope}
order by bs.in_date desc, bs.stock_id desc
</select>
<select id="selectBasStockByStockId" parameterType="String" resultMap="BasStockResult">
@@ -100,8 +119,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userName != null">user_name,</if>
<if test="deptId != null">dept_id,</if>
<if test="deptName != null">dept_name,</if>
<if test="suplierId != null">suplier_id,</if>
<if test="suplierName != null">suplier_name,</if>
<if test="suplierId != null">supplier_id,</if>
<if test="suplierName != null">supplier_name,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockId != null">#{stockId},</if>
@@ -157,12 +176,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userName != null">user_name = #{userName},</if>
<if test="deptId != null">dept_id = #{deptId},</if>
<if test="deptName != null">dept_name = #{deptName},</if>
<if test="suplierId != null">suplier_id = #{suplierId},</if>
<if test="suplierName != null">suplier_name = #{suplierName},</if>
<if test="suplierId != null">supplier_id = #{suplierId},</if>
<if test="suplierName != null">supplier_name = #{suplierName},</if>
</trim>
where stock_id = #{stockId}
</update>
<update id="refreshBasStockSummary" parameterType="String">
update bs
set bs.product_status = null,
bs.lot_no = null,
bs.product_id = null,
bs.product_name = null,
bs.quantity = ISNULL(bsa.quantity, 0),
bs.job_detail_id = null,
bs.out_quantity = ISNULL(bsa.out_quantity, 0),
bs.stockin_detail_id = null
from bas_stock bs
left join (
select stock_id,
sum(ISNULL(quantity, 0)) as quantity,
sum(ISNULL(out_quantity, 0)) as out_quantity
from bas_stock_detail
where stock_id = #{stockId}
group by stock_id
) bsa on bsa.stock_id = bs.stock_id
where bs.stock_id = #{stockId}
</update>
<delete id="deleteBasStockByStockId" parameterType="String">
delete from bas_stock where stock_id = #{stockId}
</delete>
@@ -173,4 +214,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{stockId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -0,0 +1,111 @@
<?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.bas.trayrule.mapper.BasTrayRuleMapper">
<resultMap type="BasTrayRule" id="BasTrayRuleResult">
<result property="id" column="id" />
<result property="ruleName" column="rule_name" />
<result property="trayType" column="tray_type" />
<result property="trayLength" column="tray_length" />
<result property="trayWidth" column="tray_width" />
<result property="allowedWarehouses" column="allowed_warehouses" />
<result property="allowedWarehouseNames" column="allowed_warehouse_names" />
<result property="allowedCargoType" column="allowed_cargo_type" />
<result property="allowedCargoTypeName" column="allowed_cargo_type_name" />
<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="selectBasTrayRuleVo">
select id, rule_name, tray_type, tray_length, tray_width, allowed_warehouses,
allowed_warehouse_names, allowed_cargo_type, allowed_cargo_type_name,
remark, create_by, create_time, update_by, update_time
from bas_tray_rule
</sql>
<select id="selectBasTrayRuleList" parameterType="BasTrayRule" resultMap="BasTrayRuleResult">
<include refid="selectBasTrayRuleVo"/>
<where>
<if test="ruleName != null and ruleName != ''"> and rule_name like concat('%', #{ruleName}, '%')</if>
<if test="trayType != null and trayType != ''"> and tray_type = #{trayType}</if>
<if test="allowedWarehouses != null and allowedWarehouses != ''"> and charindex(',' + #{allowedWarehouses} + ',', ',' + allowed_warehouses + ',') &gt; 0</if>
<if test="allowedCargoType != null and allowedCargoType != ''"> and allowed_cargo_type = #{allowedCargoType}</if>
</where>
order by tray_type, id
</select>
<select id="selectBasTrayRuleById" parameterType="Long" resultMap="BasTrayRuleResult">
<include refid="selectBasTrayRuleVo"/>
where id = #{id}
</select>
<insert id="insertBasTrayRule" parameterType="BasTrayRule">
insert into bas_tray_rule
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="ruleName != null and ruleName != ''">rule_name,</if>
<if test="trayType != null and trayType != ''">tray_type,</if>
<if test="trayLength != null">tray_length,</if>
<if test="trayWidth != null">tray_width,</if>
<if test="allowedWarehouses != null and allowedWarehouses != ''">allowed_warehouses,</if>
<if test="allowedWarehouseNames != null">allowed_warehouse_names,</if>
<if test="allowedCargoType != null and allowedCargoType != ''">allowed_cargo_type,</if>
<if test="allowedCargoTypeName != null">allowed_cargo_type_name,</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="id != null">#{id},</if>
<if test="ruleName != null and ruleName != ''">#{ruleName},</if>
<if test="trayType != null and trayType != ''">#{trayType},</if>
<if test="trayLength != null">#{trayLength},</if>
<if test="trayWidth != null">#{trayWidth},</if>
<if test="allowedWarehouses != null and allowedWarehouses != ''">#{allowedWarehouses},</if>
<if test="allowedWarehouseNames != null">#{allowedWarehouseNames},</if>
<if test="allowedCargoType != null and allowedCargoType != ''">#{allowedCargoType},</if>
<if test="allowedCargoTypeName != null">#{allowedCargoTypeName},</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="updateBasTrayRule" parameterType="BasTrayRule">
update bas_tray_rule
<trim prefix="SET" suffixOverrides=",">
<if test="ruleName != null and ruleName != ''">rule_name = #{ruleName},</if>
<if test="trayType != null and trayType != ''">tray_type = #{trayType},</if>
<if test="trayLength != null">tray_length = #{trayLength},</if>
<if test="trayWidth != null">tray_width = #{trayWidth},</if>
<if test="allowedWarehouses != null and allowedWarehouses != ''">allowed_warehouses = #{allowedWarehouses},</if>
<if test="allowedWarehouseNames != null">allowed_warehouse_names = #{allowedWarehouseNames},</if>
<if test="allowedCargoType != null and allowedCargoType != ''">allowed_cargo_type = #{allowedCargoType},</if>
<if test="allowedCargoTypeName != null">allowed_cargo_type_name = #{allowedCargoTypeName},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBasTrayRuleById" parameterType="Long">
delete from bas_tray_rule where id = #{id}
</delete>
<delete id="deleteBasTrayRuleByIds" parameterType="String">
delete from bas_tray_rule where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -3,57 +3,86 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.in.sotckindetail.mapper.InStockinDetailMapper">
<resultMap type="InStockinDetail" id="InStockinDetailResult">
<result property="stockinDetailId" column="stockin_detail_id" />
<result property="stockinId" column="stockin_id" />
<result property="lotNo" column="lot_no" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="scanNum" column="scan_num" />
<result property="assignNum" column="assign_num" />
<result property="remark" column="remark" />
<result property="stockinDetailId" column="stockin_detail_id" />
<result property="stockinId" column="stockin_id" />
<result property="lotNo" column="lot_no" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="scanNum" column="scan_num" />
<result property="assignNum" column="assign_num" />
<result property="remark" column="remark" />
<result property="lineN" column="line_n" />
<result property="itemCod" column="item_cod" />
<result property="itemNam" column="item_nam" />
<result property="specMode" column="spec_mode" />
<result property="uni" column="uni" />
<result property="actualQt" column="actual_qt" />
<result property="warehous" column="warehous" />
<result property="locatio" column="locatio" />
<result property="inventoryStatus" column="inventory_" />
<result property="sourceDocN" column="source_doc_n" />
<result property="remar" column="remar" />
</resultMap>
<sql id="selectInStockinDetailVo">
select stockin_detail_id, stockin_id, lot_no, product_id, product_name, quantity, scan_num, assign_num, remark from in_stockin_detail
select stockin_detail_id, stockin_id, lot_no, product_id, product_name, quantity, scan_num, assign_num, remark,
line_n, item_cod, item_nam, spec_mode, uni, actual_qt, warehous, locatio, inventory_, source_doc_n, remar
from in_stockin_detail
</sql>
<sql id="selectInStockinDetailFinishVo">
select stockin_detail_id, stockin_id, lot_no, product_id, product_name, quantity, scan_num, assign_num, remark from in_stockin_detail_finish
select stockin_detail_id, stockin_id, lot_no, product_id, product_name, quantity, scan_num, assign_num, remark,
line_n, item_cod, item_nam, spec_mode, uni, actual_qt, warehous, locatio, inventory_, source_doc_n, remar
from in_stockin_detail_finish
</sql>
<select id="selectInStockinDetailList" parameterType="InStockinDetail" resultMap="InStockinDetailResult">
<include refid="selectInStockinDetailVo"/>
<where>
<if test="stockinId != null and stockinId != ''"> and stockin_id = #{stockinId}</if>
<if test="lotNo != null and lotNo != ''"> and lot_no = #{lotNo}</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null "> and quantity = #{quantity}</if>
<if test="scanNum != null "> and scan_num = #{scanNum}</if>
<if test="assignNum != null "> and assign_num = #{assignNum}</if>
<where>
<if test="stockinId != null and stockinId != ''">and stockin_id = #{stockinId}</if>
<if test="lotNo != null and lotNo != ''">and lot_no = #{lotNo}</if>
<if test="productId != null and productId != ''">and product_id = #{productId}</if>
<if test="productName != null and productName != ''">and product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null">and quantity = #{quantity}</if>
<if test="scanNum != null">and scan_num = #{scanNum}</if>
<if test="assignNum != null">and assign_num = #{assignNum}</if>
<if test="itemCod != null and itemCod != ''">and item_cod like concat('%', #{itemCod}, '%')</if>
<if test="itemNam != null and itemNam != ''">and item_nam like concat('%', #{itemNam}, '%')</if>
</where>
</select>
<select id="selectInStockinDetailByStockinDetailId" parameterType="String" resultMap="InStockinDetailResult">
<include refid="selectInStockinDetailVo"/>
where stockin_detail_id = #{stockinDetailId}
</select>
<select id="inboundTaskList" resultMap="InStockinDetailResult">
<select id="inboundTaskList" parameterType="InStockinDetail" resultMap="InStockinDetailResult">
<include refid="selectInStockinDetailVo"/>
where quantity > scan_num
<where>
<!-- PDA 子单列表只返回仍有待绑数量的明细。 -->
and ISNULL(quantity, 0) &gt; ISNULL(scan_num, 0)
<if test="stockinId != null and stockinId != ''">and stockin_id = #{stockinId}</if>
<if test="stockinDetailId != null and stockinDetailId != ''">and stockin_detail_id = #{stockinDetailId}</if>
<if test="productId != null and productId != ''">and product_id = #{productId}</if>
<if test="productName != null and productName != ''">and product_name like concat('%', #{productName}, '%')</if>
</where>
order by line_n asc, stockin_detail_id asc
</select>
<select id="selectInStockinDetailFinishList" parameterType="InStockinDetail" resultMap="InStockinDetailResult">
<include refid="selectInStockinDetailFinishVo"/>
<where>
<if test="stockinId != null and stockinId != ''"> and stockin_id = #{stockinId}</if>
<if test="lotNo != null and lotNo != ''"> and lot_no = #{lotNo}</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null "> and quantity = #{quantity}</if>
<if test="scanNum != null "> and scan_num = #{scanNum}</if>
<if test="assignNum != null "> and assign_num = #{assignNum}</if>
<if test="stockinId != null and stockinId != ''">and stockin_id = #{stockinId}</if>
<if test="lotNo != null and lotNo != ''">and lot_no = #{lotNo}</if>
<if test="productId != null and productId != ''">and product_id = #{productId}</if>
<if test="productName != null and productName != ''">and product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null">and quantity = #{quantity}</if>
<if test="scanNum != null">and scan_num = #{scanNum}</if>
<if test="assignNum != null">and assign_num = #{assignNum}</if>
<if test="itemCod != null and itemCod != ''">and item_cod like concat('%', #{itemCod}, '%')</if>
<if test="itemNam != null and itemNam != ''">and item_nam like concat('%', #{itemNam}, '%')</if>
</where>
</select>
@@ -69,7 +98,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="scanNum != null">scan_num,</if>
<if test="assignNum != null">assign_num,</if>
<if test="remark != null">remark,</if>
</trim>
<if test="lineN != null">line_n,</if>
<if test="itemCod != null and itemCod != ''">item_cod,</if>
<if test="itemNam != null and itemNam != ''">item_nam,</if>
<if test="specMode != null and specMode != ''">spec_mode,</if>
<if test="uni != null and uni != ''">uni,</if>
<if test="actualQt != null">actual_qt,</if>
<if test="warehous != null and warehous != ''">warehous,</if>
<if test="locatio != null and locatio != ''">locatio,</if>
<if test="inventoryStatus != null and inventoryStatus != ''">inventory_,</if>
<if test="sourceDocN != null and sourceDocN != ''">source_doc_n,</if>
<if test="remar != null and remar != ''">remar,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockinDetailId != null">#{stockinDetailId},</if>
<if test="stockinId != null and stockinId != ''">#{stockinId},</if>
@@ -80,7 +120,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="scanNum != null">#{scanNum},</if>
<if test="assignNum != null">#{assignNum},</if>
<if test="remark != null">#{remark},</if>
</trim>
<if test="lineN != null">#{lineN},</if>
<if test="itemCod != null and itemCod != ''">#{itemCod},</if>
<if test="itemNam != null and itemNam != ''">#{itemNam},</if>
<if test="specMode != null and specMode != ''">#{specMode},</if>
<if test="uni != null and uni != ''">#{uni},</if>
<if test="actualQt != null">#{actualQt},</if>
<if test="warehous != null and warehous != ''">#{warehous},</if>
<if test="locatio != null and locatio != ''">#{locatio},</if>
<if test="inventoryStatus != null and inventoryStatus != ''">#{inventoryStatus},</if>
<if test="sourceDocN != null and sourceDocN != ''">#{sourceDocN},</if>
<if test="remar != null and remar != ''">#{remar},</if>
</trim>
</insert>
<update id="updateInStockinDetail" parameterType="InStockinDetail">
@@ -94,6 +145,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="scanNum != null">scan_num = #{scanNum},</if>
<if test="assignNum != null">assign_num = #{assignNum},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="lineN != null">line_n = #{lineN},</if>
<if test="itemCod != null and itemCod != ''">item_cod = #{itemCod},</if>
<if test="itemNam != null and itemNam != ''">item_nam = #{itemNam},</if>
<if test="specMode != null and specMode != ''">spec_mode = #{specMode},</if>
<if test="uni != null and uni != ''">uni = #{uni},</if>
<if test="actualQt != null">actual_qt = #{actualQt},</if>
<if test="warehous != null and warehous != ''">warehous = #{warehous},</if>
<if test="locatio != null and locatio != ''">locatio = #{locatio},</if>
<if test="inventoryStatus != null and inventoryStatus != ''">inventory_ = #{inventoryStatus},</if>
<if test="sourceDocN != null and sourceDocN != ''">source_doc_n = #{sourceDocN},</if>
<if test="remar != null and remar != ''">remar = #{remar},</if>
</trim>
where stockin_detail_id = #{stockinDetailId}
</update>
@@ -103,9 +165,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteInStockinDetailByStockinDetailIds" parameterType="String">
delete from in_stockin_detail where stockin_detail_id in
delete from in_stockin_detail where stockin_detail_id in
<foreach item="stockinDetailId" collection="array" open="(" separator="," close=")">
#{stockinDetailId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -21,13 +21,43 @@
<result property="deptName" column="dept_name" />
<result property="supplierId" column="supplier_id" />
<result property="supplierName" column="supplier_name" />
<result property="documentN" column="document_n" />
<result property="documentDat" column="document_dat" />
<result property="projectNam" column="project_nam" />
<result property="counterpart" column="counterpart" />
<result property="receivingOr" column="receiving_or" />
<result property="purchasingOr" column="purchasing_or" />
<result property="receivingDep" column="receiving_dep" />
<result property="purchasingDep" column="purchasing_dep" />
<result property="handle" column="handle" />
<result property="creato" column="creato" />
<result property="logisticsCompany" column="logistics_" />
<result property="logisticsN" column="logistics_n" />
<result property="warehous" column="warehous" />
<result property="printCoun" column="print_coun" />
<result property="tota" column="tota" />
<result property="reviewe" column="reviewe" />
<result property="createDat" column="create_dat" />
<result property="reviewDat" column="review_dat" />
<result property="receive" column="receive" />
<result property="receiverA" column="receiver_a" />
<result property="receiverPhon" column="receiver_phon" />
<result property="materialRe" column="material_re" />
</resultMap>
<sql id="selectInStockinVo">
select stockin_id, in_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id, supplier_name from in_stockin
select stockin_id, in_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id, supplier_name,
document_n, document_dat, project_nam, counterpart, receiving_or, purchasing_or, receiving_dep, purchasing_dep,
handle, creato, logistics_, logistics_n, warehous, print_coun, tota, reviewe, create_dat, review_dat,
receive, receiver_a, receiver_phon, material_re
from in_stockin
</sql>
<sql id="selectInStockinFinishVo">
select stockin_id, in_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id, supplier_name from in_stockin_finish
select stockin_id, in_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id, supplier_name,
document_n, document_dat, project_nam, counterpart, receiving_or, purchasing_or, receiving_dep, purchasing_dep,
handle, creato, logistics_, logistics_n, warehous, print_coun, tota, reviewe, create_dat, review_dat,
receive, receiver_a, receiver_phon, material_re
from in_stockin_finish
</sql>
<select id="selectInStockinList" parameterType="InStockin" resultMap="InStockinResult">
@@ -43,14 +73,49 @@
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
<if test="documentN != null and documentN != ''"> and document_n like concat('%', #{documentN}, '%')</if>
<if test="projectNam != null and projectNam != ''"> and project_nam like concat('%', #{projectNam}, '%')</if>
<if test="counterpart != null and counterpart != ''"> and counterpart like concat('%', #{counterpart}, '%')</if>
${params.warehouseScope}
</where>
</select>
<select id="selectPdaInboundStockinList" parameterType="InStockin" resultMap="InStockinResult">
<include refid="selectInStockinVo"/>
<where>
<!-- PDA 待处理只展示主单,且主单下必须仍有未绑盘的子单数量。 -->
and exists (
select 1
from in_stockin_detail d
where d.stockin_id = in_stockin.stockin_id
and ISNULL(d.quantity, 0) &gt; ISNULL(d.scan_num, 0)
)
<!-- 创建、审核、执行状态下只要仍有待绑子单,PDA 都应能看到主单;完成/作废不再展示。 -->
and status in ('1', '2', '3')
<if test="stockinId != null and stockinId != ''"> and stockin_id = #{stockinId}</if>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="warehouseName != null and warehouseName != ''"> and warehouse_name like concat('%', #{warehouseName}, '%')</if>
<if test="documentN != null and documentN != ''"> and document_n like concat('%', #{documentN}, '%')</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
${params.warehouseScope}
</where>
order by create_date desc, stockin_id desc
</select>
<select id="selectInStockinByStockinId" parameterType="String" resultMap="InStockinResult">
<include refid="selectInStockinVo"/>
where stockin_id = #{stockinId}
</select>
<select id="countUnfinishedDetailByStockinId" parameterType="String" resultType="int">
select count(1)
from in_stockin_detail
where stockin_id = #{stockinId}
and (
ISNULL(scan_num, 0) != ISNULL(assign_num, 0)
or ISNULL(assign_num, 0) &lt; ISNULL(quantity, 0)
)
</select>
<select id="selectInStockinFinishList" parameterType="InStockin" resultMap="InStockinResult">
<include refid="selectInStockinFinishVo"/>
<where>
@@ -64,11 +129,18 @@
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
<if test="documentN != null and documentN != ''"> and document_n like concat('%', #{documentN}, '%')</if>
<if test="projectNam != null and projectNam != ''"> and project_nam like concat('%', #{projectNam}, '%')</if>
<if test="counterpart != null and counterpart != ''"> and counterpart like concat('%', #{counterpart}, '%')</if>
${params.warehouseScope}
</where>
</select>
<select id="selectTop5InStockinList" resultMap="InStockinResult">
select TOP 5 stockin_id, in_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id, supplier_name from in_stockin
select TOP 5 stockin_id, in_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, supplier_id, supplier_name,
document_n, document_dat, project_nam, counterpart, receiving_or, purchasing_or, receiving_dep, purchasing_dep,
handle, creato, logistics_, logistics_n, warehous, print_coun, tota, reviewe, create_dat, review_dat,
receive, receiver_a, receiver_phon, material_re
from in_stockin
order by create_date desc
</select>
@@ -91,6 +163,28 @@
<if test="deptName != null and deptName != ''">dept_name,</if>
<if test="supplierId != null">supplier_id,</if>
<if test="supplierName != null">supplier_name,</if>
<if test="documentN != null and documentN != ''">document_n,</if>
<if test="documentDat != null">document_dat,</if>
<if test="projectNam != null and projectNam != ''">project_nam,</if>
<if test="counterpart != null and counterpart != ''">counterpart,</if>
<if test="receivingOr != null and receivingOr != ''">receiving_or,</if>
<if test="purchasingOr != null and purchasingOr != ''">purchasing_or,</if>
<if test="receivingDep != null and receivingDep != ''">receiving_dep,</if>
<if test="purchasingDep != null and purchasingDep != ''">purchasing_dep,</if>
<if test="handle != null and handle != ''">handle,</if>
<if test="creato != null and creato != ''">creato,</if>
<if test="logisticsCompany != null and logisticsCompany != ''">logistics_,</if>
<if test="logisticsN != null and logisticsN != ''">logistics_n,</if>
<if test="warehous != null and warehous != ''">warehous,</if>
<if test="printCoun != null">print_coun,</if>
<if test="tota != null">tota,</if>
<if test="reviewe != null and reviewe != ''">reviewe,</if>
<if test="createDat != null">create_dat,</if>
<if test="reviewDat != null">review_dat,</if>
<if test="receive != null and receive != ''">receive,</if>
<if test="receiverA != null and receiverA != ''">receiver_a,</if>
<if test="receiverPhon != null and receiverPhon != ''">receiver_phon,</if>
<if test="materialRe != null and materialRe != ''">material_re,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockinId != null">#{stockinId},</if>
@@ -109,6 +203,28 @@
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="supplierId != null">#{supplierId},</if>
<if test="supplierName != null">#{supplierName},</if>
<if test="documentN != null and documentN != ''">#{documentN},</if>
<if test="documentDat != null">#{documentDat},</if>
<if test="projectNam != null and projectNam != ''">#{projectNam},</if>
<if test="counterpart != null and counterpart != ''">#{counterpart},</if>
<if test="receivingOr != null and receivingOr != ''">#{receivingOr},</if>
<if test="purchasingOr != null and purchasingOr != ''">#{purchasingOr},</if>
<if test="receivingDep != null and receivingDep != ''">#{receivingDep},</if>
<if test="purchasingDep != null and purchasingDep != ''">#{purchasingDep},</if>
<if test="handle != null and handle != ''">#{handle},</if>
<if test="creato != null and creato != ''">#{creato},</if>
<if test="logisticsCompany != null and logisticsCompany != ''">#{logisticsCompany},</if>
<if test="logisticsN != null and logisticsN != ''">#{logisticsN},</if>
<if test="warehous != null and warehous != ''">#{warehous},</if>
<if test="printCoun != null">#{printCoun},</if>
<if test="tota != null">#{tota},</if>
<if test="reviewe != null and reviewe != ''">#{reviewe},</if>
<if test="createDat != null">#{createDat},</if>
<if test="reviewDat != null">#{reviewDat},</if>
<if test="receive != null and receive != ''">#{receive},</if>
<if test="receiverA != null and receiverA != ''">#{receiverA},</if>
<if test="receiverPhon != null and receiverPhon != ''">#{receiverPhon},</if>
<if test="materialRe != null and materialRe != ''">#{materialRe},</if>
</trim>
</insert>
@@ -130,6 +246,28 @@
<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
<if test="supplierId != null">supplier_id = #{supplierId},</if>
<if test="supplierName != null">supplier_name = #{supplierName},</if>
<if test="documentN != null and documentN != ''">document_n = #{documentN},</if>
<if test="documentDat != null">document_dat = #{documentDat},</if>
<if test="projectNam != null and projectNam != ''">project_nam = #{projectNam},</if>
<if test="counterpart != null and counterpart != ''">counterpart = #{counterpart},</if>
<if test="receivingOr != null and receivingOr != ''">receiving_or = #{receivingOr},</if>
<if test="purchasingOr != null and purchasingOr != ''">purchasing_or = #{purchasingOr},</if>
<if test="receivingDep != null and receivingDep != ''">receiving_dep = #{receivingDep},</if>
<if test="purchasingDep != null and purchasingDep != ''">purchasing_dep = #{purchasingDep},</if>
<if test="handle != null and handle != ''">handle = #{handle},</if>
<if test="creato != null and creato != ''">creato = #{creato},</if>
<if test="logisticsCompany != null and logisticsCompany != ''">logistics_ = #{logisticsCompany},</if>
<if test="logisticsN != null and logisticsN != ''">logistics_n = #{logisticsN},</if>
<if test="warehous != null and warehous != ''">warehous = #{warehous},</if>
<if test="printCoun != null">print_coun = #{printCoun},</if>
<if test="tota != null">tota = #{tota},</if>
<if test="reviewe != null and reviewe != ''">reviewe = #{reviewe},</if>
<if test="createDat != null">create_dat = #{createDat},</if>
<if test="reviewDat != null">review_dat = #{reviewDat},</if>
<if test="receive != null and receive != ''">receive = #{receive},</if>
<if test="receiverA != null and receiverA != ''">receiver_a = #{receiverA},</if>
<if test="receiverPhon != null and receiverPhon != ''">receiver_phon = #{receiverPhon},</if>
<if test="materialRe != null and materialRe != ''">material_re = #{materialRe},</if>
</trim>
where stockin_id = #{stockinId}
</update>
@@ -152,4 +290,4 @@
#{stockinId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -56,9 +56,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectMydoJobDetailVo"/>
where job_detail_id = #{jobDetailId}
</select>
<select id="selectMydoJobDetailFinishList" resultType="com.ruoyi.in.jobdetail.domain.MydoJobDetail" resultMap="MydoJobDetailResult">
<select id="selectMydoJobDetailFinishList" parameterType="MydoJobDetail" resultMap="MydoJobDetailResult">
<include refid="selectMydoJobDetailFinishVo"/>
where job_detail_id = #{jobDetailId}
<where>
<if test="jobId != null and jobId != ''"> and job_id = #{jobId}</if>
<if test="stockId != null and stockId != ''"> and stock_id = #{stockId}</if>
<if test="lotNo != null and lotNo != ''"> and lot_no = #{lotNo}</if>
<if test="inDate != null and inDate != ''"> and in_date = #{inDate}</if>
<if test="inOrOutId != null and inOrOutId != ''"> and in_or_out_id = #{inOrOutId}</if>
<if test="inOrOutDId != null and inOrOutDId != ''"> and in_or_out_d_id = #{inOrOutDId}</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="inQuantity != null "> and in_quantity = #{inQuantity}</if>
<if test="stockQuantity != null "> and stock_quantity = #{stockQuantity}</if>
<if test="outQuantity != null "> and out_quantity = #{outQuantity}</if>
<if test="customerName != null and customerName != ''"> and customer_name like concat('%', #{customerName}, '%')</if>
<if test="supplierId != null and supplierId != ''"> and supplier_id = #{supplierId}</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
</where>
</select>
<insert id="insertMydoJobDetail" parameterType="MydoJobDetail">
insert into mydo_job_detail
@@ -138,4 +153,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{jobDetailId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -76,11 +76,89 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectMydoJobVo"/>
where job_id = #{jobId}
</select>
<select id="selectLatestInMydoJobByTrayCode" parameterType="String" resultMap="MydoJobResult">
select top 1 job_id, status, task_no, in_or_out, execution_phase, tray_code, warehouse_id, warehouse_name,
roadway_id, cargo_space_id, cargo_space_name, target_roadway_id, target_cargo_space_id,
target_cargo_space_name, line_type, priority, height, weight, create_time, start_time,
finish_time, entrance_id, exit_id, dept_id, dept_name, user_id, user_name, supplier_id,
supplier_name, customer_id, customer_name
from mydo_job
where tray_code = #{trayCode} and in_or_out = 1
order by create_time desc
</select>
<select id="selectInMydoJobByTaskNo" parameterType="String" resultMap="MydoJobResult">
select top 1 job_id, status, task_no, in_or_out, execution_phase, tray_code, warehouse_id, warehouse_name,
roadway_id, cargo_space_id, cargo_space_name, target_roadway_id, target_cargo_space_id,
target_cargo_space_name, line_type, priority, height, weight, create_time, start_time,
finish_time, entrance_id, exit_id, dept_id, dept_name, user_id, user_name, supplier_id,
supplier_name, customer_id, customer_name
from mydo_job
where task_no = #{taskNo} and in_or_out = 1
order by create_time desc
</select>
<select id="selectOutMydoJobByTaskNo" parameterType="String" resultMap="MydoJobResult">
select top 1 job_id, status, task_no, in_or_out, execution_phase, tray_code, warehouse_id, warehouse_name,
roadway_id, cargo_space_id, cargo_space_name, target_roadway_id, target_cargo_space_id,
target_cargo_space_name, line_type, priority, height, weight, create_time, start_time,
finish_time, entrance_id, exit_id, dept_id, dept_name, user_id, user_name, supplier_id,
supplier_name, customer_id, customer_name
from mydo_job
where task_no = #{taskNo} and in_or_out &gt;= 20
order by create_time desc
</select>
<select id="selectLatestInMydoJobByTrayCodeAndWarehouseId" parameterType="MydoJob" resultMap="MydoJobResult">
select top 1 job_id, status, task_no, in_or_out, execution_phase, tray_code, warehouse_id, warehouse_name,
roadway_id, cargo_space_id, cargo_space_name, target_roadway_id, target_cargo_space_id,
target_cargo_space_name, line_type, priority, height, weight, create_time, start_time,
finish_time, entrance_id, exit_id, dept_id, dept_name, user_id, user_name, supplier_id,
supplier_name, customer_id, customer_name
from mydo_job
where tray_code = #{trayCode} and warehouse_id = #{warehouseId} and in_or_out = 1
order by create_time desc
</select>
<select id="selectLatestOutMydoJobByTrayCodeAndWarehouseId" parameterType="MydoJob" resultMap="MydoJobResult">
select top 1 job_id, status, task_no, in_or_out, execution_phase, tray_code, warehouse_id, warehouse_name,
roadway_id, cargo_space_id, cargo_space_name, target_roadway_id, target_cargo_space_id,
target_cargo_space_name, line_type, priority, height, weight, create_time, start_time,
finish_time, entrance_id, exit_id, dept_id, dept_name, user_id, user_name, supplier_id,
supplier_name, customer_id, customer_name
from mydo_job
where tray_code = #{trayCode} and warehouse_id = #{warehouseId} and in_or_out &gt;= 20
order by create_time desc
</select>
<select id="selectPendingOutMydoJobsByStockoutDetailId" parameterType="String" resultMap="MydoJobResult">
select distinct j.job_id, j.status, j.task_no, j.in_or_out, j.execution_phase, j.tray_code,
j.warehouse_id, j.warehouse_name, j.roadway_id, j.cargo_space_id, j.cargo_space_name,
j.target_roadway_id, j.target_cargo_space_id, j.target_cargo_space_name, j.line_type,
j.priority, j.height, j.weight, j.create_time, j.start_time, j.finish_time, j.entrance_id,
j.exit_id, j.dept_id, j.dept_name, j.user_id, j.user_name, j.supplier_id, j.supplier_name,
j.customer_id, j.customer_name
from mydo_job j
inner join mydo_job_detail jd on j.job_id = jd.job_id
where jd.in_or_out_d_id = #{stockoutDetailId}
and j.in_or_out &gt;= 20
and j.status = '1'
order by j.create_time desc
</select>
<select id="selectStockinIdsByJobId" parameterType="String" resultType="String">
select distinct stockin_id
from mydo_job_detail
where job_id = #{jobId}
and stockin_id is not null
and stockin_id != ''
</select>
<select id="completeJob" parameterType="java.util.Map" statementType="CALLABLE">
{call proc_complete_in_job(
#{job_id,mode=IN,jdbcType=VARCHAR},
#{dept_id,mode=IN,jdbcType=INTEGER},
#{user_id,mode=IN,jdbcType=INTEGER},
#{dept_id,mode=IN,jdbcType=INTEGER},
#{v_result,mode=OUT,jdbcType=INTEGER},
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
@@ -404,4 +482,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY roadway_id
ORDER BY roadway_id
</select>
</mapper>
</mapper>

View File

@@ -3,30 +3,49 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.out.stockoutdetail.mapper.OutStockoutDetailMapper">
<resultMap type="OutStockoutDetail" id="OutStockoutDetailResult">
<result property="stockoutDetailId" column="stockout_detail_id" />
<result property="stockoutId" column="stockout_id" />
<result property="lotNo" column="lot_no" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="allotNum" column="allot_num" />
<result property="assignNum" column="assign_num" />
<result property="remark" column="remark" />
<result property="status" column="status" />
<result property="stockoutDetailId" column="stockout_detail_id" />
<result property="stockoutId" column="stockout_id" />
<result property="lotNo" column="lot_no" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="allotNum" column="allot_num" />
<result property="assignNum" column="assign_num" />
<result property="remark" column="remark" />
<result property="status" column="status" />
<result property="lineN" column="line_n" />
<result property="itemCod" column="item_cod" />
<result property="itemNam" column="item_nam" />
<result property="specMode" column="spec_mode" />
<result property="uni" column="uni" />
<result property="actualQt" column="actual_qt" />
<result property="warehous" column="warehous" />
<result property="locatio" column="locatio" />
<result property="inventoryStatus" column="inventory_" />
<result property="sourceDocN" column="source_doc_n" />
<result property="remar" column="remar" />
<result property="stockId" column="stock_id" />
<result property="stockDetailId" column="stock_detail_id" />
</resultMap>
<sql id="selectOutStockoutDetailVo">
select stockout_detail_id, stockout_id, lot_no, product_id, product_name, quantity, allot_num, assign_num, remark from out_stockout_detail
select stockout_detail_id, stockout_id, lot_no, product_id, product_name, quantity, allot_num, assign_num, remark, status,
line_n, item_cod, item_nam, spec_mode, uni, actual_qt, warehous, locatio, inventory_, source_doc_n, remar,
stock_id, stock_detail_id
from out_stockout_detail
</sql>
<sql id="selectOutStockoutDetailFinishVo">
select stockout_detail_id, stockout_id, lot_no, product_id, product_name, quantity, allot_num, assign_num, remark from out_stockout_detail_finish
select stockout_detail_id, stockout_id, lot_no, product_id, product_name, quantity, allot_num, assign_num, remark, status,
line_n, item_cod, item_nam, spec_mode, uni, actual_qt, warehous, locatio, inventory_, source_doc_n, remar,
stock_id, stock_detail_id
from out_stockout_detail_finish
</sql>
<select id="selectOutStockoutDetailList" parameterType="OutStockoutDetail" resultMap="OutStockoutDetailResult">
<include refid="selectOutStockoutDetailVo"/>
<where>
<where>
<if test="stockoutId != null and stockoutId != ''"> and stockout_id = #{stockoutId}</if>
<if test="lotNo != null and lotNo != ''"> and lot_no = #{lotNo}</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
@@ -34,9 +53,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quantity != null "> and quantity = #{quantity}</if>
<if test="allotNum != null "> and allot_num = #{allotNum}</if>
<if test="assignNum != null "> and assign_num = #{assignNum}</if>
<if test="itemCod != null and itemCod != ''"> and item_cod like concat('%', #{itemCod}, '%')</if>
<if test="itemNam != null and itemNam != ''"> and item_nam like concat('%', #{itemNam}, '%')</if>
</where>
</select>
<select id="selectOutStockoutDetailByStockoutDetailId" parameterType="String" resultMap="OutStockoutDetailResult">
<include refid="selectOutStockoutDetailVo"/>
where stockout_detail_id = #{stockoutDetailId}
@@ -55,6 +76,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="quantity != null "> and quantity = #{quantity}</if>
<if test="allotNum != null "> and allot_num = #{allotNum}</if>
<if test="assignNum != null "> and assign_num = #{assignNum}</if>
<if test="itemCod != null and itemCod != ''"> and item_cod like concat('%', #{itemCod}, '%')</if>
<if test="itemNam != null and itemNam != ''"> and item_nam like concat('%', #{itemNam}, '%')</if>
</where>
</select>
@@ -70,6 +93,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="allotNum != null">allot_num,</if>
<if test="assignNum != null">assign_num,</if>
<if test="remark != null">remark,</if>
<if test="status != null and status != ''">status,</if>
<if test="lineN != null">line_n,</if>
<if test="itemCod != null and itemCod != ''">item_cod,</if>
<if test="itemNam != null and itemNam != ''">item_nam,</if>
<if test="specMode != null and specMode != ''">spec_mode,</if>
<if test="uni != null and uni != ''">uni,</if>
<if test="actualQt != null">actual_qt,</if>
<if test="warehous != null and warehous != ''">warehous,</if>
<if test="locatio != null and locatio != ''">locatio,</if>
<if test="inventoryStatus != null and inventoryStatus != ''">inventory_,</if>
<if test="sourceDocN != null and sourceDocN != ''">source_doc_n,</if>
<if test="remar != null and remar != ''">remar,</if>
<if test="stockId != null and stockId != ''">stock_id,</if>
<if test="stockDetailId != null and stockDetailId != ''">stock_detail_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockoutDetailId != null">#{stockoutDetailId},</if>
@@ -81,6 +118,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="allotNum != null">#{allotNum},</if>
<if test="assignNum != null">#{assignNum},</if>
<if test="remark != null">#{remark},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="lineN != null">#{lineN},</if>
<if test="itemCod != null and itemCod != ''">#{itemCod},</if>
<if test="itemNam != null and itemNam != ''">#{itemNam},</if>
<if test="specMode != null and specMode != ''">#{specMode},</if>
<if test="uni != null and uni != ''">#{uni},</if>
<if test="actualQt != null">#{actualQt},</if>
<if test="warehous != null and warehous != ''">#{warehous},</if>
<if test="locatio != null and locatio != ''">#{locatio},</if>
<if test="inventoryStatus != null and inventoryStatus != ''">#{inventoryStatus},</if>
<if test="sourceDocN != null and sourceDocN != ''">#{sourceDocN},</if>
<if test="remar != null and remar != ''">#{remar},</if>
<if test="stockId != null and stockId != ''">#{stockId},</if>
<if test="stockDetailId != null and stockDetailId != ''">#{stockDetailId},</if>
</trim>
</insert>
@@ -95,6 +146,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="allotNum != null">allot_num = #{allotNum},</if>
<if test="assignNum != null">assign_num = #{assignNum},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="lineN != null">line_n = #{lineN},</if>
<if test="itemCod != null and itemCod != ''">item_cod = #{itemCod},</if>
<if test="itemNam != null and itemNam != ''">item_nam = #{itemNam},</if>
<if test="specMode != null and specMode != ''">spec_mode = #{specMode},</if>
<if test="uni != null and uni != ''">uni = #{uni},</if>
<if test="actualQt != null">actual_qt = #{actualQt},</if>
<if test="warehous != null and warehous != ''">warehous = #{warehous},</if>
<if test="locatio != null and locatio != ''">locatio = #{locatio},</if>
<if test="inventoryStatus != null and inventoryStatus != ''">inventory_ = #{inventoryStatus},</if>
<if test="sourceDocN != null and sourceDocN != ''">source_doc_n = #{sourceDocN},</if>
<if test="remar != null and remar != ''">remar = #{remar},</if>
<if test="stockId != null and stockId != ''">stock_id = #{stockId},</if>
<if test="stockDetailId != null and stockDetailId != ''">stock_detail_id = #{stockDetailId},</if>
</trim>
where stockout_detail_id = #{stockoutDetailId}
</update>
@@ -104,9 +169,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteOutStockoutDetailByStockoutDetailIds" parameterType="String">
delete from out_stockout_detail where stockout_detail_id in
delete from out_stockout_detail where stockout_detail_id in
<foreach item="stockoutDetailId" collection="array" open="(" separator="," close=")">
#{stockoutDetailId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -3,31 +3,61 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.out.stockout.mapper.OutStockoutMapper">
<resultMap type="OutStockout" id="OutStockoutResult">
<result property="stockoutId" column="stockout_id" />
<result property="outType" column="out_type" />
<result property="stockSource" column="stock_source" />
<result property="status" column="status" />
<result property="createDate" column="create_date" />
<result property="startDate" column="start_date" />
<result property="finishDate" column="finish_date" />
<result property="erpBill" column="erp_bill" />
<result property="warehouseId" column="warehouse_id" />
<result property="warehouseName" column="warehouse_name" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="deptId" column="dept_id" />
<result property="deptName" column="dept_name" />
<result property="customerId" column="customer_id" />
<result property="customerName" column="customer_name" />
<result property="stockoutId" column="stockout_id" />
<result property="outType" column="out_type" />
<result property="stockSource" column="stock_source" />
<result property="status" column="status" />
<result property="createDate" column="create_date" />
<result property="startDate" column="start_date" />
<result property="finishDate" column="finish_date" />
<result property="erpBill" column="erp_bill" />
<result property="warehouseId" column="warehouse_id" />
<result property="warehouseName" column="warehouse_name" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="deptId" column="dept_id" />
<result property="deptName" column="dept_name" />
<result property="customerId" column="customer_id" />
<result property="customerName" column="customer_name" />
<result property="documentN" column="document_n" />
<result property="documentDat" column="document_dat" />
<result property="projectNam" column="project_nam" />
<result property="counterpart" column="counterpart" />
<result property="receivingOr" column="receiving_or" />
<result property="purchasingOr" column="purchasing_or" />
<result property="receivingDep" column="receiving_dep" />
<result property="purchasingDep" column="purchasing_dep" />
<result property="handle" column="handle" />
<result property="creato" column="creato" />
<result property="logisticsCompany" column="logistics_" />
<result property="logisticsN" column="logistics_n" />
<result property="warehous" column="warehous" />
<result property="printCoun" column="print_coun" />
<result property="tota" column="tota" />
<result property="reviewe" column="reviewe" />
<result property="createDat" column="create_dat" />
<result property="reviewDat" column="review_dat" />
<result property="receive" column="receive" />
<result property="receiverA" column="receiver_a" />
<result property="receiverPhon" column="receiver_phon" />
<result property="materialRe" column="material_re" />
</resultMap>
<sql id="selectOutStockoutVo">
select stockout_id, out_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, customer_id, customer_name from out_stockout
select stockout_id, out_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, customer_id, customer_name,
document_n, document_dat, project_nam, counterpart, receiving_or, purchasing_or, receiving_dep, purchasing_dep,
handle, creato, logistics_, logistics_n, warehous, print_coun, tota, reviewe, create_dat, review_dat,
receive, receiver_a, receiver_phon, material_re
from out_stockout
</sql>
<sql id="selectOutStockoutFinishVo">
select stockout_id, out_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, customer_id, customer_name from out_stockout_finish
select stockout_id, out_type, stock_source, status, create_date, start_date, finish_date, erp_bill, warehouse_id, warehouse_name, user_id, user_name, dept_id, dept_name, customer_id, customer_name,
document_n, document_dat, project_nam, counterpart, receiving_or, purchasing_or, receiving_dep, purchasing_dep,
handle, creato, logistics_, logistics_n, warehous, print_coun, tota, reviewe, create_dat, review_dat,
receive, receiver_a, receiver_phon, material_re
from out_stockout_finish
</sql>
<select id="selectOutStockoutList" parameterType="OutStockout" resultMap="OutStockoutResult">
@@ -44,6 +74,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
<if test="customerName != null and customerName != ''"> and customer_name like concat('%', #{customerName}, '%')</if>
<if test="documentN != null and documentN != ''"> and document_n like concat('%', #{documentN}, '%')</if>
<if test="projectNam != null and projectNam != ''"> and project_nam like concat('%', #{projectNam}, '%')</if>
<if test="counterpart != null and counterpart != ''"> and counterpart like concat('%', #{counterpart}, '%')</if>
${params.warehouseScope}
</where>
</select>
@@ -66,6 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
<if test="customerName != null and customerName != ''"> and customer_name like concat('%', #{customerName}, '%')</if>
<if test="documentN != null and documentN != ''"> and document_n like concat('%', #{documentN}, '%')</if>
<if test="projectNam != null and projectNam != ''"> and project_nam like concat('%', #{projectNam}, '%')</if>
<if test="counterpart != null and counterpart != ''"> and counterpart like concat('%', #{counterpart}, '%')</if>
${params.warehouseScope}
</where>
</select>
@@ -96,6 +132,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptName != null and deptName != ''">dept_name,</if>
<if test="customerId != null">customer_id,</if>
<if test="customerName != null">customer_name,</if>
<if test="documentN != null and documentN != ''">document_n,</if>
<if test="documentDat != null">document_dat,</if>
<if test="projectNam != null and projectNam != ''">project_nam,</if>
<if test="counterpart != null and counterpart != ''">counterpart,</if>
<if test="receivingOr != null and receivingOr != ''">receiving_or,</if>
<if test="purchasingOr != null and purchasingOr != ''">purchasing_or,</if>
<if test="receivingDep != null and receivingDep != ''">receiving_dep,</if>
<if test="purchasingDep != null and purchasingDep != ''">purchasing_dep,</if>
<if test="handle != null and handle != ''">handle,</if>
<if test="creato != null and creato != ''">creato,</if>
<if test="logisticsCompany != null and logisticsCompany != ''">logistics_,</if>
<if test="logisticsN != null and logisticsN != ''">logistics_n,</if>
<if test="warehous != null and warehous != ''">warehous,</if>
<if test="printCoun != null">print_coun,</if>
<if test="tota != null">tota,</if>
<if test="reviewe != null and reviewe != ''">reviewe,</if>
<if test="createDat != null">create_dat,</if>
<if test="reviewDat != null">review_dat,</if>
<if test="receive != null and receive != ''">receive,</if>
<if test="receiverA != null and receiverA != ''">receiver_a,</if>
<if test="receiverPhon != null and receiverPhon != ''">receiver_phon,</if>
<if test="materialRe != null and materialRe != ''">material_re,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockoutId != null">#{stockoutId},</if>
@@ -114,6 +172,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="customerId != null">#{customerId},</if>
<if test="customerName != null">#{customerName},</if>
<if test="documentN != null and documentN != ''">#{documentN},</if>
<if test="documentDat != null">#{documentDat},</if>
<if test="projectNam != null and projectNam != ''">#{projectNam},</if>
<if test="counterpart != null and counterpart != ''">#{counterpart},</if>
<if test="receivingOr != null and receivingOr != ''">#{receivingOr},</if>
<if test="purchasingOr != null and purchasingOr != ''">#{purchasingOr},</if>
<if test="receivingDep != null and receivingDep != ''">#{receivingDep},</if>
<if test="purchasingDep != null and purchasingDep != ''">#{purchasingDep},</if>
<if test="handle != null and handle != ''">#{handle},</if>
<if test="creato != null and creato != ''">#{creato},</if>
<if test="logisticsCompany != null and logisticsCompany != ''">#{logisticsCompany},</if>
<if test="logisticsN != null and logisticsN != ''">#{logisticsN},</if>
<if test="warehous != null and warehous != ''">#{warehous},</if>
<if test="printCoun != null">#{printCoun},</if>
<if test="tota != null">#{tota},</if>
<if test="reviewe != null and reviewe != ''">#{reviewe},</if>
<if test="createDat != null">#{createDat},</if>
<if test="reviewDat != null">#{reviewDat},</if>
<if test="receive != null and receive != ''">#{receive},</if>
<if test="receiverA != null and receiverA != ''">#{receiverA},</if>
<if test="receiverPhon != null and receiverPhon != ''">#{receiverPhon},</if>
<if test="materialRe != null and materialRe != ''">#{materialRe},</if>
</trim>
</insert>
@@ -135,6 +215,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
<if test="customerId != null">customer_id = #{customerId},</if>
<if test="customerName != null">customer_name = #{customerName},</if>
<if test="documentN != null and documentN != ''">document_n = #{documentN},</if>
<if test="documentDat != null">document_dat = #{documentDat},</if>
<if test="projectNam != null and projectNam != ''">project_nam = #{projectNam},</if>
<if test="counterpart != null and counterpart != ''">counterpart = #{counterpart},</if>
<if test="receivingOr != null and receivingOr != ''">receiving_or = #{receivingOr},</if>
<if test="purchasingOr != null and purchasingOr != ''">purchasing_or = #{purchasingOr},</if>
<if test="receivingDep != null and receivingDep != ''">receiving_dep = #{receivingDep},</if>
<if test="purchasingDep != null and purchasingDep != ''">purchasing_dep = #{purchasingDep},</if>
<if test="handle != null and handle != ''">handle = #{handle},</if>
<if test="creato != null and creato != ''">creato = #{creato},</if>
<if test="logisticsCompany != null and logisticsCompany != ''">logistics_ = #{logisticsCompany},</if>
<if test="logisticsN != null and logisticsN != ''">logistics_n = #{logisticsN},</if>
<if test="warehous != null and warehous != ''">warehous = #{warehous},</if>
<if test="printCoun != null">print_coun = #{printCoun},</if>
<if test="tota != null">tota = #{tota},</if>
<if test="reviewe != null and reviewe != ''">reviewe = #{reviewe},</if>
<if test="createDat != null">create_dat = #{createDat},</if>
<if test="reviewDat != null">review_dat = #{reviewDat},</if>
<if test="receive != null and receive != ''">receive = #{receive},</if>
<if test="receiverA != null and receiverA != ''">receiver_a = #{receiverA},</if>
<if test="receiverPhon != null and receiverPhon != ''">receiver_phon = #{receiverPhon},</if>
<if test="materialRe != null and materialRe != ''">material_re = #{materialRe},</if>
</trim>
where stockout_id = #{stockoutId}
</update>
@@ -165,4 +267,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{stockoutId}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -6,8 +6,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="addInJob" parameterType="java.util.Map" statementType="CALLABLE">
{call proc_add_in_job(
#{v_tray_code,mode=IN,jdbcType=VARCHAR},
#{v_dept_id,mode=IN,jdbcType=INTEGER},
#{v_warehouse_id,mode=IN,jdbcType=VARCHAR},
#{v_user_id,mode=IN,jdbcType=INTEGER},
#{v_dept_id,mode=IN,jdbcType=INTEGER},
#{v_result,mode=OUT,jdbcType=INTEGER},
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
@@ -15,11 +16,138 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="bindTray" parameterType="java.util.Map" statementType="CALLABLE">
{call proc_bind_tray_msg(
#{v_tray_code,mode=IN,jdbcType=VARCHAR},
#{v_stockin_detail_id,mode=IN,jdbcType=VARCHAR},
#{v_tray_code,mode=IN,jdbcType=VARCHAR},
#{v_warehouse_id,mode=IN,jdbcType=VARCHAR},
#{v_quantity,mode=IN,jdbcType=INTEGER},
#{v_user_id,mode=IN,jdbcType=INTEGER},
#{v_dept_id,mode=IN,jdbcType=INTEGER},
#{v_result,mode=OUT,jdbcType=INTEGER},
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
</select>
</mapper>
<select id="selectMatchedTrayRule" parameterType="java.util.Map" resultType="java.util.HashMap">
select top 1 tray_type, allowed_cargo_type
from bas_tray_rule
where tray_type = #{v_tray_type}
and charindex(',' + #{v_warehouse_id} + ',', ',' + allowed_warehouses + ',') > 0
order by id
</select>
<select id="selectAvailableInboundRoadway" parameterType="java.util.Map" resultType="java.util.HashMap">
select top 1 roadway_id
from bas_cargo_space
where warehouse_id = #{v_warehouse_id}
and the_type = #{v_cargo_type}
and (#{v_roadway_id} is null or #{v_roadway_id} = '' or roadway_id = #{v_roadway_id})
and status = '1'
and locked = 'N'
and (tray_code is null or tray_code = '')
order by roadway_id asc, the_floor asc, the_platoon asc, the_column asc
</select>
<update id="lockInboundCargoSpace" parameterType="java.util.Map">
update bas_cargo_space
set status = '3',
locked = 'Y',
tray_code = #{v_tray_code}
where cargo_space_id = (
select top 1 cargo_space_id
from bas_cargo_space with (UPDLOCK, READPAST, ROWLOCK)
where warehouse_id = #{v_warehouse_id}
and the_type = #{v_cargo_type}
and (#{v_roadway_id} is null or #{v_roadway_id} = '' or roadway_id = #{v_roadway_id})
and status = '1'
and locked = 'N'
and (tray_code is null or tray_code = '')
order by the_floor asc, the_platoon asc, the_column asc
)
</update>
<select id="selectLockedCargoSpaceByTrayCode" parameterType="java.util.Map" resultType="java.util.HashMap">
select top 1 cargo_space_id, cargo_space_name, roadway_id
from bas_cargo_space
where warehouse_id = #{v_warehouse_id}
and tray_code = #{v_tray_code}
and (#{v_roadway_id} is null or #{v_roadway_id} = '' or roadway_id = #{v_roadway_id})
and status = '3'
and locked = 'Y'
order by the_floor asc, the_platoon asc, the_column asc
</select>
<update id="releaseInboundCargoSpace" parameterType="java.util.Map">
update bas_cargo_space
set status = '1',
locked = 'N',
tray_code = null
where warehouse_id = #{v_warehouse_id}
and tray_code = #{v_tray_code}
and status = '3'
and locked = 'Y'
</update>
<select id="outboundTaskList" parameterType="java.util.Map" resultType="java.util.HashMap">
select j.job_id as jobId,
j.task_no as taskNo,
'confirm' as type,
'出库确认' as typeName,
'confirm' as typeClass,
max(jd.product_id) as materialCode,
max(jd.product_name) as materialName,
sum(isnull(jd.out_quantity, 0)) as quantity,
isnull(j.exit_id, '') as portName,
convert(varchar(19), j.create_time, 120) as createTime,
j.status as status,
case j.status
when '1' then '未执行'
when '2' then '待执行'
when '3' then '执行中'
else '待确认'
end as statusName,
case j.status
when '1' then 'pending'
when '2' then 'pending'
when '3' then 'processing'
else 'pending'
end as statusClass
from mydo_job j
inner join mydo_job_detail jd on j.job_id = jd.job_id
where j.in_or_out &gt;= 20
and j.status in ('1', '2', '3')
and (#{taskNo} is null or #{taskNo} = '' or j.task_no = #{taskNo})
group by j.job_id, j.task_no, j.exit_id, j.create_time, j.status
order by j.create_time desc
</select>
<select id="selectOutboundDetail" parameterType="java.util.Map" resultType="java.util.HashMap">
select top 1 j.job_id as jobId,
j.task_no as taskNo,
jd.job_detail_id as jobDetailId,
jd.stock_id as stockId,
jd.stockin_detail_id as stockDetailId,
jd.product_id as materialCode,
jd.product_name as materialName,
jd.lot_no as lotNo,
jd.out_quantity as quantity,
j.tray_code as trayCode,
j.cargo_space_id as locationCode,
j.cargo_space_name as locationName,
isnull(j.exit_id, '') as portName,
'' as spec
from mydo_job j
inner join mydo_job_detail jd on j.job_id = jd.job_id
where j.in_or_out &gt;= 20
and j.status in ('1', '2', '3')
and (#{taskNo} is null or #{taskNo} = '' or j.task_no = #{taskNo})
and (
#{barcode} is null or #{barcode} = ''
or j.task_no = #{barcode}
or j.tray_code = #{barcode}
or jd.stock_id = #{barcode}
or jd.stockin_detail_id = #{barcode}
or jd.product_id = #{barcode}
)
order by j.create_time desc, jd.job_detail_id
</select>
</mapper>