|  |  |  | 
|---|
|  |  |  | @Value("${wms.url}") | 
|---|
|  |  |  | private String wmsUrl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Short getWorkMode(Integer bay) { | 
|---|
|  |  |  | if (bay == 2 || bay == 7) { | 
|---|
|  |  |  | private Short getWorkMode(Short locType1, Integer bay) { | 
|---|
|  |  |  | if (locType1 == 2) { | 
|---|
|  |  |  | return (short) 3; | 
|---|
|  |  |  | } else if (bay == 3) { | 
|---|
|  |  |  | return (short) 2; | 
|---|
|  |  |  | } else if (bay == 4) { | 
|---|
|  |  |  | return (short) 2; | 
|---|
|  |  |  | } else if (bay == 5) { | 
|---|
|  |  |  | return (short) 1; | 
|---|
|  |  |  | } else if (locType1 == 5) { | 
|---|
|  |  |  | return (short) 3; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return (short) 0; | 
|---|
|  |  |  | if (bay == 5) { | 
|---|
|  |  |  | return (short) 1; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return (short) 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | CrnCommand crnCommand = new CrnCommand(); | 
|---|
|  |  |  | crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
|---|
|  |  |  | crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
|---|
|  |  |  | Short workMode = getWorkMode(locMast.getBay1()); | 
|---|
|  |  |  | Short workMode = getWorkMode(locMast.getLocType1(), locMast.getBay1()); | 
|---|
|  |  |  | if (workMode == 2) { | 
|---|
|  |  |  | //CrnTaskModeType该枚举类无效,只有1代表工位,2代表工位2,3双工位 | 
|---|
|  |  |  | crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); | 
|---|
|  |  |  | 
|---|
|  |  |  | News.warnNoLog("" + mark + " - 2" + " - 12" + " - 命令下发 : 工作号={},源排={},源列={},源层={},目标排={},目标列={},目标层={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String locNo = sourceSta.getLocNo(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取目标库位信息 | 
|---|
|  |  |  | LocMast sta = locMastService.getById(sourceSta.getLocNo()); | 
|---|
|  |  |  | // 1.堆垛机开始移动 | 
|---|
|  |  |  | CrnCommand crnCommand = new CrnCommand(); | 
|---|
|  |  |  | crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
|---|
|  |  |  | crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
|---|
|  |  |  | Short workMode = getWorkMode(sourceSta.getBay1()); | 
|---|
|  |  |  | Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); | 
|---|
|  |  |  | if (workMode == 2) { | 
|---|
|  |  |  | //CrnTaskModeType该枚举类无效,只有1代表工位,2代表工位2,3双工位 | 
|---|
|  |  |  | crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); | 
|---|
|  |  |  | 
|---|
|  |  |  | CrnCommand crnCommand = new CrnCommand(); | 
|---|
|  |  |  | crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
|---|
|  |  |  | crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
|---|
|  |  |  | Short workMode = getWorkMode(sourceSta.getBay1()); | 
|---|
|  |  |  | Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); | 
|---|
|  |  |  | crnCommand.setAckFinish((short) 0);  // 任务完成确认位 | 
|---|
|  |  |  | if (workMode == 2) { | 
|---|
|  |  |  | //CrnTaskModeType该枚举类无效,只有1代表工位,2代表工位2,3双工位 | 
|---|
|  |  |  | 
|---|
|  |  |  | LocMast loc = null; | 
|---|
|  |  |  | for (Integer row : rows) { | 
|---|
|  |  |  | if (Utils.isDeepLoc(slaveProperties, row)) { | 
|---|
|  |  |  | loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); | 
|---|
|  |  |  | loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); | 
|---|
|  |  |  | if (loc != null) { | 
|---|
|  |  |  | if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { | 
|---|
|  |  |  | String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null != loc) { | 
|---|
|  |  |  | //调整的原因:双工位的情况,5列,只能2号工位取放,34列,只能工位1取放 | 
|---|
|  |  |  | if (shallowLoc.getLocType1() == 1) { | 
|---|
|  |  |  | if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { | 
|---|
|  |  |  | if (loc.getBay1() == 3 || loc.getBay1() == 4) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | loc = null; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                        if (shallowLoc.getLocType1() == 1) { | 
|---|
|  |  |  | //                            if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { | 
|---|
|  |  |  | //                                break; | 
|---|
|  |  |  | //                            } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { | 
|---|
|  |  |  | //                                if (loc.getBay1() == 3 || loc.getBay1() == 4) { | 
|---|
|  |  |  | //                                    break; | 
|---|
|  |  |  | //                                } | 
|---|
|  |  |  | //                            } | 
|---|
|  |  |  | //                            loc = null; | 
|---|
|  |  |  | //                        } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == loc) { | 
|---|
|  |  |  | for (Integer row : rows) { | 
|---|
|  |  |  | if (Utils.isShallowLoc(slaveProperties, row)) { | 
|---|
|  |  |  | loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); | 
|---|
|  |  |  | loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null != loc) {//对应深库位非在库状态,不能移库 | 
|---|
|  |  |  | String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null != loc) { | 
|---|
|  |  |  | //调整的原因:双工位的情况,5列,只能2号工位取放,34列,只能工位1取放 | 
|---|
|  |  |  | if (shallowLoc.getLocType1() == 1) { | 
|---|
|  |  |  | if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { | 
|---|
|  |  |  | if (loc.getBay1() == 3 || loc.getBay1() == 4) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | loc = null; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                            //调整的原因:双工位的情况,5列,只能2号工位取放,34列,只能工位1取放 | 
|---|
|  |  |  | //                            if (shallowLoc.getLocType1() == 1) { | 
|---|
|  |  |  | //                                if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { | 
|---|
|  |  |  | //                                    break; | 
|---|
|  |  |  | //                                } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { | 
|---|
|  |  |  | //                                    if (loc.getBay1() == 3 || loc.getBay1() == 4) { | 
|---|
|  |  |  | //                                        break; | 
|---|
|  |  |  | //                                    } | 
|---|
|  |  |  | //                                } | 
|---|
|  |  |  | //                                loc = null; | 
|---|
|  |  |  | //                            } else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|