From ae5b180b65a8d6274a7e9e58c53909a78ce981c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Tue, 30 Jan 2024 10:28:31 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=98=9F=E5=88=97=E4=BD=BF=E7=94=A8=202.?= =?UTF-8?q?=E7=82=B9=E4=BD=8D=E6=96=87=E4=BB=B6=E8=8E=B7=E5=8F=96=203.?= =?UTF-8?q?=E8=A1=8C=E9=AB=98=E8=8E=B7=E5=8F=96=204.=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zhehekeji/web/entity/Stock.java | 1 + .../com/zhehekeji/web/service/PlcService.java | 11 ++++++---- .../zhehekeji/web/service/StockService.java | 21 +------------------ .../zhehekeji/web/service/client/Decoder.java | 2 ++ .../service/client/GetPhotoDelayExecutor.java | 16 +++++++------- .../web/service/client/TransmissionPojo.java | 19 +++++++++++++++-- web/src/main/resources/application-prod.yml | 2 +- 7 files changed, 38 insertions(+), 34 deletions(-) diff --git a/web/src/main/java/com/zhehekeji/web/entity/Stock.java b/web/src/main/java/com/zhehekeji/web/entity/Stock.java index 263617a..cb0c7a6 100644 --- a/web/src/main/java/com/zhehekeji/web/entity/Stock.java +++ b/web/src/main/java/com/zhehekeji/web/entity/Stock.java @@ -88,6 +88,7 @@ public class Stock { @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private LocalDateTime exportTime; + private String pcd;//点位文件路径 @TableField(exist=false) private String topPic1; 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 4586cd8..452c58a 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -662,12 +662,13 @@ public class PlcService { //取货完成进行拍照 try { + Thread.sleep(50L); if (lock.tryLock()) { //队列中没有任务,发送取图指令 - ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.GPS)); - Thread.sleep(50L); - } else { - //将取图指令放入队列等待上条取图结束,或队列超时调用 + if (GetPhotoDelayExecutor.cameraDelayTasks.size() ==0) { + ClientChanel.get(dataInfo.getSRMNumber()).writeAndFlush(transmissionPojo.toString(TransmissionType.GPS)); + } + //放置到队列中,等待取图返回后删除 GetPhotoDelayExecutor.addCameraDelayTask(street.getPlcId(), transmissionPojo.toString(TransmissionType.GPS), configProperties.getQueueSpanTime()); } } catch (InterruptedException e) { @@ -693,6 +694,8 @@ public class PlcService { stock.setCount(transmissionPojo.getCount()); stock.setCategory(transmissionPojo.getCategory()); } + + stock.setPcd("http://" + street.getPlcIp() + ":8007" + transmissionPojo.getPcd()); if (transmissionPojo.getPicsPath() != null && transmissionPojo.getPicsPath().length > 0) { String pics = Arrays.stream(transmissionPojo.getPicsPath()).map(v -> { diff --git a/web/src/main/java/com/zhehekeji/web/service/StockService.java b/web/src/main/java/com/zhehekeji/web/service/StockService.java index a6cecea..1b450aa 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StockService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StockService.java @@ -427,7 +427,7 @@ public class StockService { public Stock nextOne(Long id) { QueryWrapper stockQueryWrapper = new QueryWrapper<>(); - stockQueryWrapper.eq("status","0") + stockQueryWrapper.eq("status","0").or().eq("status","1") .ne(id != null,"id",id) .orderByDesc("export_time").last("limit 1"); Stock stock =stockMapper.selectOne(stockQueryWrapper); @@ -443,24 +443,5 @@ public class StockService { return list; } -// public void init(String shelveId, Integer row, Integer column){ -// Map map = new HashMap<>(); -// map.put("shelve_id",shelveId); -// stockMapper.deleteByMap(map); -// for(int i = 1;i<=row;i++){ -// List stocks = new ArrayList<>(column); -// for(int j = 1;j<=column;j++){ -// Stock stock = new Stock(); -// stock.setShelveId(shelveId); -// stock.setRow(i); -// stock.setColumn(j); -// stock.setStatus(0); -// stocks.add(stock); -// } -// stockMapper.batchInsert(stocks); -// } -// } - - } 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 cead4f4..5873152 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 @@ -105,6 +105,8 @@ public class Decoder extends DelimiterBasedFrameDecoder { } catch (InterruptedException e) { throw new RuntimeException(e); } + //删除队列的拍照数据 + GetPhotoDelayExecutor.remove(transmissionPojo.getStreetNumber(),transmissionPojo.toString(TransmissionType.GPS)); //发送给上位机 CameraDelayTask cameraDelayTask = GetPhotoDelayExecutor.getNext(transmissionPojo.getStreetNumber()); diff --git a/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java b/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java index b5f6ed6..fe7864d 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/GetPhotoDelayExecutor.java @@ -60,13 +60,15 @@ public class GetPhotoDelayExecutor { try { PlcService plcService = SpringContextUtil.getBean(PlcService.class); CameraDelayTask cameraDelayTask = cameraDelayTasks.take(); - TransmissionPojo transmissionPojo = new TransmissionPojo(cameraDelayTask.getCommand()); - //发送给上位机 - KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo,"E"); - ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); - ksecInfo.getData().setQuantity(transmissionPojo.getCount()); - ksecInfo.getData().setCheckRlt(0); - KsecNettyClient.write(ksecInfo); + if(cameraDelayTask != null) { + TransmissionPojo transmissionPojo = new TransmissionPojo(cameraDelayTask.getCommand()); + //发送给上位机 + KsecInfo ksecInfo = plcService.getKsecDataInfo(transmissionPojo, "E"); + ksecInfo.getData().setTypeNum(transmissionPojo.getCategory()); + ksecInfo.getData().setQuantity(transmissionPojo.getCount()); + ksecInfo.getData().setCheckRlt(0); + KsecNettyClient.write(ksecInfo); + } } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java b/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java index 50d7e11..e5b361a 100644 --- a/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java +++ b/web/src/main/java/com/zhehekeji/web/service/client/TransmissionPojo.java @@ -3,6 +3,7 @@ package com.zhehekeji.web.service.client; import com.zhehekeji.web.entity.CheckLog; import com.zhehekeji.web.entity.Street; import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; import lombok.Data; import javax.validation.constraints.NotEmpty; @@ -14,6 +15,10 @@ public class TransmissionPojo { private String[] dataArray; private String header; private String streetNumber;//巷道标识符 + + private Integer row;//行 + + private String pcd;//点位文件路径 private String taskId; private Integer checkId; private Integer direction;//左右 @@ -27,6 +32,7 @@ public class TransmissionPojo { this.checkId = checkLog.getId(); this.streetNumber = street.getPlcId(); this.taskId = checkLog.getLotnum(); + this.row = checkLog.getRow(); this.direction = checkLog.getDirection(); this.count = checkLog.getCount(); this.category = checkLog.getCategory().split("/")[0]; @@ -49,7 +55,13 @@ public class TransmissionPojo { data = data.replace(">", ""); this.dataArray = data.split("&"); this.header = dataArray[0]; - this.streetNumber = dataArray[1]; + if(dataArray[1].contains("/")) { + String[] dataArr = dataArray[1].split("/"); + this.streetNumber = dataArr[0]; + this.row = Integer.valueOf(dataArr[1]); + }else { + this.streetNumber = dataArray[1]; + } if (dataArray.length > 2) { this.checkId = Integer.valueOf(dataArray[2]); this.taskId = (dataArray[3]); @@ -65,11 +77,14 @@ public class TransmissionPojo { this.picsPath = dataArray[8].split(";"); } + if (dataArray.length > 9) { + this.pcd = dataArray[9]; + } } public static void main(String[] args) { - TransmissionPojo transmissionPojo = new TransmissionPojo("RT&6&2121&1&S001&25&1&1.jpg;2.jpg>"); + TransmissionPojo transmissionPojo = new TransmissionPojo("RTE&6/3&562493&2121&1&S001&25&1&1.jpg;2.jpg&1.pcd>"); System.out.println(transmissionPojo); } } diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index b4af03d..f3bc517 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -68,7 +68,7 @@ ksec: # 服务端IP IP: 127.0.0.1 # 服务端TCP端口 -serverPort: 3001 +serverPort: 8056 # 服务端队列时间间隔(单位:ms) queueSpanTime: 10000 # ------------ 实时视频流 全部页面的格式 行列数量