package com.ruoyi.ams.xuankuang.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO; import com.ruoyi.ams.inv.service.IInvLotLocIdService; import com.ruoyi.base.constant.Constant; import com.ruoyi.base.domain.BaseLocationInfo; import com.ruoyi.base.domain.vo.BaseLocationLotattDTO; import com.ruoyi.base.domain.vo.LotattVO; import com.ruoyi.base.service.IBaseLocationInfoService; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.utils.ConvertUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; /** * @author HuKang * @version 1.0 * @date 2023/3/30 15:42 */ @Slf4j @Service("bucketWcsToWmsApiService") public class BucketWcsToWmsApiService extends WcsToWmsApiService { @Autowired private IBaseLocationInfoService baseLocationInfoService; @Autowired private WcsToWmsApiService wcsToWmsApiService; @Autowired private IInvLotLocIdService invLotLocIdService; /** * 入库分配库位 * @return * TODO 李卫 */ @Override protected BaseLocationInfo selectLocationInfo(){ //4,5,6 List locationInfoList = baseLocationInfoService.selectLocationInfoList(Constants.EMPTY_PALLET_INV, Constant.PALLET_TYPE, Boolean.TRUE, Constant.STOCK_STATUS.STOCK00.getValue()); //获得库存表的排序 orderby //1,2,3,4,5,6 List bucketLocationIdList = wcsToWmsApiService.getBucketLocationIdList(Constants.EMPTY_PALLET_INV_SORT); List finalLocationInfoList = bucketLocationIdList.stream().map(id -> locationInfoList.stream().filter(info -> id.equals(info.getId())).findFirst().orElseGet(() -> null) ).filter(ObjectUtil::isNotNull).collect(Collectors.toList()); //4 return CollectionUtil.getFirst(finalLocationInfoList); } /** * 出库分配库存 * @return * TODO 李卫 */ protected BaseLocationLotattDTO allocateLocationInfo(){ //1,2,3 List locationInfoList = baseLocationInfoService.selectLocationInfoList(Constants.EMPTY_PALLET_INV, Constant.PALLET_TYPE, Boolean.FALSE, Constant.STOCK_STATUS.STOCK00.getValue()); //获得库存表的排序 orderby //1,2,3,4,5,6 List bucketLocationIdList = wcsToWmsApiService.getBucketLocationIdList(Constants.EMPTY_PALLET_INV_SORT); List finalLocationInfoList = bucketLocationIdList.stream().map(id -> locationInfoList.stream().filter(info -> id.equals(info.getId())).findFirst().orElseGet(() -> null) ).filter(ObjectUtil::isNotNull).collect(Collectors.toList()); //3 BaseLocationInfo baseLocationInfo = CollectionUtil.getLast(finalLocationInfoList); List invLotLocIdLotattVOS = invLotLocIdService.selectInvLocIdLotattByLocationId(baseLocationInfo.getId()); BaseLocationLotattDTO baseLocationLotatt = ConvertUtils.sourceToTarget(baseLocationInfo, BaseLocationLotattDTO.class); LotattVO lotattVO = new LotattVO(); lotattVO.setLotatt07(invLotLocIdLotattVOS.get(0).getLotatt07()); baseLocationLotatt.setLotattVO(lotattVO); return baseLocationLotatt; } }