From 7839377c9221f4d63bf98065088dac4d0cb1135f Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 14 Apr 2022 15:30:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=8F=E8=A1=8C=E6=A8=A1=E5=BC=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhehekeji/common/util/PathUtil.java | 4 +- .../controller/CameraControlController.java | 13 ++++++- .../java/com/zhehekeji/web/lib/OrderInfo.java | 2 +- .../zhehekeji/web/lib/TaskDelayExecutor.java | 2 +- .../lib/hik/HikCameraControlModuleImpl.java | 2 +- .../zhehekeji/web/service/CameraService.java | 4 +- .../com/zhehekeji/web/service/PlcService.java | 9 +++-- .../zhehekeji/web/service/StreetService.java | 38 ++++++++++++++++--- .../web/service/ksec/KsecDecoder.java | 1 + web/src/main/resources/application-prod.yml | 4 +- 10 files changed, 59 insertions(+), 20 deletions(-) diff --git a/modules/common/src/main/java/com/zhehekeji/common/util/PathUtil.java b/modules/common/src/main/java/com/zhehekeji/common/util/PathUtil.java index a2aab70..cd2974d 100644 --- a/modules/common/src/main/java/com/zhehekeji/common/util/PathUtil.java +++ b/modules/common/src/main/java/com/zhehekeji/common/util/PathUtil.java @@ -26,8 +26,8 @@ public class PathUtil { public static String createFileName(String fileType,Integer cameraId) { LocalDateTime now = LocalDateTime.now(); - String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd/HH")) + "/camera"+cameraId; - return time + "/" + now.format(DateTimeFormatter.ofPattern("mmss-"))+getRandomString(10) + "."+fileType; + String time = now.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")) + "/camera"+cameraId; + return time + "/" + now.format(DateTimeFormatter.ofPattern("HHmmss-"))+getRandomString(10) + "."+fileType; } /** diff --git a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java index 9c1de0d..9ea976a 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java @@ -292,16 +292,25 @@ public class CameraControlController { @ApiOperation(value = "立即拍照") public Result pic(@PathVariable Integer id) { checkLogin(id); - String path = "D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMDDHHmmss"))+".jpeg"; + String path = "D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".jpeg"; TaskDelayExecutor.addPicDelayTask(id,path,2000L); return Result.success(); } + @PostMapping("/mp4/{id}/delay") + @ApiOperation(value = "录像") + public Result MP4delay(@PathVariable Integer id) { + checkLogin(id); + TaskDelayExecutor.addMp4DelayTask(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4",LocalDateTime.now().minusMinutes(2),LocalDateTime.now().minusSeconds(7),12000L); + //cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8)); + return Result.success(); + } + @PostMapping("/mp4/{id}") @ApiOperation(value = "录像") public Result MP4(@PathVariable Integer id) { checkLogin(id); - cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMDDHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8)); + cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8)); return Result.success(); } diff --git a/web/src/main/java/com/zhehekeji/web/lib/OrderInfo.java b/web/src/main/java/com/zhehekeji/web/lib/OrderInfo.java index b9f2967..e162ddc 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/OrderInfo.java +++ b/web/src/main/java/com/zhehekeji/web/lib/OrderInfo.java @@ -89,7 +89,7 @@ public class OrderInfo { orderId = 0L; orderNum = plcCmdInfo.getOrderNum(); code = c; - cmdCode = c + ((leftRight == 1) ? "-L":"-R") + ((separation == 1) ? "":"-out"); + cmdCode = c; } diff --git a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java index ae2dbda..3491ef7 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java +++ b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java @@ -36,7 +36,7 @@ public class TaskDelayExecutor { CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class); CameraDelayTask cameraDelayTask = queue.take(); if(cameraDelayTask != null){ - System.out.println(LocalDateTime.now()); + if(cameraDelayTask.getType() == 0){ cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); }else if(cameraDelayTask.getType() == 1){ diff --git a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java index 9447ac8..ffa1fa8 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java @@ -266,7 +266,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule { struDownloadCond.struStopTime = endTime; struDownloadCond.write(); - log.info("start download mp4 path:{} ",path); + log.info("start download mp4 path:{} ,cameraId:{}",path,cameraId); int lUserID = CameraConnMap.getConnId(cameraId).intValue(); int result = HikLoginModuleImpl.hcNetsdk.NET_DVR_GetFileByTime_V40(lUserID,path.getBytes(StandardCharsets.UTF_8),struDownloadCond); diff --git a/web/src/main/java/com/zhehekeji/web/service/CameraService.java b/web/src/main/java/com/zhehekeji/web/service/CameraService.java index b75cbcf..3ebebaf 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -187,8 +187,8 @@ public class CameraService { CameraIO cameraIO = null; int ptzId = 0; if (IOId == null || IOId == 0) { - //中威从1开始 海康从300开始 - ptzId = camera.getPtzId() == null ? (configProperties.getCameraConfig().getCameraType() == ConfigProperties.JOYWARE_CAMERA?0:300) : camera.getPtzId(); + + ptzId = camera.getPtzId() == null ? 1 : camera.getPtzId(); ptzId = ptzId + 1; //新增 cameraIO = new CameraIO(); 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 6050f15..f82b176 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -146,11 +146,11 @@ public class PlcService { update.setColumn2(plcCmdInfo.getColumn2()); update.setRow2(plcCmdInfo.getRow2()); if (street.getCamera1Id() != null) { - String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endTime.plusSeconds(5)); + String path = cameraVideo(street.getCamera1Id(),order.getStartTime(),endTime.plusSeconds(3)); update.setVideoPath1(path); } if (street.getCamera2Id() != null) { - String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endTime.plusSeconds(5)); + String path = cameraVideo(street.getCamera2Id(),order.getStartTime(),endTime.plusSeconds(3)); update.setVideoPath2(path); } orderMapper.updateById(update); @@ -174,7 +174,7 @@ public class PlcService { public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) { String path = PathUtil.createFileName("mp4",cameraId); String realPath = configProperties.getSavePath().getMp4Path() + path; - TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,7000L); + TaskDelayExecutor.addMp4DelayTask(cameraId,realPath,startTime,endTime,12000L); //cameraControlModule.downloadMp4(cameraId,realPath,startTime,endTime); return path; } @@ -233,6 +233,9 @@ public class PlcService { public void gyrateCamera(PlcCmdInfo plcCmdInfo,String code){ Street street = streetService.getStreetByPlcId(plcCmdInfo.getPlcId()); + if(street == null){ + return; + } if(street.getCamera1Id() != null){ gyrateCameraByCode(street.getCamera1Id(),code); } diff --git a/web/src/main/java/com/zhehekeji/web/service/StreetService.java b/web/src/main/java/com/zhehekeji/web/service/StreetService.java index 54d43b5..6c69ba8 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StreetService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StreetService.java @@ -13,6 +13,7 @@ import com.zhehekeji.web.pojo.street.StreetSearch; import com.zhehekeji.web.pojo.street.StreetType; import com.zhehekeji.web.pojo.street.StreetVO; import com.zhehekeji.web.service.robotic.NettyClient; +import jdk.internal.org.objectweb.asm.Handle; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.cache.annotation.CacheEvict; @@ -27,7 +28,9 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service @Slf4j @@ -87,7 +90,7 @@ public class StreetService { } }); thread.start(); - if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null){ + if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null && streetVO.getLightSourcePort() != 0){ LightSource lightSource = new LightSource(); lightSource.setStreetId(street.getId()); lightSource.setIp(streetVO.getLightSourceIp()); @@ -139,6 +142,9 @@ public class StreetService { } delByPlcId(street.getPlcId()); streetMapper.deleteById(id); + Map map = new HashMap<>(); + map.put("street_id",id); + lightSourceMapper.deleteByMap(map); StreetConn.del(id); } @@ -198,17 +204,37 @@ public class StreetService { } List list = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",street.getId())); if(list.size() == 0){ - LightSource lightSource = new LightSource(); - lightSource.setPort(streetVO.getLightSourcePort()); - lightSource.setIp(streetVO.getLightSourceIp()); - lightSource.setStreetId(street.getId()); - lightSourceMapper.insert(lightSource); + if(!StringUtils.isEmpty(streetVO.getLightSourceIp()) && streetVO.getLightSourcePort() != null && streetVO.getLightSourcePort() != 0){ + LightSource lightSource = new LightSource(); + lightSource.setStreetId(street.getId()); + lightSource.setIp(streetVO.getLightSourceIp()); + lightSource.setPort(streetVO.getLightSourcePort()); + lightSourceMapper.insert(lightSource); + } }else { LightSource lightSource = new LightSource(); lightSource.setPort(streetVO.getLightSourcePort()); lightSource.setIp(streetVO.getLightSourceIp()); lightSourceMapper.update(lightSource,new UpdateWrapper().eq("street_id",street.getId())); } + Thread thread2 = new Thread(new Runnable() { + @Override + public void run() { + if (StreetType.SINGLE.getType().equals(street.getLeftType())) { + stockService.init(street.getLeftShelveId(),street.getLeftRow(),street.getLeftColumn()); + }else if(StreetType.DOUBLE.getType().equals(street.getLeftType())){ + stockService.init(street.getLeftInsideShelveId(),street.getLeftRow(),street.getLeftColumn()); + stockService.init(street.getLeftOutsideShelveId(),street.getLeftRow(),street.getLeftColumn()); + } + if (StreetType.SINGLE.getType().equals(street.getRightType())) { + stockService.init(street.getRightShelveId(),street.getRightRow(),street.getRightColumn()); + }else if (StreetType.DOUBLE.getType().equals(street.getRightType())) { + stockService.init(street.getRightInsideShelveId(),street.getRightRow(),street.getRightColumn()); + stockService.init(street.getRightOutsideShelveId(),street.getRightRow(),street.getRightColumn()); + } + } + }); + thread2.start(); } diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index 719fe33..f0f7258 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -58,6 +58,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { tcpLogger.info("info:{}",body); //任务 if (Cmd.B1.name().equals(cmdName)) { + //任务开始 旋转到原点位 plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name()); plcService.orderStart(plcCmdInfo); } else if (Cmd.B2.name().equals(cmdName)) { diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml index c6012db..66e8748 100644 --- a/web/src/main/resources/application-prod.yml +++ b/web/src/main/resources/application-prod.yml @@ -27,7 +27,7 @@ userUrl: http://115.236.65.98:11001 # ----默认摄像头的连接信息 cameraConfig: # ------------球機選擇--- 0:中威 1:海康 - cameraType: 0 + cameraType: 1 cameraPassword: a1234567 cameraUser: admin cameraPort: 37777 @@ -38,7 +38,7 @@ cameraConfig: # -----图片 mp4下载地址 savePath: mediaPath: d:\\data\media\ - mp4Path: d:\\data\mp4\ + mp4Path: d:\data\mp4\ # ------------服务端类型 0:TCP(罗伯泰克) 1:KSEC(JSON)(昆船) serverMode: 1 ksec: