|  |  |  | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | }   // 必须为演示状态 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); | 
|---|
|  |  |  | //            CrnProtocol crnProtocol = crnThread.getCrnProtocol(); | 
|---|
|  |  |  | //            if (crnProtocol == null) { | 
|---|
|  |  |  | //                continue; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); | 
|---|
|  |  |  | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); | 
|---|
|  |  |  | if (crnProtocol == null) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 只有当堆垛机空闲 并且 无任务时才继续执行 | 
|---|
|  |  |  | //            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { | 
|---|
|  |  |  | if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String locNo = null; | 
|---|
|  |  |  | Iterator<String> iterator = crn1DemoLocs.iterator(); | 
|---|
|  |  |  | if (crn.getId() == 1) { | 
|---|
|  |  |  | iterator = crn1DemoLocs.iterator(); | 
|---|
|  |  |  | } else if (crn.getId() == 2) { | 
|---|
|  |  |  | iterator = crn2DemoLocs.iterator(); | 
|---|
|  |  |  | } else if (crn.getId() == 3) { | 
|---|
|  |  |  | iterator = crn3DemoLocs.iterator(); | 
|---|
|  |  |  | // filter | 
|---|
|  |  |  | if (wrkChargeService.selectCount(new EntityWrapper<WrkCharge>() | 
|---|
|  |  |  | .eq("crn_no", crn.getId()).lt("wrk_sts", 35)) > 0) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | while (iterator.hasNext()) { | 
|---|
|  |  |  | String next = iterator.next(); | 
|---|
|  |  |  | String lastLoc = ""; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int steNo = crn.getId(); | 
|---|
|  |  |  | SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); | 
|---|
|  |  |  | SteProtocol steProtocol = steThread.getSteProtocol(); | 
|---|
|  |  |  | BasSte basSte = basSteService.selectById(steNo); | 
|---|
|  |  |  | if (Cools.isEmpty(steProtocol, basSte)) { continue; } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 只有当穿梭车空闲 并且 无任务时才继续执行 | 
|---|
|  |  |  | if (steProtocol.isIdle()) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String locNo = null; | 
|---|
|  |  |  | Iterator<String> iterator = crn1DemoLocs.iterator(); | 
|---|
|  |  |  | if (crn.getId() == 1) { | 
|---|
|  |  |  | lastLoc = crn1LastLoc; | 
|---|
|  |  |  | iterator = crn1DemoLocs.iterator(); | 
|---|
|  |  |  | } else if (crn.getId() == 2) { | 
|---|
|  |  |  | lastLoc = crn2LastLoc; | 
|---|
|  |  |  | iterator = crn2DemoLocs.iterator(); | 
|---|
|  |  |  | } else if (crn.getId() == 3) { | 
|---|
|  |  |  | lastLoc = crn3LastLoc; | 
|---|
|  |  |  | iterator = crn3DemoLocs.iterator(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(lastLoc)) { | 
|---|
|  |  |  | if (!lastLoc.substring(2, 7).equals(next.substring(2, 7)) || !Utils.getGroupRow(lastLoc).equals(Utils.getGroupRow(next))) { | 
|---|
|  |  |  | while (iterator.hasNext()) { | 
|---|
|  |  |  | String next = iterator.next(); | 
|---|
|  |  |  | String lastLoc = ""; | 
|---|
|  |  |  | if (crn.getId() == 1) { | 
|---|
|  |  |  | lastLoc = crn1LastLoc; | 
|---|
|  |  |  | } else if (crn.getId() == 2) { | 
|---|
|  |  |  | lastLoc = crn2LastLoc; | 
|---|
|  |  |  | } else if (crn.getId() == 3) { | 
|---|
|  |  |  | lastLoc = crn3LastLoc; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(lastLoc)) { | 
|---|
|  |  |  | if (!lastLoc.substring(2, 7).equals(next.substring(2, 7)) || !Utils.getGroupRow(lastLoc).equals(Utils.getGroupRow(next))) { | 
|---|
|  |  |  | locNo = next; | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | locNo = next; | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | locNo = next; | 
|---|
|  |  |  | iterator.remove(); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(locNo)) { | 
|---|
|  |  |  | if (crn.getId() == 1) { | 
|---|
|  |  |  | crn1LastLoc = locNo; | 
|---|
|  |  |  | } else if (crn.getId() == 2) { | 
|---|
|  |  |  | crn2LastLoc = locNo; | 
|---|
|  |  |  | } else if (crn.getId() == 3) { | 
|---|
|  |  |  | crn3LastLoc = locNo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(locNo)) { | 
|---|
|  |  |  | if (crn.getId() == 1) { | 
|---|
|  |  |  | crn1LastLoc = locNo; | 
|---|
|  |  |  | } else if (crn.getId() == 2) { | 
|---|
|  |  |  | crn2LastLoc = locNo; | 
|---|
|  |  |  | } else if (crn.getId() == 3) { | 
|---|
|  |  |  | crn3LastLoc = locNo; | 
|---|
|  |  |  | log.info("{}号堆垛机对{}库位进行演示", crn.getId(), locNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String sourceLocNo = Utils.getLocNo(steProtocol.getRow(), steProtocol.getBay(), steProtocol.getLev()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WrkCharge wrkCharge = new WrkCharge(); | 
|---|
|  |  |  | wrkCharge.setCrnNo(crn.getId()); | 
|---|
|  |  |  | wrkCharge.setSteNo(steNo); | 
|---|
|  |  |  | wrkCharge.setWrkNo(commonService.getChargeWorkNo(5)); | 
|---|
|  |  |  | wrkCharge.setWrkSts(31L);   // 31.生成演示ID | 
|---|
|  |  |  | wrkCharge.setIoPri((double) 10); | 
|---|
|  |  |  | wrkCharge.setSourceLocNo(sourceLocNo); | 
|---|
|  |  |  | wrkCharge.setLocNo(locNo); | 
|---|
|  |  |  | if (!wrkChargeService.insert(wrkCharge)) { | 
|---|
|  |  |  | log.error("生成演示任务失败,堆垛机号:{},小车:{},源库位:{},目标库位:{}", crn.getId(), steNo, sourceLocNo, locNo); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //                log.info("{}号堆垛机对{}库位进行演示", crn.getId(), locNo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取移库工作档信息 | 
|---|
|  |  |  | //                WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId()); | 
|---|
|  |  |  | //                if (null != wrkMast) { continue; } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId()); | 
|---|
|  |  |  | //                LocMast loc = locMastService.queryDemoLoc(crn.getId()); | 
|---|
|  |  |  | //                if (null == sourceLoc || null == loc) { continue; } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                String sourceLocNo = sourceLoc.getLocNo(); | 
|---|
|  |  |  | //                String locNo = loc.getLocNo(); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                // 获取工作号 | 
|---|
|  |  |  | //                int workNo = commonService.getWorkNo(WorkNoType.PICK.type); | 
|---|
|  |  |  | //                // 保存工作档 | 
|---|
|  |  |  | //                wrkMast = new WrkMast(); | 
|---|
|  |  |  | //                wrkMast.setWrkNo(workNo); | 
|---|
|  |  |  | //                wrkMast.setIoTime(new Date()); | 
|---|
|  |  |  | //                wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID | 
|---|
|  |  |  | //                wrkMast.setIoType(11); // 入出库状态: 11.库格移载 | 
|---|
|  |  |  | //                wrkMast.setIoPri(13D); | 
|---|
|  |  |  | //                wrkMast.setCrnNo(crn.getId()); | 
|---|
|  |  |  | //                wrkMast.setSourceLocNo(sourceLocNo); // 源库位 | 
|---|
|  |  |  | //                wrkMast.setLocNo(locNo); // 目标库位 | 
|---|
|  |  |  | //                wrkMast.setFullPlt("N"); // 满板:Y | 
|---|
|  |  |  | //                wrkMast.setPicking("N"); // 拣料 | 
|---|
|  |  |  | //                wrkMast.setExitMk("N"); // 退出 | 
|---|
|  |  |  | //                wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 空板 | 
|---|
|  |  |  | //                wrkMast.setBarcode(sourceLoc.getBarcode()); // 托盘码 | 
|---|
|  |  |  | //                wrkMast.setLinkMis("N"); | 
|---|
|  |  |  | //                wrkMast.setAppeTime(new Date()); | 
|---|
|  |  |  | //                wrkMast.setModiTime(new Date()); | 
|---|
|  |  |  | //                int res = wrkMastMapper.insert(wrkMast); | 
|---|
|  |  |  | //                if (res == 0) { | 
|---|
|  |  |  | //                    throw new CoolException("保存工作档失败"); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|