自动化立体仓库 - WMS系统
dubin
1 天以前 dd76858f35bb4fdd76d5976465e9bd96267b0f0b
src/main/java/com/zy/common/service/CommonService.java
@@ -134,7 +134,15 @@
    @Transactional
    public StartupDto getLocNo(BasDevp sourceStaNo, LocTypeDto locTypeDto,int inType){
        LocMast locMast;
        LocMast locMast = null;
        // 二期入库找库位
        if (sourceStaNo.getDevNo() == 1102 || sourceStaNo.getDevNo() == 2101 || sourceStaNo.getDevNo() == 2103){
            locMast = searchLocBySecond(locTypeDto, sourceStaNo.getDevNo(), inType);
        }
        if (locMast != null){
            return getLocNoReturn(locMast, sourceStaNo.getDevNo(), inType);
        }
        // 空托入库找库位
        locMast = searchLocByEmpty(sourceStaNo, inType);
@@ -242,15 +250,19 @@
        }
        // 如果是305入库,在一号堆垛机空闲的时候应先入一号巷道,确保出库效率
        if (sourceStaNo == 305) {
        if (sourceStaNo == 305 || sourceStaNo == 1202) {
            // 1号巷道可用库位
            List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(1)).collect(Collectors.toList());
            List<LocMast> collect2 = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(2)).collect(Collectors.toList());
            List<LocMast> collect3 = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(3)).collect(Collectors.toList());
            BasCrnp crnp = basCrnpService.selectById(1);
            BasCrnp crnp2 = basCrnpService.selectById(2);
            if (crnp.getCrnSts() == 3 && collect.size()>10 && crnp.getCrnErr() == 0) {
                locMasts = collect;
            } else {
            } else if (crnp2.getCrnSts() == 3 && collect2.size()>10 && crnp.getCrnErr() == 0) {
                locMasts = collect2;
            }else {
                locMasts = collect3;
            }
//            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
//            if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y") && basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000) {
@@ -300,6 +312,48 @@
        return locMast;
    }
    private LocMast searchLocBySecond(LocTypeDto locTypeDto,int sourceStaNo, int inType) {
        // 寻找到的库位
        LocMast locMast = null;
        // 不是入库
        if (inType != 1){
            return null;
        }
        // 空库位集合
        List<LocMast> locMasts = new ArrayList<>();
        locMasts = locMastMapper.selectLocToSecond(locTypeDto.getLocType2());
        for (LocMast mast : locMasts) {
            if (mast.getRow1() == 10 && mast.getBay1() <= 18){
                LocMast deep = locMastService.selectOne(new EntityWrapper<LocMast>()
                        .eq("row1", mast.getRow1() + 1)
                        .eq("bay1",  mast.getBay1())
                        .eq("lev1",  mast.getLev1())
                        .eq("crn_no", 3));
                if (deep.getLocSts().equals("O")) {
                    locMast = deep;
                    break;
                }
            }
            locMast = mast;
            break;
        }
        // 预留空库位
        Integer count = locMastService.selectCount(new EntityWrapper<LocMast>()
                .eq("loc_sts", "O")
                .eq("crn_no", 3)
                .in("row1",9, 10));
        if (count <= 5){
            locMast = null;
        }
        return locMast;
    }
    /**
     * 检索库位号
     *