From 6a9a67fb65f115b7f5ae70222a1abebf1a7b43d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Thu, 7 Sep 2023 16:48:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=99=E8=BE=B9=E5=85=A5=E5=BA=93=E9=A1=B6?= =?UTF-8?q?=E9=83=A8=E6=8B=8D=E7=85=A7=E8=A6=81=E6=8D=A2=E6=88=90=E7=94=A8?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E9=A1=B6=E9=83=A8=E7=9A=84=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E7=9B=B8=E6=9C=BA=E6=8B=8D=E7=85=A7=EF=BC=8C=E4=B8=8A?= =?UTF-8?q?=E4=BD=8D=E6=9C=BA=E5=8F=91=E9=80=81=E7=9A=84IS01=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=8B=8D=E7=85=A7=E6=8C=87=E4=BB=A4=E5=90=8E=E7=BB=99?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=8F=91=E9=80=81=E9=A1=B6=E9=83=A8?= =?UTF-8?q?=E6=8B=8D=E7=85=A7=E6=8C=87=E4=BB=A4=EF=BC=8C=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E6=8B=8D=E5=88=B0=E4=B8=A4=E5=BC=A0=E7=85=A7=E7=89=87?= =?UTF-8?q?=E5=90=8E=E4=BC=9A=E5=8F=91=E9=80=81=E6=8B=8D=E7=85=A7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=BB=99web=E7=AB=AF=EF=BC=8Cweb=E7=AB=AF=E5=86=8D?= =?UTF-8?q?=E5=8F=91=E7=BB=99=E4=B8=8A=E4=BD=8D=E6=9C=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/ClientTestController.java | 24 +++++++-------- .../com/zhehekeji/web/service/PlcService.java | 29 +++++++++++-------- .../zhehekeji/web/service/client/Decoder.java | 13 +++++++++ .../zhehekeji/web/service/putian/PTData.java | 2 ++ .../web/service/putian/PTDecoder.java | 5 +++- .../web/service/putian/PTOrderContent.java | 16 ++++++++++ 6 files changed, 64 insertions(+), 25 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java b/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java index 187bac1..d12254f 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/ClientTestController.java @@ -123,18 +123,18 @@ public class ClientTestController { return Result.success(); } - @ApiOperation("模拟普天 货物入库,顶部拍照 【货位入库】") - @GetMapping("/intoStock/picOver") - public Result picOver(@ApiParam("巷道标识") @RequestParam String SRMNumber,@ApiParam("盘点批次ID") @RequestParam String taskId, - @ApiParam("货位号,如L0100010002 ,R/L表示左右,01是浅货位(02深),0001是X,0002是Y") @RequestParam String goodsLocation){ - - - String picPath = plcService.IntoStock(SRMNumber,taskId,goodsLocation); - //返回普天 - PTData ptData = PTData.IntoStock02(SRMNumber,taskId,goodsLocation,picPath); - PuTianNettyClient.write(ptData); - return Result.success(ptData.toString()); - } +// @ApiOperation("模拟普天 货物入库,顶部拍照 【货位入库】") +// @GetMapping("/intoStock/picOver") +// public Result picOver(@ApiParam("巷道标识") @RequestParam String SRMNumber,@ApiParam("盘点批次ID") @RequestParam String taskId, +// @ApiParam("货位号,如L0100010002 ,R/L表示左右,01是浅货位(02深),0001是X,0002是Y") @RequestParam String goodsLocation){ +// +// +// String picPath = plcService.IntoStock(SRMNumber,taskId,goodsLocation); +// //返回普天 +// PTData ptData = PTData.IntoStock02(SRMNumber,taskId,goodsLocation,picPath); +// PuTianNettyClient.write(ptData); +// return Result.success(ptData.toString()); +// } @ApiOperation("模拟普天 货物入库完成 【货物入库完成】") @GetMapping("/intoStock/goodsOver") 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 3b8264e..9a6b021 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -634,23 +634,13 @@ public class PlcService { Integer inout = Integer.valueOf(goodsLocation.substring(11,12)); log.info("camera id:{}, row:{}, column:{}, direction:{}, inout:{}", cameraId, row, column, leftRight, inout); - //转动拍照 - gyrateCameraByCode(cameraId,"C1"); - //等待2s再拍照 - try { - Thread.sleep(2000l); - } catch (InterruptedException e) { - e.printStackTrace(); - } - String path = PathUtil.createFileNameByRowColumn("jpg",cameraId,row,column, goodsLocation); Order oldOrder = orderMapper.getOneByOrderNum(taskId); Order order = new Order(); order.setStreetId(street.getId()); order.setOrderNum(taskId); order.setLeftRight1(leftRight); order.setInOut1(inout); - order.setIntoStockPic(path); order.setIntoStockTime(LocalDateTime.now()); order.setRow1(row); order.setColumn1(column); @@ -660,8 +650,23 @@ public class PlcService { // orderMapper.insert(order); // } orderMapper.insert(order); - cameraCapture(cameraId,false,0l,path); - return configProperties.getIP()+":9007/api/pic/"+path; + return ""; + } + + + /** + * 相机转动,拍照,并返回两张照片地址 + * 顶部拍照 C1 + * @param SRMNumber + * @return + */ + public String IntoStockSave(String SRMNumber,String taskId,String goodsLocation,String picName){ + + Order oldOrder = orderMapper.getOneByOrderNum(taskId); + oldOrder.setIntoStockPic(picName); + orderMapper.updateById(oldOrder); + String[] pics = picName.split(","); + return configProperties.getIP()+":9007/api/pic/"+pics[0]+ configProperties.getIP()+":9007/api/pic/"+pics[1]; } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java b/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java index 4c990ae..c219040 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/Decoder.java @@ -238,6 +238,18 @@ public class Decoder extends DelimiterBasedFrameDecoder { } in.release(); } + else if(body.startsWith("IS")){ + //这边入库顶部拍照要换成用客户端顶部的两个相机拍照,上位机发送的IS01入库拍照指令后给客户端发送顶部拍照指令,客户端拍到两张照片后会发送拍照信息给web端,web端再发给上位机。 + log.info("入库顶部拍照"); + //保存order标表 + PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(body); + String picPath = plcService.IntoStockSave(ptOrderContent.getSRMNUmber(), ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation(),ptOrderContent.getPics()); + + //返回普天 + PTData resData = PTData.IntoStock02(ptOrderContent.getSRMNUmber(), ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation(),picPath); + PuTianNettyClient.write(resData); + in.release(); + } else if(body.startsWith("DC")){ //客户端断开连接 String [] strings = body.split("&"); @@ -247,6 +259,7 @@ public class Decoder extends DelimiterBasedFrameDecoder { } in.release(); } + // else if (body.contains("EMPTY_CLIENT")){ // ClientChanel.connect(EMPTY_CLIENT_NAME, ctx.channel()); // tcpLogger.info("client:{} connect", EMPTY_CLIENT_NAME); diff --git a/web/src/main/java/com/zhehekeji/web/service/putian/PTData.java b/web/src/main/java/com/zhehekeji/web/service/putian/PTData.java index 45c9c17..aec3118 100644 --- a/web/src/main/java/com/zhehekeji/web/service/putian/PTData.java +++ b/web/src/main/java/com/zhehekeji/web/service/putian/PTData.java @@ -64,6 +64,8 @@ public class PTData { public static String Into_Stock_03 = "IS03"; public static String Into_Stock_04 = "IS04"; + public static String Into_Stock = "IS"; + private String FlowControl; private String Type; diff --git a/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java b/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java index 696d847..ddbe251 100644 --- a/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/putian/PTDecoder.java @@ -143,14 +143,17 @@ public class PTDecoder extends LineBasedFrameDecoder { // String msg = tmTransmission.toSC02String(); // ClientChanel.write(msg,ptCheckContent.getSRMNUmber()); }else if(ptData.getType().equals(PTData.Into_Stock_01)){ + + //这边入库顶部拍照要换成用客户端顶部的两个相机拍照,上位机发送的IS01入库拍照指令后给客户端发送顶部拍照指令,客户端拍到两张照片后会发送拍照信息给web端,web端再发给上位机。 log.info("入库顶部拍照"); PTData ptDataSend = new PTData(ptData.getContent(), PTData.FLOW_A, PTData.Into_Stock_01); //保存order标表 PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(ptData.getContent()); String picPath = plcService.IntoStock(ptOrderContent.getSRMNUmber(), ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation()); + //返回普天 PTData resData = PTData.IntoStock02(ptOrderContent.getSRMNUmber(), ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation(),picPath); - PuTianNettyClient.write(resData); + //PuTianNettyClient.write(resData); }else if(ptData.getType().equals(PTData.Into_Stock_02)){ log.info("入库完成拍照"); PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(ptData.getContent()); diff --git a/web/src/main/java/com/zhehekeji/web/service/putian/PTOrderContent.java b/web/src/main/java/com/zhehekeji/web/service/putian/PTOrderContent.java index cea9cec..cce42d6 100644 --- a/web/src/main/java/com/zhehekeji/web/service/putian/PTOrderContent.java +++ b/web/src/main/java/com/zhehekeji/web/service/putian/PTOrderContent.java @@ -29,4 +29,20 @@ public class PTOrderContent { } + /** + * 货位入库顶部拍照(IS01) + * 货位入库完成 拍照、扫码触发指令(IS03) + * @param data + * @return + */ + public static PTOrderContent OrderContentIS01And03Service(String data){ + PTOrderContent ptContent = new PTOrderContent(); + String [] strings = data.split("&"); + ptContent.setSRMNUmber(strings[1]); + ptContent.setTaskNo(strings[2]); + ptContent.setGoodsLocation(strings[3]); + ptContent.setPics(strings[4]); + return ptContent; + } + }