| | |
| | | staProtocolNew.setWorkNo(wrkMast.getWrkNo()); |
| | | staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo())); |
| | | staProtocolNew.setSiteId(staProtocol.getSiteId()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | staProtocolNew.setBarcode(barcode); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew)); |
| | | if (ledThread != null) { |
| | |
| | | if (!result) { |
| | | News.error(methodName + ":更新plc站点信息失败"); |
| | | log.error("输送线下发(存在设备上走的工作档,直接下发!)==>更新plc站点信息失败"); |
| | | |
| | | // throw new CoolException("更新plc站点信息失败"); |
| | | continue; |
| | | } |
| | | continue; |
| | | |
| | | } |
| | | WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>() |
| | |
| | | |
| | | throw new CoolException("更新plc站点信息失败"); |
| | | } |
| | | } |
| | | // else if (jsonObject.getInteger("code").equals(700)) { |
| | | // SearchLocParam param2 = new SearchLocParam(); |
| | | // param2.setBarcode(barcode); |
| | | // param2.setBarcodeMat(barcodeMat); |
| | | // param2.setSourceStaNo(inSta.getStaNo()); |
| | | // param2.setLocType1(locTypeDto.getLocType1()); |
| | | // String response2 = new HttpHandler.Builder() |
| | | // .setUri(wmsUrl) |
| | | // .setPath("/rpc/pakin/yk/loc/v33") |
| | | // .setJson(JSON.toJSONString(param2)) |
| | | // .build() |
| | | // .doPost(); |
| | | // JSONObject jsonObject2 = JSON.parseObject(response2); |
| | | // if (jsonObject2.getInteger("code").equals(200)) { |
| | | // log.info("自动组托成功!!"); |
| | | // MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托成功")); |
| | | // } else { |
| | | // MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托失败!!!barcodeMat==>"+barcodeMat)); |
| | | // News.error(methodName + "==>组托失败:请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2); |
| | | // } |
| | | // try{ |
| | | // Thread.sleep(500); |
| | | // } catch (Exception e){ |
| | | // |
| | | // } |
| | | // } |
| | | else { |
| | | } else { |
| | | News.error(JSON.toJSONString(staProtocol)); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.info("任务下发判断{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | News.info("任务下发判断{}入库回退:{},错误编号{},任务号:{}", inSta.getStaNo(), errMsg,jsonObject.getInteger("code"),wrkNo); |
| | | wrkNo++; |
| | | // if (ledThread != null) { |
| | | String errorMsg = jsonObject.getString("msg"); |
| | | if (!Cools.isEmpty(errorMsg)) { |
| | |
| | | } else { |
| | | staProtocolIn = staProtocolIn.clone(); |
| | | } |
| | | int[] outStaNos = {1015, 2016}; |
| | | int[] outStaNos = {1015, 2016}; //衔接入库点 |
| | | for (int outStaNo : outStaNos) { |
| | | StaProtocol staProtocolOut = devpThread.getStation().get(outStaNo);// 盘点出库衔接站点(可能是 1015,也可能是 2016) |
| | | if (staProtocolOut == null) { |
| | |
| | | // 获取工作状态为11(生成出库ID)的出库工作档 |
| | | // WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo()); |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo()); |
| | | if (slave.getId() == 3) { |
| | | SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); |
| | | StaProtocol staProtocol2 = devpThread1.getStation().get(1015); |
| | | if (staProtocol2 == null) { |
| | | News.infoNoLog("" + mark + " - 2" + " - 3" + " - 堆垛机出库站信息(staProtocol!=null继续执行,否则循环终止):staProtocol=" + staProtocol2); |
| | | break; |
| | | } else { |
| | | staProtocol2 = staProtocol2.clone(); |
| | | } |
| | | WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997); |
| | | BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); |
| | | if (staDetl == null) { |
| | | News.error(""+mark+" - 2"+" - 5"+" - 出库 ===>> 堆垛机站点在数据库不存在, 站点编号={}", crnStn.getStaNo()); |
| | | break; |
| | | // continue; |
| | | } |
| | | if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){ |
| | | // 堆垛机控制过滤 |
| | | if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { |
| | | // continue; |
| | | break; |
| | | } |
| | | // 已经存在吊车执行任务时,则过滤 |
| | | if (wrkMastMapper.selectWorking(slave.getId()) != null) { |
| | | break; |
| | | // return; |
| | | } |
| | | // 1.堆垛机开始移动 |
| | | CrnCommand crnCommand = new CrnCommand(); |
| | | crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 |
| | | crnCommand.setTaskNo((short) 9997); // 工作号 |
| | | // crnCommand.setAckFinish((short) 0); // 任务完成确认位 |
| | | crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 |
| | | crnCommand.setSourcePosX((short) 5); // 源库位排 |
| | | crnCommand.setSourcePosY((short) 1); // 源库位列 |
| | | crnCommand.setSourcePosZ((short) 1); // 源库位层 |
| | | crnCommand.setDestinationPosX((short) 6); // 目标库位排 |
| | | crnCommand.setDestinationPosY((short) 1); // 目标库位列 |
| | | crnCommand.setDestinationPosZ((short) 4); // 目标库位层 |
| | | // crnCommand.setTraySize(sourceSta.getLocType1() == 2); //库位类型 |
| | | if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) { |
| | | News.error("" + mark + " - 2" + " - 13" + " - 堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand)); |
| | | } else { |
| | | // 修改工作档状态 11.生成出库ID => 12.吊车出库中 |
| | | Date now = new Date(); |
| | | wrkMast9999.setWrkSts(12L); |
| | | wrkMast9999.setCrnStrTime(now); |
| | | wrkMast9999.setModiTime(now); |
| | | if (wrkMastMapper.updateById(wrkMast9999) == 0) { |
| | | News.error("" + mark + " - 2" + " - 14" + " - 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast9999.getWrkNo()); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | // if (slave.getId() == 3) { |
| | | // SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); |
| | | // StaProtocol staProtocol2 = devpThread1.getStation().get(1015); |
| | | // if (staProtocol2 == null) { |
| | | // News.infoNoLog("" + mark + " - 2" + " - 3" + " - 堆垛机出库站信息(staProtocol!=null继续执行,否则循环终止):staProtocol=" + staProtocol2); |
| | | // break; |
| | | // } else { |
| | | // staProtocol2 = staProtocol2.clone(); |
| | | // } |
| | | // WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9997); |
| | | // BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); |
| | | // if (staDetl == null) { |
| | | // News.error(""+mark+" - 2"+" - 5"+" - 出库 ===>> 堆垛机站点在数据库不存在, 站点编号={}", crnStn.getStaNo()); |
| | | // break; |
| | | //// continue; |
| | | // } |
| | | // if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){ |
| | | // // 堆垛机控制过滤 |
| | | // if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { |
| | | //// continue; |
| | | // break; |
| | | // } |
| | | // // 已经存在吊车执行任务时,则过滤 |
| | | // if (wrkMastMapper.selectWorking(slave.getId()) != null) { |
| | | // break; |
| | | //// return; |
| | | // } |
| | | // // 1.堆垛机开始移动 |
| | | // CrnCommand crnCommand = new CrnCommand(); |
| | | // crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 |
| | | // crnCommand.setTaskNo((short) 9997); // 工作号 |
| | | //// crnCommand.setAckFinish((short) 0); // 任务完成确认位 |
| | | // crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式: 库位移转 |
| | | // crnCommand.setSourcePosX((short) 5); // 源库位排 |
| | | // crnCommand.setSourcePosY((short) 1); // 源库位列 |
| | | // crnCommand.setSourcePosZ((short) 1); // 源库位层 |
| | | // crnCommand.setDestinationPosX((short) 6); // 目标库位排 |
| | | // crnCommand.setDestinationPosY((short) 1); // 目标库位列 |
| | | // crnCommand.setDestinationPosZ((short) 4); // 目标库位层 |
| | | //// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //库位类型 |
| | | // if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) { |
| | | // News.error("" + mark + " - 2" + " - 13" + " - 堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand)); |
| | | // } else { |
| | | // // 修改工作档状态 11.生成出库ID => 12.吊车出库中 |
| | | // Date now = new Date(); |
| | | // wrkMast9999.setWrkSts(12L); |
| | | // wrkMast9999.setCrnStrTime(now); |
| | | // wrkMast9999.setModiTime(now); |
| | | // if (wrkMastMapper.updateById(wrkMast9999) == 0) { |
| | | // News.error("" + mark + " - 2" + " - 14" + " - 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast9999.getWrkNo()); |
| | | // } |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | for (WrkMast wrkMast : wrkMasts) { |
| | | if (wrkMast == null) { |
| | | continue; |
| | |
| | | public synchronized void autoEmptyOut() { |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | List<Integer> list = new ArrayList<>(); |
| | | list.add(1109);list.add(2031); |
| | | list.add(1108);list.add(2031); |
| | | for (Integer site:list){ |
| | | Integer emptyCount = wrkMastMapper.countPakOutEmpty(site); |
| | | StaProtocol staProtocol = null; |
| | | if(emptyCount >= 2 && site == 1109){ |
| | | if(emptyCount >= 1 && site == 1108){ |
| | | continue; |
| | | }else if(emptyCount == 1 && site == 2031){ |
| | | continue; |
| | | } |
| | | //如果站点可出禁用,则不生成空盘出库任务 |
| | | switch (site){ |
| | | case 1109:staProtocol = devpThread.getStation().get(site - 2);break; |
| | | case 1108:staProtocol = devpThread.getStation().get(site - 2);break; |
| | | case 2031:staProtocol = devpThread.getStation().get(site);break; |
| | | } |
| | | if (staProtocol == null) { |
| | |
| | | } |
| | | if (staProtocol.isAutoing() //自动 |
| | | && !staProtocol.isLoading() //无物 |
| | | && staProtocol.isOutEnable() //可出信号 |
| | | // && staProtocol.isOutEnable() //可出信号 |
| | | && staProtocol.getWorkNo() == 0 |
| | | ) { |
| | | Short loctype1 = 1; |
| | |
| | | List<BasArmMast> basArmMastListRuning3 = basArmMastService.selectList( |
| | | new EntityWrapper<BasArmMast>() |
| | | .eq("arm_no", basArm.getArmNo()) |
| | | .eq("sorting_line", basArm.getSortingLineSou()) |
| | | .eq( |
| | | |
| | | "sorting_line", basArm.getSortingLineSou()) |
| | | .eq("status", 3) |
| | | ); |
| | | if (basArmMastListRuning.isEmpty() && basArmMastListRuning3.isEmpty()){ |
| | |
| | | .eq("binding_tags", basArmMast.getBindingTags()) |
| | | ); |
| | | if (basArmMastListOrder.size()==1){ |
| | | Thread.sleep(100); |
| | | |
| | | |
| | | List<BasArmMast> basArmMastListRuningBarCode2 = basArmMastService.selectList( |
| | | new EntityWrapper<BasArmMast>() |
| | | .eq("barcode", barcode) |
| | | ); |
| | | if (!basArmMastListRuningBarCode2.isEmpty()){ |
| | | int binding_tags = basArmMastService.selectCount( |
| | | new EntityWrapper<BasArmMast>() |
| | | .eq("status", 2) |
| | | .eq("binding_tags", basArmMast.getBindingTags()) |
| | | ); |
| | | if (binding_tags<2){ |
| | | armTaskAssignmentCallApiLogSave(staProtocol, "条码数据已存在!!!", staProtocol.getSiteId()+"码垛位置,条码数据正在自动组托===>>" + barcode, false); |
| | | continue; |
| | | } |
| | | } |
| | | OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku()); |
| | | |
| | | if (Cools.isEmpty(orderDetlValueResultUtil)){ |