自动化立体仓库 - WMS系统
#
yxFwq
8 天以前 d60e84cbedb554555578f071de95c4a8049183db
src/main/java/com/zy/asrs/task/WrkMastSplitTwinInItScheduler.java
@@ -2,17 +2,10 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.WrkMastSplitTwin;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.WrkMastSplitTwinService;
import com.zy.asrs.service.impl.BasDevpServiceImpl;
import com.zy.asrs.service.impl.WrkMastServiceImpl;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.handler.WrkMastSplitTwinInItHandler;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.TimeCalculatorUtils;
import com.zy.common.model.enums.CrnStnType;
import com.zy.common.model.enums.WrkMastExecuteType;
import org.slf4j.Logger;
@@ -33,6 +26,7 @@
public class WrkMastSplitTwinInItScheduler {
    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
//    private static  Integer signBigTurn = 0;
    @Autowired
    private WrkMastSplitTwinInItHandler wrkMastSplitTwinInItHandler;
@@ -41,23 +35,23 @@
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasDevpServiceImpl basDevpService;
    private BasDevpService basDevpService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private RgvOneSignService rgvOneSignService;
    public static final List<Integer> SplitTwin_CRN_NO = new ArrayList<Integer>() {{
        add(3);
        add(4);
        add(5);
    }};
    @Autowired
    private WrkMastServiceImpl wrkMastService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute() {
        for (Integer crnNo : SplitTwin_CRN_NO) {
            try {
                Date now = new Date();
                List<Integer> integers = WrkMastExecuteType.get(crnNo);
                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
                if (!Cools.isEmpty(basCrnp)) {
                    if (basCrnp.getWrkNo() == 0 && basCrnp.getCrnSts() != 3) {
@@ -66,118 +60,121 @@
                    if (((basCrnp.getCrnStatusOne() > 0 && basCrnp.getCrnStatusOne() <= 3) || basCrnp.getCrnStatusOne() == 20) && basCrnp.getCrnStatusTwo() == 0) {//堆垛机工位1取货运行中 //堆垛机工位1有物待作业
                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 1, null, null, 4);
                        if (wrkMastSplitTwinList.size() != 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"不存在或者存在多笔可执行作业,请删除无效作业!!!",1);
                            log.error("前后双工位拆分堆垛机执行作业生成,作业数量={},堆垛机号={},异常信息={},工位号={}",wrkMastSplitTwinList.size(),crnNo,"不存在或者存在多笔可执行作业,请维护执行作业!!!",1);
                            continue;
                        }
                        WrkMastSplitTwin wrkMastSplitTwin = wrkMastSplitTwinList.get(0);
                        if (wrkMastSplitTwin.getWrkType()!=1){
                        if (wrkMastSplitTwin.getWrkType()!=1 && wrkMastSplitTwin.getWrkType()!=2){
                            continue;
                        }
                        wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
                        if (wrkMastSplitTwinList.size() > 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"存在多笔可执行作业,请删除无效作业!!!",2);
                            log.error("前后双工位拆分堆垛机执行作业生成,作业数量={},堆垛机号={},异常信息={},工位号={}",wrkMastSplitTwinList.size(),crnNo,"存在多笔可执行作业,请维护执行作业!!!",2);
                            continue;
                        } else if (wrkMastSplitTwinList.size()==1){
                            continue;
                        }
                        switch (wrkMastSplitTwin.getIoType()){
                            case 1:
                                Integer count = basDevpService.selectWaitNecessary(integers,wrkMastSplitTwin.getWrkNo().intValue());
                                Integer count = basDevpService.selectWaitNecessary(WrkMastExecuteType.get(crnNo),wrkMastSplitTwin.getWrkNo().intValue());
                                if (basCrnp.getCrnStatusOne() != 20) {//堆垛机工位1有物待作业
                                    continue;
                                    break;
                                }
                                if (wrkMastSplitTwin.getWrkSts()!=2){
                                    continue;
                                    break;
                                }
                                if (count==0){
                                    wrkMastSplitTwin.setWrkSts(4);
                                    wrkMastSplitTwin.setUpdateTime(now);
                                    wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
                                    WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
                                    wrkMastSplitTwinNew.setCreateTime(now);
                                    wrkMastSplitTwinNew.setUpdateTime(now);
                                    wrkMastSplitTwinNew.setWrkSts(0);
                                    wrkMastSplitTwinNew.setWrkType(2);
                                    wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
                                }else {
                                    BasDevp basDevp = basDevpService.selectById(CrnStnType.getDevNo(crnNo, true));
                                    wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
                                    break;
                                } else {
                                    BasDevp basDevp = basDevpService.selectById(CrnStnType.getDevNo(crnNo, true));//入库站点
                                    if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){
                                        continue;
                                        break;
                                    }
                                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
                                    if (wrkMast.getIoType()>10 || wrkMast.getWrkSts()!=2){
                                        continue;
                                    if (wrkMast.getIoType()>100 || wrkMast.getWrkSts()!=2){
                                        break;
                                    }
                                    WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,2,now);
                                    wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
                                    wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
                                    wrkMastSplitTwinNew.setStartRow(Utils.getRow(wrkMast.getSourceLocNo()));
                                    wrkMastSplitTwinNew.setStartBay(Utils.getBay(wrkMast.getSourceLocNo()));
                                    wrkMastSplitTwinNew.setStartLev(Utils.getLev(wrkMast.getSourceLocNo()));
                                    int[] ints = new int[3];
                                    if (wrkMast.getIoType()!=11){
                                        ints = CrnStnType.get(wrkMast.getSourceStaNo());
                                        if (ints == null){
                                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工作号={},站点号={}",crnNo,"未知站点号",wrkMast.getSourceStaNo(),wrkMast.getSourceStaNo());
                                            continue;
                                        }
                                    }
                                    wrkMastSplitTwinNew.setEndRow(wrkMast.getIoType()==11? Utils.getRow(wrkMast.getLocNo()): ints[0]);
                                    wrkMastSplitTwinNew.setEndBay(wrkMast.getIoType()==11? Utils.getBay(wrkMast.getLocNo()): ints[1]);
                                    wrkMastSplitTwinNew.setEndLev(wrkMast.getIoType()==11? Utils.getLev(wrkMast.getLocNo()): ints[2]);
                                    wrkMastSplitTwinNew.setWrkType(1);
                                    wrkMastSplitTwinNew.setIoType(1);
                                    wrkMastSplitTwinNew.setWrkSts(0);
                                    wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
                                    wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin,wrkMast,2);
                                }
                                break;
                            case 2:
                                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 12L).eq("crn_no", crnNo));
                                if (wrkMasts.size()==1){
                                    WrkMast wrkMast1 = wrkMasts.get(0);
                                    wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 11L).eq("crn_no", crnNo));
                                    if (wrkMasts.isEmpty()){
                                        if (basCrnp.getCrnStatusOne() != 20) {//堆垛机工位1有物待作业
                                            continue;
                                            break;
                                        }
                                        if (wrkMastSplitTwin.getWrkSts()!=2){
                                            continue;
                                            break;
                                        }
                                        wrkMastSplitTwin.setWrkSts(4);
                                        wrkMastSplitTwin.setUpdateTime(now);
                                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
                                        WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
                                        wrkMastSplitTwinNew.setCreateTime(now);
                                        wrkMastSplitTwinNew.setUpdateTime(now);
                                        wrkMastSplitTwinNew.setWrkSts(0);
                                        wrkMastSplitTwinNew.setWrkType(2);
                                        wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
                                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
                                        break;
                                    }else {
                                        for (WrkMast wrkMast:wrkMasts){
                                            WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,2,now);
                                            wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
                                            wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
                                            wrkMastSplitTwinNew.setStartRow(Utils.getRow(wrkMast.getSourceLocNo()));
                                            wrkMastSplitTwinNew.setStartBay(Utils.getBay(wrkMast.getSourceLocNo()));
                                            wrkMastSplitTwinNew.setStartLev(Utils.getLev(wrkMast.getSourceLocNo()));
                                            int[] ints = new int[3];
                                            if (wrkMast.getIoType()!=11){
                                                ints = CrnStnType.get(wrkMast.getSourceStaNo());
                                                if (ints == null){
                                                    log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工作号={},站点号={}",crnNo,"未知站点号",wrkMast.getSourceStaNo(),wrkMast.getSourceStaNo());
                                                    continue;
                                                }
                                            }
                                            wrkMastSplitTwinNew.setEndRow(wrkMast.getIoType()==11? Utils.getRow(wrkMast.getLocNo()): ints[0]);
                                            wrkMastSplitTwinNew.setEndBay(wrkMast.getIoType()==11? Utils.getBay(wrkMast.getLocNo()): ints[1]);
                                            wrkMastSplitTwinNew.setEndLev(wrkMast.getIoType()==11? Utils.getLev(wrkMast.getLocNo()): ints[2]);
                                            wrkMastSplitTwinNew.setWrkType(1);
                                            wrkMastSplitTwinNew.setIoType(2);
                                            wrkMastSplitTwinNew.setWrkSts(0);
                                            wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
//                                            if (wrkMast.getStaNoSign().equals(signBigTurn)){
//                                                continue;
//                                            }
//                                            if (wrkMast.booleanStaNoSign() && wrkMast.booleanStaNoSign()){
//                                                RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMast.getStaNo()));
//                                                if (Cools.isEmpty(rgvOneSign)){
//                                                    continue;
//                                                }
//                                                int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).eq("wrk_sts",12L));
//                                                if (wrkCount+rgvOneSign.getRgvOneSign()>2){
//                                                    continue;
//                                                }
//                                                int wrkCountGt = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMast.getStaNo()).gt("wrk_sts",11L));
//                                                if (wrkCountGt > 2){
//                                                    continue;
//                                                }
////                                                int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).gt("sta_no", 309).lt("sta_no", 314).gt("wrk_sts",11L));
////                                                if (wrkCount>=12){
////                                                    continue;
////                                                }
////                                                RgvOneSign bigTurn = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","bigTurn"));
////                                                if (Cools.isEmpty(bigTurn)){
////                                                    continue;
////                                                }
////                                                if (bigTurn.getRgvOneSign()>13){
////                                                    continue;
////                                                }
////                                                BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNoBying());
////                                                if (basDevp.getLoading().equals("Y")
////                                                        || !basDevp.getAutoing().equals("Y")
////                                                        || (!Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()!=0) ){
////                                                    continue;
////                                                }
//                                            }
                                            wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin,wrkMast,2);
//                                            signBigTurn++;
//                                            if (signBigTurn > 2){
//                                                signBigTurn = 0;
//                                            }
                                            break;
                                        }
                                        WrkMastSplitTwin wrkMastSplitTwin1 = wrkMastSplitTwinService.selectOne(new EntityWrapper<WrkMastSplitTwin>().eq("wrk_no", wrkMast1.getWrkNo()));
                                        if (!Cools.isEmpty(wrkMastSplitTwin1)){
                                            long differenceInSeconds = TimeCalculatorUtils.differenceInSeconds(wrkMastSplitTwin1.getUpdateTime(), new Date());
                                            if (differenceInSeconds>180 || (!Cools.isEmpty(wrkMast1.getStaNo()) && (wrkMast1.getStaNo().equals(312) || wrkMast1.getStaNo().equals(310)) )){
                                                if (basCrnp.getCrnStatusOne() != 20) {//堆垛机工位1有物待作业
                                                    break;
                                                }
                                                if (wrkMastSplitTwin.getWrkSts()!=2){
                                                    break;
                                                }
                                                wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
                                                break;
                                            }
                                        }
