| | |
| | | import com.zy.asrs.utils.MatUtils; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.constant.AgvConstant; |
| | | import com.zy.common.constant.ArmConstant; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.service.CommonService; |
| | |
| | | basAgvMast.setStaNo(param.getStaNo()); |
| | | basAgvMast.setSourceLocNo(param.getSourceLocNo()); |
| | | basAgvMast.setLocNo(param.getLocNo()); |
| | | String locNo = null; |
| | | String staNo = null; |
| | | // 默认值 |
| | | basAgvMast.setPriority(1L); // 默认优先级 |
| | | basAgvMast.setStatus(0); // 初始状态 |
| | |
| | | basAgvMast.setModiTime(new Date()); // 修改时间 |
| | | basAgvMast.setIoType(param.getIoType());// 任务类型 |
| | | basAgvMast.setFloorNo(param.getFloorNo()); //楼层 |
| | | |
| | | switch (basAgvMast.getIoType()){ |
| | | // AGV库位==》输送线站点 0 |
| | | // AGV库位==》AGV库位 1 |
| | | // 输送线站点==》AGV库位 2 |
| | | // 输送线站点==》输送线站点 3 |
| | | case 0: |
| | | case 1: |
| | | locNo = param.getSourceLocNo(); |
| | | break; |
| | | case 2: |
| | | case 3: |
| | | staNo = param.getSourceStaNo().toString(); |
| | | break; |
| | | } |
| | | // 插入数据库 |
| | | basAgvMastService.insert(basAgvMast); |
| | | |
| | | return true; |
| | | bindCtnrAndBinParam bindParam = new bindCtnrAndBinParam(); |
| | | bindParam.setBarcode(basAgvMast.getTimestamp().toString()); |
| | | bindParam.setIndBind("1"); |
| | | bindParam.setFloorNo(basAgvMast.getFloorNo()); |
| | | bindParam.setLocNo(locNo); |
| | | bindParam.setStaNo(staNo); |
| | | if(bindCtnrAndBin(bindParam)){ |
| | | return true; |
| | | }else{ |
| | | throw new CoolException("未能绑定"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (param == null) { |
| | | throw new CoolException("参数不能为空"); |
| | | } |
| | | AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(); |
| | | BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class); |
| | | BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", param.getLocNo())); |
| | | BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", param.getStaNo())); |
| | | agvBindCtnrAndBinParam.setReqCode(String.valueOf(System.currentTimeMillis())); |
| | | agvBindCtnrAndBinParam.setCtnrCode(param.getBarcode()); |
| | | agvBindCtnrAndBinParam.setCtnrTyp("1"); |
| | | if(basAgvLocNoEnd != null && basAgvLocNoEnd.getAgvLocNo() != null){ |
| | | agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo()); |
| | | } |
| | | if(basAgvLocNoSou != null && basAgvLocNoSou.getAgvLocNo() != null){ |
| | | agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoSou.getAgvLocNo()); |
| | | } |
| | | agvBindCtnrAndBinParam.setIndBind(param.getIndBind()); |
| | | try { |
| | | String URL = "http://10.10.10.200:8181/rcms/services/rest/hikRpcService"; // AGV接口地址 |
| | | String mesPath = "bindCtnrAndBin"; // 接口路径 |
| | | String response = ""; |
| | | boolean success = false; |
| | | if (param.getFloorNo()==1){ |
| | | AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(); |
| | | BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class); |
| | | BasAgvLocNo basAgvLocNoSou = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("loc_no", param.getLocNo())); |
| | | BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(new EntityWrapper<BasAgvLocNo>().eq("sta_no", param.getStaNo())); |
| | | agvBindCtnrAndBinParam.setReqCode(String.valueOf(System.currentTimeMillis())); |
| | | agvBindCtnrAndBinParam.setCtnrCode(param.getBarcode()); |
| | | agvBindCtnrAndBinParam.setCtnrTyp("1"); |
| | | if(basAgvLocNoEnd != null && basAgvLocNoEnd.getAgvLocNo() != null){ |
| | | agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo()); |
| | | } |
| | | if(basAgvLocNoSou != null && basAgvLocNoSou.getAgvLocNo() != null){ |
| | | agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoSou.getAgvLocNo()); |
| | | } |
| | | agvBindCtnrAndBinParam.setIndBind(param.getIndBind()); |
| | | try { |
| | | log.info("AGV绑定容器接口请求参数: {}", JSON.toJSONString(agvBindCtnrAndBinParam)); |
| | | String URL = AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService; // AGV接口地址 |
| | | String mesPath = AgvConstant.getAGVADAPTOR(param.getFloorNo()); // 接口路径 |
| | | String response = ""; |
| | | boolean success = false; |
| | | try { |
| | | log.info("AGV绑定容器接口请求参数: {}", JSON.toJSONString(agvBindCtnrAndBinParam)); |
| | | |
| | | response = new HttpHandler.Builder() |
| | | .setUri(URL) |
| | | .setPath(mesPath) |
| | | .setJson(JSON.toJSONString(agvBindCtnrAndBinParam)) |
| | | .build() |
| | | .doPost(); |
| | | response = new HttpHandler.Builder() |
| | | .setUri(URL) |
| | | .setPath(mesPath) |
| | | .setJson(JSON.toJSONString(agvBindCtnrAndBinParam)) |
| | | .build() |
| | | .doPost(); |
| | | |
| | | log.info("AGV绑定容器接口响应: {}", response); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | log.info("AGV绑定容器接口响应: {}", response); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | |
| | | if (jsonObject.getInteger("code") != null && jsonObject.getInteger("code").equals(0)) { |
| | | success = true; |
| | | } else { |
| | | log.error("AGV绑定容器失败!!!url:{};request:{};response:{}", URL + "/" + mesPath, JSON.toJSONString(agvBindCtnrAndBinParam), response); |
| | | throw new CoolException("AGV绑定容器失败: " + jsonObject.getString("msg")); |
| | | if (jsonObject.getInteger("code") != null && jsonObject.getInteger("code").equals(0)) { |
| | | success = true; |
| | | } else { |
| | | log.error("AGV绑定容器失败!!!url:{};request:{};response:{}", URL + "/" + mesPath, JSON.toJSONString(agvBindCtnrAndBinParam), response); |
| | | throw new CoolException("AGV绑定容器失败: " + jsonObject.getString("msg")); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("AGV绑定容器接口调用异常!!!url:{};request:{};response:{}", URL + "/" + mesPath, JSON.toJSONString(agvBindCtnrAndBinParam), response, e); |
| | | throw new CoolException("AGV绑定容器接口调用异常: " + e.getMessage()); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("AGV绑定容器接口调用异常!!!url:{};request:{};response:{}", URL + "/" + mesPath, JSON.toJSONString(agvBindCtnrAndBinParam), response, e); |
| | | throw new CoolException("AGV绑定容器接口调用异常: " + e.getMessage()); |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | | } else {} |
| | | return true; |
| | | } |
| | | |
| | |
| | | agvGoParam.setCode("0"); |
| | | agvGoParam.setMessage("继续执行"); |
| | | agvGoParam.setReqCode(param.getReqCode()); |
| | | ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("光栅下发后继续任务:", URL, AGVPath, param); |
| | | ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("光栅下发后继续任务:", URL, AGVPath, agvGoParam); |
| | | if (result.getCode()==200){ |
| | | return true; |
| | | } |
| | |
| | | String URL = "http://10.10.10.200:8181/"; // AGV接口地址 |
| | | String AGVPath = "rcms/services/rest/hikRpcService/bindCtnrAndBin"; // 接口路径 |
| | | BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("task_no",taskNo)); |
| | | BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class); |
| | | BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne( |
| | | new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()) |
| | | ); |
| | | AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(); |
| | | agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp()); |
| | | agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString()); |
| | | agvBindCtnrAndBinParam.setCtnrTyp("1"); |
| | | agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo()); |
| | | agvBindCtnrAndBinParam.setIndBind("0"); |
| | | ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑", URL,AGVPath, agvBindCtnrAndBinParam); |
| | | if (resultBind.getCode()!=200){ |
| | | return true; |
| | | if (Cools.isEmpty(basAgvMast)){ |
| | | return false; |
| | | } |
| | | if (basAgvMast.getFloorNo()==1){ |
| | | BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class); |
| | | BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne( |
| | | new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo()) |
| | | ); |
| | | if (Cools.isEmpty(basAgvMast)){ |
| | | return false; |
| | | } |
| | | AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(); |
| | | agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp()); |
| | | agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString()); |
| | | agvBindCtnrAndBinParam.setCtnrTyp("1"); |
| | | agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo()); |
| | | agvBindCtnrAndBinParam.setIndBind("0"); |
| | | ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑", URL,AGVPath, agvBindCtnrAndBinParam); |
| | | if (resultBind.getCode()!=200){ |
| | | basAgvMast.setStatus(4); |
| | | basAgvMastService.updateById(basAgvMast); |
| | | return true; |
| | | } |
| | | return false; |
| | | }else { |
| | | if (basAgvMast.getIoType()==0 && basAgvMast.getStaNo()==2034){ |
| | | AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam(); |
| | | agvBindCtnrAndBinTwoParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp()); |
| | | agvBindCtnrAndBinTwoParam.setPodCode(basAgvMast.getBarcode()); |
| | | agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getStaNo().toString()); |
| | | agvBindCtnrAndBinTwoParam.setIndBind("0");; |
| | | ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV容器绑定解绑", |
| | | AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam); |
| | | if (resultBind.getCode()!=200){ |
| | | basAgvMast.setStatus(4); |
| | | basAgvMastService.updateById(basAgvMast); |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | |
| | | } |
| | | |
| | | |