自动化立体仓库 - WMS系统
#
yxFwq
2024-11-24 a7f0ee46f5a1b0ec8cf7bd3d0701bde6c09de24f
src/main/java/com/zy/asrs/task/WrkMastCrnScheduler.java
@@ -25,6 +25,7 @@
public class WrkMastCrnScheduler {
    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
//    private static  Integer signSmallTurn = 0;
    @Autowired
    private WrkMastCrnHandler wrkMastCrnHandler;
@@ -56,30 +57,33 @@
    private void execute(){
        try{
            for(Integer staNo : CRN_WORK_RU){
                BasDevp basDevp = basDevpService.selectById(staNo);
                if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y") && basDevp.getInEnable().equals("Y")){
                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                    if(Cools.isEmpty(wrkMast)){
                        continue;
                    }
                    if (wrkMast.getWrkSts()!=2){
                        continue;
                    }
                    WrkMastCrn wrkMastCrn = wrkMastCrnService.selectOne(new EntityWrapper<WrkMastCrn>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (Cools.isEmpty(wrkMastCrn)){
                        BasDevp basDevpOther = basDevpService.selectById(staNoOther(staNo));
                        if (basDevpOther.getWrkNo()!=0 && basDevpOther.getLoading().equals("Y") && basDevpOther.getAutoing().equals("Y") && basDevpOther.getInEnable().equals("Y")){
                            WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevpOther.getWrkNo()));
                            if(Cools.isEmpty(wrkMastOther)){
                                continue;
                            }
                            if (wrkMastOther.getWrkSts()!=2){
                                continue;
                            }
                            if (!Cools.isEmpty(wrkMast)){
                                ReturnT<String> result = wrkMastCrnHandler.start(wrkMast,wrkMastOther);
                                if (result.getCode()!=200){
                                    System.out.println(staNo+"失败!");
                List<WrkMastCrn> wrkMastCrnList = wrkMastCrnService.selectList(new EntityWrapper<WrkMastCrn>().eq("sta_no", staNo));
                if (Cools.isEmpty(wrkMastCrnList)){
                    BasDevp basDevp = basDevpService.selectById(staNo);
                    if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y") && basDevp.getInEnable().equals("Y")){
                        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                        if(Cools.isEmpty(wrkMast)){
                            continue;
                        }
                        if (wrkMast.getWrkSts()!=2){
                            continue;
                        }
                        WrkMastCrn wrkMastCrn = wrkMastCrnService.selectOne(new EntityWrapper<WrkMastCrn>().eq("wrk_no", wrkMast.getWrkNo()));
                        if (Cools.isEmpty(wrkMastCrn)){
                            BasDevp basDevpOther = basDevpService.selectById(staNoOther(staNo));
                            if (basDevpOther.getWrkNo()!=0 && basDevpOther.getLoading().equals("Y") && basDevpOther.getAutoing().equals("Y") && basDevpOther.getInEnable().equals("Y")){
                                WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevpOther.getWrkNo()));
                                if(Cools.isEmpty(wrkMastOther)){
                                    continue;
                                }
                                if (wrkMastOther.getWrkSts()!=2){
                                    continue;
                                }
                                if (!Cools.isEmpty(wrkMast)){
                                    ReturnT<String> result = wrkMastCrnHandler.start(wrkMast,wrkMastOther);
                                    if (result.getCode()!=200){
                                        System.out.println(staNo+"失败!");
                                    }
                                }
                            }
                        }
@@ -94,21 +98,66 @@
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute2(){
        for(Integer staNo : CRN_WORK_CU) {
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                    .eq("source_sta_no", staNo).eq("wrk_sts", 11L)
                    .orderBy("io_pri",false));
            for (WrkMast wrkMast:wrkMasts){
                try{
                    int row = Utils.getRow(wrkMast.getSourceLocNo());
                    if (row == wrkMast.getCrnNo()*4 || row == wrkMast.getCrnNo()*4-3){
                        WrkMastCrn wrkMastCrn = wrkMastCrnService.selectOne(new EntityWrapper<WrkMastCrn>().eq("wrk_no", wrkMast.getWrkNo()));
                        if (Cools.isEmpty(wrkMastCrn)){
                            ReturnT<String> result = wrkMastCrnHandler.start(wrkMast);
            List<WrkMastCrn> wrkMastCrnList = wrkMastCrnService.selectList(new EntityWrapper<WrkMastCrn>().eq("source_sta_no",staNo));
            if (Cools.isEmpty(wrkMastCrnList)){
                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                        .eq("source_sta_no", staNo).eq("wrk_sts", 11L)
                        .orderBy("io_pri",false));
                for (WrkMast wrkMast:wrkMasts){
//                    if (wrkMast.getStaNoSign().equals(signSmallTurn)){
//                        continue;
//                    }
                    if (wrkMast.getIoType()==101){
                        RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMast.getStaNo()));
                        if (Cools.isEmpty(rgvOneSign)){
                            continue;
                        }
                        if (rgvOneSign.getRgvOneSign()>=2){
                            continue;
                        }
//                        BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNoBying());
//                        if (basDevp.getLoading().equals("Y")
//                                || !basDevp.getAutoing().equals("Y")
//                                || (!Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()!=0) ){
//                            continue;
//                        }
//                        int loadIngCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().ge("dev_no", 103).le("dev_no", 121).eq("loading", "Y"));
//                        if (loadIngCount>8){
//                            continue;
//                        }
//                        RgvOneSign smallTurn = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","smallTurn"));
//                        if (Cools.isEmpty(smallTurn)){
//                            continue;
//                        }
//                        if (smallTurn.getRgvOneSign()>15){
//                            continue;
//                        }
                    }
                }catch (Exception e){
                    log.error("左右双工位堆垛机执行任务生成====》出库任务生成异常:"+e.getMessage());
                    try{
                        int row = Utils.getRow(wrkMast.getSourceLocNo());
                        if (row == wrkMast.getCrnNo()*4 || row == wrkMast.getCrnNo()*4-3){
                            WrkMastCrn wrkMastCrn = wrkMastCrnService.selectOne(new EntityWrapper<WrkMastCrn>().eq("wrk_no", wrkMast.getWrkNo()));
                            if (Cools.isEmpty(wrkMastCrn)){
                                ReturnT<String> result = wrkMastCrnHandler.start(wrkMast);
                                if (result.isSuccess()) {
//                                    signSmallTurn++;
//                                    if (signSmallTurn > 2){
//                                        signSmallTurn = 0;
//                                    }
                                    break;
                                }
                            }
                        }
                    }catch (Exception e){
                        log.error("左右双工位堆垛机执行任务生成====》出库任务生成异常:"+e.getMessage());
                    }
                }
//                if (!wrkMasts.isEmpty()){
//                    signSmallTurn++;
//                    if (signSmallTurn > 2){
//                        signSmallTurn = 0;
//                    }
//                }
            }
        }
    }