From 1950dec57cefe0a4ef978cf6fef4d2096a345a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Thu, 5 Jun 2025 11:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E6=9C=89=E8=B4=A7?= =?UTF-8?q?=E6=97=A0=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhehekeji/web/service/PlcService.java | 60 +++++++++++++------ .../web/service/ksec/KsecDecoder.java | 3 +- 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index dd1455c..179112f 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -720,29 +720,30 @@ public class PlcService { } //进行品规识别,完成进行拍照 - if( stock.getCategory() != null && "20".equals(stock.getCategory())) { - checkLog.setStatus(StockStatus.OTHER.getStatus()); - stock.setStatus(StockStatus.OTHER.getStatus()); - } - AlgorithmPojo algorithmPojo = sendHttp(street,stock.getDirection(),dataInfo.getTypeNum()); +// if( stock.getCategory() != null && "20".equals(stock.getCategory())) { +// checkLog.setStatus(StockStatus.OTHER.getStatus()); +// stock.setStatus(StockStatus.OTHER.getStatus()); +// } + + Boolean algorithmPojo = sendHttp(street,plcCmdInfo); if (algorithmPojo!=null){ - if (algorithmPojo.getResult()){ + if (algorithmPojo){ checkLog.setStatus(StockStatus.SUCCESS.getStatus()); stock.setStatus(StockStatus.SUCCESS.getStatus()); - stock.setCategory(dataInfo.getTypeNum()); - - checkLog.setCategory(dataInfo.getTypeNum()); +// stock.setCategory(dataInfo.getTypeNum()); +// +// checkLog.setCategory(dataInfo.getTypeNum()); }else { - checkLog.setStatus(StockStatus.CATEGORY_ERROR.getStatus()); - stock.setStatus(StockStatus.CATEGORY_ERROR.getStatus()); + checkLog.setStatus(StockStatus.ERROR.getStatus()); + stock.setStatus(StockStatus.ERROR.getStatus()); } - - checkLog.setPic("http://"+street.getPlcIp()+":9007/pic/"+algorithmPojo.getDeterminePath()); - stock.setCheckPic("http://"+street.getPlcIp()+":9007/pic/"+algorithmPojo.getDeterminePath()); +// +// checkLog.setPic("http://"+street.getPlcIp()+":9007/pic/"+algorithmPojo.getDeterminePath()); +// stock.setCheckPic("http://"+street.getPlcIp()+":9007/pic/"+algorithmPojo.getDeterminePath()); }else { - checkLog.setStatus(StockStatus.CATEGORY_ERROR.getStatus()); - stock.setStatus(StockStatus.CATEGORY_ERROR.getStatus()); + checkLog.setStatus(StockStatus.ERROR.getStatus()); + stock.setStatus(StockStatus.ERROR.getStatus()); } checkLogMapper.insert(checkLog); @@ -752,7 +753,7 @@ public class PlcService { stockMapper.insert(stock); } else stockMapper.updateById(stock); if (algorithmPojo != null) { - return algorithmPojo.getResult(); + return algorithmPojo; }else { return false; } @@ -930,6 +931,31 @@ public class PlcService { return checkLog.getStatus()>2?1:0; } + public boolean sendHttp(Street street ,PlcCmdInfo plcCmdInfo){ + // 创建RestTemplate实例 + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setConnectTimeout(10000); // 5 seconds + factory.setReadTimeout(10000); // 5 seconds + RestTemplate restTemplate = new RestTemplate(factory); + // 定义 URL + String url = "http://"+street.getPlcIp()+":8097/judge/judge?direction={direction}&separation={separation}"; + + boolean flag = false; + try { + + // 发起 GET 请求 + ResponseEntity response = restTemplate.getForEntity(url, Boolean.class,plcCmdInfo.getLeftRight1(),plcCmdInfo.getSeparation1()); + flag = response.getBody(); + // 输出响应状态码和响应体 + System.out.println("Status Code: " + response.getStatusCode()); + return flag; + }catch (Exception e){ + log.error("请求异常",e); + return flag; + } + + } + public static String join(String[] array, String separator) { diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index cac0598..4ed6493 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -183,6 +183,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { if (Cmd.E1.name().equals(cmdName)){ boolean f = plcService.check(plcCmdInfo, dataInfo); +// 1为有货,0为无货 ksecInfo.getData().setCheckRlt(f?1:0); ksecInfo.getData().setCmdName("E2"); KsecNettyClient.write(ksecInfo); @@ -199,7 +200,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { }else if (Cmd.SC.name().equals(ksecInfo.getType())) { //站台盘点 - plcService.check(plcCmdInfo, dataInfo); +// plcService.check(plcCmdInfo, dataInfo); } //找到该货位的最后一张照片与现在的照片比照