|
|
|
|
|
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);
|
|
|
|
|
|
}
|