//                                        signBigTurn++;
//                                        if (signBigTurn > 2){
//                                            signBigTurn = 0;
//                                        }
                                        break;
                                    }
                                }
                                break;
@@ -196,89 +193,69 @@
    private void executeTwo() {
        for (Integer crnNo : SplitTwin_CRN_NO) {
            try {
                Date now = new Date();
                List<Integer> integers = WrkMastExecuteType.get(crnNo);
                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
                if (!Cools.isEmpty(basCrnp)) {
                    if (basCrnp.getWrkNo() == 0 && basCrnp.getCrnSts() != 3) {
                    if (basCrnp.getWrkNo() != 0 || basCrnp.getWrkNoTwo()!=0 || basCrnp.getCrnSts() != 3) {
                        continue;
                    }
                    if (basCrnp.getCrnStatusOne() == 20 && basCrnp.getCrnStatusTwo() == 0) {//堆垛机工位1有物待作业
                    if (basCrnp.getCrnStatusOne() == 20 && basCrnp.getCrnStatusTwo() == 20) {//堆垛机工位1有物待作业  工位2有物待作业
                        List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 1, null, null, 4);
                        if (wrkMastSplitTwinList.size() != 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"不存在或者存在多笔可执行作业,请删除无效作业!!!",1);
                        if (wrkMastSplitTwinList.isEmpty()){
                            continue;
                        }
                        if (wrkMastSplitTwinList.size() > 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"不存在或者存在多笔可执行作业,请维护执行作业!!!",1);
                            continue;
                        }
                        WrkMastSplitTwin wrkMastSplitTwin = wrkMastSplitTwinList.get(0);
                        if (wrkMastSplitTwin.getWrkType()!=1){
                        if (wrkMastSplitTwin.getWrkType()!=1 || wrkMastSplitTwin.getWrkSts()!=2){//工作类型 0: 未知  1: 取  2: 放  3: 取放  4: 完成
                            continue;
                        }
                        wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
                        if (wrkMastSplitTwinList.size() > 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"存在多笔可执行作业,请删除无效作业!!!",2);
                            continue;
                        } else if (wrkMastSplitTwinList.size()==1){
                        List<WrkMastSplitTwin> wrkMastSplitTwinListTwo = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
                        if (wrkMastSplitTwinListTwo.isEmpty()){
                            continue;
                        }
                        switch (wrkMastSplitTwin.getIoType()){
                            case 1:
                                Integer count = basDevpService.selectWaitNecessary(integers,wrkMastSplitTwin.getWrkNo().intValue());
                                if (count!=0){
                        if (wrkMastSplitTwinListTwo.size() > 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"不存在或者存在多笔可执行作业,请维护执行作业!!!",2);
                            continue;
                        }
                        WrkMastSplitTwin wrkMastSplitTwinTwo = wrkMastSplitTwinListTwo.get(0);
                        if (wrkMastSplitTwinTwo.getWrkType()!=1 || wrkMastSplitTwinTwo.getWrkSts()!=2){//工作类型 0: 未知  1: 取  2: 放  3: 取放  4: 完成   //工作状态 0: 初始  1: 等待取货完成  2: 取货完成待作业  3: 等待放货完成  4: 完成
                            continue;
                        }
                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin);
                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwinTwo);
                    }
                }
            } catch (Exception e) {
                log.error("前后双工位拆分堆垛机执行作业生成失败,堆垛机号={},异常原因={}", crnNo, e.getMessage());
            }
        }
    }
                                }
                                break;
                            case 2:
                                List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 12L).eq("crn_no", crnNo));
                                if (wrkMasts.size()==1){
                                    wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 11L).eq("crn_no", crnNo));
                                    if (wrkMasts.isEmpty()){
                                        if (basCrnp.getCrnStatusOne() != 20) {//堆垛机工位1有物待作业
                                            continue;
                                        }
                                        if (wrkMastSplitTwin.getWrkSts()!=2){
                                            continue;
                                        }
                                        wrkMastSplitTwin.setWrkSts(4);
                                        wrkMastSplitTwin.setUpdateTime(now);
                                        wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
                                        WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin);
                                        wrkMastSplitTwinNew.setCreateTime(now);
                                        wrkMastSplitTwinNew.setUpdateTime(now);
                                        wrkMastSplitTwinNew.setWrkSts(0);
                                        wrkMastSplitTwinNew.setWrkType(2);
                                        wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
                                    }else {
                                        for (WrkMast wrkMast:wrkMasts){
                                            WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,2,now);
                                            wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo());
                                            wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString());
                                            wrkMastSplitTwinNew.setStartRow(Utils.getRow(wrkMast.getSourceLocNo()));
                                            wrkMastSplitTwinNew.setStartBay(Utils.getBay(wrkMast.getSourceLocNo()));
                                            wrkMastSplitTwinNew.setStartLev(Utils.getLev(wrkMast.getSourceLocNo()));
                                            int[] ints = new int[3];
                                            if (wrkMast.getIoType()!=11){
                                                ints = CrnStnType.get(wrkMast.getSourceStaNo());
                                                if (ints == null){
                                                    log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工作号={},站点号={}",crnNo,"未知站点号",wrkMast.getSourceStaNo(),wrkMast.getSourceStaNo());
                                                    continue;
                                                }
                                            }
                                            wrkMastSplitTwinNew.setEndRow(wrkMast.getIoType()==11? Utils.getRow(wrkMast.getLocNo()): ints[0]);
                                            wrkMastSplitTwinNew.setEndBay(wrkMast.getIoType()==11? Utils.getBay(wrkMast.getLocNo()): ints[1]);
                                            wrkMastSplitTwinNew.setEndLev(wrkMast.getIoType()==11? Utils.getLev(wrkMast.getLocNo()): ints[2]);
                                            wrkMastSplitTwinNew.setWrkType(0);
                                            wrkMastSplitTwinNew.setIoType(1);
                                            wrkMastSplitTwinNew.setWrkSts(0);
                                            wrkMastSplitTwinService.insert(wrkMastSplitTwinNew);
                                        }
                                    }
                                }
                                break;
                            default:
                                log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={},工作类型={},工作状态={}",crnNo,"任务类型未知",1,1,1);
    @Scheduled(cron = "0/3 * * * * ? ")
    private void executeThree() {
        for (Integer crnNo : SplitTwin_CRN_NO) {
            try {
                BasCrnp basCrnp = basCrnpService.selectById(crnNo);
                if (!Cools.isEmpty(basCrnp)) {
                    if (basCrnp.getWrkNo() != 0 || basCrnp.getWrkNoTwo()!=0 || basCrnp.getCrnSts() != 3) {
                        continue;
                    }
                    if (basCrnp.getCrnStatusOne() == 0 && basCrnp.getCrnStatusTwo() == 20) {//堆垛机工位1空闲 工位2有物待作业
                        List<WrkMastSplitTwin> wrkMastSplitTwinListTwo = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4);
                        if (wrkMastSplitTwinListTwo.isEmpty()){
                            continue;
                        }
                        if (wrkMastSplitTwinListTwo.size() > 1){
                            log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"不存在或者存在多笔可执行作业,请维护执行作业!!!",2);
                            continue;
                        }
                        WrkMastSplitTwin wrkMastSplitTwinTwo = wrkMastSplitTwinListTwo.get(0);
                        if (wrkMastSplitTwinTwo.getWrkType()!=1 || wrkMastSplitTwinTwo.getWrkSts()!=2){//工作类型 0: 未知  1: 取  2: 放  3: 取放  4: 完成   //工作状态 0: 初始  1: 等待取货完成  2: 取货完成待作业  3: 等待放货完成  4: 完成
                            continue;
                        }
                        wrkMastSplitTwinInItHandler.start(wrkMastSplitTwinTwo);
                    }
                }
            } catch (Exception e) {