Compare commits

...

46 Commits

Author SHA1 Message Date
yiming 6cb148ff3e 任务号增加日期,以避免重复 3 years ago
yiming b8b4861b06 表修改,增加了库区字段 3 years ago
yiming 33b887e46e 库区设置 3 years ago
yiming 1ac7844c36 增加库区 3 years ago
yiming 9118e7b285 盘点导出 3 years ago
yiming abfa16c686 软加密增加硬盘 3 years ago
yiming 87118f89ca pom无法maven install修正 3 years ago
yiming 5867b06535 增加http协议到master 3 years ago
yiming d518e5fbcc 删除不必要的代码 3 years ago
yiming 3b887f8463 软加密 3 years ago
qiushui 7842d651f3 软加密 3 years ago
yiming 0c00e7f29b readme修改 3 years ago
yiming f94adbc2b9 系统需要授权才能使用 3 years ago
yiming 1acb78e77f 目录 3 years ago
yiming 86d8a79ff6 readme 3 years ago
yiming 66e4e5daf2 文档整理 3 years ago
yiming 3d0611365f 目录修改 3 years ago
yiming 7d0d3231d8 jar包改为本地 3 years ago
yiming 4f6ba52093 下载录像的时间 3 years ago
yiming ab227a7155 sql 3 years ago
yiming a7a431daa0 蜜雪冰城盘点 3 years ago
wang.yiming f5ae3d9505 Merge branch 'feature/shelve' into 'master'
去掉货架号

See merge request duoji/backend-duoji-monitor!7
4 years ago
yiming 6ff5ea3e5c 去掉货架号 4 years ago
qiushui 307f3994a7 RFID流程 4 years ago
wang.yiming f3b5cfa730 Merge branch 'liuzhou-yancao' into 'master'
Liuzhou yancao

See merge request duoji/backend-duoji-monitor!6
4 years ago
qiushui f6c011c307 柳州烟草修改 4 years ago
yiming b1e01176e8 单独巷道的光源开关 4 years ago
yiming c33599566e 中威获取球机当前位置 4 years ago
yiming dc14848a5c 柳州烟草问题修改 4 years ago
yiming 5c9194b9a3 增加盘点打开光源,10分钟之内无盘点则关闭 4 years ago
wang.yiming 4600d46906 Merge branch 'master' into 'liuzhou-yancao'
Master

See merge request duoji/backend-duoji-monitor!5
4 years ago
yiming 535ac337bf 盘点的时候,堆垛机跑位会发B1的处理 4 years ago
yiming f3f1a8f1a6 球机选择 左测camera2 右侧camera1 4 years ago
yiming b54c850ce9 随行延迟 4 years ago
yiming 9c3815ebac 定時清理磁盤 4 years ago
yiming ccb509a47e 定時清理磁盤 4 years ago
yiming ef8cfff5b8 导出全部盘点 4 years ago
yiming ad41d5fddb 盘点导出 4 years ago
yiming 90f2815017 盘点修改 4 years ago
yiming 95be7414a9 盘点修改 4 years ago
yiming 66526de6f1 盘点修改 4 years ago
yiming 1cd8223e80 盘点历史修改 4 years ago
yiming 2bb0393302 盘点历史修改 4 years ago
yiming 4e518c19d3 增加球机的连接状态 4 years ago
yiming 5d5fa9d2d6 增加库存历史照片 4 years ago
yiming 1c15675ba6 盘点lotnum批次号 4 years ago

2
.gitignore vendored

