24年6月份po1项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
po106/shkj-wms/src/main/java/com/shkj/wms/service/IBaseLocationService.java

194 lines
5.0 KiB

package com.shkj.wms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shkj.common.core.domain.Result;
import com.shkj.wms.bo.*;
import com.shkj.wms.domain.BaseLocation;
import com.shkj.wms.config.ValidList;
import com.shkj.wms.domain.BusinDataTask;
import com.shkj.wms.vo.BaseLocationDetailVo;
import com.shkj.wms.vo.BaseLocationVo;
import com.shkj.wms.vo.BusinDataTaskGoodsVo;
import java.util.List;
/**
* 货位资料Service接口
*
* @author lch
* @date 2022-04-23
*/
public interface IBaseLocationService extends IService<BaseLocation> {
/**
* 查询单个
*
* @param id
* @return
*/
Result<BaseLocationVo> queryById(Long id);
/**
* 查询列表
*
* @param bo
* @return
*/
List<BaseLocationVo> queryList(BaseLocationQueryBo bo);
/**
* 根据新增业务对象插入货位资料
*
* @param bo 货位资料新增业务对象
* @return
*/
Result<Boolean> insertByAddBo(BaseLocationAddBo bo);
/**
* 根据编辑业务对象修改货位资料
*
* @param bo 货位资料编辑业务对象
* @return
*/
Result<Boolean> updateByEditBo(BaseLocationEditBo bo);
/**
* 校验并删除数据
*
* @param ids 主键集合
* @param isValid 是否校验,true-删除前校验,false-不校验
* @return
*/
Result<Boolean> deleteWithValidById(List<Long> ids, Boolean isValid);
/**
* 获取推荐的货位
*
* @param distribute true 已存在就不会找新的 false 会找到所有符合的
* @param locationName
* @param businInShelfD
* @param goods
* @param basePackage
* @return
*/
// List<Long> queryRecommendLocations(Boolean distribute, String locationName, BusinInShelfD businInShelfD, BaseGoods goods, BasePackage basePackage);
/**
* 根据id集合查询货位信息
*
* @param locationIds
* @return
*/
List<BaseLocationVo> queryLocationsByIds(List<Long> locationIds);
/**
* 根据id集合查询货位信息
*
* @param locationIds
* @param goodsId
* @return
*/
List<BaseLocationVo> queryLocationsPackageByIds(List<Long> locationIds, Long goodsId);
/**
* 查询货位资料列表
* @param bo
* @return
*/
List<BaseLocationVo> queryBaseLocationList(BaseLocationQueryPageBo bo);
BaseLocation queryBaseLocationByrcl(String locationRow,String locationCol,String layer,String tunnel);
/**
* 查询满足条件下的货位数据对应的巷道号
* @param bo
* @return
*/
List<String> queryBaseLocationTunnelList(BaseLocationQueryListBo bo);
/**
* 保存或者修改货位资料集合(根据是否有id来判断新增或者修改)
* @param list
* @return
*/
Result<Boolean> saveOrUpdateBaseLocations(ValidList<BaseLocationSaveOrUpdateBo> list);
/**
* 按规则保存多个货位资料集合
* @param bo
* @return
*/
Result<Boolean> saveBaseLocationMany(BaseLocationManyBo bo);
/**
* 保存或者修改货位(根据是否有id来判断新增或者修改)
* @param bo
* @return
*/
Result<Boolean> saveOrUpdateBaseLocation(BaseLocationSaveOrUpdateBo bo);
BaseLocationVo queryLocationById(Long targetLocationId);
BaseLocationVo queryLocationByCode(String locationCode);
BaseLocationVo queryLocationByName(String locationName);
BaseLocationVo queryLocationByTunnel(String tunnel);
Result<Boolean> switchStatus(Long id, String status);
/**
* 根据派生分配空货位
*
* @param vehicheModel
* @return
*/
Result<BaseLocationVo> assignEmptyLocation(String vehicheModel,String color ,String batch,List<BusinDataTaskGoodsVo> businDataTaskGoodsVos);
/**
* 根据产品查找库内库存数量最少的巷道
* @param goodsNo
* @param batch
* @param businDataTaskGoodsVos
* @return
*/
Result<BaseLocationVo> assignEmptyLocationByStock( String goodsNo,String vehicheModel, String batch,List<BusinDataTaskGoodsVo> businDataTaskGoodsVos);
Result<BaseLocationVo> assignEmptyLocationAll(AssingEmptyLocBo assingEmptyLocBo,String tunnel);
/**
* 冲孔杠分配货位
* @param assingEmptyLocBo
* @return
*/
Result<BaseLocationVo> assignEmptyLocatioPunching(AssingEmptyLocBo assingEmptyLocBo);
/**
* 检查货位是否有对应双深位
*
* @param locationVo 当前货位
* @return
*/
Result<BaseLocationVo> getDeepLocation(BaseLocationVo locationVo);
/**
* 更改货位状态
*
* @param id 货位ID
* @param status 货位状态
* @return
*/
Result<Boolean> changeLocationStatus(Long id, String status);
List<BaseLocationVo> getBaseLocationForMap(BaseLocationQueryPageBo bo);
Result<List<BaseLocationDetailVo>> queryTargetLocation(BaseLocationUrgentBo bo);
void checkLocation(BusinDataTask businDataTask);
}