package com.ruoyi.ams.inv.service; import java.util.List; import com.ruoyi.ams.config.domain.dto.LotattDTO; import com.ruoyi.ams.inv.domain.InvLotAtt; import com.ruoyi.ams.inv.domain.InvLotLocId; import com.ruoyi.ams.inv.domain.form.InvLocIdSearchFrom; import com.ruoyi.ams.inv.domain.form.InvLotLocIdAdjForm; import com.ruoyi.ams.inv.domain.form.InvLotLocIdForm; import com.ruoyi.ams.inv.domain.form.InvLotLocIdMoveForm; import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO; import com.ruoyi.base.domain.BaseLocationInfo; import com.ruoyi.base.domain.vo.BaseLocationLotattVO; import com.ruoyi.common.core.domain.AjaxResult; import org.apache.ibatis.annotations.Param; /** * 库位库存信息Service接口 * * @author andy * @date 2022-03-03 */ public interface IInvLotLocIdService { /** * 查询库位库存信息 * * @param lotnum 库位库存信息主键 * @return 库位库存信息 */ InvLotLocId selectInvLotLocIdByLotnum(String lotnum); /** * 根据主键查询 * * @param locationId * @param customerId * @param sku * @param lotnum * @return */ InvLotLocId selectInvLotLocIdById(String locationId, String customerId, String sku, String lotnum); /** * 查询库位库存信息列表 * * @param locationId * @return */ List selectInvLotLocIdList(Long locationId); /** * 查询库位库存信息列表 * * @param invLotLocId 库位库存信息 * @return 库位库存信息集合 */ List selectInvLotLocIdList(InvLotLocId invLotLocId); /** * 查询物料批次信息列表 * * @param invLocIdSearchFrom * @return */ List selectInvLocIdLotattList(InvLocIdSearchFrom invLocIdSearchFrom); /** * 查询库位库存信息 * * @param invLotLocId 库位库存信息 * @return 库位库存信息集合 */ InvLotLocId selectInvLotLocIdByModel(InvLotLocId invLotLocId); /** * 库存调整 * * @return */ AjaxResult adj(InvLotLocIdAdjForm invLotLocIdAdjForm); /** * 库存移动 * * @return */ AjaxResult move(InvLotLocIdMoveForm invLotLocIdMoveForm); /** * 库存移动(直接转移库存) * * @param invLotLocIdMoveForm * @return */ AjaxResult moveDirect(InvLotLocIdMoveForm invLotLocIdMoveForm); /** * 库存清理 * * @return */ AjaxResult clear(String locationId, Long warehouseId, String updateBy); /** * 库位任务状态调整 * * @return */ AjaxResult adjLocationStockStatus(String locationId, Long warehouseId, String updateBy); /** * 库存是否有货状态调整 * * @return */ AjaxResult adjLocationIsEmpty(String locationId, Long warehouseId, String updateBy); /** * 新增库位库存信息 * * @param invLotLocId 库位库存信息 * @return 结果 */ int insertInvLotLocId(InvLotLocId invLotLocId); /** * 修改库位库存信息 * * @param invLotLocId 库位库存信息 * @return 结果 */ int updateInvLotLocId(InvLotLocId invLotLocId); /** * 批量删除库位库存信息 * * @param lotnums 需要删除的库位库存信息主键集合 * @return 结果 */ int deleteInvLotLocIdByLotnums(String[] lotnums); /** * 删除库位库存信息信息 * * @param lotnum 库位库存信息主键 * @return 结果 */ int deleteInvLotLocIdByLotnum(String lotnum); /** * 初始化库存 * * @param */ void initInv(String locationFrom, String sku, String customerId, Double qty, LotattDTO lotattDTO); /** * 根据库位id查询库位库存包含批次属性 * * @param locationId * @return */ List selectInvLocIdLotattByLocationId(Long locationId); /** * 库存转移 * * @param locationFrom 起始点位 * @param locationTo 目标点位 * @return */ int stockTransfer(Long locationFrom, Long locationTo); /** * 根据物料编号和批次属性查询库存数量 * * @param sku * @param lotattDTO * @return */ Double queryInvBySku(String sku, LotattDTO lotattDTO, List zoneIdList); /** * 根据出库单明细查询库存 * * @param lotnum * @param sku * @param location * @param customerId * @return */ List queryInvOrderBy(String lotnum, String sku, String location, String customerId); /** * 根据托盘号查询库存 * * @param invLotAtt * @return */ List queryInvByInvLotatt(InvLotAtt invLotAtt, String boxNo); /** * 查询已备货的满托库存 * * @param orderNo * @param sku * @return */ List queryInvByFull(String orderNo, String sku); /** * 根据托盘解绑库存 * * @param palletNo * @return */ AjaxResult unLockInvByPalletNo(String palletNo, String sn); }