@ -32,3 +32,5 @@ target
/modules/modules.iml
/modules/filter/filter.iml
/modules/common/common.iml
lp.key
lp.lic

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 360 KiB

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
@ -14,6 +14,15 @@
<qrcode.version>2.1</qrcode.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<product.center.api>1.0.0</product.center.api>
<mybatisplus.boot.version>3.0.7.1</mybatisplus.boot.version>
<mybatis.version>2.0.1</mybatis.version>
<pagehelper.version>1.2.10</pagehelper.version>
<druid.springboot.version>1.1.9</druid.springboot.version>
<swagger.version>2.9.2</swagger.version>
<swagger.ui.version>1.9.1</swagger.ui.version>
<mysql.version>8.0.12</mysql.version>
<swagger.version>2.9.2</swagger.version>
</properties>
<dependencyManagement>
@ -97,11 +106,55 @@
<groupId>com.zhehekeji</groupId>
<artifactId>core</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/core-1.0.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>base-assembly</artifactId>
<version>1.0.0</version>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.boot.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.springboot.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>${swagger.ui.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
</dependencies>
<build>
@ -117,14 +170,5 @@
</plugin>
</plugins>
</build>
<repositories>
<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,8 +1,8 @@
package com.zhehekeji.common;
package com.leaper.common;
import com.zhehekeji.common.properities.Md5Properity;
import com.zhehekeji.common.properities.RedisProperity;
import com.zhehekeji.common.util.MD5Util;
import com.leaper.common.properities.Md5Properity;
import com.leaper.common.properities.RedisProperity;
import com.leaper.common.util.MD5Util;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@ -1,4 +1,4 @@
package com.zhehekeji.common.constant;
package com.leaper.common.constant;
public abstract class CommonConstant {

@ -1,4 +1,4 @@
package com.zhehekeji.common.properities;
package com.leaper.common.properities;
import org.springframework.boot.context.properties.ConfigurationProperties;

@ -1,4 +1,4 @@
package com.zhehekeji.common.properities;
package com.leaper.common.properities;
import lombok.Getter;
import lombok.Setter;

@ -1,4 +1,4 @@
package com.zhehekeji.common.properities;
package com.leaper.common.properities;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@ -0,0 +1,59 @@
package com.leaper.common.util;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
@Slf4j
public class FileUtil {
public static void save(String text,String path){
//判断文件是否存在
File file = new File(path);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(text.getBytes());
fileOutputStream.close();
log.info("write text success :{}",text);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getText(String path){
File file = new File(path);
if(file.exists()){
try {
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bytes = new byte[1024];//定义字节长度
int len = 0;
String txt = null;
while ((len = fileInputStream.read(bytes)) != -1) {//与文件读取出来的长度比较,内部有数据读完是-1,所以不等于-1
txt = new String(bytes, 0, len);//从0取到有数据的末尾
}
fileInputStream.close();
return txt;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public static void main(String[] args) {
String path = "./lotnum_now";
save("www",path);
getText(path);
}
}

@ -1,4 +1,4 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import com.zhehekeji.core.util.Assert;
import lombok.extern.slf4j.Slf4j;

@ -1,6 +1,6 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import com.zhehekeji.common.properities.Md5Properity;
import com.leaper.common.properities.Md5Properity;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

@ -1,4 +1,4 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import lombok.extern.slf4j.Slf4j;

@ -1,4 +1,4 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;

@ -1,4 +1,4 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;

@ -1,4 +1,4 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import java.util.List;
import java.util.Map;

@ -1,4 +1,4 @@
package com.zhehekeji.common.util;
package com.leaper.common.util;
import com.zhehekeji.core.util.Assert;
import org.springframework.beans.factory.annotation.Autowired;

@ -0,0 +1,29 @@
package encryptor;
import java.lang.reflect.Field;
public class Encryptor {
public native static String encryptStr(String str);
static
{
try{
String path = System.getProperty("user.dir")+"\\libs\\encrypt";
System.setProperty("java.library.path", path);
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);
System.loadLibrary("Encryptor");
}catch(Exception e)
{
System.out.println(e);
}
}
public static void main(String[] args)
{
String noEncrypt = "12345";
String encrypt = Encryptor.encryptStr(noEncrypt);
System.out.println(encrypt);
}
}

@ -4,12 +4,12 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>modules</artifactId>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<version>1.0.0</version>
<artifactId>filter</artifactId>
@ -52,11 +52,6 @@
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@ -70,7 +65,7 @@
</dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
<scope>compile</scope>

@ -0,0 +1,5 @@
package com.leaper.filter;
public interface FilterConstance {
}

@ -0,0 +1,99 @@
package com.leaper.filter.aspect;
import com.leaper.common.util.FileUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Scanner;
@Slf4j
public class LPLicense {
private static LocalDateTime lastUpdate = null;
private static String lic_str = null;
private static String lic_path = "./lp.lic";
private static String key_path = "./lp.key";
private static String CPU_INFO = null;
private static String DISK_INFO = null;
/**
*
*/
public static void createLicKeyIfNotExist(){
File file = new File(key_path);
if(!file.exists()){
String cpu = getCpuInfo();
CPU_INFO = cpu;
String disk = getDiskInfo();
DISK_INFO = disk;
FileUtil.save(cpu+disk,key_path);
}
}
private static String getCpuInfo(){
try {
Process process = Runtime.getRuntime().exec(
new String[] { "wmic", "cpu", "get", "ProcessorId" });
process.getOutputStream().close();
Scanner sc = new Scanner(process.getInputStream());
String property = sc.next();
String cpu = sc.next();
return cpu;
} catch (IOException e) {
log.error("GET CPU error:{}",e);
return null;
}
}
private static String getDiskInfo(){
try {
Process process = Runtime.getRuntime().exec(
new String[] { "wmic","diskdrive","where","index=0", "get", "serialnumber"});
process.getOutputStream().close();
Scanner sc = new Scanner(process.getInputStream());
String property = sc.next();
String disk = sc.next();
return disk;
} catch (IOException e) {
log.error("Get DISK error:{}",e);
return null;
}
}
public static String getLic(){
//每小时读取一次lic文件
if(lastUpdate == null || LocalDateTime.now().toLocalTime().getHour() != lastUpdate.toLocalTime().getHour()){
lastUpdate = LocalDateTime.now();
lic_str = FileUtil.getText(lic_path);
CPU_INFO = getCpuInfo();
DISK_INFO = getDiskInfo();
}
return lic_str;
}
public static boolean checkLic(String licStr){
return CPU_INFO != null && DISK_INFO != null && licStr.equals(encryptor.Encryptor.encryptStr(CPU_INFO+DISK_INFO));
}
public static boolean checkLic(){
String licStr = getLic();
if(StringUtils.isEmpty(licStr)){
return false;
}
return checkLic(licStr);
}
public static void main(String[] args) {
createLicKeyIfNotExist();
}
}

@ -0,0 +1,25 @@
package com.leaper.filter.aspect;
import com.leaper.filter.pojo.LicenseHandler;
import com.zhehekeji.core.util.Assert;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
@Slf4j
public class LicenseAspect {
/**
* leaper..*.controller
* leaper controller
*
* @param
*/
@Before("execution(public * com.leaper..*.controller.*.*(..))")
public void handler(){
Assert.isTrue(LPLicense.checkLic(),"未获取授权请将C:\\hzleaper_auto_install\\logistics_package\\lp.key发送给授权人员");
}
}

@ -1,4 +1,4 @@
package com.zhehekeji.filter.pojo;
package com.leaper.filter.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;

@ -1,22 +1,14 @@
package com.zhehekeji.filter.pojo;
package com.leaper.filter.pojo;
import java.lang.annotation.*;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SessionHandler {
public @interface LicenseHandler {
String value() default "";
UserType userType() default UserType.USER;
/**
*
* @return true: false:
*/
boolean login() default true;
/**
*
* @return true: false:

@ -1,4 +1,4 @@
package com.zhehekeji.filter.pojo;
package com.leaper.filter.pojo;
/**
* @Description

@ -1,12 +0,0 @@
package com.zhehekeji.filter;
public interface FilterConstance {
String HEADER = "token";
String JWT_KEY = "zhehekeji";
String SESSION_PREFIX = "session:";
Long SESSION_EXPIRE = 10800l;
}

@ -1,73 +0,0 @@
package com.zhehekeji.filter.aspect;
import com.alibaba.fastjson.JSONObject;
import com.zhehekeji.common.util.HttpUtil;
import com.zhehekeji.core.pojo.HttpStatus;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.filter.FilterConstance;
import com.zhehekeji.filter.pojo.CurrentUser;
import com.zhehekeji.filter.pojo.SessionHandler;
import com.zhehekeji.filter.pojo.UserType;
import com.zhehekeji.filter.util.CurrentUserUtil;
import com.zhehekeji.filter.util.JwtUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
/**
* @Description Session
* @Author wangyiming1031@aliyun.com
* @Date 2019/10/28 19:26
**/
@Aspect
@Component
@Slf4j
public class SessionAspect {
@Value("${zhehe.filter.enable}")
private Boolean enable;
@Value("${userUrl}")
private String userUrl;
/**
* zhehekeji..*.controller
* zhehekeji controller
*
* @param sessionHandler
*/
@Before("execution(public * com.zhehekeji..*.controller.*.*(..))&&@annotation(sessionHandler)")
public void handler(SessionHandler sessionHandler){
if(!enable){
return;
}
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String token = request.getHeader(FilterConstance.HEADER);
CurrentUser currentUser = null;
try {
String res = HttpUtil.token(userUrl+"/api/account/checkToken",token);
Result currentUserResult = JSONObject.parseObject(res,Result.class);
if(currentUserResult != null && currentUserResult.getCode() == 200){
currentUser = JSONObject.parseObject(JSONObject.toJSONString(currentUserResult.getData()),CurrentUser.class);
}
} catch (IOException e) {
e.printStackTrace();
}
if (sessionHandler.login()) {
Assert.isTrue(currentUser != null, HttpStatus.UNAUTHORIZED.getCode(), HttpStatus.UNAUTHORIZED.getReasonPhrase());
}
if (sessionHandler.auth()) {
//todo 权限检验
}
CurrentUserUtil.setCurrentUser(currentUser);
}
}

@ -1,30 +0,0 @@
package com.zhehekeji.filter.util;
import com.zhehekeji.filter.pojo.CurrentUser;
/**
* @Description 线
* @Author wangyiming1031@aliyun.com
* @Date 2019/10/28 19:22
**/
public class CurrentUserUtil {
private static ThreadLocal<CurrentUser> currentUser = new ThreadLocal<>();
/**
*
*
* @return
*/
public static CurrentUser getCurrentUser() {
return currentUser.get();
}
public static void setCurrentUser(CurrentUser user) {
currentUser.set(user);
}
public static void delCurrentUser() {
currentUser.remove();
}
}

@ -1,85 +0,0 @@
package com.zhehekeji.filter.util;
import com.alibaba.fastjson.JSONObject;
import com.zhehekeji.filter.FilterConstance;
import com.zhehekeji.filter.pojo.CurrentUser;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
/**
* @Description JWTUtil
* @Author wangyiming1031@aliyun.com
* @Date 2019/10/28 19:11
**/
public class JwtUtil {
/**
* JWT
*
* @return
*/
private static String createJWT(CurrentUser currentUser) {
String userJson = JSONObject.toJSONString(currentUser);
JwtBuilder builder = Jwts.builder()
.setSubject(userJson)
.setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256, FilterConstance.JWT_KEY);
return builder.compact();
}
/**
* JWT
* jwt
* @param jwtStr
* @return
*/
public static Claims parseJWT(String jwtStr) {
return Jwts.parser()
.setSigningKey(FilterConstance.JWT_KEY)
.parseClaimsJws(jwtStr)
.getBody();
}
/**
*
*
* @param request
* @return
*/
public static CurrentUser getUser(HttpServletRequest request) {
String token = getToken(request);
Claims claims;
try {
claims = parseJWT(token);
} catch (Exception e) {
return null;
}
String json = claims.getSubject();
CurrentUser userInfo = JSONObject.parseObject(json, CurrentUser.class);
return userInfo;
}
private static String getToken(HttpServletRequest request) {
return request.getHeader(FilterConstance.HEADER);
}
/**
* jwt,jwt
* header
* @param response
* @param currentUser
* @return
*/
public static String createTokenAndHeader(HttpServletResponse response,CurrentUser currentUser){
String jwt = createJWT(currentUser);
response.setHeader(FilterConstance.HEADER,jwt);
return jwt;
}
}

@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springbootstart</artifactId>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -15,21 +15,13 @@
<properties>
<java.version>1.8</java.version>
<common.version>1.0.0</common.version>
<base.assembly.version>1.0.0</base.assembly.version>
<filter.version>1.0.0</filter.version>
</properties>
<dependencies>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>base-assembly</artifactId>
<version>${base.assembly.version}</version>
</dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>common</artifactId>
<version>${common.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
@ -41,15 +33,6 @@
</dependency>
</dependencies>
<repositories>
<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>

@ -15,11 +15,11 @@
<version>2.3.1.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<artifactId>springbootstart</artifactId>
<version>1.0.0</version>
<name>duoji</name>
<description>Demo project for Spring Boot</description>
<description>堆垛机随行监控系统</description>
<properties>
<java.version>1.8</java.version>
@ -90,16 +90,6 @@
</profile>
</profiles>
<repositories>
<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>
<build>
<resources>
<resource>
@ -119,39 +109,6 @@
</includes>
</resource>
</resources>
<plugins>
<plugin>
<!--指定编译的jdk版本-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!--执行单元测试的插件-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>zip</nonFilteredFileExtension>
<nonFilteredFileExtension>cer</nonFilteredFileExtension>
<nonFilteredFileExtension>pfx</nonFilteredFileExtension>
<nonFilteredFileExtension>py</nonFilteredFileExtension>
<nonFilteredFileExtension>keystore</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</build>
</project>

@ -1,26 +1,42 @@
# 舵机
## 初始化启动的逻辑见com.leaper.web.service.InitService
### 包括启动自动连接球机、自动连接WMS或者plc
***
## 通讯协议:
![image](plc通讯协议1.jpg)
![image](plc通讯协议2.jpg)
### tcp通讯用的netty
#### 1.HeartNettyClient*类是维持与plc的心跳
#### 2.解码MyProtocolDecode 这里收到plc的包解析处理见通讯协议的两张图片
#### 3.调用sdk拍照录像转动球机等操作在com.zhehekeji.web.lib里面
### tcp通讯用的netty框架
* 昆船通讯协议编解码在com.leaper.web.service.kesc下面
* 昆船协议见doc文件夹下JSON通讯协议文档每个项目会略有差异但是格式不变可能就是加一个字段改一个字段
***
* 罗伯泰克协议编解码在com.leaper.web.service.robotic下面
* 罗伯泰克协议见doc文件夹下两张图片罗伯泰克plc通讯协议1——2.jpg
***
* HTTP通讯协议在com.leaper.web.controller.MonitorController类
* 目前是宁福多氟多项目上使用不推荐使用http因为http协议的时延比tcp要高
* 文档见doc文件夹下 宁福迦南HTTP通信协议文档12.2.doc
***
## SDK:
### 1.调用sdk的代码在 com.zhehekeji.web.lib下面
### 1.调用sdk的代码在 com.leaper.web.lib下面
### 2.sdk在根目录libs下面
### 3.sdk回调在CallBack类里重连回调断线回调球机转动回调下载mp4下载结束回调
### 4.详见SDK_ReadMe_请先读我.TXT
### InitService: 项目启动自动登录球机自动连接PLC
### 4.详见doc/SDK_ReadMe_请先读我.TXT
### 球机的连接句柄维护在CameraConnMap类里,key:球机IDvalue:登录句柄
# 部署 使用利珀一键部署服务
## windows(该服务一般都会放在win10系统上)
### start-jar.bat (注意目录和profile)
### stop-jar.bat (注意端口号)
## linux:
### sh app.sh start
### sh app.sh restart
### sh app.sh stop
***
## 设备控制:
* SICK扫码枪 com.leaper.web.service.sick
* 逻辑是tcp发送start,sick扫码枪会回复条码
* RFID: com.leaper.web.service.RFID
* tcp协议6C标签需要左右两个天线一直切换并且不断发送条码识别信号
* 光源控制:分为两个
* 海康视觉控制器com.leaper.web.service.hikLightSource
* JayDam: com.leaper.web.service.damLightSource
***
## 关于lib文件夹
* code_scan: 条码识别dll
* ffmpeg: 海康球机下载的视频无法在浏览器播放需要调用该库修改视频格式为标准mp4
* hik: 海康球机SDK
* win64: 中威球机SDK
***
## script 一些启动脚本,由于部署方式改变,已经用不到了
## 数据库初始化sql: script/lia_duoji.sql

@ -0,0 +1,305 @@
/*
Navicat Premium Data Transfer
Source Server : 82
Source Server Type : MySQL
Source Server Version : 50731
Source Host : 115.236.65.98:12004
Source Schema : lia_duoji_test
Target Server Type : MySQL
Target Server Version : 50731
File Encoding : 65001
Date: 06/12/2022 10:54:57
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
drop database `lia_duoji`;
create database `lia_duoji`;
use `lia_duoji`;
-- ----------------------------
-- Table structure for RFID
-- ----------------------------
DROP TABLE IF EXISTS `RFID`;
CREATE TABLE `RFID` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`street_id` int(11) NULL DEFAULT NULL,
`direction` tinyint(4) NULL DEFAULT NULL COMMENT '方向 0左 1',
`ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`port` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `STREET`(`street_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'RFID' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for camera
-- ----------------------------
DROP TABLE IF EXISTS `camera`;
CREATE TABLE `camera` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`type` int(11) NULL DEFAULT NULL COMMENT '0:利珀 1海康',
`ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`port` int(11) NULL DEFAULT NULL,
`user` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`password` varchar(512) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`rtsp` varchar(512) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`ptz_id` int(11) NULL DEFAULT NULL,
`rtc_server` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'rtc_server,没有的话使用配置文件里的',
`rtc_server_port` int(11) NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for camera_io
-- ----------------------------
DROP TABLE IF EXISTS `camera_io`;
CREATE TABLE `camera_io` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`camera_id` int(11) NULL DEFAULT NULL,
`ptz_id` int(11) NULL DEFAULT NULL,
`position` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '位置',
`focusing` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '对焦',
`aperture` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '光圈',
`multiple` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '倍数',
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `CAMERA_ID`(`camera_id`, `code`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for camera_io_config
-- ----------------------------
DROP TABLE IF EXISTS `camera_io_config`;
CREATE TABLE `camera_io_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `UQ_NAME`(`name`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for category
-- ----------------------------
DROP TABLE IF EXISTS `category`;
CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '条码号',
`name` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '名称',
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `UQ`(`code`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for check_log
-- ----------------------------
DROP TABLE IF EXISTS `check_log`;
CREATE TABLE `check_log` (
`lotnum` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '盘点批次号',
`direction` tinyint(4) NULL DEFAULT NULL COMMENT '1:左 2',
`side` tinyint(4) NULL DEFAULT NULL COMMENT '1:浅侧 2深测',
`row` smallint(6) NULL DEFAULT NULL,
`column` smallint(11) NULL DEFAULT NULL,
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '算法code',
`wms_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'WMS code',
`tray_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '托盘码',
`wms_tray_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'wms托盘码',
`category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`count` smallint(11) NULL DEFAULT NULL,
`status` tinyint(255) NULL DEFAULT NULL COMMENT '1盘点异常 2盘点正确 3人工核对正确',
`check_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '操作前图片',
`create_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`street_id` int(11) NULL DEFAULT NULL,
`export_time` datetime NULL DEFAULT NULL,
INDEX `lotnum`(`lotnum`) USING BTREE,
INDEX `INDEX`(`street_id`, `direction`, `side`, `row`, `column`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for light_source
-- ----------------------------
DROP TABLE IF EXISTS `light_source`;
CREATE TABLE `light_source` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`street_id` int(11) NOT NULL,
`ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`port` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`direction` tinyint(4) NULL DEFAULT NULL COMMENT '方向 0左 1',
`info` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`type` int(11) NULL DEFAULT NULL COMMENT '类型,不同光源产品',
PRIMARY KEY (`id`) USING BTREE,
INDEX `INDEX`(`street_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for order
-- ----------------------------
DROP TABLE IF EXISTS `order`;
CREATE TABLE `order` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`street_id` int(11) NULL DEFAULT NULL,
`order_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`status` tinyint(4) NULL DEFAULT NULL COMMENT '0:正常 1告警 2:测试工单',
`in_out1` int(11) NULL DEFAULT NULL COMMENT '1:库内 2库外',
`left_right1` tinyint(4) NULL DEFAULT NULL COMMENT '1左 2',
`column1` int(11) NULL DEFAULT NULL,
`row1` int(11) NULL DEFAULT NULL,
`in_out2` int(11) NULL DEFAULT NULL,
`left_right2` int(11) NULL DEFAULT NULL,
`column2` int(11) NULL DEFAULT NULL,
`row2` int(11) NULL DEFAULT NULL,
`start_time` timestamp NULL DEFAULT NULL,
`end_time` timestamp NULL DEFAULT NULL,
`video_path_1` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '球机1视频',
`video_path_2` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '球机2视频',
`pic_paths` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL,
`create_time` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `INDEX_ORDER`(`order_num`) USING BTREE,
INDEX `INDEX_TIME`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for sensor_gun
-- ----------------------------
DROP TABLE IF EXISTS `sensor_gun`;
CREATE TABLE `sensor_gun` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`street_id` int(11) NULL DEFAULT NULL,
`direction` tinyint(4) NULL DEFAULT NULL COMMENT '方向 0左 1',
`ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`port` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `street`(`street_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '扫码枪' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for stock
-- ----------------------------
DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`lotnum` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '盘点批次好',
`order_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '工单任务号',
`check_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '盘点任务号',
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '扫描条码',
`category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '扫描品规',
`count` int(11) NULL DEFAULT NULL COMMENT '扫描数量',
`wms_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'WMS系统中的条码',
`wms_category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'WMS系统中的品规',
`wms_count` int(11) NULL DEFAULT NULL COMMENT 'WMS数量',
`wms_tray_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT 'wms托盘码',
`tray_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '托盘码',
`street_id` int(11) NULL DEFAULT NULL,
`direction` tinyint(4) NULL DEFAULT NULL,
`side` tinyint(4) NULL DEFAULT NULL,
`row` int(11) NULL DEFAULT NULL,
`column` int(11) NULL DEFAULT NULL,
`status` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '0:未盘点 1盘点异常 2盘点正确 3人工核对正确',
`preoperation_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '操作前图片',
`overoperation_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '操作后图片',
`check_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '盘点图片',
`export_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `SHELVE_CELL`(`street_id`, `direction`, `side`, `row`, `column`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for stock_log
-- ----------------------------
DROP TABLE IF EXISTS `stock_log`;
CREATE TABLE `stock_log` (
`street_id` int(11) NOT NULL,
`direction` tinyint(4) NOT NULL,
`side` tinyint(4) NOT NULL,
`row` int(11) NOT NULL,
`column` int(11) NOT NULL,
`order_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '随行工单号',
`pic` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图片',
`type` tinyint(4) NULL DEFAULT NULL COMMENT '2:入库完成图片 4出库完成图片',
`create_time` datetime NOT NULL,
INDEX `INDEX`(`street_id`, `direction`, `side`, `row`, `column`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '货位历史,随行模式下入库 出库后的照片' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for street
-- ----------------------------
DROP TABLE IF EXISTS `street`;
CREATE TABLE `street` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`plc_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`plc_ip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`plc_port` int(11) DEFAULT NULL,
`left_type` tinyint(4) DEFAULT NULL COMMENT '左货架类型 0单伸 1双伸',
`left_column` int(11) DEFAULT NULL COMMENT '左货架列数量',
`left_row` int(11) DEFAULT NULL COMMENT '左货架行数量',
`left_inside_shelve_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '左内侧货架号-双伸',
`left_outside_shelve_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '左外侧货架号-双伸',
`left_shelve_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '货架号-单伸',
`right_type` tinyint(4) DEFAULT NULL COMMENT '右货架类型 0单伸 1双伸',
`right_column` int(11) DEFAULT NULL COMMENT '右货架列数量',
`right_row` int(11) DEFAULT NULL COMMENT '右货架行数量',
`right_inside_shelve_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '右内侧货架号-双伸',
`right_outside_shelve_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '右外侧货架号-双伸',
`right_shelve_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '货架号-单伸',
`camera1_id` int(11) DEFAULT NULL COMMENT '球机',
`camera2_id` int(11) DEFAULT NULL COMMENT '球机',
`video_style` int(11) DEFAULT '0' COMMENT '样式 默认0 0:1个铺满 1:上下两个视频 2:2*2 3:3*3 4:4*4 5:5*5 66*6 8:8*8',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
`video_style_row` int(11) DEFAULT NULL,
`video_style_column` int(11) DEFAULT NULL,
`area` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '库区',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `UQ_PLC` (`plc_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;
-- ----------------------------
-- Table structure for warn
-- ----------------------------
DROP TABLE IF EXISTS `warn`;
CREATE TABLE `warn` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`street_id` int(11) NULL DEFAULT NULL,
`start_time` datetime NULL DEFAULT NULL,
`end_time` datetime NULL DEFAULT NULL,
`video_path_1` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`video_path_2` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`location` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`signal` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
`order_id` bigint(20) NULL DEFAULT NULL COMMENT '发生告警打断的工单id order.id',
PRIMARY KEY (`id`) USING BTREE,
INDEX `time`(`start_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (1, 'C1-R', '右取货到位', '2022-03-30 11:35:07');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (2, 'C2-R', '右取货完成', '2022-03-30 11:35:09');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (3, 'C3-R', '右放货到位', '2022-03-30 11:35:10');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (4, 'C4-R', '右放货完成', '2022-03-30 11:35:11');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (5, 'C1-L', '左取货到位', '2022-03-30 11:35:13');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (6, 'C2-L', '左取货完成', '2022-03-30 11:35:15');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (7, 'C3-L', '左放货到位', '2022-03-30 11:35:17');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (8, 'C4-L', '左放货完成', '2022-03-30 11:35:20');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (9, 'C5', '原点位', '2022-01-10 15:17:55');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (10, 'E1', '盘点', '2022-01-12 17:18:53');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (11, 'C1-R-Out', '右取货到位-双伸外侧', '2022-03-30 11:35:07');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (12, 'C2-R-Out', '右取货完成-双伸外侧', '2022-03-30 11:35:09');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (13, 'C3-R-Out', '右放货到位-双伸外侧', '2022-03-30 11:35:10');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (14, 'C4-R-Out', '右放货完成-双伸外侧', '2022-03-30 11:35:11');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (15, 'C1-L-Out', '左取货到位-双伸外侧', '2022-03-30 11:35:13');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (16, 'C2-L-Out', '左取货完成-双伸外侧', '2022-03-30 11:35:15');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (17, 'C3-L-Out', '左放货到位-双伸外侧', '2022-03-30 11:35:17');
INSERT INTO `camera_io_config` (`id`, `code`, `name`, `update_time`) VALUES (18, 'C4-L-Out', '左放货完成-双伸外侧', '2022-03-30 11:35:20');
commit;

@ -0,0 +1,18 @@
@ECHO OFF
SET dbhost=127.0.0.1
SET dbuser=root
SET dbpasswd=Leaper@123
SET dbName=test
set sqlfile=C:\Users\Peter\Desktop\lia_duoji.sql
cd D:\hzleaper_auto_install\mysql-5.7.33-winx64\bin
::执行SQL脚本
@ECHO Start!
mysql -h%dbhost% -u%dbuser% -p%dbpasswd% < %sqlfile% --default-character-set=utf8
ECHO OK!
PAUSE
@ECHO Done!

@ -3,7 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springbootstart</artifactId>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -19,11 +19,7 @@
<dependencies>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>base-assembly</artifactId>
<version>${base.assembly.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
@ -43,20 +39,21 @@
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<groupId>com.leaper</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.leaper</groupId>
<artifactId>filter</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.50.Final</version>
</dependency>
<dependency>
<groupId>com.zhehekeji</groupId>
<artifactId>filter</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>

@ -1,12 +1,11 @@
package com.zhehekeji.web;
package com.leaper.web;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication(scanBasePackages = {"com.zhehekeji"})
@MapperScan("com.zhehekeji.**.mapper.**")
@SpringBootApplication(scanBasePackages = {"com.leaper","com.zhehekeji.core"})
@MapperScan("com.leaper.**.mapper.**")
public class Application {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(Application.class);

@ -1,4 +1,4 @@
package com.zhehekeji.web.config;
package com.leaper.web.config;
import com.github.pagehelper.cache.GuavaCache;
import com.google.common.cache.CacheBuilder;

@ -1,4 +1,4 @@
package com.zhehekeji.web.config;
package com.leaper.web.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ -27,6 +27,8 @@ public class ConfigProperties {
private Integer serverMode;
private Integer deleteFileDays;
private String userUrl;
private KSEC ksec;
@ -49,6 +51,17 @@ public class ConfigProperties {
private Long delayCaptureTime;
private Long runningDelayCaptureTime;
private Long C1DelayCaptureTime;
private Long C2DelayCaptureTime;
private Long C2OutDelayCaptureTime;
private Long C3DelayCaptureTime;
private Long C4DelayCaptureTime;
private Long C4OutDelayCaptureTime;
private Long B2DelayTime;
private Long B2OutDelayTime;
private Long delayDownloadMp4;
}

@ -1,4 +1,4 @@
package com.zhehekeji.web.config;
package com.leaper.web.config;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.SqlSessionFactoryBean;

@ -1,4 +1,4 @@
package com.zhehekeji.web.config;
package com.leaper.web.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -22,7 +22,7 @@ public class SwaggerConfig {
.apiInfo(apiInfo())
.select()
//指定提供接口所在的基包
.apis(RequestHandlerSelectors.basePackage("com.zhehekeji"))
.apis(RequestHandlerSelectors.basePackage("com.leaper"))
.build();
}

@ -1,10 +1,10 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.alibaba.fastjson.JSONObject;
import com.zhehekeji.common.util.HttpUtil;
import com.leaper.common.util.HttpUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.pojo.IndexVO;
import com.leaper.web.pojo.IndexVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -21,20 +21,5 @@ import java.io.IOException;
@Slf4j
public class AppCenterController {
@Value("${userUrl}")
private String userUrl;
@GetMapping("/userCenter")
@ApiOperation(value = "用户中心")
public Result<IndexVO> userCenter() {
Result result = null;
try {
String res = HttpUtil.doGet(userUrl+"/api/app/userCenter");
result = JSONObject.parseObject(res,Result.class);
} catch (IOException e) {
log.error("请求用户中心地址失败:{}",e);
Assert.isTrue(false,"请求用户中心地址失败");
}
return result;
}
}

@ -1,16 +1,19 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.zhehekeji.common.util.PathUtil;
import com.leaper.filter.pojo.LicenseHandler;
import com.leaper.web.lib.CameraConnMap;
import com.leaper.web.lib.CameraControlLoginModule;
import com.leaper.web.lib.CameraControlModule;
import com.leaper.web.lib.TaskDelayExecutor;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.lib.*;
import com.zhehekeji.web.lib.hik.HCNetSDK;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.zhehekeji.web.mapper.CameraMapper;
import com.zhehekeji.web.service.CameraService;
import com.zhehekeji.web.service.PlcService;
import com.leaper.web.config.ConfigProperties;
import com.leaper.web.entity.Camera;
import com.leaper.web.lib.*;
import com.leaper.web.lib.joyware.NetSDKLib;
import com.leaper.web.mapper.CameraMapper;
import com.leaper.web.service.CameraService;
import com.leaper.web.service.PlcService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -51,6 +54,7 @@ public class CameraControlController {
@PostMapping("/up/{id}")
@ApiOperation(value = "球机控制向上")
@LicenseHandler
public Result up(@PathVariable Integer id) {
log.debug("球机控制向上");
checkLogin(id);
@ -60,6 +64,7 @@ public class CameraControlController {
@PostMapping("/up/stop/{id}")
@ApiOperation(value = "球机控制向上 停止")
@LicenseHandler
public Result upStop(@PathVariable Integer id) {
log.debug("球机控制向上 停止");
checkLogin(id);
@ -69,6 +74,7 @@ public class CameraControlController {
@PostMapping("/down/{id}")
@ApiOperation(value = "球机控制向下")
@LicenseHandler
public Result down(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlDownStart(id,0,0,1);
@ -78,6 +84,7 @@ public class CameraControlController {
@PostMapping("/down/stop/{id}")
@ApiOperation(value = "球机控制向下-停止")
@LicenseHandler
public Result downStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlDownEnd(id,0);
@ -87,6 +94,7 @@ public class CameraControlController {
@PostMapping("/left/{id}")
@ApiOperation(value = "球机控制向左")
@LicenseHandler
public Result left(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlLeftStart(id,0,0,1);
@ -96,6 +104,7 @@ public class CameraControlController {
@PostMapping("/left/stop/{id}")
@ApiOperation(value = "球机控制左-停止")
@LicenseHandler
public Result leftStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlLeftEnd(id,0);
@ -106,6 +115,7 @@ public class CameraControlController {
@PostMapping("/leftUp/{id}")
@ApiOperation(value = "球机控制向左上")
@LicenseHandler
public Result leftUp(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlLeftUpStart(id,0,1,1);
@ -115,6 +125,7 @@ public class CameraControlController {
@PostMapping("/leftUp/stop/{id}")
@ApiOperation(value = "球机控制左上-停止")
@LicenseHandler
public Result leftUpStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlLeftUpEnd(id,0);
@ -124,6 +135,7 @@ public class CameraControlController {
@PostMapping("/leftDown/{id}")
@ApiOperation(value = "球机控制向左下")
@LicenseHandler
public Result leftDown(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlLeftDownStart(id,0,1,1);
@ -133,6 +145,7 @@ public class CameraControlController {
@PostMapping("/leftDown/stop/{id}")
@ApiOperation(value = "球机控制左下-停止")
@LicenseHandler
public Result leftDownStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlLeftDownEnd(id,0);
@ -143,6 +156,7 @@ public class CameraControlController {
@PostMapping("/right/{id}")
@ApiOperation(value = "球机控制向右")
@LicenseHandler
public Result right(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlRightStart(id,0,0,1);
@ -152,6 +166,7 @@ public class CameraControlController {
@PostMapping("/right/stop/{id}")
@ApiOperation(value = "球机控制右-停止")
@LicenseHandler
public Result rightStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlRightEnd(id,0);
@ -162,6 +177,7 @@ public class CameraControlController {
@PostMapping("/rightUp/{id}")
@ApiOperation(value = "球机控制向右上")
@LicenseHandler
public Result rightUp(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlRightUpStart(id,0,1,1);
@ -171,6 +187,7 @@ public class CameraControlController {
@PostMapping("/rightUp/stop/{id}")
@ApiOperation(value = "球机控制右上-停止")
@LicenseHandler
public Result rightUpStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlRightUpEnd(id,0);
@ -180,6 +197,7 @@ public class CameraControlController {
@PostMapping("/rightDown/{id}")
@ApiOperation(value = "球机控制向右下")
@LicenseHandler
public Result rightDown(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlRightDownStart(id,0,1,1);
@ -189,6 +207,7 @@ public class CameraControlController {
@PostMapping("/rightDown/stop/{id}")
@ApiOperation(value = "球机控制右下-停止")
@LicenseHandler
public Result rightDownStop(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlRightDownEnd(id,0);
@ -198,6 +217,7 @@ public class CameraControlController {
@PostMapping("/zoomAdd/start/{id}")
@ApiOperation(value = "球机控制 变倍+")
@LicenseHandler
public Result ZoomAddStart(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlZoomAddStart(id,0,1);
@ -206,6 +226,7 @@ public class CameraControlController {
@PostMapping("/zoomAdd/stop/{id}")
@ApiOperation(value = "球机控制 变倍+ 停止")
@LicenseHandler
public Result ZoomAddEnd(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlZoomAddEnd(id,0);
@ -214,6 +235,7 @@ public class CameraControlController {
@PostMapping("/zoomDec/start/{id}")
@ApiOperation(value = "球机控制 变倍-")
@LicenseHandler
public Result ZoomDecStart(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlZoomDecStart(id,0,1);
@ -222,6 +244,7 @@ public class CameraControlController {
@PostMapping("/zoomDec/stop/{id}")
@ApiOperation(value = "球机控制 变倍- 停止")
@LicenseHandler
public Result ZoomDecEnd(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlZoomDecEnd(id,0);
@ -230,6 +253,7 @@ public class CameraControlController {
@PostMapping("/focusAdd/start/{id}")
@ApiOperation(value = "球机控制 变焦 +")
@LicenseHandler
public Result FocusAddStart(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlFocusAddStart(id,0,1);
@ -238,6 +262,7 @@ public class CameraControlController {
@PostMapping("/focusAdd/stop/{id}")
@ApiOperation(value = "球机控制 变焦+ 停止")
@LicenseHandler
public Result focusAddEnd(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlFocusAddEnd(id,0);
@ -246,6 +271,7 @@ public class CameraControlController {
@PostMapping("/focusDec/start/{id}")
@ApiOperation(value = "球机控制 变焦 -")
@LicenseHandler
public Result FocusDecStart(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlFocusDecStart(id,0,1);
@ -254,6 +280,7 @@ public class CameraControlController {
@PostMapping("/focusDec/stop/{id}")
@ApiOperation(value = "球机控制 变焦- 停止")
@LicenseHandler
public Result focusDecEnd(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlFocusDecEnd(id,0);
@ -262,6 +289,7 @@ public class CameraControlController {
@PostMapping("/irisAdd/start/{id}")
@ApiOperation(value = "球机控制 光圈 +")
@LicenseHandler
public Result irisAddStart(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlIrisAddStart(id,0,1);
@ -270,6 +298,7 @@ public class CameraControlController {
@PostMapping("/irisAdd/stop/{id}")
@ApiOperation(value = "球机控制 光圈+ 停止")
@LicenseHandler
public Result irisAddEnd(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlIrisAddEnd(id,0);
@ -278,6 +307,7 @@ public class CameraControlController {
@PostMapping("/irisDec/start/{id}")
@ApiOperation(value = "球机控制 光圈 -")
@LicenseHandler
public Result irisDecStart(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlIrisDecStart(id,0,1);
@ -286,6 +316,7 @@ public class CameraControlController {
@PostMapping("/irisDec/stop/{id}")
@ApiOperation(value = "球机控制 光圈- 停止")
@LicenseHandler
public Result irisDecEnd(@PathVariable Integer id) {
checkLogin(id);
cameraControlModule.ptzControlIrisDecEnd(id,0);
@ -323,7 +354,8 @@ public class CameraControlController {
@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));
LocalDateTime localDateTime = LocalDateTime.of(2022,7,21,8,20);
cameraControlModule.downloadMp4(id,"E:\\work\\"+localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", localDateTime,localDateTime.plusMinutes(3));
return Result.success();
}

@ -1,18 +1,22 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonParser;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil;
import com.leaper.filter.pojo.LicenseHandler;
import com.sun.jna.ptr.IntByReference;
import com.leaper.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.entity.CameraIO;
import com.zhehekeji.web.entity.CameraIOConfig;
import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.pojo.camera.CameraConfigSearchReq;
import com.zhehekeji.web.pojo.camera.CameraIOPtz;
import com.zhehekeji.web.pojo.street.StreetSearch;
import com.zhehekeji.web.service.CameraService;
import com.leaper.web.entity.Camera;
import com.leaper.web.entity.CameraIO;
import com.leaper.web.entity.CameraIOConfig;
import com.leaper.web.lib.CameraConnMap;
import com.leaper.web.lib.CameraControlModule;
import com.leaper.web.lib.joyware.JoywareLoginModuleImpl;
import com.leaper.web.lib.joyware.NetSDKLib;
import com.leaper.web.pojo.camera.CameraConfigSearchReq;
import com.leaper.web.pojo.camera.CameraIOPtz;
import com.leaper.web.pojo.street.StreetSearch;
import com.leaper.web.service.CameraService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -23,7 +27,6 @@ import javax.annotation.Resource;
import java.io.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;
@Api(value = "camera",tags = "球机管理")
@ -39,18 +42,21 @@ public class CameraController {
@PostMapping("/page")
@ApiOperation(value = "球机列表分页 ")
@LicenseHandler
public Result<PageInfo<Camera>> list(@RequestBody StreetSearch streetSearch) {
return new Result<>(cameraService.cameras(streetSearch));
}
@GetMapping("/{id}")
@ApiOperation(value = "球机")
@LicenseHandler
public Result<Camera> detail(@PathVariable Integer id) {
return new Result<>(cameraService.detail(id));
}
@PostMapping("")
@ApiOperation(value = "球机新增 ")
@LicenseHandler
public Result<Integer> add(@RequestBody Camera camera) {
return new Result<>(cameraService.add(camera));
}
@ -133,6 +139,25 @@ public class CameraController {
return Result.success();
}
@PostMapping("/{cameraId}/io/xy")
@ApiOperation(value = "获取球机的当前位置坐标")
public Result xy(@PathVariable Integer cameraId) {
NetSDKLib.NET_PTZ_LOCATION_INFO ptzLocationInfo = new NetSDKLib.NET_PTZ_LOCATION_INFO();
IntByReference intRetLen = new IntByReference();
int nType = NetSDKLib.NET_DEVSTATE_PTZ_LOCATION;
ptzLocationInfo.write();
boolean bRet = JoywareLoginModuleImpl.netsdk.CLIENT_QueryDevState(CameraConnMap.getConnId(cameraId), nType, ptzLocationInfo.getPointer(), ptzLocationInfo.size(), intRetLen, 3000);
ptzLocationInfo.read();
String s = "水平:%d,垂直:%d";
if (bRet) {
String ss = String.format(s,ptzLocationInfo.nPTZPan,ptzLocationInfo.nPTZTilt);
log.info(ss);
return Result.success(ss);
}
return Result.success(s);
}
@GetMapping("/downloadConfig")
@ApiOperation(value = "视频直播配置")
public Result downloadConfig() throws IOException {
@ -174,4 +199,30 @@ public class CameraController {
return Result.success();
}
@GetMapping("/rtcConfig")
@ApiOperation(value = "获取rtcConfig")
public Result<String> rtcConfig(String rtcServer) {
List<Camera> cameraList = cameraService.getCamerasByRtcServer(rtcServer);
JSONObject jsonObject = new JSONObject();
JSONObject server = new JSONObject();
server.put("http_port",":8083");
String [] strings = new String[1];
strings[0] = "stun:stun.l.google.com:19302";
server.put("ice_servers",strings);
server.put("ice_username","");
server.put("ice_credential","");
jsonObject.put("server",server);
JSONObject streams = new JSONObject();
cameraList.forEach(camera -> {
JSONObject obj = new JSONObject();
obj.put("on_demand",false);
obj.put("disable_audio",true);
obj.put("url",camera.getRtsp());
streams.put("camera"+camera.getId(),obj);
});
jsonObject.put("streams",streams);
return Result.success(jsonObject.toJSONString());
}
}

@ -1,10 +1,10 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Category;
import com.zhehekeji.web.pojo.category.PageSearch;
import com.zhehekeji.web.service.CategoryService;
import com.leaper.web.entity.Category;
import com.leaper.web.pojo.category.PageSearch;
import com.leaper.web.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.core.io.ClassPathResource;

@ -0,0 +1,35 @@
package com.leaper.web.controller;
import com.github.pagehelper.PageInfo;
import com.leaper.web.pojo.stock.CheckLogSearch;
import com.leaper.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.leaper.web.entity.CheckLog;
import com.leaper.web.service.CheckLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@Api(tags = "盘点历史")
@RequestMapping("/checkLog")
@RestController
public class CheckLogController {
@Resource
private CheckLogService checkLogService;
@Resource
private ValidatorUtil validatorUtil;
@ApiOperation("盘点历史")
@PostMapping("")
public Result<PageInfo<CheckLog>> list(@RequestBody CheckLogSearch checkLogSearch){
return Result.success(checkLogService.list(checkLogSearch));
}
}

@ -1,4 +1,4 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import lombok.Data;

@ -0,0 +1,25 @@
package com.leaper.web.controller;
import com.leaper.web.service.CommandHandler;
import com.leaper.web.service.ksec.KsecInfo;
import com.zhehekeji.core.pojo.Result;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(value = "monitor",tags = "监控接口 HTTP协议")
@RestController
@RequestMapping("/monitor")
@Slf4j
public class MonitorController {
@PostMapping("/task")
public Result monitorTask(@RequestBody KsecInfo ksecInfo){
CommandHandler.exec(ksecInfo);
return Result.success();
}
}

@ -1,14 +1,14 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil;
import com.leaper.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.pojo.OrderSaveReq;
import com.zhehekeji.web.pojo.OrderSearch;
import com.zhehekeji.web.pojo.OrderVO;
import com.zhehekeji.web.service.OrderService;
import com.zhehekeji.web.service.PlcCmdInfo;
import com.zhehekeji.web.service.PlcService;
import com.leaper.web.pojo.OrderSaveReq;
import com.leaper.web.pojo.OrderSearch;
import com.leaper.web.pojo.OrderVO;
import com.leaper.web.service.OrderService;
import com.leaper.web.service.PlcCmdInfo;
import com.leaper.web.service.PlcService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

@ -1,13 +1,17 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.leaper.web.service.GoodsActionTimes;
import com.leaper.web.service.PlcService;
import com.leaper.web.service.StreetConn;
import com.leaper.web.service.StreetService;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.mapper.StreetMapper;
import com.zhehekeji.web.service.*;
import com.zhehekeji.web.service.ksec.KsecNettyClient;
import com.zhehekeji.web.service.robotic.NettyClient;
import com.leaper.web.config.ConfigProperties;
import com.leaper.web.entity.Street;
import com.leaper.web.mapper.StreetMapper;
import com.leaper.web.service.*;
import com.leaper.web.service.ksec.KsecNettyClient;
import com.leaper.web.service.robotic.NettyClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

@ -1,11 +1,11 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.Camera;
import com.zhehekeji.web.pojo.realTime.RealTime;
import com.zhehekeji.web.service.CameraService;
import com.zhehekeji.web.service.RealTimeService;
import com.leaper.web.config.ConfigProperties;
import com.leaper.web.entity.Camera;
import com.leaper.web.pojo.realTime.RealTime;
import com.leaper.web.service.CameraService;
import com.leaper.web.service.RealTimeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@Api(value = "realTime",tags = "实时监控")
@RestController
@ -40,6 +41,20 @@ public class RealTimeController {
return Result.success(cameraService.allCameras());
}
@GetMapping("/allAreas")
@ApiOperation(value = "全部库区")
//@SessionHandler
public Result<Set<String>> allAreas() {
return Result.success(realTimeService.allAreas());
}
@GetMapping("/allCamerasByArea")
@ApiOperation(value = "球机按库区分组")
//@SessionHandler
public Result<List<Camera>> allCamerasByArea(String area) {
return Result.success(realTimeService.getAllCamerasByArea(area));
}
@GetMapping("/wallStyle")
@ApiOperation(value = "视频墙样式")
//@SessionHandler

@ -1,21 +1,14 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.alibaba.fastjson.JSONObject;
import com.zhehekeji.common.util.HttpUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.pojo.IndexVO;
import com.zhehekeji.web.service.sick.SickConnMap;
import com.leaper.web.service.sick.SickConnMap;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
@Api( tags = "传感器")
@RequestMapping(value = "/sensor")
@RestController()

@ -1,15 +1,17 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.alibaba.excel.EasyExcel;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil;
import com.leaper.web.pojo.stock.*;
import com.leaper.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.entity.Stock;
import com.zhehekeji.web.pojo.category.PageSearch;
import com.zhehekeji.web.pojo.stock.*;
import com.zhehekeji.web.service.StockService;
import com.leaper.web.entity.Stock;
import com.leaper.web.pojo.category.PageSearch;
import com.leaper.web.pojo.stock.*;
import com.leaper.web.service.StockService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.io.ClassPathResource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -22,11 +24,11 @@ import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
@Api(value = "Stock", tags = "库存管理")
@RestController
@RequestMapping("/stock")
@Slf4j
public class StockController {
@Resource
@ -64,16 +66,16 @@ public class StockController {
}
@PostMapping("/statusByRowColumn")
@ApiOperation(value = "行列的库存状态")
@ApiOperation(value = "行列的盘点状态")
public Result<CheckStatus>checkStatus(@Validated @RequestBody RowColumnStatus rowColumnStatus){
return Result.success(stockService.statusByRowColumn(rowColumnStatus));
}
@GetMapping("/list")
@ApiOperation(value = "盘点页面 返回map key:货架号 value:库存信息")
public Result<Map<String, List<Stock>>> stockByStreet(@RequestParam(required = true) Integer streetId) {
return Result.success(stockService.stocksByStreetId(streetId));
}
// @GetMapping("/list")
// @ApiOperation(value = "盘点页面 返回map key:货架号 value:库存信息")
// public Result<Map<String, List<Stock>>> stockByStreet(@RequestParam(required = true) Integer streetId) {
// return Result.success(stockService.stocksByStreetId(streetId));
// }
@PostMapping("/page")
@ApiOperation(value = "库存列表")
@ -81,18 +83,30 @@ public class StockController {
return Result.success(stockService.page(pageSearch));
}
@ApiOperation(value = "导出全部巷道excel")
@ApiOperation(value = "导出巷道excel")
@RequestMapping(value = "/export", method = RequestMethod.GET)
public void export(@RequestParam Integer streetId, HttpServletResponse response) throws IOException {
OutputStream os = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("盘点" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")), "UTF-8");
String fileName = URLEncoder.encode("盘点" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")), "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
List<StockExportExcel> excels = stockService.exportExcels(streetId);
EasyExcel.write(os, StockExportExcel.class).sheet().doWrite(excels);
}
@ApiOperation(value = "导出巷道excel")
@RequestMapping(value = "/exportAll", method = RequestMethod.GET)
public void exportAll(HttpServletResponse response) throws IOException {
OutputStream os = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("全部巷道盘点结果" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")), "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
List<StockExportExcel> excels = stockService.exportAllExcels();
EasyExcel.write(os, StockExportExcel.class).sheet().doWrite(excels);
}
@ApiOperation(value = "复核页面的核对信息")
@RequestMapping(value = "/info", method = RequestMethod.POST)
public Result<Stock> stockInfo(@RequestBody StockCheck stockCheck) {
@ -103,8 +117,13 @@ public class StockController {
@ApiOperation(value = "获取盘点信息")
@RequestMapping(value = "/checkInfo", method = RequestMethod.POST)
public Result<Stock> checkInfo(@RequestBody StockCheckSearch stockCheck) {
int a = Integer.valueOf(stockCheck.getSRMNumber());
String ss = String.format("%03d", a);
stockCheck.setSRMNumber(ss);
validatorUtil.validate(stockCheck);
Stock stock = new Stock();
log.info("stockCheck:{}",stockCheck);
Stock stock = stockService.stock(stockCheck);
log.info("stockCheck:res:{}",stock);
return Result.success(stock);
}
@ -122,4 +141,14 @@ public class StockController {
return Result.success(stockService.checkByMan(checkByMan));
}
public static void main(String[] args) {
String s = "4";
String ss = String.format("%03d", 4);
System.out.println(ss);
String bb = "10";
String bbb = String.format("%03d", 10);
System.out.println(bbb);
}
}

@ -0,0 +1,32 @@
package com.leaper.web.controller;
import com.github.pagehelper.PageInfo;
import com.leaper.web.service.StockLogService;
import com.leaper.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.leaper.web.entity.StockLog;
import com.leaper.web.pojo.stock.StockLogSearch;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@Api(tags = "库存历史")
@RequestMapping("/stockLog")
@RestController
public class StockLogController {
@Resource
private StockLogService stockLogService;
@Resource
private ValidatorUtil validatorUtil;
@ApiOperation("库存历史")
@PostMapping("")
public Result<PageInfo<StockLog>> list(@RequestBody StockLogSearch stockLogSearch){
return Result.success(stockLogService.page(stockLogSearch));
}
}

@ -1,18 +1,18 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.leaper.web.entity.LightSource;
import com.leaper.web.service.LightSourceService;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.config.ConfigProperties;
import com.zhehekeji.web.entity.LightSource;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.pojo.street.StreetSearch;
import com.zhehekeji.web.pojo.street.StreetVO;
import com.zhehekeji.web.service.LightSourceService;
import com.zhehekeji.web.service.StreetService;
import com.zhehekeji.web.service.damLightSource.JYDAMEquip;
import com.zhehekeji.web.service.damLightSource.JYDamHelper;
import com.zhehekeji.web.service.hikLightSource.HikControlSocket;
import com.leaper.web.config.ConfigProperties;
import com.leaper.web.entity.Street;
import com.leaper.web.pojo.street.StreetSearch;
import com.leaper.web.pojo.street.StreetVO;
import com.leaper.web.service.StreetService;
import com.leaper.web.service.damLightSource.JYDAMEquip;
import com.leaper.web.service.damLightSource.JYDamHelper;
import com.leaper.web.service.hikLightSource.HikControlSocket;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Api(value = "StreetController",tags = "巷道管理")
@RestController(value = "StreetController")
@ -77,6 +76,7 @@ public class StreetController {
}
@GetMapping("/lightSource/open")
@ApiOperation(value = "开启光源")
public Result openLightSource(){
@ -124,6 +124,46 @@ public class StreetController {
return Result.success();
}
@GetMapping("/lightSource/open/{streetId}")
@ApiOperation(value = "开启单个巷道光源")
public Result openStreetLightSource(@PathVariable Integer streetId){
List<LightSource> lightSources = lightSourceService.getLightSourceByStreetId(streetId);
lightSources.forEach(lightSource -> {
if(configProperties.getLightSource().getType() == 1){
JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort());
JYDamHelper.openDO(equip,configProperties.getLightSource().getIndex());
Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex());
log.info("ip:{},status:{}",lightSource.getIp(),status);
equip.DisConnect();
}else if(configProperties.getLightSource().getType() == 2){
HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),1);
}
});
return Result.success();
}
@GetMapping("/lightSource/close/{streetId}")
@ApiOperation(value = "关闭单个巷道光源")
public Result closeStreetLightSource(@PathVariable Integer streetId){
List<LightSource> lightSources = lightSourceService.getLightSourceByStreetId(streetId);
lightSources.forEach(lightSource -> {
if(configProperties.getLightSource().getType() == 1){
JYDAMEquip equip = JYDamHelper.Connect(lightSource.getIp(),lightSource.getPort());
JYDamHelper.closeDO(equip,configProperties.getLightSource().getIndex());
Integer status = JYDamHelper.ReadStatus(equip,configProperties.getLightSource().getNum(),configProperties.getLightSource().getIndex());
log.info("ip:{},status:{}",lightSource.getIp(),status);
equip.DisConnect();
}else if(configProperties.getLightSource().getType() == 2){
HikControlSocket.openLight(lightSource.getIp(),lightSource.getPort(),configProperties.getLightSource().getIndex(),0);
}
});
return Result.success();
}

@ -1,7 +1,7 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.service.TestService;
import com.leaper.web.service.TestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@ -18,7 +18,7 @@ public class TestController {
@ApiOperation("自动盘点")
@GetMapping("/check/{id}/{leftRight}")
public Result test(@PathVariable Integer id,@PathVariable Integer leftRight){
public Result test(@PathVariable String id,@PathVariable Integer leftRight){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {

@ -1,11 +1,11 @@
package com.zhehekeji.web.controller;
package com.leaper.web.controller;
import com.github.pagehelper.PageInfo;
import com.zhehekeji.common.util.ValidatorUtil;
import com.leaper.common.util.ValidatorUtil;
import com.zhehekeji.core.pojo.Result;
import com.zhehekeji.web.pojo.warn.WarnSearch;
import com.zhehekeji.web.pojo.warn.WarnVO;
import com.zhehekeji.web.service.WarnService;
import com.leaper.web.pojo.warn.WarnSearch;
import com.leaper.web.pojo.warn.WarnVO;
import com.leaper.web.service.WarnService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

@ -1,6 +1,7 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -30,7 +31,11 @@ public class Camera {
private String rtcServer;
@TableField(exist = false)
private String status;
private Integer rtcServerPort;
@ApiModelProperty(value = "预置点 增长值",hidden = true)
private Integer ptzId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@ -12,14 +12,15 @@ import java.time.LocalDateTime;
@Data
public class CheckLog {
@TableId(type = IdType.AUTO)
private Long id;
private Integer userId;
private Integer streetId;
private String username;
@TableField(exist = false)
private String streetName;
private String shelveId;
private Integer direction;
private Integer side;
@TableField("`row`")
private Integer row;
@ -49,6 +50,9 @@ public class CheckLog {
private String lotnum;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime exportTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
@ -53,9 +53,11 @@ public class Stock {
@ApiModelProperty("扫描出的托盘码")
private String trayCode;
@ApiModelProperty("货架号")
@TableField(value = "`shelve_id`")
private String shelveId;
private Integer streetId;
private Integer direction;
private Integer side;
@TableField(value = "`row`")
@ApiModelProperty("行号")

@ -0,0 +1,48 @@
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@TableName("`stock_log`")
@NoArgsConstructor
@AllArgsConstructor
public class StockLog {
private String orderNum;
@ApiModelProperty("2入库4出库")
private Integer type;
// @ApiModelProperty("货架号")
// @TableField(value = "`shelve_id`")
// private String shelveId;
private Integer streetId;
private Integer direction;
private Integer side;
@TableField(value = "`row`")
@ApiModelProperty("行号")
private Integer row;
@TableField(value = "`column`")
@ApiModelProperty("列号")
private Integer column;
private String pic;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -32,18 +32,6 @@ public class Street {
@ApiModelProperty("左货架行数量")
private Integer leftRow;
@ApiModelProperty("左内侧货架号-双伸")
@TableField(strategy = FieldStrategy.IGNORED)
private String leftInsideShelveId;
@ApiModelProperty("左外侧货架号-双伸")
@TableField(strategy = FieldStrategy.IGNORED)
private String leftOutsideShelveId;
@ApiModelProperty("货架号-单伸")
@TableField(strategy = FieldStrategy.IGNORED)
private String leftShelveId;
@ApiModelProperty("右货架类型 0单伸 1双伸")
private Integer rightType;
@ -53,18 +41,6 @@ public class Street {
@ApiModelProperty("右货架行数量")
private Integer rightRow;
@ApiModelProperty("右内侧货架号-双伸")
@TableField(strategy = FieldStrategy.IGNORED)
private String rightInsideShelveId;
@ApiModelProperty("右外侧货架号-双伸")
@TableField(strategy = FieldStrategy.IGNORED)
private String rightOutsideShelveId;
@ApiModelProperty("货架号-单伸")
@TableField(strategy = FieldStrategy.IGNORED)
private String rightShelveId;
@TableField(strategy = FieldStrategy.IGNORED)
private Integer camera1Id;
@ -81,4 +57,9 @@ public class Street {
private Integer videoStyleRow;
private Integer videoStyleColumn;
/**
*
*/
private String area;
}

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@ -1,4 +1,4 @@
package com.zhehekeji.web.entity;
package com.leaper.web.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

@ -1,6 +1,6 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.leaper.web.lib.joyware.NetSDKLib;
import java.util.HashMap;
import java.util.Map;

@ -1,6 +1,6 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.leaper.web.lib.joyware.NetSDKLib;
public interface CameraControlLoginModule {

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import java.time.LocalDateTime;

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -28,6 +28,8 @@ public class CameraDelayTask implements Delayed {
private long delayTime;
private Integer ptzId;
public CameraDelayTask(Integer cameraId, LocalDateTime startTime, LocalDateTime endTime, String path, Integer type, long delayTime) {
this.cameraId = cameraId;
this.startTime = startTime;

@ -1,7 +1,7 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import com.zhehekeji.web.entity.Street;
import com.zhehekeji.web.service.PlcCmdInfo;
import com.leaper.web.entity.Street;
import com.leaper.web.service.PlcCmdInfo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@ -15,7 +15,7 @@ public class OrderInfo {
private String orderNum;
private String shelveId;
private Integer streetId;
private Integer row;
@ -61,31 +61,7 @@ public class OrderInfo {
column = plcCmdInfo.getColumn2();
separation = plcCmdInfo.getSeparation2();
}
if (leftRight == 1) {
//双伸
if(street.getLeftType() == 2){
//外侧
if(separation == 2){
shelveId = street.getLeftOutsideShelveId();
}else {
shelveId = street.getLeftOutsideShelveId();
}
}else {
shelveId = street.getLeftShelveId();
}
} else {
//双伸
if(street.getRightType() == 2){
//外侧
if(separation == 2){
shelveId = street.getRightOutsideShelveId();
}else {
shelveId = street.getRightInsideShelveId();
}
}else {
shelveId = street.getRightShelveId();
}
}
streetId = street.getId();
orderId = 0L;
orderNum = plcCmdInfo.getOrderNum();
code = c;

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@ -1,6 +1,6 @@
package com.zhehekeji.web.lib;
package com.leaper.web.lib;
import com.zhehekeji.common.util.SpringContextUtil;
import com.leaper.common.util.SpringContextUtil;
import java.time.LocalDateTime;
import java.util.concurrent.DelayQueue;
@ -23,6 +23,12 @@ public class TaskDelayExecutor {
queue.add(cameraDelayTask);
}
public static void addGyrateCameraTask(Integer cameraId, Long delayTime,Integer ptzId){
CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null,null, 2,delayTime);
cameraDelayTask.setPtzId(ptzId);
queue.add(cameraDelayTask);
}
public static void runMp4DownloadExecutor(){
exec.execute(new Consumer());
}
@ -42,6 +48,8 @@ public class TaskDelayExecutor {
cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime());
}else if(cameraDelayTask.getType() == 1){
cameraControlModule.pic(cameraDelayTask.getCameraId(),0, cameraDelayTask.getPath());
}else if(cameraDelayTask.getType() == 2){
cameraControlModule.toPtz(cameraDelayTask.getPtzId(),cameraDelayTask.getCameraId());
}
}

@ -9,7 +9,7 @@
* Created on 2009-9-14, 19:31:34
*/
package com.zhehekeji.web.lib.hik;
package com.leaper.web.lib.hik;
import com.sun.jna.Native;
import com.sun.jna.Pointer;

@ -1,19 +1,15 @@
package com.zhehekeji.web.lib.hik;
package com.leaper.web.lib.hik;
import com.sun.jna.NativeLong;
import com.leaper.web.lib.CameraConnMap;
import com.leaper.web.lib.joyware.NetSDKLib;
import com.sun.jna.ptr.IntByReference;
import com.zhehekeji.common.util.PathUtil;
import com.leaper.common.util.PathUtil;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.CameraControlModule;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.leaper.web.lib.CameraControlModule;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
@ -257,8 +253,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule {
}
public void downloadMp4(Integer cameraId, String path, LocalDateTime start, LocalDateTime end) {
start = start.minusMinutes(1);
end = end.minusMinutes(1);
PathUtil.checkDirc(path);
HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME();
startTime.setTime(start.getYear(), start.getMonthValue(), start.getDayOfMonth(), start.getHour(), start.getMinute(), start.getSecond());

@ -1,8 +1,8 @@
package com.zhehekeji.web.lib.hik;
package com.leaper.web.lib.hik;
import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.leaper.web.lib.CameraConnMap;
import com.leaper.web.lib.joyware.NetSDKLib;
import lombok.extern.slf4j.Slf4j;
@Slf4j

@ -1,8 +1,8 @@
package com.zhehekeji.web.lib.hik;
package com.leaper.web.lib.hik;
import com.leaper.web.lib.joyware.NetSDKLib;
import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.CameraControlLoginModule;
import com.zhehekeji.web.lib.joyware.NetSDKLib;
import com.leaper.web.lib.CameraControlLoginModule;
import lombok.extern.slf4j.Slf4j;
/**
@ -57,7 +57,7 @@ public class HikLoginModuleImpl implements CameraControlLoginModule {
}
//检测球机连接状态
public Boolean connectStatus(int userId){
public static Boolean connectStatus(int userId){
return hcNetsdk.NET_DVR_RemoteControl(userId,20005,null,0);
}

@ -1,7 +1,7 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import com.leaper.web.lib.CameraConnMap;
import com.sun.jna.Pointer;
import com.zhehekeji.web.lib.CameraConnMap;
import lombok.extern.slf4j.Slf4j;
@Slf4j

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;

@ -1,7 +1,7 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import com.sun.jna.Pointer;
import com.zhehekeji.common.util.PathUtil;
import com.leaper.common.util.PathUtil;
import lombok.extern.slf4j.Slf4j;
import java.io.*;

@ -1,15 +1,15 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import com.leaper.web.lib.CameraConnMap;
import com.sun.jna.ptr.IntByReference;
import com.zhehekeji.common.util.PathUtil;
import com.leaper.common.util.PathUtil;
import com.zhehekeji.core.util.Assert;
import com.zhehekeji.web.lib.CameraConnMap;
import com.zhehekeji.web.lib.CameraControlModule;
import com.leaper.web.lib.CameraControlModule;
import lombok.extern.slf4j.Slf4j;
import java.time.LocalDateTime;
import static com.zhehekeji.web.lib.joyware.JoywareLoginModuleImpl.mp4ReceiveCB;
import static com.leaper.web.lib.joyware.JoywareLoginModuleImpl.mp4ReceiveCB;
/**
*
@ -28,6 +28,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("up start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
lParam1, lParam2, 0, 0);
@ -35,6 +36,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
}
public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
log.info("up end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
0, 0, 0, 1);
@ -44,12 +46,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("down start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
lParam1, lParam2, 0, 0);
}
public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
log.info("down end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
0, 0, 0, 1);
@ -59,12 +63,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("left start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
lParam1, lParam2, 0, 0);
}
public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
log.info("left end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
0, 0, 0, 1);
@ -74,12 +80,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("right start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
lParam1, lParam2, 0, 0);
}
public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
log.info("right end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
0, 0, 0, 1);
@ -89,12 +97,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("up left start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
lParam1, lParam2, 0, 0);
}
public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
log.info("up left end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
0, 0, 0, 1);
@ -104,12 +114,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("up right start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
lParam1, lParam2, 0, 0);
}
public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
log.info("up right end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
0, 0, 0, 1);
@ -119,6 +131,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info(" left down start");
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
lParam1, lParam2, 0, 0);
@ -129,6 +142,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
}
public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
log.info(" left down end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
0, 0, 0, 1);
@ -138,12 +152,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
*
*/
public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info(" right down start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
lParam1, lParam2, 0, 0);
}
public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
log.info(" right down end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
0, 0, 0, 1);
@ -276,10 +292,10 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
NetSDKLib.LLong l = JoywareLoginModuleImpl.netsdk.CLIENT_DownloadByDataType(CameraConnMap.getConnId(cameraId), download_by_data_type.getPointer(), net_out_download_by_data_type.getPointer(), 8000);
if(l.longValue() != 0){
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{},status:{}", path, start, end, LocalDateTime.now(),l.longValue());
log.info("start download mp4 path:{},startTime:{} ,endTime:{},now:{},status:{},cameraId:{}", path, start, end, LocalDateTime.now(),l.longValue(),cameraId);
}else {
log.error("download mp4 error:{},startTime:{} ,endTime:{}",ToolKits.getErrorCodePrint(),start,end);
log.error("download mp4 error:{},startTime:{} ,endTime:{},cameraId:{}",ToolKits.getErrorCodePrint(),start,end,cameraId);
}
}
@ -306,6 +322,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* @param cameraId
*/
public void toPtz(Integer ptzId, Integer cameraId) {
log.info("to ptz,ptzId:{},cameraId:{}",ptzId,cameraId);
int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null);
if (!ok) {

@ -1,11 +1,11 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import com.sun.jna.CallbackThreadInitializer;
import com.sun.jna.Memory;
import com.sun.jna.Native;
import com.zhehekeji.web.lib.CameraControlLoginModule;
import com.zhehekeji.web.lib.joyware.NetSDKLib.LLong;
import com.zhehekeji.web.lib.joyware.NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.zhehekeji.web.lib.joyware.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.leaper.web.lib.CameraControlLoginModule;
import lombok.extern.slf4j.Slf4j;
/**
@ -34,6 +34,24 @@ public class JoywareLoginModuleImpl implements CameraControlLoginModule {
public static CallBack.Mp4ReceiveCB mp4ReceiveCB= new CallBack.Mp4ReceiveCB();
public static Boolean connectStatus(NetSDKLib.LLong userId){
IntByReference retLen = new IntByReference(0);
Pointer p = new Memory(Integer.SIZE);
p.clear(Integer.SIZE);
if (!netsdk.CLIENT_QueryDevState(userId,
NetSDKLib.NET_DEVSTATE_ONLINE,
p,
Integer.SIZE,
retLen,
500)) {
log.error("joyware connectStatus error,errorCode:{}",netsdk.CLIENT_GetLastError());
return false;
}
int []a = new int[1];
p.read(0, a, 0, 1);
return a[0] == 1;
}
/**
* \if ENGLISH_LANG
* Init
@ -95,20 +113,20 @@ public class JoywareLoginModuleImpl implements CameraControlLoginModule {
*
* \endif
*/
public LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
public NetSDKLib.LLong login(String m_strIp, int m_nPort, String m_strUser, String m_strPassword) {
//IntByReference nError = new IntByReference(0);
//入参
init(disConnectCallBack,haveReConnect);
NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam=new NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY();
NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY pstInParam=new NetSDKLib.NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY();
pstInParam.nPort=m_nPort;
pstInParam.szIP=m_strIp.getBytes();
pstInParam.szPassword=m_strPassword.getBytes();
pstInParam.szUserName=m_strUser.getBytes();
//出参
NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam=new NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY();
NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY pstOutParam=new NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY();
pstOutParam.stuDeviceInfo=m_stDeviceInfo;
//m_hLoginHandle = netsdk.CLIENT_LoginEx2(m_strIp, m_nPort, m_strUser, m_strPassword, 0, null, m_stDeviceInfo, nError);
LLong m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
NetSDKLib.LLong m_hLoginHandle=netsdk.CLIENT_LoginWithHighLevelSecurity(pstInParam, pstOutParam);
int tryTimes = 0;
while (m_hLoginHandle.longValue()==0 && tryTimes <= MAX_RECONNET_TIME){
log.error("joyware login error,ip:{},port:{},errorCode:{}",m_strIp,m_nPort,netsdk.CLIENT_GetLastError());
@ -118,7 +136,7 @@ public class JoywareLoginModuleImpl implements CameraControlLoginModule {
if(m_hLoginHandle.longValue()==0){
return null;
}
log.info("joyware login success");
log.info("joyware login success,loginId:{}",m_hLoginHandle.longValue());
return m_hLoginHandle;
}

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
/**
* @author 251823
* @description

@ -1,6 +1,9 @@
package com.zhehekeji.web.lib.joyware;
import com.zhehekeji.web.lib.joyware.enumeration.EM_FILTER_IMAGE_TYPE;
import com.zhehekeji.web.lib.joyware.structure.*;
package com.leaper.web.lib.joyware;
import com.leaper.web.lib.joyware.enumeration.EM_FILTER_IMAGE_TYPE;
import com.leaper.web.lib.joyware.structure.*;
import com.leaper.web.lib.joyware.structure.NET_IN_PTZ_STATUS_PROC;
import com.leaper.web.lib.joyware.structure.NET_OUT_PTZ_STATUS_PROC;
import com.leaper.web.lib.joyware.structure.*;
import com.sun.jna.*;
import com.sun.jna.ptr.IntByReference;
import java.lang.reflect.Field;
@ -32160,8 +32163,8 @@ public interface NetSDKLib extends Library {
/**
*
* @param lLoginID
* @param pInParam ,{@link com.zhehekeji.web.lib.joyware.structure.NET_IN_SET_2DCODE}
* @param pOutParam ,{@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_SET_2DCODE}
* @param pInParam ,{@link NET_IN_SET_2DCODE}
* @param pOutParam ,{@link NET_OUT_SET_2DCODE}
* @param nWaitTime
* @return
*/
@ -32170,9 +32173,9 @@ public interface NetSDKLib extends Library {
/**
* ,pInParampOutParam
* @param lLoginID
* @param pInParam , {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_ATTACH_VIDEOSTAT_HEATMAP}
* @Param pOutParam ,{@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_ATTACH_VIDEOSTAT_HEATMAP}
* 使{@link com.zhehekeji.web.lib.joyware.structure.EmptyStructure}
* @param pInParam , {@link NET_IN_ATTACH_VIDEOSTAT_HEATMAP}
* @Param pOutParam ,{@link NET_OUT_ATTACH_VIDEOSTAT_HEATMAP}
* 使{@link EmptyStructure}
* @param nWaitTime
* @return
*/
@ -32181,8 +32184,8 @@ public interface NetSDKLib extends Library {
/**
* ,pInParampOutParam
* @param lAttachHandle
* @param pInParam , {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_GET_VIDEOSTAT_HEATMAP}
* @param pOutParam ,{@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_GET_VIDEOSTAT_HEATMAP}
* @param pInParam , {@link NET_IN_GET_VIDEOSTAT_HEATMAP}
* @param pOutParam ,{@link NET_OUT_GET_VIDEOSTAT_HEATMAP}
* @param nWaitTime
* @return
*/
@ -32207,8 +32210,8 @@ public interface NetSDKLib extends Library {
/**
* faceRecognitionServer.matchTwoFace,pstInParampstOutParam
* @param lLoginID
* @param pstInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_MATCH_TWO_FACE_IN}
* @param pstOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_MATCH_TWO_FACE_OUT}
* @param pstInParam {@link NET_MATCH_TWO_FACE_IN}
* @param pstOutParam {@link NET_MATCH_TWO_FACE_OUT}
* @param nWaitTime ,3000
* @return
*/
@ -32219,8 +32222,8 @@ public interface NetSDKLib extends Library {
/**
* , pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_SET_CAMERA_CFG}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_SET_CAMERA_CFG}
* @param pInParam {@link NET_IN_SET_CAMERA_CFG}
* @param pOutParam {@link NET_OUT_SET_CAMERA_CFG}
* @param nWaitTime
* @return
*/
@ -32230,8 +32233,8 @@ public interface NetSDKLib extends Library {
/**
* , pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_GET_CAMERA_CFG}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_GET_CAMERA_CFG}
* @param pInParam {@link NET_IN_GET_CAMERA_CFG}
* @param pOutParam {@link NET_OUT_GET_CAMERA_CFG}
* @param nWaitTime
* @return
*/
@ -32241,8 +32244,8 @@ public interface NetSDKLib extends Library {
/**
* , pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_SET_CHANNEL_CFG}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_SET_CHANNEL_CFG}
* @param pInParam {@link NET_IN_SET_CHANNEL_CFG}
* @param pOutParam {@link NET_OUT_SET_CHANNEL_CFG}
* @param nWaitTime
* @return
*/
@ -32252,8 +32255,8 @@ public interface NetSDKLib extends Library {
/**
* , pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_GET_CHANNEL_CFG}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_GET_CHANNEL_CFG}
* @param pInParam {@link NET_IN_GET_CHANNEL_CFG}
* @param pOutParam {@link NET_OUT_GET_CHANNEL_CFG}
* @param nWaitTime
* @return
*/
@ -32263,8 +32266,8 @@ public interface NetSDKLib extends Library {
/**
* -, pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_GET_CAMERA_INFO}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_GET_CAMERA_INFO}
* @param pInParam {@link NET_IN_GET_CAMERA_INFO}
* @param pOutParam {@link NET_OUT_GET_CAMERA_INFO}
* @param nWaitTime
* @return
*/
@ -32276,8 +32279,8 @@ public interface NetSDKLib extends Library {
/**
*
* @param lLoginID
* @param pstInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_GET_HEATMAPS_INFO}
* @param pstOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_GET_HEATMAPS_INFO}
* @param pstInParam {@link NET_IN_GET_HEATMAPS_INFO}
* @param pstOutParam {@link NET_OUT_GET_HEATMAPS_INFO}
* @param nWaitTime , 3000
* @return
*/
@ -32382,8 +32385,8 @@ public interface NetSDKLib extends Library {
/**
* IPC
* @param lLoginID
* @param pstInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_GET_DEVICE_AII_INFO}
* @param pstOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_GET_DEVICE_AII_INFO}
* @param pstInParam {@link NET_IN_GET_DEVICE_AII_INFO}
* @param pstOutParam {@link NET_OUT_GET_DEVICE_AII_INFO}
* @param nWaitTime
* @return
*/
@ -32397,8 +32400,8 @@ public interface NetSDKLib extends Library {
/**
* , pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_ATTACH_TRAFFICLIGHT_INFO}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_ATTACH_TRAFFICLIGHT_INFO}
* @param pInParam {@link NET_IN_ATTACH_TRAFFICLIGHT_INFO}
* @param pOutParam {@link NET_OUT_ATTACH_TRAFFICLIGHT_INFO}
* @param nWaitTime
* @return
*/
@ -32414,8 +32417,8 @@ public interface NetSDKLib extends Library {
/**
* , pInParam pOutParam
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_RADAR_ALARMPOINTINFO}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_RADAR_ALARMPOINTINFO}
* @param pInParam {@link NET_IN_RADAR_ALARMPOINTINFO}
* @param pOutParam {@link NET_OUT_RADAR_ALARMPOINTINFO}
* @param nWaitTime
* @return
*/
@ -32448,8 +32451,8 @@ public interface NetSDKLib extends Library {
/**
* ,pstuInPtzStatusProcpstuOutPtzStatusProc
* @param lLoginID
* @param pInParam {@link com.zhehekeji.web.lib.joyware.structure.NET_IN_PTZ_STATUS_PROC}
* @param pOutParam {@link com.zhehekeji.web.lib.joyware.structure.NET_OUT_PTZ_STATUS_PROC}
* @param pInParam {@link NET_IN_PTZ_STATUS_PROC}
* @param pOutParam {@link NET_OUT_PTZ_STATUS_PROC}
* @param nWaitTime
* @return
*/

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import lombok.extern.slf4j.Slf4j;

@ -1,6 +1,6 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import com.zhehekeji.web.lib.joyware.NetSDKLib.LLong;
import com.leaper.web.lib.joyware.NetSDKLib.LLong;
import com.sun.jna.Memory;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;

@ -1,4 +1,4 @@
package com.zhehekeji.web.lib.joyware;
package com.leaper.web.lib.joyware;
import com.sun.jna.Platform;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save