|  |  |  | 
|---|
|  |  |  | 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.LocDirectionService; | 
|---|
|  |  |  | 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.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Service("locMastService") | 
|---|
|  |  |  | public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocDirectionService locDirectionService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<String> queryGroupEmptyStock(String sourceLocNo, Long hostId) { | 
|---|
|  |  |  | 
|---|
|  |  |  | return this.baseMapper.queryGroupEmptyStock(hostId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<LocMast> queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd, Long hostId,Long whsType) { | 
|---|
|  |  |  | return this.baseMapper.queryFreeLocMast2(locType1, rowBeg, rowEnd, bayBeg, bayEnd, levBeg, levEnd, hostId, whsType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Boolean checkEmptyCount(LocMast locMast, int quaOfBlank, Long hostId) { | 
|---|
|  |  |  | if (locMast == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int count = this.baseMapper.selectCount(new LambdaQueryWrapper<LocMast>() | 
|---|
|  |  |  | .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<String> groupLoc = Utils.getGroupLoc(locNo, hostId); | 
|---|
|  |  |  | boolean asc = locDirectionService.isAsc(Utils.getRow(locNo), "inner", hostId); | 
|---|
|  |  |  | if (!Cools.isEmpty(groupLoc)) { | 
|---|
|  |  |  | LambdaQueryWrapper<LocMast> wrapper = new LambdaQueryWrapper<LocMast>() | 
|---|
|  |  |  | .eq(LocMast::getLocSts, 'O') | 
|---|
|  |  |  | .in(LocMast::getLocNo, groupLoc) | 
|---|
|  |  |  | .eq(LocMast::getHostId, hostId); | 
|---|
|  |  |  | if (asc) { | 
|---|
|  |  |  | wrapper.orderByAsc(LocMast::getRow1); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | wrapper.orderByDesc(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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|