自动化立体仓库 - WCS系统
1
zhangc
2025-04-11 7aceb7f1be45ad110ff57cb89faecafe1754f205
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -21,7 +21,10 @@
import com.zy.core.cache.SlaveConnection;
import com.zy.core.dispatcher.ShuttleDispatchUtils;
import com.zy.core.enums.*;
import com.zy.core.model.*;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.LiftSlave;
import com.zy.core.model.ShuttleSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.ShuttleAssignCommand;
import com.zy.core.model.command.ShuttleCommand;
import com.zy.core.model.protocol.*;
@@ -86,6 +89,8 @@
    private ShuttleMoveServiceImpl shuttleMoveService;
    @Autowired
    private NoLiftInServiceImpl noLiftInService;
    @Autowired
    private NoLiftOutServiceImpl noLiftOutService;
    private boolean isInEnable(DevpThread devpThread, Integer staNo) {
@@ -781,24 +786,48 @@
                            wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_1.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_2.sts);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_1.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_2.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_3.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_4.sts);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_3.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_4.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_7.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_8.sts);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_7.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_8.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_11.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_12.sts);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_11.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_12.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_13.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_14.sts);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_13.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_14.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }  else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_12.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_13.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_10.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_11.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_8.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_9.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_6.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_7.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_4.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_OUT_NO_LIFT_2.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_3.sts);
                            shuttleThread.setSyncTaskNo(0);
                            notifyUtils.notify(String.valueOf(SlaveType.Shuttle), shuttleProtocol.getShuttleNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.SHUTTLE_POWER_COMPLETE);//触发通知
                        }
@@ -1023,12 +1052,12 @@
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_LIFT_TO_SHUTTLE_TRANSPORT_LIFT_OUT.sts) {
                            //提升机至小车层 ==> 提升机至小车层完成
                            wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_TO_SHUTTLE_COMPLETE_TRANSPORT_LIFT_OUT.sts);
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_5.sts) {
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_5.sts) {
                            //提升机至小车层 ==> 提升机至小车层完成
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_6.sts);
                        }else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_Lift_9.sts) {
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_6.sts);
                        } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_IN_NO_LIFT_9.sts) {
                            //提升机至小车层 ==> 提升机至小车层完成
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_Lift_10.sts);
                            wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_10.sts);
                        }
                        wrkMast.setModiTime(new Date());
@@ -1531,7 +1560,7 @@
                if ("TRANSPORT_LIFT".equals(wrkMast.getMk())) {
                    this.shuttleMoveExecuteTransportLift(wrkMast);
                } else if ("TRANSPORT_DEVP".equals(wrkMast.getMk())) {
                    noLiftInService.shuttleMoveExecute(wrkMast);
                    this.shuttleMoveExecuteTransportNoLift(wrkMast);
                } else {
                    shuttleMoveService.shuttleMoveExecuteMove(wrkMast);
                }
@@ -1557,7 +1586,15 @@
        }
    }
    private void shuttleMoveExecuteTransportNoLift(WrkMast wrkMast) {
        if (12 == Utils.getRow(wrkMast.getSourceLocNo()) && 3 == Utils.getBay(wrkMast.getSourceLocNo())) {
            //入库
            noLiftInService.shuttleMoveExecute(wrkMast);
        } else {
            //出库
            noLiftOutService.shuttleMoveExecute(wrkMast);
        }
    }
}