You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.7 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.ruoyi.asset.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.asset.domain.AmsAsset;
import com.ruoyi.asset.domain.AmsTransferOrder;
import com.ruoyi.asset.domain.AmsTransferOrderItem;
/**
* 调拨管理Mapper接口
*
* @author Yangk
* @date 2026-06-12
*/
public interface AmsTransferOrderMapper
{
/**
* 查询调拨管理
*
* @param orderId 调拨管理主键
* @return 调拨管理
*/
public AmsTransferOrder selectAmsTransferOrderByOrderId(Long orderId);
/**
* 查询并锁定调拨单SELECT ... FOR UPDATE防止并发操作
*/
public AmsTransferOrder selectAmsTransferOrderByOrderIdForUpdate(Long orderId);
/**
* 查询调拨管理列表
*
* @param amsTransferOrder 调拨管理
* @return 调拨管理集合
*/
public List<AmsTransferOrder> selectAmsTransferOrderList(AmsTransferOrder amsTransferOrder);
/**
* 查询未被其他有效调拨单占用的在库或在用资产(调拨单明细弹窗选择器使用)
* <p>只筛选 IN_STOCK 或 IN_USE 状态的资产,排除已被其他草稿或待确认调拨单引用的行项。</p>
*/
public List<AmsAsset> selectAvailableTransferAssetList(@Param("asset") AmsAsset amsAsset,
@Param("currentOrderId") Long currentOrderId, @Param("stockStatus") String stockStatus,
@Param("inUseStatus") String inUseStatus, @Param("draftStatus") String draftStatus,
@Param("pendingStatus") String pendingStatus);
/**
* 统计资产被其他有效调拨单占用的数量(草稿+待确认)
* <p>配合 selectAmsAssetByAssetIdForUpdate 行锁使用,
* 确保同一资产不会被多个并发调拨单同时引用。</p>
*/
public int countOtherActiveTransferOrderByAssetId(@Param("assetId") Long assetId,
@Param("currentOrderId") Long currentOrderId, @Param("draftStatus") String draftStatus,
@Param("pendingStatus") String pendingStatus);
/**
* 新增调拨管理
*
* @param amsTransferOrder 调拨管理
* @return 结果
*/
public int insertAmsTransferOrder(AmsTransferOrder amsTransferOrder);
/**
* 修改调拨管理
*
* @param amsTransferOrder 调拨管理
* @return 结果
*/
public int updateAmsTransferOrder(AmsTransferOrder amsTransferOrder);
/** 提交调拨单DRAFT → PENDING_CONFIRM */
public int submitAmsTransferOrder(AmsTransferOrder amsTransferOrder);
/** 确认调拨单PENDING_CONFIRM → TRANSFERRED */
public int confirmAmsTransferOrder(AmsTransferOrder amsTransferOrder);
/**
* 删除调拨管理
*
* @param orderId 调拨管理主键
* @return 结果
*/
public int deleteAmsTransferOrderByOrderId(Long orderId);
/**
* 批量删除调拨管理
*
* @param orderIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteAmsTransferOrderByOrderIds(String[] orderIds);
/**
* 批量删除调拨单明细
*
* @param orderIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteAmsTransferOrderItemByOrderIds(String[] orderIds);
/**
* 批量新增调拨单明细
*
* @param amsTransferOrderItemList 调拨单明细列表
* @return 结果
*/
public int batchAmsTransferOrderItem(List<AmsTransferOrderItem> amsTransferOrderItemList);
/**
* 通过调拨管理主键删除调拨单明细信息
*
* @param orderId 调拨管理ID
* @return 结果
*/
public int deleteAmsTransferOrderItemByOrderId(Long orderId);
}