保存订单

nanjing-yancao-wuliuzhongxin
yiming 3 years ago
parent 584c99aab3
commit 41710dcc44

@ -118,10 +118,9 @@ public class ClientTestController {
@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){
//todo 顶部拍照
Integer row = Integer.valueOf(goodsLocation.substring(3,7));
Integer column = Integer.valueOf(goodsLocation.substring(7));
String picPath = plcService.IntoStock(SRMNumber,"C1",row,column);
String picPath = plcService.IntoStock(SRMNumber,"C1",taskId,goodsLocation);
//返回普天
PTData ptData = PTData.IntoStock(SRMNumber,taskId,goodsLocation,picPath);
PuTianNettyClient.write(ptData);
@ -133,9 +132,8 @@ public class ClientTestController {
public Result<String> goodsOver(@ApiParam("巷道标识") @RequestParam String SRMNumber,@ApiParam("盘点批次ID") @RequestParam String taskId,
@ApiParam("货位号,如L0100010002 ,R/L表示左右,01是浅货位02深,0001是X,0002是Y") @RequestParam String goodsLocation){
//拍入库完成后的照片
Integer row = Integer.valueOf(goodsLocation.substring(3,7));
Integer column = Integer.valueOf(goodsLocation.substring(7));
String picPath = plcService.IntoStock(SRMNumber,"C2",row,column);
String picPath = plcService.IntoStockOver(SRMNumber,"C2",taskId,goodsLocation);
//向客户端发送读码指令,等待客户端返回条码
ISTransmission isTransmission = new ISTransmission(SRMNumber,taskId,goodsLocation);
//为防万一先清除code

@ -22,8 +22,8 @@ public class Order {
@ApiModelProperty("订单号")
private String orderNum;
@ApiModelProperty("0:正常 1告警")
private Integer status;
// @ApiModelProperty("0:正常 1告警")
// private Integer status;
/**
* 1 2
@ -45,25 +45,35 @@ public class Order {
*/
private Integer row1;
/**
* 1 2
*/
private Integer inOut2;
private String intoStockPic;
/**
* 1 2
*/
private Integer leftRight2;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime intoStockTime;
/**
*
*/
private Integer column2;
private String intoStockOverPic;
/**
*
*/
private Integer row2;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime intoStockOverTime;
// /**
// * 后两个命令 库内?库口? 1库内 2库口
// */
// private Integer inOut2;
//
// /**
// * 后两个命令 左?右? 1左 2
// */
// private Integer leftRight2;
//
// /**
// * 后两个 列号
// */
// private Integer column2;
//
// /**
// * 后两个 行号
// */
// private Integer row2;
// private String shelveId;
//
@ -76,16 +86,16 @@ public class Order {
// @ApiModelProperty("仓位号")
// private String positionNum;
@ApiModelProperty("视频图片地址")
@TableField("`video_path_1`")
private String videoPath1;
@ApiModelProperty("视频图片地址")
@TableField("`video_path_2`")
private String videoPath2;
@ApiModelProperty("图片地址,分隔")
private String picPaths;
// @ApiModelProperty("视频图片地址")
// @TableField("`video_path_1`")
// private String videoPath1;
//
// @ApiModelProperty("视频图片地址")
// @TableField("`video_path_2`")
// private String videoPath2;
//
// @ApiModelProperty("图片地址,分隔")
// private String picPaths;
// @ApiModelProperty("入库照片")
// private String putPath;
@ -96,9 +106,9 @@ public class Order {
// @ApiModelProperty("货位照片")
// private String goodsPath;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
// @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
// private LocalDateTime startTime;
//
// @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
// private LocalDateTime endTime;
}

@ -47,24 +47,24 @@ public class OrderService {
}
//计算订单的时间
if (orderVO.getEndTime() != null && orderVO.getStartTime() != null) {
Duration duration = Duration.between(orderVO.getStartTime(), orderVO.getEndTime());
Long seconds = duration.getSeconds();
int minutes = seconds.intValue() / 60;
int remainingSeconds = seconds.intValue() % 60;
String timeLength = String.format("%02d:%02d", minutes,remainingSeconds);
orderVO.setTimeLength(timeLength);
}
if (!StringUtils.isEmpty(orderVO.getPicPaths())) {
String[] pics = orderVO.getPicPaths().split(",");
orderVO.setPics(pics);
}
if(configProperties.getCameraConfig().getCameraType() == 1 && !StringUtils.isEmpty(orderVO.getVideoPath1())){
orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath1());
}
if(configProperties.getCameraConfig().getCameraType() == 1 && !StringUtils.isEmpty(orderVO.getVideoPath2())){
orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath2());
}
// if (orderVO.getEndTime() != null && orderVO.getStartTime() != null) {
// Duration duration = Duration.between(orderVO.getStartTime(), orderVO.getEndTime());
// Long seconds = duration.getSeconds();
// int minutes = seconds.intValue() / 60;
// int remainingSeconds = seconds.intValue() % 60;
// String timeLength = String.format("%02d:%02d", minutes,remainingSeconds);
// orderVO.setTimeLength(timeLength);
// }
// if (!StringUtils.isEmpty(orderVO.getPicPaths())) {
// String[] pics = orderVO.getPicPaths().split(",");
// orderVO.setPics(pics);
// }
// if(configProperties.getCameraConfig().getCameraType() == 1 && !StringUtils.isEmpty(orderVO.getVideoPath1())){
// orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath1());
// }
// if(configProperties.getCameraConfig().getCameraType() == 1 && !StringUtils.isEmpty(orderVO.getVideoPath2())){
// orderVO.setCmd1(" VSPlayer "+ orderVO.getVideoPath2());
// }
orderVO.setGoodsLocation(location(orderVO,streetMap.get(orderVO.getStreetId())));
});
return new PageInfo<>(orders);
@ -73,61 +73,19 @@ public class OrderService {
public Long add(OrderSaveReq saveReq) {
Order order = new Order();
String orderNum = saveReq.getOrderNum();
order.setStatus(0);
//order.setStatus(0);
order.setOrderNum(orderNum);
orderMapper.insert(order);
return order.getId();
}
public String location(OrderVO orderVO,Street street){
//from to 模型
if (orderVO.getInOut1() != null && orderVO.getInOut2() != null) {
//左右货架 货位号
//库内转库内 看 to
Integer column = 0;
Integer row = 0;
//左货架 右货架
Integer leftRight = 0;
if (orderVO.getInOut1() == 1 && orderVO.getInOut2() == 1) {
// 库内转库内
leftRight = orderVO.getLeftRight2();
column = orderVO.getColumn2();
row = orderVO.getRow2();
} else if (orderVO.getInOut1() == 1) {
// 库内到库外
leftRight = orderVO.getLeftRight1();
//看from
orderVO.setStreetType(orderVO.getLeftRight1());
column = orderVO.getColumn1();
row = orderVO.getRow1();
} else if (orderVO.getInOut2() == 1) {
//库外到库内
leftRight = orderVO.getLeftRight2();
//看to
orderVO.setStreetType(orderVO.getLeftRight2());
column = orderVO.getColumn2();
row = orderVO.getRow2();
}else {
return "库外转库外";
}
if (leftRight > 0) {
//PLC 1是左 2是由
if(street != null){
if(leftRight == 1){
orderVO.setStreetType(street.getLeftType());
}else {
orderVO.setStreetType(street.getRightType());
}
}
String leftRightS = leftRight == 1 ? "左" : "右";
//里外 现在无法判断 这个项目全是 里
String location = "%s-里-%s列%s行";
return String.format(location, leftRightS, column, row);
}
}
return null;
String leftRightS = orderVO.getLeftRight1() == 1 ? "左" : "右";
String side = orderVO.getInOut1() == 1?"浅":"深";
//里外 现在无法判断 这个项目全是 里
String location = "%s-%s-%s层%s列";
return String.format(location, leftRightS, side, orderVO.getRow1(),orderVO.getColumn1());
}

@ -90,35 +90,7 @@ public class PlcService {
* @param plcCmdInfo
*/
public void orderStart(PlcCmdInfo plcCmdInfo) {
Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street != null) {
if(plcCmdInfo.getLeftRight1() == 1){
if(plcCmdInfo.getRow1()>street.getLeftRow() && plcCmdInfo.getColumn1() > street.getLeftColumn()){
log.error("row:{},column:{},error in streetId:{} left",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1(),street.getId());
return;
}
}else {
if(plcCmdInfo.getRow1()>street.getRightRow() && plcCmdInfo.getColumn1() > street.getRightColumn()){
log.error("row:{},column:{},error in streetId:{} right",plcCmdInfo.getRow1(),plcCmdInfo.getColumn1(),street.getId());
return;
}
}
Order order = new Order();
order.setOrderNum(plcCmdInfo.getOrderNum());
order.setStatus(0);
order.setStartTime(LocalDateTime.now());
order.setStreetId(street.getId());
order.setInOut1(plcCmdInfo.getSide1());
order.setLeftRight1(plcCmdInfo.getLeftRight1());
order.setColumn1(plcCmdInfo.getColumn1());
order.setRow1(plcCmdInfo.getRow1());
//todo 昆船的项目 ,取货 放货是独立的
//取货是是不知道放货的位置的所以订单开始的时候只写1位置
//订单结束写2位置
orderMapper.insert(order);
OrderRealtime.startOrder(street.getId(), plcCmdInfo.getOrderNum());
}
}
/**
@ -129,54 +101,11 @@ public class PlcService {
* @param plcCmdInfo
*/
public void orderStop(PlcCmdInfo plcCmdInfo) {
LocalDateTime endTime = LocalDateTime.now();
Street street = streetMapper.getStreetByPlcId(plcCmdInfo.getPlcId());
if (street == null) {
return;
}
Order order = orderMapper.getOneByOrderNum(plcCmdInfo.getOrderNum());
if (order == null) {
log.error("订单结束信号订单不存在orderNum:{}", plcCmdInfo.getOrderNum());
return;
}
OrderRealtime.stopOrder(street.getId());
Order update = new Order();
update.setId(order.getId());
update.setEndTime(endTime);
update.setInOut2(plcCmdInfo.getSide2());
update.setLeftRight2(plcCmdInfo.getLeftRight2());
update.setColumn2(plcCmdInfo.getColumn2());
update.setRow2(plcCmdInfo.getRow2());
LocalDateTime endDownLoadTime = endTime.plusSeconds(5);
Duration duration = Duration.between(order.getStartTime(),endDownLoadTime);
if(duration.toMinutes() > 50){
endDownLoadTime = order.getStartTime().plusMinutes(50);
}
if (street.getCamera1Id() != null) {
String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endDownLoadTime);
update.setVideoPath1(path);
}
if (street.getCamera2Id() != null) {
String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endDownLoadTime);
update.setVideoPath2(path);
}
orderMapper.updateById(update);
}
public void orderStopByWarn(String orderNum) {
Order order = orderMapper.getOneByOrderNum(orderNum);
if (order == null) {
return;
}
Order upd = new Order();
upd.setId(order.getId());
upd.setEndTime(LocalDateTime.now());
//warn flag
//default 0 : normal
upd.setStatus(1);
orderMapper.updateById(upd);
}
public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) {
@ -446,57 +375,7 @@ public class PlcService {
* @param path
*/
public void captureUpdateOrderAndStock(OrderInfo orderInfo, String path) {
synchronized (orderInfo.getOrderNum().intern()) {
Order order = orderMapper.getOneByOrderNum(orderInfo.getOrderNum());
if (order != null) {
//update picPath in stock if code is C2/C4
if(orderInfo.getCode().startsWith("C2") || orderInfo.getCode().startsWith("C4")){
StockLog stockLog = new StockLog();
stockLog.setStreetId(orderInfo.getStreetId());
stockLog.setDirection(orderInfo.getLeftRight());
stockLog.setSide(orderInfo.getSeparation());
stockLog.setRow(orderInfo.getRow());
stockLog.setColumn(orderInfo.getColumn());
stockLog.setPic(path);
String type = orderInfo.getCode().substring(1,2);
stockLog.setType(Integer.valueOf(type));
stockLog.setOrderNum(orderInfo.getOrderNum());
stockLog.setCreateTime(LocalDateTime.now());
stockLogMapper.insert(stockLog);
// Stock stock = stockMapper.getByShelveIdAndRowColumn(orderInfo.getShelveId(), orderInfo.getRow(), orderInfo.getColumn());
// if (stock == null) {
// stock = new Stock();
// stock.setShelveId(orderInfo.getShelveId());
// stock.setColumn(orderInfo.getColumn());
// stock.setRow(orderInfo.getRow());
// //stock.setStatus(0);
// //if the stock is null,take over path only
// stock.setOveroperationPic(path);
// stock.setOrderNum(order.getOrderNum());
// stockMapper.insert(stock);
// } else {
// //take the previous picture path to the lasted over picture path
// //take the lasted picture path to the new one
// stock.setPreoperationPic(stock.getOveroperationPic());
// stock.setOveroperationPic(path);
// stock.setOrderNum(order.getOrderNum());
// //stock.setStatus(0);
// stockMapper.updateById(stock);
// }
}
String pics = order.getPicPaths();
if (StringUtils.isEmpty(pics)) {
order.setPicPaths(path);
} else {
order.setPicPaths(pics + "," + path);
}
Order update = new Order();
update.setId(order.getId());
update.setPicPaths(order.getPicPaths());
log.debug(" update order set pics:{},orderNum:{}", update.getPicPaths(), orderInfo.getOrderNum());
orderMapper.updateById(update);
}
}
}
public Integer getCameraByPlcCmd(PlcCmdInfo plcCmdInfo,Integer leftRight){
@ -626,7 +505,7 @@ public class PlcService {
* @param PTZCode
* @return
*/
public String IntoStock(String SRMNumber,String PTZCode,Integer row,Integer column){
public String IntoStock(String SRMNumber,String PTZCode,String taskId,String goodsLocation){
Street street = streetService.getStreetByPlcId(SRMNumber);
//南京烟草物流只有一个相机
Integer cameraId = street.getCamera1Id() == null ? street.getCamera2Id():street.getCamera1Id();
@ -638,7 +517,54 @@ public class PlcService {
} catch (InterruptedException e) {
e.printStackTrace();
}
Integer row = Integer.valueOf(goodsLocation.substring(3,7));
Integer column = Integer.valueOf(goodsLocation.substring(7));
Integer leftRight = goodsLocation.substring(0,1).equals("L")?1:2;
Integer inout = Integer.valueOf(goodsLocation.substring(1,3));
String path = PathUtil.createFileNameByRowColumn("jpg",cameraId,row,column);
Order order = new Order();
order.setStreetId(street.getId());
order.setOrderNum(taskId);
order.setLeftRight1(leftRight);
order.setInOut1(inout);
order.setIntoStockPic(path);
order.setIntoStockTime(LocalDateTime.now());
orderMapper.insert(order);
cameraCapture(cameraId,false,0l,path);
return configProperties.getIP()+":9007/"+path;
}
/**
*
* @param SRMNumber
* @param PTZCode
* @return
*/
public String IntoStockOver(String SRMNumber,String PTZCode,String taskId,String goodsLocation){
Street street = streetService.getStreetByPlcId(SRMNumber);
//南京烟草物流只有一个相机
Integer cameraId = street.getCamera1Id() == null ? street.getCamera2Id():street.getCamera1Id();
//转动拍照
gyrateCameraByCode(cameraId,PTZCode);
//等待2s再拍照
try {
Thread.sleep(2000l);
} catch (InterruptedException e) {
e.printStackTrace();
}
Integer row = Integer.valueOf(goodsLocation.substring(3,7));
Integer column = Integer.valueOf(goodsLocation.substring(7));
Integer leftRight = goodsLocation.substring(0,1).equals("L")?1:2;
Integer inout = Integer.valueOf(goodsLocation.substring(1,3));
String path = PathUtil.createFileNameByRowColumn("jpg",cameraId,row,column);
Order order = orderMapper.getOneByOrderNum(taskId);
if(order != null){
Order upd = new Order();
upd.setId(order.getId());
upd.setIntoStockOverPic(path);
upd.setIntoStockOverTime(LocalDateTime.now());
orderMapper.updateById(upd);
}
cameraCapture(cameraId,false,0l,path);
return configProperties.getIP()+":9007/"+path;
}

Loading…
Cancel
Save