|  |  |  | 
|---|
|  |  |  | import com.zy.asrs.entity.BasCrnp; | 
|---|
|  |  |  | 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.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @Service("basCrnpService") | 
|---|
|  |  |  | public class BasCrnpServiceImpl extends ServiceImpl<BasCrnpMapper, BasCrnp> implements BasCrnpService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkMastService wrkMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BasDevpService basDevpService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public BasCrnp checkSiteStatus(Integer crnId) { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | //            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); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnp.getCrnSts() != null) { | 
|---|
|  |  |  | if (crnp.getCrnSts() == 10) { | 
|---|
|  |  |  | log.error("{}号堆垛机状态为10.错误", crnNo); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnp.getCrnErr() != null) { | 
|---|
|  |  |  | if (crnp.getCrnErr() != 0) { | 
|---|
|  |  |  | log.error("{}号堆垛机异常,异常码{}", crnNo, crnp.getCrnErr()); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  | } | 
|---|