| | |
| | | import com.zy.asrs.utils.RouteUtils; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.asrs.utils.VersionUtils; |
| | | import com.zy.common.constant.AgvSiteConstant; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.MatDto; |
| | | import com.zy.common.model.SearchLocParam; |
| | |
| | | import com.zy.core.model.protocol.CrnProtocol; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.BarcodeThread; |
| | | import com.zy.core.thread.LedThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | |
| | | // 更新工作档状态为14失败 |
| | | wrkMast.setWrkSts(13L); |
| | | if (wrkMast.getStaNo() == 1024 || wrkMast.getStaNo() == 1028) { |
| | | wrkMast.setWrkSts(14L); |
| | | } |
| | | wrkMast.setCrnEndTime(new Date()); |
| | | if (wrkMastMapper.updateById(wrkMast) != 0) { |
| | | // 复位堆垛机 |
| | |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setIoType(10); |
| | | param.setSourceStaNo(emptyInSta.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | param.setLocType1((short) 0); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/loc/v1") |
| | |
| | | if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | if (wrkMast.getIoType() == 107) { |
| | | if (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104) { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | } |
| | | }); |
| | |
| | | } |
| | | ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam(); |
| | | getAgvTaskParam(forwardAGVTaskParam,wrkMast,staProtocol.getSiteId()); |
| | | String request = forwardAGVHttpRequest(forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask"); |
| | | String request = forwardAGVHttpRequest(wrkMast.getStaNo(),forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask"); |
| | | if ("SUCCESS".equals(request)) { |
| | | wrkMast.setWrkSts(14L); |
| | | boolean update = wrkMastService.updateById(wrkMast); |
| | |
| | | agvTaskCreateParam.setReqCode(wrkNo); |
| | | agvTaskCreateParam.setReqTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
| | | agvTaskCreateParam.setTaskTyp("GT4"); |
| | | agvTaskCreateParam.setCtnrCode(param.getBarcode()); |
| | | // agvTaskCreateParam.setCtnrCode(param.getBarcode()); |
| | | agvTaskCreateParam.setPositionCodePath(agvTaskParamList); |
| | | agvTaskCreateParam.setCtnrTyp("2"); |
| | | agvTaskCreateParam.setPriority("1"); |
| | |
| | | |
| | | } |
| | | |
| | | private String forwardAGVHttpRequest(Object requestParam, String url, String path){ |
| | | private String forwardAGVHttpRequest(int sta, Object requestParam, String url, String path){ |
| | | // 先绑定 |
| | | boolean flag = bindPodAndBerth(String.valueOf(sta)); |
| | | if (!flag) { |
| | | return "error"; |
| | | } |
| | | String response = ""; |
| | | String success = "error"; |
| | | try { |
| | |
| | | } |
| | | return success; |
| | | } |
| | | private boolean bindPodAndBerth(String sta) { |
| | | String staMap = AgvSiteConstant.SiteMap.get(sta); |
| | | if (staMap == null) { |
| | | log.error("没有找到该站点的入库映射:{}",sta); |
| | | return false; |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("reqCode",UUID.randomUUID().toString().replace("-", "")); // 请求唯一值 |
| | | jsonObject.put("ctnrTyp","2"); // 容器类型2 |
| | | jsonObject.put("stgBinCode",staMap); // 仓位编号,根据客仓编号转换 |
| | | jsonObject.put("indBind","1"); // 1绑定,0解绑 |
| | | |
| | | String body = jsonObject.toJSONString(); |
| | | String response = ""; |
| | | boolean success = false; |
| | | String url = "10.0.100.110:8182"; |
| | | String path = "/rcms/services/rest/hikRpcService/bindCtnrAndBin"; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(url) |
| | | .setPath(path) |
| | | .setJson(body) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject res = JSON.parseObject(response); |
| | | if (res.getInteger("code").equals(0)) { |
| | | success = true; |
| | | } else { |
| | | log.error("出库调用agv绑定仓位失败!!!url:{};request:{};response:{}", url + path, body, response); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("出库调用agv绑定仓位异常", e); |
| | | } finally { |
| | | // try { |
| | | // 保存接口日志 |
| | | // apiLogService.save( |
| | | // "调用agv绑定仓位", |
| | | // ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_BIND_PATH, |
| | | // null, |
| | | // "127.0.0.1", |
| | | // body, |
| | | // response, |
| | | // success |
| | | // ); |
| | | // } catch (Exception e) { |
| | | // log.error("", e); |
| | | // } |
| | | } |
| | | return success; |
| | | } |
| | | |
| | | |
| | | |