diff --git a/web/src/main/java/com/zhehekeji/web/entity/Order.java b/web/src/main/java/com/zhehekeji/web/entity/Order.java index 04320bf..e9100bf 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Order.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Order.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; @Data @TableName("`order`") diff --git a/web/src/main/java/com/zhehekeji/web/pojo/OrderVO.java b/web/src/main/java/com/zhehekeji/web/pojo/OrderVO.java index 5d5985f..8c64315 100644 --- a/web/src/main/java/com/zhehekeji/web/pojo/OrderVO.java +++ b/web/src/main/java/com/zhehekeji/web/pojo/OrderVO.java @@ -1,5 +1,6 @@ package com.zhehekeji.web.pojo; +import com.baomidou.mybatisplus.annotation.TableField; import com.zhehekeji.web.entity.Order; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -21,6 +22,9 @@ public class OrderVO extends Order { @ApiModelProperty("时长") private String timeLength; + private String [] intoStockPics; + + private String [] pics; @ApiModelProperty("当视频为海康球机时") diff --git a/web/src/main/java/com/zhehekeji/web/service/OrderService.java b/web/src/main/java/com/zhehekeji/web/service/OrderService.java index 4a289ea..a17c78e 100644 --- a/web/src/main/java/com/zhehekeji/web/service/OrderService.java +++ b/web/src/main/java/com/zhehekeji/web/service/OrderService.java @@ -66,6 +66,9 @@ public class OrderService { // orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath2()); // } orderVO.setGoodsLocation(location(orderVO,streetMap.get(orderVO.getStreetId()))); + if(orderVO.getIntoStockPic() != null ) { + orderVO.setIntoStockPics(orderVO.getIntoStockPic().split(";")); + } }); return new PageInfo<>(orders); } 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 9a6b021..bb73b4e 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -665,8 +665,8 @@ public class PlcService { 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]; + 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 c219040..4ed1083 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 @@ -137,20 +137,36 @@ public class Decoder extends DelimiterBasedFrameDecoder { ClientChanel.write(scTransmissionStr,ptCheckContent.getSRMNUmber()); } else if (ptData.getType().equals(PTData.Into_Stock_01)){ - log.info("入库顶部拍照"); + + //这边入库顶部拍照要换成用客户端顶部的两个相机拍照,上位机发送的IS01入库拍照指令后给客户端发送顶部拍照指令,客户端拍到两张照片后会发送拍照信息给web端,web端再发给上位机。 + log.info("普天入库顶部拍照"); PTData ptDataSend = new PTData(ptData.getContent(), PTData.FLOW_A, PTData.Into_Stock_01); - PuTianNettyClient.write(ptDataSend); //保存order标表 - PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(ptData.getContent()); - String srmNumber = ptOrderContent.getSRMNUmber(); -// if (srmNumber.length() < 3){ -// Integer number = Integer.valueOf(srmNumber); -// srmNumber = String.format("%03d", number); -// } - String picPath = plcService.IntoStock(srmNumber, ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation()); + 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); + + tcpLogger.info("普天入库顶部拍照发送给客户端:"+"IS&" +ptOrderContent.getSRMNUmber()+"&"+ ptOrderContent.getTaskNo()+"&"+ ptOrderContent.getGoodsLocation(), ptOrderContent.getSRMNUmber()); + ClientChanel.write("IS&" +ptOrderContent.getSRMNUmber()+"&"+ ptOrderContent.getTaskNo()+"&"+ ptOrderContent.getGoodsLocation(), ptOrderContent.getSRMNUmber()); + //PuTianNettyClient.write(resData); + +// +// log.info("入库顶部拍照"); +// PTData ptDataSend = new PTData(ptData.getContent(), PTData.FLOW_A, PTData.Into_Stock_01); +// PuTianNettyClient.write(ptDataSend); +// //保存order标表 +// PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(ptData.getContent()); +// String srmNumber = ptOrderContent.getSRMNUmber(); +//// if (srmNumber.length() < 3){ +//// Integer number = Integer.valueOf(srmNumber); +//// srmNumber = String.format("%03d", number); +//// } +// String picPath = plcService.IntoStock(srmNumber, ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation()); +// //返回普天 +// PTData resData = PTData.IntoStock02(ptOrderContent.getSRMNUmber(), ptOrderContent.getTaskNo(), ptOrderContent.getGoodsLocation(),picPath); +// PuTianNettyClient.write(resData); } else if (ptData.getType().equals(PTData.Into_Stock_03)){ log.info("入库侧面拍照"); @@ -240,14 +256,15 @@ public class Decoder extends DelimiterBasedFrameDecoder { } else if(body.startsWith("IS")){ //这边入库顶部拍照要换成用客户端顶部的两个相机拍照,上位机发送的IS01入库拍照指令后给客户端发送顶部拍照指令,客户端拍到两张照片后会发送拍照信息给web端,web端再发给上位机。 - log.info("入库顶部拍照"); + log.info("客户端入库顶部拍照"); //保存order标表 - PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(body); + PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(body.substring(3)); 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); + tcpLogger.info("客户端返回信息:"+resData); + in.release(); } else if(body.startsWith("DC")){ 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 ddbe251..b574783 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 @@ -145,14 +145,17 @@ public class PTDecoder extends LineBasedFrameDecoder { }else if(ptData.getType().equals(PTData.Into_Stock_01)){ //这边入库顶部拍照要换成用客户端顶部的两个相机拍照,上位机发送的IS01入库拍照指令后给客户端发送顶部拍照指令,客户端拍到两张照片后会发送拍照信息给web端,web端再发给上位机。 - log.info("入库顶部拍照"); + log.info("普天入库顶部拍照"); PTData ptDataSend = new PTData(ptData.getContent(), PTData.FLOW_A, PTData.Into_Stock_01); //保存order标表 - PTOrderContent ptOrderContent = PTOrderContent.OrderContentIS01And03(ptData.getContent()); + 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); + + tcpLogger.info("普天入库顶部拍照发送给客户端:"+"IS&" +ptOrderContent.getSRMNUmber()+"&"+ ptOrderContent.getTaskNo()+"&"+ ptOrderContent.getGoodsLocation(), ptOrderContent.getSRMNUmber()); + ClientChanel.write("IS&" +ptOrderContent.getSRMNUmber()+"&"+ ptOrderContent.getTaskNo()+"&"+ ptOrderContent.getGoodsLocation(), ptOrderContent.getSRMNUmber()); //PuTianNettyClient.write(resData); }else if(ptData.getType().equals(PTData.Into_Stock_02)){ log.info("入库完成拍照"); 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 cce42d6..30d9759 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 @@ -21,13 +21,24 @@ public class PTOrderContent { */ public static PTOrderContent OrderContentIS01And03(String data){ PTOrderContent ptContent = new PTOrderContent(); - String [] strings = data.split(","); + String [] strings = data.split("&"); ptContent.setSRMNUmber(strings[0]); ptContent.setTaskNo(strings[1]); ptContent.setGoodsLocation(strings[2]); + if(strings.length >= 3){ + ptContent.setPics(strings[3]); + } return ptContent; } + public static PTOrderContent OrderContentIS01And03(String data,String split){ + PTOrderContent ptContent = new PTOrderContent(); + String [] info = data.split(","); + ptContent.setSRMNUmber(info[0]); + ptContent.setTaskNo(info[1]); + ptContent.setGoodsLocation(info[2]); + return ptContent; + } /** * 货位入库顶部拍照(IS01)