package com.chinaztt.mes.warehouse.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.chinaztt.mes.basic.entity.Location; import com.chinaztt.mes.warehouse.dto.FeedingStockDTO; import com.chinaztt.mes.warehouse.dto.IfsMoveLibraryInfoDTO; import com.chinaztt.mes.warehouse.dto.MoveLibraryBoxDTO; import com.chinaztt.mes.warehouse.dto.StockDTO; import com.chinaztt.mes.warehouse.entity.JoinStockOrder; import com.chinaztt.mes.warehouse.entity.Stock; import com.chinaztt.mes.warehouse.entity.Transaction; import com.chinaztt.mes.warehouse.excel.StockData; import com.chinaztt.ztt.common.core.util.R; import java.math.BigDecimal; import java.util.List; /** * 库存表 * * @author cxf * @date 2020-10-22 16:37:46 */ public interface StockService extends IService { /** * PDA查询所有 * * @param gen * @return */ List pdaList(QueryWrapper gen); /** * 分页查询 * * @param page * @param gen * @param stockDTO * @return */ IPage getStockPage(Page page, QueryWrapper gen); /** * 实时库存分页查询 * * @param page * @param gen * @param stockDTO * @return */ IPage getRealTimeStockPage(Page page, QueryWrapper gen,StockDTO stockDTO); /** * 根据sn号获取库存明细 * * @param partBatchNo * @return */ List getStockBySn(String partBatchNo); /** * 部分分页查询 * * @param gen * @return */ List getFeedingStock(Long workstationId, QueryWrapper gen); /** * 分页查询 * * @param page * @param gen * @param partId * @return */ IPage> getStockByPartIdPage(Page page, QueryWrapper gen, Long partId); /** * 根据工作站id查询线边仓 预留物料为0 * * @param gen * @return */ IPage> getStockByWorkstationId(Page page, QueryWrapper gen); /** * 根据工作站id查询线边仓待处理物料 * * @param gen * @return */ IPage> getToDealStockByWorkstationId(Page page, QueryWrapper gen); /** * 根据库位查询零件 * * @param ids * @return */ List getStockByLocation(List ids); /** * 导入excel数据 * * @param list */ void importExcel(List list); /** * 根据库位查询零件 * * @param stockDTOList * @return */ Boolean moveStock(List stockDTOList); /** * 根据零件、库位和批次号筛选实时库存 * * @param stockDTO * @return */ List getStock(StockDTO stockDTO,String condition); /** * 根据零件、库位和批次号筛选实时库存数量 * * @param stockDTO * @return */ Integer countStock(StockDTO stockDTO,String condition); /** * 新增实时库存 * * @param stockDTO * @return */ boolean fullSave(StockDTO stockDTO); /** * IFS库存发放与接收 * @param stockList * @param adjustType * @param adjustMemo */ void inventAdjustForRfcable(List stockList, String adjustType, String reasonNo); /** * IFS WDR更新 */ void ifsImportChangeWdrStd(List stockList, String wdrNo); /** * 删除实时库存的数量 * * @param stockDTOList * @return */ Boolean deleteStock(List stockDTOList); /** * 添加实时库存的数量 * * @param stockDTOList * @return */ Boolean addStock(List stockDTOList); /** * 根据工单所需物料获取实时库存 * * @param page * @param gen * @param operationTaskId * @return */ IPage> getStockPageByOperation(Page page, QueryWrapper gen, Long operationTaskId); IPage> getStockPageByOperation(Page page, QueryWrapper gen,StockDTO stockDTO, Long operationTaskId); /** * 根据工单所需物料获取实时库存(不分页) * * @param gen * @param operationTaskId * @return */ List getStockListByOperation(QueryWrapper gen, Long operationTaskId); List getStockListByOperation(QueryWrapper gen,StockDTO stock, Long operationTaskId); /** * 预留 * * @param joinStockOrderList * @return */ boolean reserve(List joinStockOrderList); /** * 取消预留 * * @param joinStockOrderList * @return */ R cancelReserve(List joinStockOrderList); /** * 获取ifs库存 * * @param partNo * @return */ R getIfsStock(String partNo, JSONObject jsonObject); /** * 根据SN号获取可用实时库存对象list * * @param sn * @return */ R getEnableStockObjList(String sn); /** * 获取可用库位对象list * * @return */ R getEnableLocationObjList(); /** * pda提交移库请求 * * @param moveLibraryBoxDTOList * @return */ R pdaMoveStockSubmit(List moveLibraryBoxDTOList); /** * 查找成品库位 * @return */ List getFinishProductLocation(); /** * 根据SN号和零件号获取非不合格库位库存 * @param sn * @param partNo * @return */ List getFinishProductStock(String sn, String partNo); /* * 根据库存no和SN号获取库存 * * @param locationNo * @param sn */ R getStockByLocNoAndSn(String locationNo,String sn); /** * 分页查询出库位尾号为001的 * * @param page * @param gen * @return */ IPage> getStockPageByLocNo(Page page, QueryWrapper gen); /** * 库存件接收校验 * @param stockDTOList * @return */ R checkWdr(List stockDTOList); /** * 通过SN号查到其入库前的库位 * @param sn * @return */ Transaction getTransactionBySn(String sn); /** * pda退库 * @param sn * @param quantity * @return */ R returnStockBySn(String sn, BigDecimal quantity); /** * ifs库存件移库 * @param ifsMoveLibraryInfoDTOList */ void ifsMoveLibrary(List ifsMoveLibraryInfoDTOList); List getERPStockListByOperation(String partNo,String batchNo); R lockStore(StockDTO stockDTO); R getERPStockListPageByOperation(Page page,String partNo, Integer pageIndex, Integer pageSize); }