修改,增加小模版,增加和视觉衔接的代码

bozhou-古井贡酒
LAPTOP-S9HJSOEB\昊天 5 months ago
parent 5ed8998980
commit 01278daf71

@ -9,7 +9,7 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-boot.version>2.1.9.RELEASE</spring-boot.version> <spring-boot.version>2.3.1.RELEASE</spring-boot.version>
<fastjson.version>1.2.47</fastjson.version> <fastjson.version>1.2.47</fastjson.version>
<qrcode.version>2.1</qrcode.version> <qrcode.version>2.1</qrcode.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -42,6 +42,8 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.24</version>
<!-- <scope>provided</scope>-->
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
@ -98,16 +100,11 @@
<artifactId>core</artifactId> <artifactId>core</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>base-assembly</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<!--指定编译的jdk版本-->
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<configuration> <configuration>
@ -117,14 +114,4 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<repositories> </project>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://47.99.98.250:28888/repository/maven-public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>

@ -1,12 +1,8 @@
package com.zhehekeji.common.properities; package com.zhehekeji.common.properities;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("zhehe.common") @ConfigurationProperties("zhehe.common")
@Getter
@Setter
public class Properity { public class Properity {
private String version; private String version;

@ -1,10 +1,8 @@
package com.zhehekeji.common.properities; package com.zhehekeji.common.properities;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("zhehe.common.redis") @ConfigurationProperties("zhehe.common.redis")
@Data
public class RedisProperity { public class RedisProperity {
/** /**

@ -1,10 +1,8 @@
package com.zhehekeji.common.util; package com.zhehekeji.common.util;
import lombok.extern.slf4j.Slf4j;
import java.io.*; import java.io.*;
@Slf4j
public class FileUtil { public class FileUtil {
public static void save(String text,String path){ public static void save(String text,String path){
@ -23,7 +21,7 @@ public class FileUtil {
FileOutputStream fileOutputStream = new FileOutputStream(file); FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(text.getBytes()); fileOutputStream.write(text.getBytes());
fileOutputStream.close(); fileOutputStream.close();
log.info("write text success :{}",text); // log.info("write text success :{}",text);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

@ -1,7 +1,6 @@
package com.zhehekeji.common.util; package com.zhehekeji.common.util;
import com.zhehekeji.core.util.Assert; import com.zhehekeji.core.util.Assert;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
@ -19,7 +18,6 @@ import java.net.URLEncoder;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
@Slf4j
public class HttpUtil { public class HttpUtil {
private static final CloseableHttpClient httpClient; private static final CloseableHttpClient httpClient;
@ -145,7 +143,7 @@ public class HttpUtil {
param.deleteCharAt(param.length() - 1); param.deleteCharAt(param.length() - 1);
} }
} catch (Exception ex) { } catch (Exception ex) {
log.error("map对象转换为URL异常{}", ex); // log.error("map对象转换为URL异常{}", ex);
Assert.isTrue(false, "map对象转换为URL异常"); Assert.isTrue(false, "map对象转换为URL异常");
} }
return param.toString(); return param.toString();

@ -1,6 +1,5 @@
package com.zhehekeji.common.util; package com.zhehekeji.common.util;
import lombok.extern.slf4j.Slf4j;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@ -10,7 +9,6 @@ import java.time.format.DateTimeFormatter;
import java.util.Random; import java.util.Random;
import java.util.UUID; import java.util.UUID;
@Slf4j
public class PathUtil { public class PathUtil {
private static String getRandomString(int length){ private static String getRandomString(int length){
@ -57,7 +55,6 @@ public class PathUtil {
try { try {
file.createNewFile(); file.createNewFile();
} catch (IOException e) { } catch (IOException e) {
log.error("创建文件出错:{}",e);
} }
} }
return file; return file;

@ -15,7 +15,7 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-boot.version>2.1.9.RELEASE</spring-boot.version> <spring-boot.version>2.3.1.RELEASE</spring-boot.version>
<jwt.version>0.7.0</jwt.version> <jwt.version>0.7.0</jwt.version>
</properties> </properties>
@ -49,6 +49,8 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.24</version>
<!-- <scope>provided</scope>-->
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>

@ -11,7 +11,6 @@ import com.zhehekeji.filter.pojo.SessionHandler;
import com.zhehekeji.filter.pojo.UserType; import com.zhehekeji.filter.pojo.UserType;
import com.zhehekeji.filter.util.CurrentUserUtil; import com.zhehekeji.filter.util.CurrentUserUtil;
import com.zhehekeji.filter.util.JwtUtil; import com.zhehekeji.filter.util.JwtUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -30,7 +29,7 @@ import java.io.IOException;
**/ **/
@Aspect @Aspect
@Component @Component
@Slf4j //@Slf4j
public class SessionAspect { public class SessionAspect {
@Value("${zhehe.filter.enable}") @Value("${zhehe.filter.enable}")

@ -1,14 +1,5 @@
package com.zhehekeji.filter.pojo; package com.zhehekeji.filter.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class CurrentUser { public class CurrentUser {
/** /**

@ -37,6 +37,8 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.24</version>
<!-- <scope>provided</scope>-->
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
</dependencies> </dependencies>

@ -24,7 +24,16 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@ -34,6 +43,8 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.24</version>
<!-- <scope>provided</scope>-->
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>

@ -50,6 +50,8 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.24</version>
<!-- <scope>provided</scope>-->
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
@ -57,6 +59,12 @@
<artifactId>common</artifactId> <artifactId>common</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency> <dependency>
<groupId>io.netty</groupId> <groupId>io.netty</groupId>
<artifactId>netty-all</artifactId> <artifactId>netty-all</artifactId>

@ -1,10 +1,10 @@
package codeDetector; package codeDetector;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@Slf4j //@Slf4j
public class BarcodeDetector{ public class BarcodeDetector{
//Unrecognized :未识别 //Unrecognized :未识别
@ -69,7 +69,7 @@ public class BarcodeDetector{
System.loadLibrary("BarcodeDetectorJNI"); System.loadLibrary("BarcodeDetectorJNI");
}catch(Exception e) }catch(Exception e)
{ {
log.error("detectBestBarCode:"+e); // log.error("detectBestBarCode:"+e);
} }
} }

@ -9,6 +9,8 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -38,4 +40,20 @@ public class ExecutorConfig {
executor.initialize(); executor.initialize();
return executor; return executor;
} }
@Bean(name = "scheduledExecutorService")
public ScheduledExecutorService scheduledExecutorService() {
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(
configProperties.getAsyncExecutorThread().getCorePoolSize(),
r -> {
Thread t = new Thread(r);
t.setDaemon(false);
t.setName("ScheduledExecutor-" + t.getId());
return t;
}
);
executor.setMaximumPoolSize(configProperties.getAsyncExecutorThread().getMaxPoolSize());
return executor;
}
} }

@ -293,6 +293,8 @@ public class CameraControlController {
cameraControlModule.ptzControlIrisDecEnd(id,0); cameraControlModule.ptzControlIrisDecEnd(id,0);
return Result.success(); return Result.success();
} }
@Resource
private TaskDelayExecutor taskDelayExecutor;
@PostMapping("/pic/{id}") @PostMapping("/pic/{id}")
@ApiOperation(value = "立即拍照") @ApiOperation(value = "立即拍照")
@ -300,7 +302,7 @@ public class CameraControlController {
checkLogin(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";
cameraControlModule.pic(id,0,path); cameraControlModule.pic(id,0,path);
TaskDelayExecutor.addPicDelayTask(id,path,0L); taskDelayExecutor.addPicDelayTask(id,path,0L);
return Result.success(path); return Result.success(path);
} }

@ -3,6 +3,7 @@ package com.zhehekeji.web.entity.yolo;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
import java.util.Set;
@Data @Data
public class Calculate { public class Calculate {
@ -12,6 +13,7 @@ public class Calculate {
int type; int type;
String savePath; String savePath;
int layers; int layers;
Set<Integer> minTypes;
List<String> fisheye; List<String> fisheye;
List<String> closeUp; List<String> closeUp;

@ -1,64 +1,158 @@
package com.zhehekeji.web.lib; package com.zhehekeji.web.lib;
import com.zhehekeji.common.util.SpringContextUtil; import com.zhehekeji.common.util.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.concurrent.DelayQueue; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
@Slf4j
@Component
public class TaskDelayExecutor { public class TaskDelayExecutor {
// 使用Spring管理的线程池ThreadPoolTaskExecutor
@Autowired
@Qualifier("scheduledExecutorService")
private ScheduledExecutorService scheduledExecutorService;
private static ExecutorService exec = Executors.newFixedThreadPool(1);
private static DelayQueue<CameraDelayTask> queue = new DelayQueue<>(); @Resource
CameraControlModule cameraControlModule;
public static void addMp4DelayTask(Integer cameraId, String path, LocalDateTime startTime, LocalDateTime endTime, Long delayTime) { // 使用ConcurrentHashMap存储任务替代DelayQueue
CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, startTime, endTime,path, 0,delayTime); private static final ConcurrentHashMap<String, ScheduledFuture<?>> scheduledTasks = new ConcurrentHashMap<>();
queue.add(cameraDelayTask);
} // 任务ID生成器
private static final AtomicLong taskIdGenerator = new AtomicLong(0);
public void addMp4DelayTask(Integer cameraId, String path, LocalDateTime startTime, LocalDateTime endTime, Long delayTime) {
String taskId = "mp4_" + cameraId + "_" + taskIdGenerator.incrementAndGet();
log.info("添加延时录像任务: taskId={}, cameraId={}, path={}, delayTime={}ms", taskId, cameraId, path, delayTime);
public static void addPicDelayTask(Integer cameraId, String path, Long delayTime) { ScheduledFuture<?> scheduledFuture = getExecutorService().schedule(() -> {
CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null,path, 1,delayTime); try {
queue.add(cameraDelayTask); log.info("开始执行延时录像任务: taskId={}, cameraId={}, path={}", taskId, cameraId, path);
cameraControlModule.downloadMp4(cameraId, path, startTime, endTime);
// 任务执行完成后从map中移除
scheduledTasks.remove(taskId);
} catch (Exception e) {
log.error("执行延时录像任务时发生异常: taskId={}, cameraId={}, path={}, error={}", taskId, cameraId, path, e.getMessage(), e);
}
}, delayTime, TimeUnit.MILLISECONDS);
scheduledTasks.put(taskId, scheduledFuture);
} }
public static void addGyrateCameraTask(Integer cameraId, Long delayTime,Integer ptzId){ public void addPicDelayTask(Integer cameraId, String path, Long delayTime) {
CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null,null, 2,delayTime); String taskId = "pic_" + cameraId + "_" + taskIdGenerator.incrementAndGet();
cameraDelayTask.setPtzId(ptzId); log.info("添加延时拍照任务: taskId={}, cameraId={}, path={}, delayTime={}ms", taskId, cameraId, path, delayTime);
queue.add(cameraDelayTask);
ScheduledFuture<?> scheduledFuture = getExecutorService().schedule(() -> {
try {
log.info("开始执行延时拍照任务: taskId={}, cameraId={}, path={}", taskId, cameraId, path);
cameraControlModule.pic(cameraId, 0, path);
// 任务执行完成后从map中移除
scheduledTasks.remove(taskId);
} catch (Exception e) {
log.error("执行延时拍照任务时发生异常: taskId={}, cameraId={}, path={}, error={}", taskId, cameraId, path, e.getMessage(), e);
}
}, delayTime, TimeUnit.MILLISECONDS);
scheduledTasks.put(taskId, scheduledFuture);
} }
public static void runMp4DownloadExecutor(){ public void addGyrateCameraTask(Integer cameraId, Long delayTime, Integer ptzId) {
exec.execute(new Consumer()); String taskId = "gyrate_" + cameraId + "_" + ptzId + "_" + taskIdGenerator.incrementAndGet();
log.info("添加转至预置点任务: taskId={}, cameraId={}, ptzId={}, delayTime={}ms", taskId, cameraId, ptzId, delayTime);
ScheduledFuture<?> scheduledFuture = getExecutorService().schedule(() -> {
try {
log.info("开始执行转至预置点任务: taskId={}, cameraId={}, ptzId={}", taskId, cameraId, ptzId);
cameraControlModule.toPtz(ptzId, cameraId);
// 任务执行完成后从map中移除
scheduledTasks.remove(taskId);
} catch (Exception e) {
log.error("执行转至预置点任务时发生异常: taskId={}, cameraId={}, ptzId={}, error={}", taskId, cameraId, ptzId, e.getMessage(), e);
}
}, delayTime, TimeUnit.MILLISECONDS);
scheduledTasks.put(taskId, scheduledFuture);
} }
private static class Consumer implements Runnable { /**
*
@Override * @param taskId ID
public void run() { * @return
while (true) { */
try { public static boolean cancelTask(String taskId) {
CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class); ScheduledFuture<?> scheduledFuture = scheduledTasks.get(taskId);
CameraDelayTask cameraDelayTask = queue.take(); if (scheduledFuture != null) {
if(cameraDelayTask != null){ boolean cancelled = scheduledFuture.cancel(false);
if (cancelled) {
if(cameraDelayTask.getType() == 0){ scheduledTasks.remove(taskId);
log.info("成功取消任务: {}", taskId);
cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); } else {
}else if(cameraDelayTask.getType() == 1){ log.warn("取消任务失败: {}", taskId);
cameraControlModule.pic(cameraDelayTask.getCameraId(),0, cameraDelayTask.getPath());
}else if(cameraDelayTask.getType() == 2){
cameraControlModule.toPtz(cameraDelayTask.getPtzId(),cameraDelayTask.getCameraId());
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
} }
return cancelled;
} }
log.warn("未找到任务: {}", taskId);
return false;
}
/**
*
* @return
*/
public static int getPendingTaskCount() {
return scheduledTasks.size();
}
/**
*
*/
public static void clearAllTasks() {
scheduledTasks.values().forEach(future -> future.cancel(false));
scheduledTasks.clear();
log.info("已清除所有延时任务");
} }
/**
* 线
* @return 线
*/
private ScheduledExecutorService getExecutorService() {
TaskDelayExecutor bean = SpringContextUtil.getBean(TaskDelayExecutor.class);
if (bean != null && bean.scheduledExecutorService != null) {
return bean.scheduledExecutorService;
}
// 备用方案:创建独立的调度线程池
log.warn("无法获取Spring管理的线程池使用备用线程池");
return new ScheduledThreadPoolExecutor(5, r -> {
Thread t = new Thread(r, "TaskDelayExecutor-Backup-" + taskIdGenerator.incrementAndGet());
t.setDaemon(false);
return t;
});
}
/**
*
*/
@Scheduled(fixedRate = 60000) // 每分钟执行一次
public void logTaskStatistics() {
log.info("当前等待执行的延时任务数量: {}", scheduledTasks.size());
}
} }

@ -92,7 +92,7 @@ public class HikLoginModuleImpl implements CameraControlLoginModule {
m_strLoginInfo.wPort = (short) m_nPort; m_strLoginInfo.wPort = (short) m_nPort;
m_strLoginInfo.bUseAsynLogin = true; //是否异步登录0- 否1- 是 m_strLoginInfo.bUseAsynLogin = false; //是否异步登录0- 否1- 是
m_strLoginInfo.write(); m_strLoginInfo.write();
HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo30 = new HCNetSDK.NET_DVR_DEVICEINFO_V30();//设备信息 HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo30 = new HCNetSDK.NET_DVR_DEVICEINFO_V30();//设备信息

@ -8,6 +8,7 @@ import com.zhehekeji.web.lib.CameraControlModule;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Calendar;
import static com.zhehekeji.web.lib.joyware.JoywareLoginModuleImpl.mp4ReceiveCB; import static com.zhehekeji.web.lib.joyware.JoywareLoginModuleImpl.mp4ReceiveCB;
@ -353,7 +354,17 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
} }
} }
public boolean setCameraTime(Integer cameraId) { public boolean setCameraTime(Integer cameraId) {
return false; /**
*
*/
if (CameraConnMap.getConnId(cameraId).longValue() == 0) {
return false;
}
Calendar calendar = Calendar.getInstance();
NetSDKLib.NET_TIME netTime = new NetSDKLib.NET_TIME();
netTime.setTime(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH),
calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND));
return JoywareLoginModuleImpl.netsdk.CLIENT_SetupDeviceTime(CameraConnMap.getConnId(cameraId), netTime);
} }
/** /**

@ -86,10 +86,6 @@ public class InitService implements ApplicationRunner {
//球机登录 //球机登录
List<Camera> cameras = cameraMapper.selectByMap(new HashMap<>(0)); List<Camera> cameras = cameraMapper.selectByMap(new HashMap<>(0));
cameras.forEach(camera -> {
LoginThread loginThread = new LoginThread(camera);
loginThread.start();
});
//plc连接 //plc连接
if(configProperties.getServerMode() == 0){ if(configProperties.getServerMode() == 0){
log.info("PLC TCP MODE"); log.info("PLC TCP MODE");
@ -122,10 +118,12 @@ public class InitService implements ApplicationRunner {
log.error("ksec no config"); log.error("ksec no config");
} }
}else if(configProperties.getServerMode() == 3){} }else if(configProperties.getServerMode() == 3){}
TaskDelayExecutor.runMp4DownloadExecutor(); // TaskDelayExecutor.runMp4DownloadExecutor();
streetController.closeLightSource(); streetController.closeLightSource();
cameras.forEach(camera -> {
LoginThread loginThread = new LoginThread(camera);
loginThread.start();
});
} }
class LoginThread extends Thread{ class LoginThread extends Thread{

@ -278,6 +278,8 @@ public class PlcService {
upd.setStatus(1); upd.setStatus(1);
orderMapper.updateById(upd); orderMapper.updateById(upd);
} }
@Resource
private TaskDelayExecutor taskDelayExecutor;
public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) { public String cameraVideo(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime) {
String path = PathUtil.createFileName("mp4", cameraId); String path = PathUtil.createFileName("mp4", cameraId);
@ -287,7 +289,7 @@ public class PlcService {
@Override @Override
public void run() { public void run() {
String realPath = configProperties.getSavePath().getMp4Path() + finalPath; String realPath = configProperties.getSavePath().getMp4Path() + finalPath;
TaskDelayExecutor.addMp4DelayTask(cameraId, realPath, startTime, endTime, configProperties.getCameraConfig().getDelayDownloadMp4()); taskDelayExecutor.addMp4DelayTask(cameraId, realPath, startTime, endTime, configProperties.getCameraConfig().getDelayDownloadMp4());
} }
}); });
thread.start(); thread.start();
@ -462,7 +464,7 @@ public class PlcService {
String realPath = configProperties.getSavePath().getMediaPath() + path; String realPath = configProperties.getSavePath().getMediaPath() + path;
log.info("capture picture, cameraId:{},path:{}delayTime:{}", cameraId, realPath, delayTime); log.info("capture picture, cameraId:{},path:{}delayTime:{}", cameraId, realPath, delayTime);
if (delay) { if (delay) {
TaskDelayExecutor.addPicDelayTask(cameraId, realPath, delayTime); taskDelayExecutor.addPicDelayTask(cameraId, realPath, delayTime);
} else { } else {
cameraControlModule.pic(cameraId, 0, realPath); cameraControlModule.pic(cameraId, 0, realPath);
} }
@ -506,7 +508,7 @@ public class PlcService {
if (ptzId != null && ptzId >= 0) { if (ptzId != null && ptzId >= 0) {
log.info("gyrate camera by code, code{},cameraId:{},ptId:{}", code, cameraId, ptzId); log.info("gyrate camera by code, code{},cameraId:{},ptId:{}", code, cameraId, ptzId);
TaskDelayExecutor.addGyrateCameraTask(cameraId, times, ptzId); taskDelayExecutor.addGyrateCameraTask(cameraId, times, ptzId);
//cameraControlModule.toPtz(ptzId,cameraId); //cameraControlModule.toPtz(ptzId,cameraId);
} else { } else {
log.error("ptz not found ,code{},cameraId:{}", code, cameraId); log.error("ptz not found ,code{},cameraId:{}", code, cameraId);

@ -60,7 +60,7 @@ public class AlgorithmService {
//String url = "http://127.0.0.1:8083"+"/visionCompute"; //String url = "http://127.0.0.1:8083"+"/visionCompute";
try { try {
System.out.println("1111111111111"+algorithmPojo.toString()); // System.out.println("1111111111111"+algorithmPojo.toString());
// String jsonString = gson.toJson(algorithmPojo); // String jsonString = gson.toJson(algorithmPojo);
ResponseEntity<Result<Calculate>> response = restTemplate.exchange( ResponseEntity<Result<Calculate>> response = restTemplate.exchange(
url, url,
@ -85,7 +85,7 @@ public class AlgorithmService {
algorithmPojo.setGoodsNumberResult( (calculate.getLayers()-1) * countLayersMap.get(algorithmPojo.getGoodsType())); algorithmPojo.setGoodsNumberResult( (calculate.getLayers()-1) * countLayersMap.get(algorithmPojo.getGoodsType()));
} }
algorithmPojo.setCalculate(calculate); algorithmPojo.setCalculate(calculate);
System.out.println(calculate); // System.out.println(calculate);
}catch (RestClientException e){ }catch (RestClientException e){
log.error("未连接上堆垛机"+e); log.error("未连接上堆垛机"+e);
//Assert.isTrue(false,"请求失败,视觉服务未连接"); //Assert.isTrue(false,"请求失败,视觉服务未连接");
@ -93,6 +93,7 @@ public class AlgorithmService {
return algorithmPojo; return algorithmPojo;
}catch (Exception e){ }catch (Exception e){
log.error("堆垛机报错"+e);
e.printStackTrace(); e.printStackTrace();
} }
return algorithmPojo; return algorithmPojo;

Loading…
Cancel
Save