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; + } + }