| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import org.apache.ibatis.annotations.*; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | |
| | | // wcs --------------------------------------------- |
| | | // 入库第一步,扫码仪获取条码信息时查询 |
| | | // @Select("select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC") |
| | | WrkMast selectPakInStep1(@Param("sourceStaNo")Integer sourceStaNo, @Param("barcode")String barcode); |
| | | WrkMast selectPakInStep1(@Param("sourceStaNo") Integer sourceStaNo, @Param("barcode") String barcode); |
| | | |
| | | WrkMast selectPakInStep11(@Param("sourceStaNo")Integer sourceStaNo); |
| | | WrkMast selectPakInStep11(@Param("sourceStaNo") Integer sourceStaNo); |
| | | |
| | | List<WrkMast> selectInStep4(); |
| | | |
| | | WrkMast selectByWorkNo(Integer workNo); |
| | | |
| | | WrkMast selectByMainWrkNo(Integer workNo); |
| | | |
| | | List<WrkMast> selectLiftStep223103(); |
| | | |
| | |
| | | |
| | | WrkMast selectLiftWrkMast(Integer liftNo); |
| | | |
| | | WrkMast selectLiftWrkMastAndWrkNo(@Param("liftNo") Integer liftNo, @Param("wrkNo") Integer wrkNo, @Param("wrkNo2") Integer wrkNo2); |
| | | |
| | | List<WrkMast> selectLocToLocWrkMast();//查询库位移转工作档 |
| | | |
| | | WrkMast selectPickStepByBarcode(String barcode); |
| | |
| | | |
| | | WrkMast selectByWorkNo(Integer workNo); |
| | | |
| | | WrkMast selectByMainWrkNo(Integer workNo); |
| | | |
| | | Boolean judgeInbound(WrkMast wrkMast); |
| | | |
| | | //查询指定楼层待分配车辆的任务 |
| | |
| | | |
| | | WrkMast selectLiftWrkMast(Integer liftNo); |
| | | |
| | | WrkMast selectLiftWrkMastAndWrkNo(Integer liftNo, Integer wrkNo, Integer wrkNo2); |
| | | |
| | | } |
| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.domain.enums.NotifyMsgType; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | |
| | | private NoLiftOutServiceImpl noLiftOutService; |
| | | @Autowired |
| | | private LiftAction liftAction; |
| | | @Autowired |
| | | private BasWrkStatusService wrkStatusService; |
| | | |
| | | |
| | | public static List<Integer> staNosIn = new ArrayList<Integer>() {{ |
| | |
| | | // 判断是否满足入库条件 |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) { |
| | | String barcode = staProtocol.getBarcode(); |
| | | if (!Cools.isEmpty(barcode)) { |
| | | News.info("条码扫描器检测条码信息:{}", barcode); |
| | | } |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", inSta.getStaNo()).eq("wrk_sts", WrkStsType.NEW_INBOUND.sts).eq("barcode", barcode)); |
| | | if (wrkMast != null) { |
| | |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if ((Utils.getLev(wrkMast.getLocNo()) != 1 && wrkMast.getSourceStaNo() == 1014) || (Utils.getLev(wrkMast.getLocNo()) != 5 && wrkMast.getSourceStaNo() == 1025)) { |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(1); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), 1); |
| | | return; |
| | | } |
| | | } |
| | | wrkMast.setLiftNo(1); |
| | | } |
| | | Short finishWorkNo = staProtocol.getFinishWorkNo(); |
| | | if (finishWorkNo == null) { |
| | | continue; |
| | | } |
| | | |
| | | |
| | | String locNo = "1200301"; |
| | | if (wrkMast.getStaNo() == 1025) { |
| | | locNo = "1200305"; |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleIn(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_DEVP", true); |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_DEVP"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | return; |
| | |
| | | News.info("{}任务,{}站点,没有可出信号", wrkMast.getWrkNo(), staProtocol.getSiteId()); |
| | | return; |
| | | } |
| | | if ((Utils.getLev(wrkMast.getSourceLocNo()) != 1 && wrkMast.getStaNo() == 1013) || (Utils.getLev(wrkMast.getSourceLocNo()) != 5 && wrkMast.getStaNo() == 1024)) { |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(1); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), 1); |
| | | return; |
| | | } |
| | | } |
| | | wrkMast.setLiftNo(1); |
| | | } |
| | | String locNo = "1200301"; |
| | | if (wrkMast.getStaNo() == 1024) { |
| | | locNo = "1200305"; |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleIn(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP", false); |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | return; |
| | | } |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts); |
| | | |
| | | wrkMast.setSystemMsg("");//清空消息 |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | |
| | | * 初始化实时地图 |
| | | */ |
| | | public synchronized void initRealtimeBasMap() { |
| | | //初始化配置 |
| | | // WrkStsType[] values = WrkStsType.values(); |
| | | // for (int i = 0; i < values.length; i++) { |
| | | // BasWrkStatus basWrkStatus = wrkStatusService.selectById(values[i].sts); |
| | | // if (basWrkStatus == null) { |
| | | // basWrkStatus = new BasWrkStatus(); |
| | | // basWrkStatus.setWrkDesc(values[i].desc); |
| | | // basWrkStatus.setWrkSts(values[i].sts); |
| | | // basWrkStatus.setModiTime(new Date()); |
| | | // basWrkStatus.setAppeTime(new Date()); |
| | | // basWrkStatus.setAppeUser(9527L); |
| | | // basWrkStatus.setModiUser(9527L); |
| | | // wrkStatusService.insert(basWrkStatus); |
| | | // } |
| | | // } |
| | | try { |
| | | |
| | | List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true)); |
| | | for (BasMap basMap : basMaps) { |
| | | Integer lev = basMap.getLev(); |
| | |
| | | News.info("{}任务,{}站点,托盘码不匹配,站点托盘码:{},任务托盘码:{}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode()); |
| | | return false; |
| | | } |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(1); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), 1); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | short staNo = 1012; |
| | | if (wrkMast.getSourceStaNo() == 1022) { |
| | |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts); |
| | | wrkMast.setLiftNo(1); |
| | | wrkMast.setSystemMsg("");//清空消息 |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | |
| | | News.info("{}任务,{}号提升机,提升机内无托盘,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false; |
| | | } |
| | | |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttle(wrkMast.getWrkNo(), "0200301", wrkMast.getLocNo(), "TRANSPORT_LIFT"); |
| | | String locNo = "0200305"; |
| | | if (wrkMast.getStaNo() == 1011) { |
| | | locNo = "0200301"; |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_LIFT"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), "0200301", "TRANSPORT_LIFT"); |
| | | String locNo = "0200305"; |
| | | if (wrkMast.getStaNo() == 1011) { |
| | | locNo = "0200301"; |
| | | } |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleS(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_LIFT"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | 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); |
| | | wrkMast.setLiftNo(null); |
| | | 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) { |
| | |
| | | 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); |
| | | wrkMast.setLiftNo(null); |
| | | 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 liftWrkMast = wrkMastService.selectLiftWrkMast(liftProtocol.getLiftNo()); |
| | | if (liftWrkMast != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | } |
| | | |
| | | wrkMast.setModiTime(now); |
| | |
| | | return false;//等待提升机到小车楼层 |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast w = wrkMastService.selectLiftWrkMast(1); |
| | | if (w != null) { |
| | | if (!w.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在别的绑定任务ru,禁止派发", wrkMast.getWrkNo(), 1); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//小车移库任务 |
| | |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_IN_NO_LIFT_7.sts);//小车移动到提升机中 提升机至小车层完成 ==> 小车迁入提升机中 |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setLiftNo(1); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | //下发任务 |
| | | shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand); |
| | |
| | | //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftProtocol.getLiftNo()); |
| | | if (liftWrkMast != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | } |
| | | |
| | | wrkMast.setModiTime(now); |
| | |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo()); |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | |
| | | if (!liftThread.isIdle()) { |
| | |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo()); |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | |
| | | if (!liftThread.isIdle()) { |
| | |
| | | return false;//等待提升机到小车楼层 |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast w = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (w != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在别的绑定任务out,禁止派发", wrkMast.getWrkNo(), 1); |
| | | return false; |
| | | } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//小车移库任务 |
| | |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_6.sts);//小车移动到提升机中 提升机至小车层完成 ==> 小车迁入提升机中 |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setLiftNo(1); |
| | | if (wrkMastService.updateById(wrkMast)) { |
| | | //下发任务 |
| | | shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand); |
| | |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo()); |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | |
| | | if (!liftThread.isIdle()) { |
| | |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo()); |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(wrkMast.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | |
| | | LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo()); |
| | |
| | | //下发任务 |
| | | shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand); |
| | | } |
| | | WrkMast wrkMast1 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo()); |
| | | if (wrkMast1 != null) { |
| | | wrkMast.setLiftNo(null);//释放提升机 |
| | | wrkMast.setModiTime(now); |
| | | if (!wrkMastService.updateById(wrkMast1)) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}解锁提升机", wrkMast1.getWrkNo()); |
| | | } |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | |
| | | //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftProtocol.getLiftNo()); |
| | | if (liftWrkMast != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | } |
| | | |
| | | wrkMast.setModiTime(now); |
| | |
| | | //判断提升机是否有其他任务(该任务需要换层必须提前独占提升机) |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftProtocol.getLiftNo()); |
| | | if (liftWrkMast != null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | if (liftWrkMast != null && !wrkMast.getMainWrkNo().equals(liftWrkMast.getWrkNo())) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | } |
| | | |
| | | wrkMast.setModiTime(now); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public WrkMast selectByMainWrkNo(Integer workNo) { |
| | | return this.baseMapper.selectByMainWrkNo(workNo); |
| | | } |
| | | |
| | | @Override |
| | | public Boolean judgeInbound(WrkMast wrkMast) { |
| | | switch (WrkStsType.query(wrkMast.getWrkSts())) { |
| | | case NEW_INBOUND: |
| | |
| | | public WrkMast selectLiftWrkMast(Integer liftNo) { |
| | | return this.baseMapper.selectLiftWrkMast(liftNo); |
| | | } |
| | | |
| | | @Override |
| | | public WrkMast selectLiftWrkMastAndWrkNo(Integer liftNo, Integer wrkNo, Integer manWrkNo) { |
| | | return this.baseMapper.selectLiftWrkMastAndWrkNo(liftNo, wrkNo, manWrkNo); |
| | | } |
| | | } |
| | |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | | } |
| | | //初始化实时地图 |
| | | mainService.initRealtimeBasMap(); |
| | | |
| | | //zhangc |
| | | //输送线 |
| | | // 入库 |
| | |
| | | //输送线完成判断 |
| | | mainService.devpFinished(); |
| | | |
| | | //初始化实时地图 |
| | | mainService.initRealtimeBasMap(); |
| | | |
| | | // // 入库 ===>> 四向穿梭车入库作业下发 |
| | | // mainService.shuttleInExecute(); |
| | | // // 出库 ===>> 四向穿梭车出库作业下发 |
| | |
| | | /** |
| | | * 调度车辆 |
| | | */ |
| | | public boolean searchDispatchShuttleIn(Integer wrkNo, String sourceLocNo, String locNo, String flag, boolean in) { |
| | | public boolean searchDispatchShuttleS(Integer wrkNo, String sourceLocNo, String locNo, String flag) { |
| | | ArrayList<ShuttleThread> sameLev = new ArrayList<>();//相同楼层的穿梭车 |
| | | ArrayList<ShuttleThread> diffLev = new ArrayList<>();//不同楼层的穿梭车 |
| | | |
| | |
| | | } |
| | | break; |
| | | } |
| | | // if (in) { |
| | | if (currentLev == Utils.getLev(sourceLocNo)) { |
| | | //工作档楼层相同的穿梭车 |
| | | sameLev.add(shuttleThread); |
| | | } else { |
| | | //工作档不同楼层的穿梭车 |
| | | diffLev.add(shuttleThread); |
| | | } |
| | | // } else { |
| | | // if (currentLev == Utils.getLev(locNo)) { |
| | | // //工作档楼层相同的穿梭车 |
| | | // sameLev.add(shuttleThread); |
| | | // } else { |
| | | // //工作档不同楼层的穿梭车 |
| | | // diffLev.add(shuttleThread); |
| | | // } |
| | | // } |
| | | if (currentLev == Utils.getLev(sourceLocNo)) { |
| | | //工作档楼层相同的穿梭车 |
| | | sameLev.add(shuttleThread); |
| | | } else { |
| | | //工作档不同楼层的穿梭车 |
| | | diffLev.add(shuttleThread); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | validation-timeout: 3000 |
| | | connection-test-query: select 1 |
| | | driver-class-name: com.mysql.jdbc.Driver |
| | | url: jdbc:mysql://127.0.0.1:3306/fyxc_shuttle?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai |
| | | url: jdbc:mysql://192.168.10.201:3306/fyxc_shuttle?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai |
| | | username: root |
| | | password: root |
| | | mvc: |
| | |
| | | led: ${wcs-slave.led[3].id} |
| | | # 出库口1 |
| | | outSta[0]: |
| | | staNo: 1012 |
| | | staNo: 1011 |
| | | outSta[1]: |
| | | staNo: 1014 |
| | | staNo: 1013 |
| | | outSta[2]: |
| | | staNo: 1022 |
| | | staNo: 1021 |
| | | outSta[3]: |
| | | staNo: 1025 |
| | | staNo: 1024 |
| | | # LED1 |
| | | led[0]: |
| | | id: 1 |
| | |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkMast"> |
| | | <id column="wrk_no" property="wrkNo" /> |
| | | <result column="mk" property="mk" /> |
| | | <result column="wrk_sts" property="wrkSts" /> |
| | | <result column="io_type" property="ioType" /> |
| | | <result column="io_pri" property="ioPri" /> |
| | | <result column="loc_no" property="locNo" /> |
| | | <result column="sta_no" property="staNo" /> |
| | | <result column="source_sta_no" property="sourceStaNo" /> |
| | | <result column="source_loc_no" property="sourceLocNo" /> |
| | | <result column="io_time" property="ioTime" /> |
| | | <result column="modi_user" property="modiUser" /> |
| | | <result column="modi_time" property="modiTime" /> |
| | | <result column="appe_user" property="appeUser" /> |
| | | <result column="appe_time" property="appeTime" /> |
| | | <result column="error_time" property="errorTime" /> |
| | | <result column="error_memo" property="errorMemo" /> |
| | | <result column="memo" property="memo" /> |
| | | <result column="barcode" property="barcode" /> |
| | | <result column="shuttle_no" property="shuttleNo" /> |
| | | <result column="lift_no" property="liftNo" /> |
| | | <result column="wms_wrk_no" property="wmsWrkNo" /> |
| | | <result column="system_msg" property="systemMsg" /> |
| | | <result column="main_wrk_no" property="mainWrkNo" /> |
| | | <id column="wrk_no" property="wrkNo"/> |
| | | <result column="mk" property="mk"/> |
| | | <result column="wrk_sts" property="wrkSts"/> |
| | | <result column="io_type" property="ioType"/> |
| | | <result column="io_pri" property="ioPri"/> |
| | | <result column="loc_no" property="locNo"/> |
| | | <result column="sta_no" property="staNo"/> |
| | | <result column="source_sta_no" property="sourceStaNo"/> |
| | | <result column="source_loc_no" property="sourceLocNo"/> |
| | | <result column="io_time" property="ioTime"/> |
| | | <result column="modi_user" property="modiUser"/> |
| | | <result column="modi_time" property="modiTime"/> |
| | | <result column="appe_user" property="appeUser"/> |
| | | <result column="appe_time" property="appeTime"/> |
| | | <result column="error_time" property="errorTime"/> |
| | | <result column="error_memo" property="errorMemo"/> |
| | | <result column="memo" property="memo"/> |
| | | <result column="barcode" property="barcode"/> |
| | | <result column="shuttle_no" property="shuttleNo"/> |
| | | <result column="lift_no" property="liftNo"/> |
| | | <result column="wms_wrk_no" property="wmsWrkNo"/> |
| | | <result column="system_msg" property="systemMsg"/> |
| | | <result column="main_wrk_no" property="mainWrkNo"/> |
| | | |
| | | </resultMap> |
| | | |
| | | <select id="selectPakInStep1" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where source_sta_no = #{sourceStaNo} |
| | | and wrk_sts = 2 |
| | | and barcode = #{barcode} |
| | | and (io_type = 1 or io_type = 10) |
| | | order by io_pri desc, io_time, wrk_no ASC limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectPakInStep11" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=1 and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where source_sta_no = #{sourceStaNo} |
| | | and wrk_sts = 1 |
| | | and (io_type = 1 or io_type = 10) |
| | | order by io_pri desc, io_time, wrk_no ASC limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectInStep4" resultMap="BaseResultMap"> |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1=1 |
| | | and wrk_sts = 4 |
| | | and io_type in (1,10,53,57) |
| | | order by io_pri desc,wrk_sts desc |
| | | where 1 = 1 |
| | | and wrk_sts = 4 |
| | | and io_type in (1, 10, 53, 57) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectByWorkNo" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where wrk_no=#{workNo} |
| | | limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where wrk_no = #{workNo} limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectByMainWrkNo" resultMap="BaseResultMap"> |
| | | select * |
| | | from asr_wrk_mast |
| | | where main_wrk_no = #{mainWrkNo} limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectLiftStep223103" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where 1=1 |
| | | and wrk_sts in (2,103,303) |
| | | order by io_pri desc,wrk_sts desc |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1 = 1 |
| | | and wrk_sts in (2, 103, 303) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectByWorkNo324104" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where wrk_no=#{workNo} |
| | | and wrk_sts in (3,104,303,306) |
| | | limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where wrk_no = #{workNo} |
| | | and wrk_sts in (3, 104, 303, 306) limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectBy2125" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where wrk_sts in (101,105) |
| | | and io_type in (101,103,107,110) |
| | | order by io_pri desc,wrk_sts desc |
| | | select * |
| | | from asr_wrk_mast |
| | | where wrk_sts in (101, 105) |
| | | and io_type in (101, 103, 107, 110) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectNoShuttleWrkByLev" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | select * |
| | | from asr_wrk_mast |
| | | where shuttle_no is null |
| | | and ((wrk_sts = 2 and loc_no like #{lev}) or (wrk_sts = 101 and source_loc_no like #{lev})) |
| | | order by io_pri desc,wrk_sts desc |
| | | and ((wrk_sts = 2 and loc_no like #{lev}) or (wrk_sts = 101 and source_loc_no like #{lev})) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectShuttleWrkByLev" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | select * |
| | | from asr_wrk_mast |
| | | where shuttle_no is not null |
| | | and ((wrk_sts not in (9,10) and loc_no like #{lev}) or (wrk_sts not in (29,30) and source_loc_no like #{lev})) |
| | | order by io_pri desc,wrk_sts desc |
| | | and ((wrk_sts not in (9, 10) and loc_no like #{lev}) or |
| | | (wrk_sts not in (29, 30) and source_loc_no like #{lev})) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectShuttleOutWrkByLev" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | select * |
| | | from asr_wrk_mast |
| | | where shuttle_no is not null |
| | | and (wrk_sts not in (109,110) and source_loc_no like #{lev}) |
| | | order by io_pri desc,wrk_sts desc |
| | | and (wrk_sts not in (109, 110) and source_loc_no like #{lev}) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectLiftWrkMast" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | select * |
| | | from asr_wrk_mast |
| | | where lift_no = #{liftNo} limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectLiftWrkMastAndWrkNo" resultMap="BaseResultMap"> |
| | | select * |
| | | from asr_wrk_mast |
| | | where lift_no = #{liftNo} |
| | | and wrk_sts in (3,4,104,105,301,302,303,304,305,306,307,308,309) |
| | | <if test="wrkNo !=null"> |
| | | and wrk_no != #{wrkNo} |
| | | </if> |
| | | <if test="wrkNo2 !=null"> |
| | | and wrk_no != #{wrkNo2} |
| | | </if> |
| | | limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectLocToLocWrkMast" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | select * |
| | | from asr_wrk_mast |
| | | where io_type in (11) |
| | | and wrk_sts not in (9,10,109,110) |
| | | order by io_pri desc,wrk_sts desc |
| | | and wrk_sts not in (9, 10, 109, 110) |
| | | order by io_pri desc, wrk_sts desc |
| | | </select> |
| | | |
| | | <select id="selectPickStepByBarcode" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where io_type in (53,103,107) |
| | | and wrk_sts in (2,3,104,109) |
| | | and barcode = #{barcode} |
| | | order by io_pri desc,wrk_sts desc |
| | | limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where io_type in (53, 103, 107) |
| | | and wrk_sts in (2, 3, 104, 109) |
| | | and barcode = #{barcode} |
| | | order by io_pri desc, wrk_sts desc limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectShuttleHasMoveWorking" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where 1=1 |
| | | and shuttle_no = #{shuttleNo} |
| | | and wrk_sts not in (311) |
| | | and io_type = 200 |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1 = 1 |
| | | and shuttle_no = #{shuttleNo} |
| | | and wrk_sts not in (311) |
| | | and io_type = 200 |
| | | order by io_pri desc, io_time, wrk_no asc limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectShuttleMoveWrk" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where 1=1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1 = 1 |
| | | -- and wrk_sts in (301,302,303,304,305,306,307,308,309,310,311) |
| | | and io_type = 200 |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | and io_type = 200 |
| | | order by io_pri desc, io_time, wrk_no asc |
| | | </select> |
| | | |
| | | <select id="selectShuttleWorking" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where 1=1 |
| | | and shuttle_no = #{shuttleNo} |
| | | and wrk_sts not in (9,10,109,110,210) |
| | | and io_type not in (200,300) |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1 = 1 |
| | | and shuttle_no = #{shuttleNo} |
| | | and wrk_sts not in (9, 10, 109, 110, 210) |
| | | and io_type not in (200, 300) |
| | | order by io_pri desc, io_time, wrk_no asc limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectByBarcode" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where 1=1 |
| | | and barcode = #{barcode} |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | limit 0,1 |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1 = 1 |
| | | and barcode = #{barcode} |
| | | order by io_pri desc, io_time, wrk_no asc limit 0,1 |
| | | </select> |
| | | |
| | | <select id="selectInWrkMastByLiftNo" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where 1=1 |
| | | and lift_no = #{liftNo} |
| | | and io_type <= 100 |
| | | and wrk_sts in (1,2,3,4,5) |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | select * |
| | | from asr_wrk_mast |
| | | where 1 = 1 |
| | | and lift_no = #{liftNo} |
| | | and io_type <= 100 |
| | | and wrk_sts in (1, 2, 3, 4, 5) |
| | | order by io_pri desc, io_time, wrk_no asc |
| | | </select> |
| | | |
| | | <select id="selectChargeWorking" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | select * |
| | | from asr_wrk_mast |
| | | where io_type in (300) |
| | | and shuttle_no = #{shuttleNo} |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | and shuttle_no = #{shuttleNo} |
| | | order by io_pri desc, io_time, wrk_no asc |
| | | </select> |
| | | |
| | | <select id="selectChargeWorkingByChargeSta" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where wrk_sts in (201,202,203,204,205,210) |
| | | and mk = #{chargeSta} |
| | | order by io_pri desc,io_time,wrk_no asc |
| | | select * |
| | | from asr_wrk_mast |
| | | where wrk_sts in (201, 202, 203, 204, 205, 210) |
| | | and mk = #{chargeSta} |
| | | order by io_pri desc, io_time, wrk_no asc |
| | | </select> |
| | | |
| | | </mapper> |