自动化立体仓库 - WMS系统
zwl
4 天以前 2acfc2d2a0e956910c51bd996f443b3cb9bd3dc9
src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
@@ -11,7 +11,6 @@
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
@@ -23,6 +22,9 @@
    @Autowired
    private BasDevpService basDevpService;
    /**
     * 检查堆垛机基础可用状态,不满足时直接抛出业务异常。
     */
    @Override
    public BasCrnp checkSiteStatus(Integer crnId) {
        BasCrnp crnp = this.selectById(crnId);
@@ -38,77 +40,34 @@
        return crnp;
    }
    /**
     * 统一校验堆垛机是否可参与入库/出库分配。
     */
    @Override
    public boolean checkSiteError(Integer crnNo, boolean pakin) {
        BasCrnp crnp = this.selectById(crnNo);
        if (Cools.isEmpty(crnp)) {
            log.error("{}号堆垛机不存在", crnNo);
//            log.error("{}号堆垛机不存在", crnNo);
            return false;
        }
        if (crnp.getCrnErr() != null && crnp.getCrnSts() != 3){
        if (crnp.getCrnSts() == 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 (crnp.getCrnErr() != null && crnp.getCrnErr() != 0) {
            log.error("{}号堆垛机异常,异常码{}", crnNo, crnp.getCrnErr());
            return false;
        }
        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;
            }
            //控制入库暂存数,防止主干道堵塞,2022-10-23 ADD  未实装
//            int maxCount = 2;
//            int storeCount = wrkMastService.getStoreCount(crnNo);
//
//            if(storeCount >= maxCount){
//                log.error("{}号堆垛机暂存数已满!", crnNo);
//                return false;
//            }
            if ("N".equals(crnp.getInEnable())) {
                log.error("{}号堆垛机不可入", crnNo);