自动化立体仓库 - WMS系统
#
yxFwq
2025-04-01 74fd6eb7fb0322078f7946f51073f20e90231df1
src/main/java/com/zy/asrs/task/WrkMastCrnScheduler.java
@@ -15,6 +15,7 @@
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -25,6 +26,7 @@
public class WrkMastCrnScheduler {
    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
//    private static  Integer signSmallTurn = 0;
    @Autowired
    private WrkMastCrnHandler wrkMastCrnHandler;
@@ -49,6 +51,9 @@
    public static final List<Integer> CRN_WORK_CU = new ArrayList<Integer>() {{
        add(100);add(148);
    }};
    public static final List<Integer> CRN_WORK_CU_SMA = new ArrayList<Integer>() {{
        add(126);add(131);
    }};
@@ -97,27 +102,81 @@
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute2(){
        for(Integer staNo : CRN_WORK_CU) {
//            try{
//                for(Integer staNo1 : CRN_WORK_CU_SMA) {
//                    RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+staNo1));
//                    trunSma.setRgvOneSign(0);
//                    rgvOneSignService.updateById(trunSma);
//                }
//            } catch (Exception e){
//
//            }
            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.getIoType()==101){
                        BasDevp basDevp = basDevpService.selectById(115);
                        if (basDevp.getLoading().equals("Y")
                                || !basDevp.getAutoing().equals("Y")
                                || (!Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()!=0) ){
//                    if (wrkMast.getStaNoSign().equals(signSmallTurn)){
//                        continue;
//                    }
//                    if (wrkMast.booleanStaNoSignOther()){
//                        continue;
//                    }
                    boolean sign = true;
                    if ((wrkMast.getIoType()==101 || wrkMast.getIoType() == 110) && wrkMast.booleanStaNoSign() && wrkMast.getIoPri()<99D){
                        Date now = new Date();
                        long differenceInSeconds = now.getTime() - wrkMast.getModiTime().getTime();
                        if (differenceInSeconds<=2000){
                            continue;
                        }
//                        RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMast.getStaNo()));
//                        if (Cools.isEmpty(rgvOneSign)){
//                            continue;
//                        }
//                        RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMast.getStaNo()));
//                        if (Cools.isEmpty(trunSma)){
//                            continue;
//                        }
//                        int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).eq("wrk_sts",12L));
//                        int wrkCountCrn = wrkMastCrnService.selectCount(new EntityWrapper<WrkMastCrn>().eq("sta_no", wrkMast.getStaNo()));
//                        if (wrkCountCrn*2+wrkCount+rgvOneSign.getRgvOneSign()+trunSma.getRgvOneSign()>1){
//                            continue;
//                        }
//                        int wrkCountGt = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).gt("wrk_sts",11L));
//                        if (wrkCountGt > 1){
//                            continue;
//                        }
//                        sign = false;
//                        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;
//                        }
                    }
                    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);
                                ReturnT<String> result = wrkMastCrnHandler.start(wrkMast,sign);
                                if (result.isSuccess()) {
//                                    signSmallTurn++;
//                                    if (signSmallTurn > 2){
//                                        signSmallTurn = 0;
//                                    }
                                    break;
                                }
                            }
@@ -126,6 +185,12 @@
                        log.error("左右双工位堆垛机执行任务生成====》出库任务生成异常:"+e.getMessage());
                    }
                }
//                if (!wrkMasts.isEmpty()){
//                    signSmallTurn++;
//                    if (signSmallTurn > 2){
//                        signSmallTurn = 0;
//                    }
//                }
            }
        }
    }