自动化立体仓库 - WMS系统
#
lsh
2024-12-28 5bd1ca95313402d8e083782fd617baed9000843e
src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
@@ -1,17 +1,18 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.BasCrnpMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.WrkMastService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Slf4j
@@ -57,58 +58,58 @@
        }
        if (pakin) {
            //TODO控制入库暂存数,防止主干道堵塞,2022-5-24 ADD
            int staNo = 0;
            switch (crnNo){
                case 1:
                    staNo = 123;
                    break;
                case 2:
                    staNo = 121;
                    break;
                case 3:
                    staNo = 119;
                    break;
                case 4:
                    staNo = 117;
                    break;
                case 5:
                    staNo = 115;
                    break;
                case 6:
                    staNo = 113;
                    break;
                case 7:
                    staNo = 111;
                    break;
                case 8:
                    staNo = 109;
                    break;
                case 9:
                    staNo = 107;
                    break;
                case 10:
                    staNo = 105;
                    break;
                case 11:
                    staNo = 103;
                    break;
                case 12:
                    staNo = 101;
                    break;
            }
            int maxCount = 2;
            BasDevp devp = basDevpService.selectById(staNo);
            if(!Cools.isEmpty(devp)){
                maxCount = devp.getInQty();
            }
            int storeCount = wrkMastService.getStoreCount(crnNo);
            if(storeCount >= maxCount){
                log.error("{}号堆垛机暂存数已满!", crnNo);
                return false;
            }
//            //TODO控制入库暂存数,防止主干道堵塞,2022-5-24 ADD
//            int staNo = 0;
//            switch (crnNo){
//                case 1:
//                    staNo = 123;
//                    break;
//                case 2:
//                    staNo = 121;
//                    break;
//                case 3:
//                    staNo = 119;
//                    break;
//                case 4:
//                    staNo = 117;
//                    break;
//                case 5:
//                    staNo = 115;
//                    break;
//                case 6:
//                    staNo = 113;
//                    break;
//                case 7:
//                    staNo = 111;
//                    break;
//                case 8:
//                    staNo = 109;
//                    break;
//                case 9:
//                    staNo = 106;
//                    break;
//                case 10:
//                    staNo = 105;
//                    break;
//                case 11:
//                    staNo = 103;
//                    break;
//                case 12:
//                    staNo = 101;
//                    break;
//            }
//            int maxCount = 2;
//            BasDevp devp = basDevpService.selectById(staNo);
//            if(!Cools.isEmpty(devp)){
//                maxCount = devp.getInQty();
//            }
//
//            int storeCount = wrkMastService.getStoreCount(crnNo);
//
//            if(storeCount >= maxCount){
//                log.error("{}号堆垛机暂存数已满!", crnNo);
//                return false;
//            }
            if ("N".equals(crnp.getInEnable())) {
                log.error("{}号堆垛机不可入", crnNo);
@@ -123,4 +124,121 @@
        return true;
    }
//    //杰克
//    @Override
//    public boolean checkSiteError2(Integer crnNo, boolean pakin, Integer sourceStaNo) {
//        BasCrnp crnp = this.selectById(crnNo);
//        if (Cools.isEmpty(crnp)) {
//            log.error("{}号堆垛机不存在", crnNo);
//            return false;
//        }
//        if (crnp.getCrnErr() != null && crnp.getCrnSts() != 3){
//            log.error("{}号堆垛机非自动连线状态,无法作业!", crnNo);
//            return false;
//        }
//        if (crnp.getCrnErr() != null) {
//            if (crnp.getCrnErr() != 0) {
//                log.error("{}号堆垛机异常,异常码{}", crnNo, crnp.getCrnErr());
//                return false;
//            }
//        }
//
//        if (pakin) {
//            //TODO控制入库暂存数,防止主干道堵塞,2022-5-24 ADD
//            int staNo = 0;
//            String crnNos = "";
//            switch (crnNo){
//                case 1:
//                    staNo = 123;
//                    crnNos = "1,2,3,4";
//                    break;
//                case 2:
//                    staNo = 121;
//                    crnNos = "1,2,3,4";
//                    break;
//                case 3:
//                    staNo = 119;
//                    crnNos = "1,2,3,4";
//                    break;
//                case 4:
//                    staNo = 117;
//                    crnNos = "1,2,3,4";
//                    break;
//                case 5:
//                    staNo = 115;
//                    crnNos = "5,6,7,8";
//                    break;
//                case 6:
//                    staNo = 113;
//                    crnNos = "5,6,7,8";
//                    break;
//                case 7:
//                    staNo = 111;
//                    crnNos = "5,6,7,8";
//                    break;
//                case 8:
//                    staNo = 109;
//                    crnNos = "5,6,7,8";
//                    break;
//                case 9:
//                    staNo = 106;
//                    crnNos = "9,10,11,12";
//                    break;
//                case 10:
//                    staNo = 105;
//                    crnNos = "9,10,11,12";
//                    break;
//                case 11:
//                    staNo = 103;
//                    crnNos = "9,10,11,12";
//                    break;
//                case 12:
//                    staNo = 101;
//                    crnNos = "9,10,11,12";
//                    break;
//            }
//            int maxCount = 2;
//            int storeCount = wrkMastService.getStoreCount(crnNo);
//
//            //分北中南三个区判断,每4台堆垛机1个区。除1号有3个暂存以外,只要有出库任务入库暂存数就只能为1个
//            //没有出库任务时,暂存数在devp表in_qty字段配置
////            int pakOutCunt = wrkMastService.getPakOutCount(crnNos);
////            if(pakOutCunt > 0){
////                maxCount = crnNo!= 1 ? 1 : 3;//1号3个入库暂存
////            } else {
//            BasDevp devp = basDevpService.selectById(staNo);
//            if(!Cools.isEmpty(devp)){
//                maxCount = devp.getInQty();
//            }
////            }
//
//            if(storeCount >= maxCount){
//                log.error("{}号堆垛机暂存数已满![storeCount:{},maxCount:{}]", crnNo, storeCount, maxCount);
//                return false;
//            }
//
//            if ("N".equals(crnp.getInEnable())) {
//                log.error("{}号堆垛机不可入", crnNo);
//                return false;
//            }
//
//            //1--8号堆垛机,二楼入库时判断是否有对应出库任务,如果有则堆垛机不可用
//            if (sourceStaNo > 299 && crnNo < 9){
//                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
//                        .eq("crn_no",crnNo).last(" and source_sta_no > 300 and ( wrk_sts in (11,12) or (wrk_sts=14 and wrk_no in (select wrk_no from asr_bas_devp)))"));
//                if(!Cools.isEmpty(wrkMast)){
//                    log.error("{}号堆垛机存在出库任务,任务号{}", crnNo, wrkMast.getWrkNo());
//                    return false;
//                }
//            }
//        } else {
//            if ("N".equals(crnp.getOutEnable())) {
//                log.error("{}号堆垛机不可出", crnNo);
//                return false;
//            }
//        }
//
//        return true;
//    }
}