From 88ade194ed39e2e84bc83de0c8aa848b458066ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Mon, 8 Jan 2024 16:00:41 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E7=9B=98=E7=82=B9=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=9A=84=E5=BC=80=E6=94=BE=EF=BC=8C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=81=B5=E9=97=AA=E6=8B=8D=E7=85=A7=E7=BB=99669=E5=8F=91?= =?UTF-8?q?=E9=80=81trigger:1=202.=E5=A6=82=E6=9E=9C=E6=9C=AA=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=88=A0=E9=99=A4=E8=BF=9E=E6=8E=A5=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/config/ConfigProperties.java | 1 + .../zhehekeji/web/service/CameraService.java | 2 + .../com/zhehekeji/web/service/PlcService.java | 85 +++++++++++++------ web/src/main/resources/application-prod.yml | 6 +- 4 files changed, 67 insertions(+), 27 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java index f9388eb..3d1af6c 100644 --- a/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java +++ b/web/src/main/java/com/zhehekeji/web/config/ConfigProperties.java @@ -42,6 +42,7 @@ public class ConfigProperties { private AsyncExecutorThread asyncExecutorThread; private VisualSense visualSense; + private Integer orderTest = 0; @Data public static class VisualSense{ diff --git a/web/src/main/java/com/zhehekeji/web/service/CameraService.java b/web/src/main/java/com/zhehekeji/web/service/CameraService.java index 14c8718..77ba7ec 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -153,9 +153,11 @@ public class CameraService { if(ok){ camera.setStatus("连接正常"); }else { + CameraConnMap.disConn(camera.getId()); camera.setStatus("未连接"); } }catch (Exception e){ + CameraConnMap.disConn(camera.getId()); camera.setStatus("未连接"); }finally { latch.countDown(); 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 361a514..a3bd120 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -35,9 +35,10 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.nio.charset.StandardCharsets; import java.time.Duration; import java.time.LocalDateTime; import java.util.*; @@ -890,34 +891,66 @@ public class PlcService { } } else if (Cmd.D.name().equals(ksecInfo.getType())) { - //柳州去掉告警 -// String code = dataInfo.getCmdName(); -// if(code.equals(Cmd.D1.name())){ -// log.info("plcId:{},warn start",plcCmdInfo.getPlcId()); -// //根据告警code转动camera -// String warnCode = dataInfo.getWarnCode(); -// if(!StringUtils.isEmpty(warnCode)){ -// String warnCode0 = Cmd.D1.name()+"-"+warnCode.split(",")[0]; -// plcService.warnAction(plcCmdInfo,warnCode0); -// } -// plcService.warnStart(plcCmdInfo.getPlcId(),dataInfo.getWarnCode()); -// }else if(code.equals(Cmd.D2.name())){ -// log.info("plcId:{},warn stop",plcCmdInfo.getPlcId()); -// plcService.warnStop(plcCmdInfo.getPlcId()); -// }else { -// log.info("other D code :{}",code); -// } } else if (Cmd.E.name().equals(ksecInfo.getType()) ) { String code = dataInfo.getCmdName(); log.info("盘点指令:{}", ksecInfo); - AlgorithmPojo algorithmPojo = check(plcCmdInfo,ksecInfo.getType(),dataInfo); - ksecInfo.getData().setAckStatus(1); - dataInfo.setResult(algorithmPojo.getResult()); - dataInfo.setGoodsTypeResult(algorithmPojo.getGoodsTypeResult()); - dataInfo.setGoodsNumberResult(algorithmPojo.getGoodsNumberResult()); - log.info("盘点完成"); + if(configProperties.getOrderTest() == 0) { + AlgorithmPojo algorithmPojo = check(plcCmdInfo, ksecInfo.getType(), dataInfo); + ksecInfo.getData().setAckStatus(1); + dataInfo.setResult(algorithmPojo.getResult()); + dataInfo.setGoodsTypeResult(algorithmPojo.getGoodsTypeResult()); + dataInfo.setGoodsNumberResult(algorithmPojo.getGoodsNumberResult()); + log.info("盘点完成"); + }else { + checkTest(plcCmdInfo, ksecInfo.getType(), dataInfo); + + + } } return dataInfo; } + + private void checkTest(PlcCmdInfo plcCmdInfo, String type, KsecDataInfo dataInfo) { + Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); + + Socket socket = new Socket(); + int status = 0; + OutputStream os = null; + InputStream is = null; + try { + socket.connect(new InetSocketAddress(street.getPlcIp(),669),3000); + //socket.setSoTimeout(10000); + os = socket.getOutputStream(); + Thread.sleep(100); + String startCmd = "trigger:1"; + byte [] bytes = startCmd.getBytes(StandardCharsets.UTF_8); + os.write(bytes); + socket.close(); + } catch (IOException e) { + log.error("hik contro time out,ip:{},info:{}",street.getPlcIp(),e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } finally { + if(os != null){ + try { + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if(is != null){ + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index 267c69f..ae8cc84 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -102,4 +102,8 @@ asyncExecutorThread: corePoolSize: 5 maxPoolSize: 70 queueCapacity: 99999 - namePrefix: "Thread_Pool_Task_Executor" \ No newline at end of file + namePrefix: "Thread_Pool_Task_Executor" + + +#订单测试 +orderTest: 1 \ No newline at end of file