package com.zy.asrs.common.wms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.common.domain.dto.LocRangeDto; import com.zy.asrs.common.utils.Utils; import com.zy.asrs.common.wms.mapper.LocMastMapper; import com.zy.asrs.common.wms.entity.LocMast; import com.zy.asrs.common.wms.service.LocMastService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.asrs.framework.common.Cools; import org.springframework.stereotype.Service; import java.util.List; @Service("locMastService") public class LocMastServiceImpl extends ServiceImpl implements LocMastService { @Override public List queryGroupEmptyStock(String sourceLocNo, Long hostId) { if (Cools.isEmpty(sourceLocNo)) { return null; } LocMast sourceStock = this.getOne(new LambdaQueryWrapper() .eq(LocMast::getLocNo, sourceLocNo) .eq(LocMast::getHostId, hostId)); if (Cools.isEmpty(sourceStock)) { return null; } return this.baseMapper.queryGroupEmptyStock(hostId); } @Override public List queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd, Long hostId) { return this.baseMapper.queryFreeLocMast2(locType1, rowBeg, rowEnd, bayBeg, bayEnd, levBeg, levEnd, hostId); } @Override public Boolean checkEmptyCount(LocMast locMast, int quaOfBlank, Long hostId) { if (locMast == null) { return false; } int count = this.baseMapper.selectCount(new LambdaQueryWrapper() .eq(LocMast::getLocSts, 'O') // .eq(LocMast::getLocType3, locMast.getLocType3()) .eq(LocMast::getLev1, locMast.getLev1()) .eq(LocMast::getHostId, hostId)); return count > quaOfBlank; } @Override public LocMast findNearloc(String locNo, Long hostId, LocRangeDto locRangeDto) { LocMast locMast = null; List groupOuterLoc = Utils.getGroupOuterLoc(locNo, hostId); if (!Cools.isEmpty(groupOuterLoc)) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(LocMast::getLocSts, 'O') .in(LocMast::getLocNo, groupOuterLoc) .eq(LocMast::getHostId, hostId) .orderByAsc(LocMast::getRow1); //库位搜索范围 if (locRangeDto != null) { wrapper.ge(LocMast::getRow1, locRangeDto.getStartRow()); wrapper.le(LocMast::getRow1, locRangeDto.getTargetRow()); wrapper.ge(LocMast::getBay1, locRangeDto.getStartBay()); wrapper.le(LocMast::getBay1, locRangeDto.getTargetBay()); wrapper.ge(LocMast::getLev1, locRangeDto.getStartLev()); wrapper.le(LocMast::getLev1, locRangeDto.getTargetLev()); } locMast = this.getOne(wrapper, false); } return locMast; } }