这边入库顶部拍照要换成用客户端顶部的两个相机拍照,上位机发送的IS01入库拍照指令后给客户端发送顶部拍照指令,客户端拍到两张照片后会发送拍照信息给web端,web端再发给上位机。

nanjing-yancao-wuliuzhongxin-qsl
LAPTOP-S9HJSOEB\昊天 3 years ago
parent f94a90fd0a
commit 6a9a67fb65

@ -123,18 +123,18 @@ public class ClientTestController {
return Result.success();
}
@ApiOperation("模拟普天 货物入库,顶部拍照 【货位入库】")
@GetMapping("/intoStock/picOver")
public Result<String> 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<String> 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")

@ -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];
}

@ -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);

@ -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;

@ -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());

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

Loading…
Cancel
Save