39 changed files with 1941 additions and 73 deletions
@ -0,0 +1,164 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
<parent> |
||||
|
<groupId>com.xr.device_net</groupId> |
||||
|
<artifactId>device_car</artifactId> |
||||
|
<version>1.0.1</version> |
||||
|
</parent> |
||||
|
<artifactId>device_gather</artifactId> |
||||
|
<name>${project.artifactId}</name> |
||||
|
<properties> |
||||
|
<java.version>1.8</java.version> |
||||
|
</properties> |
||||
|
<repositories> |
||||
|
<repository> |
||||
|
<releases> |
||||
|
<enabled>false</enabled> |
||||
|
</releases> |
||||
|
<snapshots> |
||||
|
<enabled>true</enabled> |
||||
|
</snapshots> |
||||
|
<id>ias-snapshots</id> |
||||
|
<name>Infinite Automation Snapshot Repository</name> |
||||
|
<url>https://maven.mangoautomation.net/repository/ias-snapshot/</url> |
||||
|
</repository> |
||||
|
<repository> |
||||
|
<releases> |
||||
|
<enabled>true</enabled> |
||||
|
</releases> |
||||
|
<snapshots> |
||||
|
<enabled>false</enabled> |
||||
|
</snapshots> |
||||
|
<id>ias-releases</id> |
||||
|
<name>Infinite Automation Release Repository</name> |
||||
|
<url>https://maven.mangoautomation.net/repository/ias-release/</url> |
||||
|
</repository> |
||||
|
</repositories> |
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter</artifactId> |
||||
|
</dependency> |
||||
|
<!--web 模块 --> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-web</artifactId> |
||||
|
</dependency> |
||||
|
<!--tomcat容器 --> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-tomcat</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.freemarker</groupId> |
||||
|
<artifactId>freemarker</artifactId> |
||||
|
<version>2.3.28</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>mysql</groupId> |
||||
|
<artifactId>mysql-connector-java</artifactId> |
||||
|
<version>8.0.27</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.baomidou</groupId> |
||||
|
<artifactId>mybatis-plus-boot-starter</artifactId> |
||||
|
<version>3.4.1</version> |
||||
|
</dependency> |
||||
|
<!-- netflix-eureka-client依赖--> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.cloud</groupId> |
||||
|
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> |
||||
|
</dependency> |
||||
|
<!-- spring cloud openfeign依赖--> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.cloud</groupId> |
||||
|
<artifactId>spring-cloud-starter-openfeign</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-starter-websocket</artifactId> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.alibaba</groupId> |
||||
|
<artifactId>fastjson</artifactId> |
||||
|
<version>1.2.78</version> |
||||
|
<scope>compile</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>commons-discovery</groupId> |
||||
|
<artifactId>commons-discovery</artifactId> |
||||
|
<version>0.2</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>commons-io</groupId> |
||||
|
<artifactId>commons-io</artifactId> |
||||
|
<version>2.6</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.baomidou</groupId> |
||||
|
<artifactId>mybatis-plus-generator</artifactId> |
||||
|
<version>3.4.1</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.baomidou</groupId> |
||||
|
<artifactId>dynamic-datasource-spring-boot-starter</artifactId> |
||||
|
<version>3.4.1</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>io.github.java-native</groupId> |
||||
|
<artifactId>jssc</artifactId> |
||||
|
<version>2.9.4</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>com.infiniteautomation</groupId> |
||||
|
<artifactId>modbus4j</artifactId> |
||||
|
<version>3.0.4</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.rxtx</groupId> |
||||
|
<artifactId>rxtx</artifactId> |
||||
|
<version>2.1.7</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.scream3r</groupId> |
||||
|
<artifactId>jssc</artifactId> |
||||
|
<version>2.8.0</version> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.bouncycastle</groupId> |
||||
|
<artifactId>bcprov-jdk15on</artifactId> |
||||
|
<version>1.59</version> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
|
||||
|
<build> |
||||
|
<resources> |
||||
|
<resource> |
||||
|
<directory>src/main/resources</directory> |
||||
|
<filtering>false</filtering> |
||||
|
<includes> |
||||
|
<include>**/*</include> |
||||
|
<include>**/*.fxml</include> |
||||
|
<include>**/fxml/*.fxml</include> |
||||
|
</includes> |
||||
|
</resource> |
||||
|
</resources> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-maven-plugin</artifactId> |
||||
|
<version>2.0.8.RELEASE</version> |
||||
|
<executions> |
||||
|
<execution> |
||||
|
<goals> |
||||
|
<goal>repackage</goal> |
||||
|
</goals> |
||||
|
</execution> |
||||
|
</executions> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
|
||||
|
</project> |
||||
@ -0,0 +1,19 @@ |
|||||
|
package com.xr.device; |
||||
|
|
||||
|
import org.springframework.boot.SpringApplication; |
||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication; |
||||
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; |
||||
|
import org.springframework.cloud.openfeign.EnableFeignClients; |
||||
|
import org.springframework.scheduling.annotation.EnableScheduling; |
||||
|
|
||||
|
@EnableScheduling//开启定时任务
|
||||
|
@SpringBootApplication |
||||
|
@EnableDiscoveryClient |
||||
|
@EnableFeignClients |
||||
|
public class DeviceGatherApplication { |
||||
|
|
||||
|
public static void main(String[] args) { |
||||
|
SpringApplication.run(DeviceGatherApplication.class, args); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
package com.xr.device.common.configvalue; |
||||
|
|
||||
|
import com.xr.device.common.utils.StaticPropUtil; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
@Component |
||||
|
public class StaticPropProxy { |
||||
|
public StaticPropProxy(StaticProperties staticProperties){ |
||||
|
StaticPropUtil.initDingDingProp(staticProperties); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package com.xr.device.common.configvalue; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import org.springframework.beans.factory.annotation.Value; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
@Component |
||||
|
@Data |
||||
|
public class StaticProperties { |
||||
|
|
||||
|
@Value("${upload.img.url}") |
||||
|
private String imgUrl; |
||||
|
|
||||
|
@Value("${upload.img.path}") |
||||
|
private String imgPath; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package com.xr.device.common.utils; |
||||
|
|
||||
|
|
||||
|
import com.xr.device.common.configvalue.StaticProperties; |
||||
|
|
||||
|
public class StaticPropUtil { |
||||
|
|
||||
|
public static String imgUrl; |
||||
|
|
||||
|
public static String imgPath; |
||||
|
|
||||
|
public static void initDingDingProp(StaticProperties dingProperties){ |
||||
|
imgUrl = dingProperties.getImgUrl(); |
||||
|
imgPath = dingProperties.getImgPath(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,185 @@ |
|||||
|
package com.xr.device.common.utils; |
||||
|
|
||||
|
import org.apache.poi.ss.usermodel.Workbook; |
||||
|
|
||||
|
import javax.imageio.ImageIO; |
||||
|
import java.awt.*; |
||||
|
import java.awt.geom.Rectangle2D; |
||||
|
import java.awt.image.BufferedImage; |
||||
|
import java.io.File; |
||||
|
import java.io.FileOutputStream; |
||||
|
import java.io.IOException; |
||||
|
import java.io.InputStream; |
||||
|
import java.net.URL; |
||||
|
import java.nio.file.Files; |
||||
|
import java.nio.file.Path; |
||||
|
import java.nio.file.Paths; |
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
public class UploadUtil { |
||||
|
|
||||
|
public static String uploadExcel(Workbook workbook,String path,String url1,String fileName) throws Exception{ |
||||
|
FileOutputStream outputStream =new FileOutputStream(path+fileName); |
||||
|
workbook.write(outputStream); |
||||
|
outputStream.close(); |
||||
|
String url = url1+fileName; |
||||
|
return url; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static String uploadImage(String clentIp,Integer configId,String fileName) throws Exception { |
||||
|
// 构建完整的路径
|
||||
|
String url = "http://"+clentIp+":8080/tao/snapshot"; |
||||
|
SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd-HH"); |
||||
|
String date = sim.format(new Date()); |
||||
|
String dates[] = date.split("-"); |
||||
|
|
||||
|
String year = dates[0]; |
||||
|
String month = dates[1]; |
||||
|
String day = dates[2]; |
||||
|
String ho = dates[3]; |
||||
|
String fullPath = StaticPropUtil.imgPath+configId + File.separator + year + File.separator + month + File.separator + day + File.separator +ho+File.separator+ fileName; |
||||
|
|
||||
|
// 创建目录结构
|
||||
|
Path directoryPath = Paths.get(StaticPropUtil.imgPath,configId.toString(), year, month, day,ho); |
||||
|
if (!Files.exists(directoryPath)) { |
||||
|
Files.createDirectories(directoryPath); |
||||
|
} |
||||
|
|
||||
|
downloadImage(url,fullPath); |
||||
|
|
||||
|
// 构建URL
|
||||
|
String url1 = StaticPropUtil.imgUrl+ configId + "/" + year + "/"+ month + "/" + day + "/" +ho+"/"+ fileName; |
||||
|
return url1; |
||||
|
} |
||||
|
|
||||
|
public static String uploadImage(BufferedImage buffer,Integer configId,String fileName) throws Exception { |
||||
|
// 构建完整的路径
|
||||
|
SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd-HH"); |
||||
|
String date = sim.format(new Date()); |
||||
|
String dates[] = date.split("-"); |
||||
|
|
||||
|
String year = dates[0]; |
||||
|
String month = dates[1]; |
||||
|
String day = dates[2]; |
||||
|
String ho = dates[3]; |
||||
|
String fullPath = StaticPropUtil.imgPath+configId + File.separator + year + File.separator + month + File.separator + day + File.separator +ho+File.separator+ fileName; |
||||
|
|
||||
|
// 创建目录结构
|
||||
|
Path directoryPath = Paths.get(StaticPropUtil.imgPath,configId.toString(), year, month, day,ho); |
||||
|
if (!Files.exists(directoryPath)) { |
||||
|
Files.createDirectories(directoryPath); |
||||
|
} |
||||
|
|
||||
|
downloadImage(buffer,fullPath); |
||||
|
|
||||
|
// 构建URL
|
||||
|
String url1 = StaticPropUtil.imgUrl+ configId + "/" + year + "/"+ month + "/" + day + "/" +ho+"/"+ fileName; |
||||
|
return url1; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static BufferedImage urlByImage(String url) throws IOException { |
||||
|
URL urlfile = new URL(url); |
||||
|
InputStream is2 = urlfile.openStream(); |
||||
|
BufferedImage uImg= ImageIO.read(is2); |
||||
|
return uImg; |
||||
|
} |
||||
|
|
||||
|
public static void delFile(String path,String url,String fileUrl){ |
||||
|
String filePath = fileUrl.replace(url,path).replace("/","\\"); |
||||
|
File file = new File(filePath); |
||||
|
if(file.exists()){ |
||||
|
file.delete(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static void downloadImage(String imageUrl, String destinationPath) throws IOException { |
||||
|
URL url = new URL(imageUrl); |
||||
|
try (InputStream in = url.openStream(); |
||||
|
FileOutputStream out = new FileOutputStream(destinationPath)) { |
||||
|
byte[] buffer = new byte[1024]; |
||||
|
int bytesRead; |
||||
|
while ((bytesRead = in.read(buffer)) != -1) { |
||||
|
out.write(buffer, 0, bytesRead); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static void downloadImage(BufferedImage bufferedImage, String destinationPath) throws IOException { |
||||
|
File file = new File(destinationPath); |
||||
|
ImageIO.write(bufferedImage,"jpg",file); |
||||
|
} |
||||
|
|
||||
|
public static BufferedImage drawRectangleAndText(BufferedImage image, double x1, double y1,double x2, double wid, double hei, String text1, String text2) { |
||||
|
// 创建一个Graphics2D对象
|
||||
|
Graphics2D g2d = image.createGraphics(); |
||||
|
|
||||
|
|
||||
|
// 设置抗锯齿
|
||||
|
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); |
||||
|
|
||||
|
|
||||
|
// 创建一个Rectangle2D.Double对象
|
||||
|
Rectangle2D.Double rect = new Rectangle2D.Double(x1, y1, wid, hei); |
||||
|
|
||||
|
// 绘制红色框
|
||||
|
g2d.setColor(Color.RED); |
||||
|
g2d.draw(rect); |
||||
|
// 设置粗线条
|
||||
|
g2d.setStroke(new BasicStroke(3.0f * 30)); // 设置线条宽度为3.0f
|
||||
|
|
||||
|
// 设置字体和颜色
|
||||
|
g2d.setFont(new Font("微软雅黑", Font.BOLD, 38)); // 使用支持中文的字体,增加字体大小
|
||||
|
|
||||
|
// 获取当前时间
|
||||
|
String currentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
||||
|
// 获取文本的宽度和高度
|
||||
|
FontMetrics fm = g2d.getFontMetrics(); |
||||
|
|
||||
|
// 绘制当前时间的背景矩形
|
||||
|
int padding = 20; |
||||
|
int currentTimeWidth = fm.stringWidth(currentTime); |
||||
|
int currentTimeHeight = fm.getHeight(); |
||||
|
int rectPadding = 5; // 背景矩形内边距
|
||||
|
g2d.setColor(new Color(0, 0, 0, 50)); // 黑色半透明背景
|
||||
|
g2d.fillRect(padding, padding, currentTimeWidth + 2 * rectPadding, currentTimeHeight + 2 * rectPadding); |
||||
|
|
||||
|
// 绘制当前时间在左上角,内边距为20px
|
||||
|
g2d.setColor(Color.WHITE); |
||||
|
int currentTimeX = padding + rectPadding + (currentTimeWidth + rectPadding - currentTimeWidth) / 2; |
||||
|
int currentTimeY = padding + rectPadding + fm.getAscent(); |
||||
|
g2d.drawString(currentTime, currentTimeX, currentTimeY); |
||||
|
|
||||
|
// 绘制文本2的背景矩形
|
||||
|
int text2Width = fm.stringWidth(text2); |
||||
|
int text2Height = fm.getHeight(); |
||||
|
g2d.setColor(new Color(0, 0, 0, 50)); // 黑色半透明背景
|
||||
|
g2d.fillRect(padding, padding + currentTimeHeight + rectPadding * 2, text2Width + 2 * rectPadding, text2Height + 2 * rectPadding); |
||||
|
|
||||
|
// 绘制文本2在时间的下面,内边距为20px
|
||||
|
g2d.setColor(Color.WHITE); |
||||
|
int text2X = padding + rectPadding + (text2Width + rectPadding - text2Width) / 2; |
||||
|
int text2Y = padding + currentTimeHeight + rectPadding * 3 + fm.getAscent(); |
||||
|
g2d.drawString(text2, text2X, text2Y); |
||||
|
|
||||
|
// 计算文本1的右上角位置
|
||||
|
int text1Width = fm.stringWidth(text1); |
||||
|
int text1X = (int) (x1 + wid); // 框的右上角位置
|
||||
|
int text1Y = (int) (y1 + fm.getAscent()); // 框的右上角紧挨着框
|
||||
|
g2d.setColor(Color.RED); |
||||
|
|
||||
|
g2d.drawString(text1, text1X, text1Y); |
||||
|
|
||||
|
|
||||
|
// 释放资源
|
||||
|
g2d.dispose(); |
||||
|
|
||||
|
return image; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,126 @@ |
|||||
|
package com.xr.device.model.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 java.io.Serializable; |
||||
|
import java.time.LocalDateTime; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* @TableName device_camera |
||||
|
*/ |
||||
|
@TableName(value ="device_camera") |
||||
|
@Data |
||||
|
public class DeviceCamera implements Serializable { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
@TableId(type = IdType.AUTO) |
||||
|
private Integer id; |
||||
|
|
||||
|
/** |
||||
|
* 摄像头编号 |
||||
|
*/ |
||||
|
private String deviceNo; |
||||
|
|
||||
|
/** |
||||
|
* 类型(1 usb 2 mipi 3 球机 4 枪机) |
||||
|
*/ |
||||
|
private String deviceType; |
||||
|
|
||||
|
/** |
||||
|
* IP |
||||
|
*/ |
||||
|
private String deviceIp; |
||||
|
|
||||
|
/** |
||||
|
* 端口 |
||||
|
*/ |
||||
|
private String devicePort; |
||||
|
|
||||
|
/** |
||||
|
* 账号 |
||||
|
*/ |
||||
|
private String account; |
||||
|
|
||||
|
/** |
||||
|
* 密码 |
||||
|
*/ |
||||
|
private String password; |
||||
|
|
||||
|
/** |
||||
|
* x轴 |
||||
|
*/ |
||||
|
private String x; |
||||
|
|
||||
|
/** |
||||
|
* y轴 |
||||
|
*/ |
||||
|
private String y; |
||||
|
|
||||
|
/** |
||||
|
* z轴 |
||||
|
*/ |
||||
|
private String z; |
||||
|
|
||||
|
/** |
||||
|
* 摄像头型号 |
||||
|
*/ |
||||
|
private String deviceModel; |
||||
|
|
||||
|
/** |
||||
|
* 安装位置 |
||||
|
*/ |
||||
|
private String position; |
||||
|
|
||||
|
/** |
||||
|
* 品牌 |
||||
|
*/ |
||||
|
private String brand; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
private String remarks; |
||||
|
|
||||
|
/** |
||||
|
* 状态(0未使用 1已使用) |
||||
|
*/ |
||||
|
private String status; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createUser; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
private LocalDateTime createTime; |
||||
|
|
||||
|
/** |
||||
|
* 修改人 |
||||
|
*/ |
||||
|
private String updateUser; |
||||
|
|
||||
|
/** |
||||
|
* 修改时间 |
||||
|
*/ |
||||
|
private LocalDateTime updateTime; |
||||
|
|
||||
|
/** |
||||
|
* 传输间隔 |
||||
|
*/ |
||||
|
private Integer transmissionInterval; |
||||
|
|
||||
|
/** |
||||
|
* 对焦时间 |
||||
|
*/ |
||||
|
private Integer warmup; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
} |
||||
@ -0,0 +1,141 @@ |
|||||
|
package com.xr.device.model.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 java.io.Serializable; |
||||
|
import java.time.LocalDateTime; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* @TableName focal_length_config |
||||
|
*/ |
||||
|
@TableName(value ="focal_length_config") |
||||
|
@Data |
||||
|
public class FocalLengthConfig implements Serializable { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
@TableId(type = IdType.AUTO) |
||||
|
private Integer id; |
||||
|
|
||||
|
/** |
||||
|
* 表计配置编号 |
||||
|
*/ |
||||
|
private Integer configId; |
||||
|
|
||||
|
/** |
||||
|
* 焦距名称 |
||||
|
*/ |
||||
|
private String focalName; |
||||
|
|
||||
|
/** |
||||
|
* 焦距tabs下标 |
||||
|
*/ |
||||
|
private String focalIndex; |
||||
|
|
||||
|
/** |
||||
|
* 截图框宽 |
||||
|
*/ |
||||
|
private Double copperWid; |
||||
|
|
||||
|
/** |
||||
|
* 截图框高 |
||||
|
*/ |
||||
|
private Double copperHei; |
||||
|
|
||||
|
/** |
||||
|
* 截图框X坐标 |
||||
|
*/ |
||||
|
private Double copperX; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
private Double copperX2; |
||||
|
|
||||
|
/** |
||||
|
* 截图框Y坐标 |
||||
|
*/ |
||||
|
private Double copperY; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
private Double copperY2; |
||||
|
|
||||
|
/** |
||||
|
* 1指针表计,2数字表计,3状态类 |
||||
|
*/ |
||||
|
private String configType; |
||||
|
|
||||
|
/** |
||||
|
* 指针最小值 |
||||
|
*/ |
||||
|
private Double meterMin; |
||||
|
|
||||
|
/** |
||||
|
* 指针最大值 |
||||
|
*/ |
||||
|
private Double meterMax; |
||||
|
|
||||
|
/** |
||||
|
* 旋转角度 |
||||
|
*/ |
||||
|
private Integer rotate; |
||||
|
|
||||
|
/** |
||||
|
* 缩放倍数 |
||||
|
*/ |
||||
|
private Double scale; |
||||
|
|
||||
|
/** |
||||
|
* 状态类状态数量 |
||||
|
*/ |
||||
|
private Integer stateNum; |
||||
|
|
||||
|
/** |
||||
|
* 保存状态类多个状态的结果集 |
||||
|
*/ |
||||
|
private String parameter; |
||||
|
|
||||
|
/** |
||||
|
* 解析得测试结果 |
||||
|
*/ |
||||
|
private String result; |
||||
|
|
||||
|
/** |
||||
|
* 算法:0圆形表计1扇形表计 |
||||
|
*/ |
||||
|
private Integer algorithm; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createUser; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
private LocalDateTime createTime; |
||||
|
|
||||
|
/** |
||||
|
* 修改人 |
||||
|
*/ |
||||
|
private String updateUser; |
||||
|
|
||||
|
/** |
||||
|
* 修改时间 |
||||
|
*/ |
||||
|
private LocalDateTime updateTime; |
||||
|
|
||||
|
/** |
||||
|
* 焦距图片 |
||||
|
*/ |
||||
|
private byte[] focalPicture; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
} |
||||
@ -0,0 +1,180 @@ |
|||||
|
package com.xr.device.model.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 java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* @TableName meter_config |
||||
|
*/ |
||||
|
@TableName(value ="meter_config") |
||||
|
@Data |
||||
|
public class MeterConfig implements Serializable { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
@TableId(type = IdType.AUTO) |
||||
|
private Integer id; |
||||
|
|
||||
|
/** |
||||
|
* ids5000表id |
||||
|
*/ |
||||
|
private Integer ids5000Id; |
||||
|
|
||||
|
/** |
||||
|
* 间隔类型 1 分钟 2 小时 3 天 |
||||
|
*/ |
||||
|
private Integer intervalType; |
||||
|
|
||||
|
/** |
||||
|
* 电压等级(1安全电压2低压3高压4超高压5特高压) |
||||
|
*/ |
||||
|
private String voltageClass; |
||||
|
|
||||
|
/** |
||||
|
* 所属间隔 |
||||
|
*/ |
||||
|
private String owningInterval; |
||||
|
|
||||
|
/** |
||||
|
* 识别间隔 |
||||
|
*/ |
||||
|
private String identificationInterval; |
||||
|
|
||||
|
/** |
||||
|
* 所属设备 |
||||
|
*/ |
||||
|
private String deviceName; |
||||
|
|
||||
|
/** |
||||
|
* y坐标 |
||||
|
*/ |
||||
|
private Double locationY; |
||||
|
|
||||
|
/** |
||||
|
* x坐标 |
||||
|
*/ |
||||
|
private Double locationX; |
||||
|
|
||||
|
/** |
||||
|
* 设备类型 |
||||
|
*/ |
||||
|
private String deviceType; |
||||
|
|
||||
|
/** |
||||
|
* 表计编号 |
||||
|
*/ |
||||
|
private String meterCode; |
||||
|
|
||||
|
/** |
||||
|
* 表计名称 |
||||
|
*/ |
||||
|
private String meterName; |
||||
|
|
||||
|
/** |
||||
|
* 所属摄像头 |
||||
|
*/ |
||||
|
private Integer cameraId; |
||||
|
|
||||
|
/** |
||||
|
* 告警最小值 |
||||
|
*/ |
||||
|
private Double warningMax; |
||||
|
|
||||
|
/** |
||||
|
* 告警最大值 |
||||
|
*/ |
||||
|
private Double warningMin; |
||||
|
|
||||
|
/** |
||||
|
* 表计类型配置编号 |
||||
|
*/ |
||||
|
private Integer typeId; |
||||
|
|
||||
|
/** |
||||
|
* 状态(0停用1启用) |
||||
|
*/ |
||||
|
private Integer status; |
||||
|
|
||||
|
/** |
||||
|
* 首次识别时间 |
||||
|
*/ |
||||
|
private Date firstTime; |
||||
|
|
||||
|
/** |
||||
|
* 算法类型 1usb2mipi 3内部算法 |
||||
|
*/ |
||||
|
private String algorithmType; |
||||
|
|
||||
|
/** |
||||
|
* 执行间隔时间 |
||||
|
*/ |
||||
|
private Integer intervalTime; |
||||
|
|
||||
|
/** |
||||
|
* 焦距数量 |
||||
|
*/ |
||||
|
private Integer focalNumber; |
||||
|
|
||||
|
/** |
||||
|
* 超参配置 |
||||
|
*/ |
||||
|
private String parameterConfig; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
private String remarks; |
||||
|
|
||||
|
/** |
||||
|
* 61850读数模型 |
||||
|
*/ |
||||
|
private String iec61850mx; |
||||
|
|
||||
|
/** |
||||
|
* 1校准 其他不校准 |
||||
|
*/ |
||||
|
private Integer isJz; |
||||
|
|
||||
|
/** |
||||
|
* 校准值 |
||||
|
*/ |
||||
|
private String jzVal; |
||||
|
|
||||
|
/** |
||||
|
* 0 未初始化 1已初始化 |
||||
|
*/ |
||||
|
private String initStatus; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createUser; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
private Date createTime; |
||||
|
|
||||
|
/** |
||||
|
* 修改人 |
||||
|
*/ |
||||
|
private String updateUser; |
||||
|
|
||||
|
/** |
||||
|
* 修改时间 |
||||
|
*/ |
||||
|
private Date updateTime; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private String deviceIp; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
} |
||||
@ -0,0 +1,96 @@ |
|||||
|
package com.xr.device.model.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 java.io.Serializable; |
||||
|
import java.time.LocalDateTime; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
* @TableName meter_reading_record |
||||
|
*/ |
||||
|
@TableName(value ="meter_reading_record") |
||||
|
@Data |
||||
|
public class MeterReadingRecord implements Serializable { |
||||
|
/** |
||||
|
* 主键id |
||||
|
*/ |
||||
|
@TableId(type = IdType.AUTO) |
||||
|
private Integer id; |
||||
|
|
||||
|
/** |
||||
|
* 表计id |
||||
|
*/ |
||||
|
private Integer meterId; |
||||
|
|
||||
|
/** |
||||
|
* 表计编号 |
||||
|
*/ |
||||
|
private String meterCode; |
||||
|
|
||||
|
/** |
||||
|
* 表计类型id |
||||
|
*/ |
||||
|
private Integer meterTypeId; |
||||
|
|
||||
|
/** |
||||
|
* 表计类型名称 |
||||
|
*/ |
||||
|
private String meterTypeName; |
||||
|
|
||||
|
/** |
||||
|
* 所属间隔 |
||||
|
*/ |
||||
|
private String owningInterval; |
||||
|
|
||||
|
/** |
||||
|
* 读数时间 |
||||
|
*/ |
||||
|
private LocalDateTime readingTime; |
||||
|
|
||||
|
/** |
||||
|
* 读数类型(1 一体化电源 2 AI摄像头 3 串口) |
||||
|
*/ |
||||
|
private Integer readingType; |
||||
|
|
||||
|
/** |
||||
|
* 0 遥控 1遥信 2遥测 |
||||
|
*/ |
||||
|
private Integer dataType; |
||||
|
|
||||
|
/** |
||||
|
* 读数值 |
||||
|
*/ |
||||
|
private String readingValue; |
||||
|
|
||||
|
/** |
||||
|
* 表计照片 |
||||
|
*/ |
||||
|
private String readingUrl; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createUser; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
private LocalDateTime createTime; |
||||
|
|
||||
|
/** |
||||
|
* 修改人 |
||||
|
*/ |
||||
|
private String updateUser; |
||||
|
|
||||
|
/** |
||||
|
* 修改时间 |
||||
|
*/ |
||||
|
private LocalDateTime updateTime; |
||||
|
|
||||
|
@TableField(exist = false) |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
} |
||||
@ -0,0 +1,20 @@ |
|||||
|
package com.xr.device.model.mapper; |
||||
|
|
||||
|
import com.xr.device.model.entity.DeviceCamera; |
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【device_camera】的数据库操作Mapper |
||||
|
* @createDate 2024-06-25 17:30:54 |
||||
|
* @Entity com.xr.device.model.entity.DeviceCamera |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface DeviceCameraMapper extends BaseMapper<DeviceCamera> { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,20 @@ |
|||||
|
package com.xr.device.model.mapper; |
||||
|
|
||||
|
import com.xr.device.model.entity.FocalLengthConfig; |
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【focal_length_config】的数据库操作Mapper |
||||
|
* @createDate 2024-06-25 17:31:06 |
||||
|
* @Entity com.xr.device.model.entity.FocalLengthConfig |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface FocalLengthConfigMapper extends BaseMapper<FocalLengthConfig> { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,24 @@ |
|||||
|
package com.xr.device.model.mapper; |
||||
|
|
||||
|
import com.xr.device.model.entity.MeterConfig; |
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【meter_config】的数据库操作Mapper |
||||
|
* @createDate 2024-06-25 17:30:43 |
||||
|
* @Entity com.xr.device.model.entity.MeterConfig |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface MeterConfigMapper extends BaseMapper<MeterConfig> { |
||||
|
|
||||
|
List<MeterConfig> getMeterList(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,20 @@ |
|||||
|
package com.xr.device.model.mapper; |
||||
|
|
||||
|
import com.xr.device.model.entity.MeterReadingRecord; |
||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【meter_reading_record】的数据库操作Mapper |
||||
|
* @createDate 2024-06-25 17:30:30 |
||||
|
* @Entity com.xr.device.model.entity.MeterReadingRecord |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface MeterReadingRecordMapper extends BaseMapper<MeterReadingRecord> { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,13 @@ |
|||||
|
package com.xr.device.model.service; |
||||
|
|
||||
|
import com.xr.device.model.entity.DeviceCamera; |
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【device_camera】的数据库操作Service |
||||
|
* @createDate 2024-06-25 17:30:54 |
||||
|
*/ |
||||
|
public interface DeviceCameraService extends IService<DeviceCamera> { |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
package com.xr.device.model.service; |
||||
|
|
||||
|
import com.xr.device.model.entity.FocalLengthConfig; |
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【focal_length_config】的数据库操作Service |
||||
|
* @createDate 2024-06-25 17:31:06 |
||||
|
*/ |
||||
|
public interface FocalLengthConfigService extends IService<FocalLengthConfig> { |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package com.xr.device.model.service; |
||||
|
|
||||
|
import com.xr.device.model.entity.MeterConfig; |
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【meter_config】的数据库操作Service |
||||
|
* @createDate 2024-06-25 17:30:43 |
||||
|
*/ |
||||
|
public interface MeterConfigService extends IService<MeterConfig> { |
||||
|
|
||||
|
List<MeterConfig> getMeterList(); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
package com.xr.device.model.service; |
||||
|
|
||||
|
import com.xr.device.model.entity.MeterReadingRecord; |
||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【meter_reading_record】的数据库操作Service |
||||
|
* @createDate 2024-06-25 17:30:30 |
||||
|
*/ |
||||
|
public interface MeterReadingRecordService extends IService<MeterReadingRecord> { |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,24 @@ |
|||||
|
package com.xr.device.model.service.impl; |
||||
|
|
||||
|
import com.baomidou.dynamic.datasource.annotation.DS; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.xr.device.model.entity.DeviceCamera; |
||||
|
import com.xr.device.model.service.DeviceCameraService; |
||||
|
import com.xr.device.model.mapper.DeviceCameraMapper; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【device_camera】的数据库操作Service实现 |
||||
|
* @createDate 2024-06-25 17:30:54 |
||||
|
*/ |
||||
|
@Service |
||||
|
@DS("db2") |
||||
|
public class DeviceCameraServiceImpl extends ServiceImpl<DeviceCameraMapper, DeviceCamera> |
||||
|
implements DeviceCameraService{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,24 @@ |
|||||
|
package com.xr.device.model.service.impl; |
||||
|
|
||||
|
import com.baomidou.dynamic.datasource.annotation.DS; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.xr.device.model.entity.FocalLengthConfig; |
||||
|
import com.xr.device.model.service.FocalLengthConfigService; |
||||
|
import com.xr.device.model.mapper.FocalLengthConfigMapper; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【focal_length_config】的数据库操作Service实现 |
||||
|
* @createDate 2024-06-25 17:31:06 |
||||
|
*/ |
||||
|
@Service |
||||
|
@DS("db2") |
||||
|
public class FocalLengthConfigServiceImpl extends ServiceImpl<FocalLengthConfigMapper, FocalLengthConfig> |
||||
|
implements FocalLengthConfigService{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,30 @@ |
|||||
|
package com.xr.device.model.service.impl; |
||||
|
|
||||
|
import com.baomidou.dynamic.datasource.annotation.DS; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.xr.device.model.entity.MeterConfig; |
||||
|
import com.xr.device.model.service.MeterConfigService; |
||||
|
import com.xr.device.model.mapper.MeterConfigMapper; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【meter_config】的数据库操作Service实现 |
||||
|
* @createDate 2024-06-25 17:30:43 |
||||
|
*/ |
||||
|
@Service |
||||
|
@DS("db2") |
||||
|
public class MeterConfigServiceImpl extends ServiceImpl<MeterConfigMapper, MeterConfig> |
||||
|
implements MeterConfigService{ |
||||
|
|
||||
|
@Override |
||||
|
public List<MeterConfig> getMeterList() { |
||||
|
return ((MeterConfigMapper)this.baseMapper).getMeterList(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,24 @@ |
|||||
|
package com.xr.device.model.service.impl; |
||||
|
|
||||
|
import com.baomidou.dynamic.datasource.annotation.DS; |
||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
import com.xr.device.model.entity.MeterReadingRecord; |
||||
|
import com.xr.device.model.service.MeterReadingRecordService; |
||||
|
import com.xr.device.model.mapper.MeterReadingRecordMapper; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
/** |
||||
|
* @author 范亚杰 |
||||
|
* @description 针对表【meter_reading_record】的数据库操作Service实现 |
||||
|
* @createDate 2024-06-25 17:30:30 |
||||
|
*/ |
||||
|
@Service |
||||
|
@DS("db2") |
||||
|
public class MeterReadingRecordServiceImpl extends ServiceImpl<MeterReadingRecordMapper, MeterReadingRecord> |
||||
|
implements MeterReadingRecordService{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,26 @@ |
|||||
|
package com.xr.device.schedule; |
||||
|
|
||||
|
import com.xr.device.model.entity.MeterConfig; |
||||
|
import com.xr.device.model.service.FocalLengthConfigService; |
||||
|
import com.xr.device.model.service.MeterConfigService; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.springframework.scheduling.annotation.Scheduled; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Component |
||||
|
@RequiredArgsConstructor |
||||
|
public class GetMeterSchedule { |
||||
|
|
||||
|
private final MeterConfigService meterConfigService; |
||||
|
|
||||
|
private final FocalLengthConfigService focalLengthConfigService; |
||||
|
|
||||
|
@Scheduled(cron = "0 0 0/3 * * ?") |
||||
|
public void getMeterSchedule(){ |
||||
|
List<MeterConfig> configs = meterConfigService.getMeterList(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,80 @@ |
|||||
|
server: |
||||
|
port: 8085 |
||||
|
servlet: |
||||
|
context-path: /cars-api |
||||
|
#context-path: / |
||||
|
|
||||
|
spring: |
||||
|
datasource: |
||||
|
dynamic: |
||||
|
primary: db1 |
||||
|
strict: false |
||||
|
datasource: |
||||
|
db1: |
||||
|
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
|
type: com.zaxxer.hikari.HikariDataSource |
||||
|
url: jdbc:mysql://116.196.120.81:3306/device_system?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false |
||||
|
username: root |
||||
|
password: 5ea47c0bdd7146ebbd53020eca@672307 |
||||
|
db2: |
||||
|
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
|
type: com.zaxxer.hikari.HikariDataSource |
||||
|
url: jdbc:mysql://116.196.120.81:3306/image_analysis_zs?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false |
||||
|
username: root |
||||
|
password: 5ea47c0bdd7146ebbd53020eca@672307 |
||||
|
#Hikari连接池配置 |
||||
|
hikari: |
||||
|
#池中维护的最小空闲连接数 |
||||
|
minimum-idle: 5 |
||||
|
#池中最大连接数,包括闲置和使用中的连接 |
||||
|
maximum-pool-size: 15 |
||||
|
#自动提交从池中返回的连接 |
||||
|
auto-commit: true |
||||
|
#连接允许在池中闲置的最长时间 |
||||
|
idle-timeout: 30000 |
||||
|
#连接池的用户定义名称,主要出现在日志记录和JMX管理控制台中以识别池和池配置 |
||||
|
pool-name: DatebookHikariCP |
||||
|
#池中连接最长生命周期 |
||||
|
max-lifetime: 18000000 |
||||
|
#等待来自池的连接的最大毫秒数 |
||||
|
connection-timeout: 30000 |
||||
|
#验证该连接是否是有效的查询语句 |
||||
|
connection-test-query: select 1 from dual |
||||
|
cloud: |
||||
|
inetutils: |
||||
|
timeout-seconds: 1000 |
||||
|
config: |
||||
|
enabled: false |
||||
|
# redis 相关 |
||||
|
redis: |
||||
|
host: ${REDIS_URL:localhost} |
||||
|
port: ${REDIS_PORT:6379} |
||||
|
password: ${REDIS_PWD:111111} |
||||
|
timeout: 10000 |
||||
|
jedis: |
||||
|
pool: |
||||
|
max-active: 1000 |
||||
|
max-wait: -1ms |
||||
|
max-idle: 10 |
||||
|
min-idle: 5 |
||||
|
swagger: |
||||
|
show: true |
||||
|
analysis: |
||||
|
url: http://192.168.1.123:9000/vi/syncrec |
||||
|
|
||||
|
upload: |
||||
|
img: |
||||
|
url: http://192.168.1.83:18081/file/img/zs/ |
||||
|
path: D:\\service\\fileService\\img\\zs\\ |
||||
|
python: |
||||
|
path: C:\\Users\\admin\\Anaconda3\\envs\\myconda310\\python.exe |
||||
|
modelPath: D:\\smartGrid\\smartGrid\\models |
||||
|
eureka: |
||||
|
instance: |
||||
|
instance-id: ${spring.cloud.client.ip-address}:${server.port} |
||||
|
prefer-ip-address: true |
||||
|
client: |
||||
|
healthcheck: |
||||
|
enabled: true |
||||
|
service-url: |
||||
|
defaultZone: http://localhost:8084/eureka |
||||
@ -0,0 +1,80 @@ |
|||||
|
server: |
||||
|
port: 8085 |
||||
|
servlet: |
||||
|
context-path: /cars-api |
||||
|
#context-path: / |
||||
|
|
||||
|
spring: |
||||
|
datasource: |
||||
|
dynamic: |
||||
|
primary: db1 |
||||
|
strict: false |
||||
|
datasource: |
||||
|
db1: |
||||
|
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
|
type: com.zaxxer.hikari.HikariDataSource |
||||
|
url: jdbc:mysql://116.196.120.81:3306/device_system?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false |
||||
|
username: root |
||||
|
password: 5ea47c0bdd7146ebbd53020eca@672307 |
||||
|
db2: |
||||
|
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
|
type: com.zaxxer.hikari.HikariDataSource |
||||
|
url: jdbc:mysql://116.196.120.81:3306/image_analysis_zs?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false |
||||
|
username: root |
||||
|
password: 5ea47c0bdd7146ebbd53020eca@672307 |
||||
|
#Hikari连接池配置 |
||||
|
hikari: |
||||
|
#池中维护的最小空闲连接数 |
||||
|
minimum-idle: 5 |
||||
|
#池中最大连接数,包括闲置和使用中的连接 |
||||
|
maximum-pool-size: 15 |
||||
|
#自动提交从池中返回的连接 |
||||
|
auto-commit: true |
||||
|
#连接允许在池中闲置的最长时间 |
||||
|
idle-timeout: 30000 |
||||
|
#连接池的用户定义名称,主要出现在日志记录和JMX管理控制台中以识别池和池配置 |
||||
|
pool-name: DatebookHikariCP |
||||
|
#池中连接最长生命周期 |
||||
|
max-lifetime: 18000000 |
||||
|
#等待来自池的连接的最大毫秒数 |
||||
|
connection-timeout: 30000 |
||||
|
#验证该连接是否是有效的查询语句 |
||||
|
connection-test-query: select 1 from dual |
||||
|
cloud: |
||||
|
inetutils: |
||||
|
timeout-seconds: 1000 |
||||
|
config: |
||||
|
enabled: false |
||||
|
# redis 相关 |
||||
|
redis: |
||||
|
host: ${REDIS_URL:localhost} |
||||
|
port: ${REDIS_PORT:6379} |
||||
|
password: ${REDIS_PWD:111111} |
||||
|
timeout: 10000 |
||||
|
jedis: |
||||
|
pool: |
||||
|
max-active: 1000 |
||||
|
max-wait: -1ms |
||||
|
max-idle: 10 |
||||
|
min-idle: 5 |
||||
|
swagger: |
||||
|
show: true |
||||
|
analysis: |
||||
|
url: http://192.168.1.123:9000/vi/syncrec |
||||
|
|
||||
|
upload: |
||||
|
img: |
||||
|
url: http://192.168.1.83:18081/file/img/zs/ |
||||
|
path: D:\\service\\fileService\\img\\zs\\ |
||||
|
python: |
||||
|
path: C:\\Users\\admin\\Anaconda3\\envs\\myconda310\\python.exe |
||||
|
modelPath: D:\\smartGrid\\smartGrid\\models |
||||
|
eureka: |
||||
|
instance: |
||||
|
instance-id: ${spring.cloud.client.ip-address}:${server.port} |
||||
|
prefer-ip-address: true |
||||
|
client: |
||||
|
healthcheck: |
||||
|
enabled: true |
||||
|
service-url: |
||||
|
defaultZone: http://localhost:8084/eureka |
||||
@ -0,0 +1,82 @@ |
|||||
|
spring: |
||||
|
profiles: |
||||
|
#active: dev #开发环境 |
||||
|
# active: test #测试环境5 |
||||
|
active: dev #生产环境 |
||||
|
# active: prod #生产环境 |
||||
|
application: |
||||
|
name: gather |
||||
|
|
||||
|
devtools: |
||||
|
restart: |
||||
|
log-condition-evaluation-delta: false |
||||
|
security: |
||||
|
user: |
||||
|
name: admin |
||||
|
password: admin |
||||
|
servlet: |
||||
|
multipart: |
||||
|
max-file-size: 500MB |
||||
|
max-request-size: 500MB |
||||
|
jackson: |
||||
|
date-format: yyyy-MM-dd |
||||
|
time-zone: GMT+8 |
||||
|
default-property-inclusion: non_null |
||||
|
mybatis-plus: |
||||
|
mapper-locations: classpath:mapper/*Mapper.xml |
||||
|
type-aliases-package: com.xr.device |
||||
|
# 在查询语句的是否,对Map或者是entity进行映射赋值的时候null也进行映射。默认false,不进行映射 |
||||
|
configuration: |
||||
|
map-underscore-to-camel-case: true |
||||
|
call-setters-on-nulls: true |
||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl |
||||
|
# 设置更新或者修改的时候的策略,不进行校验,否则如果是null则不会进行更新或者插入,当然在@TableField注解进行指定单个字段 |
||||
|
global-config: |
||||
|
db-config: |
||||
|
insert-strategy: ignored |
||||
|
update-strategy: ignored |
||||
|
logging: |
||||
|
level: |
||||
|
root: info |
||||
|
com.xr: debug |
||||
|
org: |
||||
|
springframework: |
||||
|
boot: |
||||
|
autoconfigure: error |
||||
|
|
||||
|
### Ribbon 配置 |
||||
|
ribbon: |
||||
|
# 连接超时 |
||||
|
ConnectTimeout: 100000 |
||||
|
# 响应超时 |
||||
|
ReadTimeout: 100000 |
||||
|
### Feign 配置 |
||||
|
feign: |
||||
|
# 开启断路器(熔断器) |
||||
|
hystrix: |
||||
|
enabled: true |
||||
|
### Hystrix 配置 |
||||
|
hystrix: |
||||
|
# 这样将会自动配置一个 Hystrix 并发策略插件的 hook,这个 hook 会将 SecurityContext 从主线程传输到 Hystrix 的命令。 |
||||
|
# 因为 Hystrix 不允许注册多个 Hystrix 策略,所以可以声明 HystrixConcurrencyStrategy |
||||
|
# 为一个 Spring bean 来实现扩展。Spring Cloud 会在 Spring 的上下文中查找你的实现,并将其包装在自己的插件中。 |
||||
|
shareSecurityContext: true |
||||
|
command: |
||||
|
default: |
||||
|
circuitBreaker: |
||||
|
# 当在配置时间窗口内达到此数量的失败后,进行短路。默认20个 |
||||
|
requestVolumeThreshold: 100 |
||||
|
# 触发短路的时间值,当该值设为5000时,则当触发 circuit break 后的5000毫秒内都会拒绝request |
||||
|
# 也就是5000毫秒后才会关闭circuit。默认5000 |
||||
|
sleepWindowInMilliseconds: 5000 |
||||
|
# 强制打开熔断器,如果打开这个开关,那么拒绝所有request,默认false |
||||
|
forceOpen: false |
||||
|
# 强制关闭熔断器 如果这个开关打开,circuit将一直关闭且忽略,默认false |
||||
|
forceClosed: false |
||||
|
execution: |
||||
|
isolation: |
||||
|
thread: |
||||
|
# 熔断器超时时间,默认:1000/毫秒 |
||||
|
timeoutInMilliseconds: 20000 |
||||
|
|
||||
|
|
||||
@ -0,0 +1,23 @@ |
|||||
|
================================================================== |
||||
|
// _ooOoo_ // |
||||
|
// o8888888o // |
||||
|
// 88" . "88 // |
||||
|
// (| ^_^ |) // |
||||
|
// O\ = /O // |
||||
|
// ____/`---'\____ // |
||||
|
// .' \\| |// `. // |
||||
|
// / \\||| : |||// \ // |
||||
|
// / _||||| -:- |||||- \ // |
||||
|
// | | \\\ - /// | | // |
||||
|
// | \_| ''\---/'' | | // |
||||
|
// \ .-\__ `-` ___/-. / // |
||||
|
// ___`. .' /--.--\ `. . ___ // |
||||
|
// ."" '< `.___\_<|>_/___.' >'"". // |
||||
|
// | | : `- \`.;`\ _ /`;.`/ - ` : | | // |
||||
|
// \ \ `-. \_ __\ /__ _/ .-` / / // |
||||
|
// ========`-.____`-.___\_____/___.-`____.-'======== // |
||||
|
// `=---=' // |
||||
|
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // |
||||
|
// 佛祖保佑 永不宕机 永无BUG // |
||||
|
\\\\ //// |
||||
|
============================================================= |
||||
@ -0,0 +1,51 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<configuration debug="false"> |
||||
|
|
||||
|
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> |
||||
|
<property name="LOG_HOME" value="/home" /> |
||||
|
|
||||
|
<!--控制台日志, 控制台输出 --> |
||||
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> |
||||
|
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
||||
|
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--> |
||||
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
||||
|
</encoder> |
||||
|
</appender> |
||||
|
|
||||
|
<!--文件日志, 按照每天生成日志文件 --> |
||||
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||
|
<!--日志文件输出的文件名--> |
||||
|
<FileNamePattern>${LOG_HOME}/deviceCar.log.%d{yyyy-MM-dd}.log</FileNamePattern> |
||||
|
<!--日志文件保留天数--> |
||||
|
<MaxHistory>30</MaxHistory> |
||||
|
</rollingPolicy> |
||||
|
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> |
||||
|
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> |
||||
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
||||
|
</encoder> |
||||
|
<!--日志文件最大的大小--> |
||||
|
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> |
||||
|
<MaxFileSize>10MB</MaxFileSize> |
||||
|
</triggeringPolicy> |
||||
|
</appender> |
||||
|
|
||||
|
<!-- show parameters for hibernate sql 专为 Hibernate 定制 --> |
||||
|
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /> |
||||
|
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" /> |
||||
|
<logger name="org.hibernate.SQL" level="DEBUG" /> |
||||
|
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" /> |
||||
|
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /> |
||||
|
|
||||
|
<!--myibatis log configure--> |
||||
|
<logger name="com.apache.mybatis" level="TRACE"/> |
||||
|
<logger name="java.sql.Connection" level="DEBUG"/> |
||||
|
<logger name="java.sql.Statement" level="DEBUG"/> |
||||
|
<logger name="java.sql.PreparedStatement" level="DEBUG"/> |
||||
|
|
||||
|
<!-- 日志输出级别 --> |
||||
|
<root level="DEBUG"> |
||||
|
<appender-ref ref="STDOUT" /> |
||||
|
<appender-ref ref="FILE"/> |
||||
|
</root> |
||||
|
</configuration> |
||||
@ -0,0 +1,40 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper |
||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.xr.device.model.mapper.DeviceCameraMapper"> |
||||
|
|
||||
|
<resultMap id="BaseResultMap" type="com.xr.device.model.entity.DeviceCamera"> |
||||
|
<id property="id" column="id" jdbcType="INTEGER"/> |
||||
|
<result property="deviceNo" column="device_no" jdbcType="VARCHAR"/> |
||||
|
<result property="deviceType" column="device_type" jdbcType="VARCHAR"/> |
||||
|
<result property="deviceIp" column="device_ip" jdbcType="VARCHAR"/> |
||||
|
<result property="devicePort" column="device_port" jdbcType="VARCHAR"/> |
||||
|
<result property="account" column="account" jdbcType="VARCHAR"/> |
||||
|
<result property="password" column="password" jdbcType="VARCHAR"/> |
||||
|
<result property="x" column="x" jdbcType="VARCHAR"/> |
||||
|
<result property="y" column="y" jdbcType="VARCHAR"/> |
||||
|
<result property="z" column="z" jdbcType="VARCHAR"/> |
||||
|
<result property="deviceModel" column="device_model" jdbcType="VARCHAR"/> |
||||
|
<result property="position" column="position" jdbcType="VARCHAR"/> |
||||
|
<result property="brand" column="brand" jdbcType="VARCHAR"/> |
||||
|
<result property="remarks" column="remarks" jdbcType="VARCHAR"/> |
||||
|
<result property="status" column="status" jdbcType="VARCHAR"/> |
||||
|
<result property="createUser" column="create_user" jdbcType="VARCHAR"/> |
||||
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/> |
||||
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="transmissionInterval" column="transmission_interval" jdbcType="INTEGER"/> |
||||
|
<result property="warmup" column="warmup" jdbcType="INTEGER"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="Base_Column_List"> |
||||
|
id,device_no,device_type, |
||||
|
device_ip,device_port,account, |
||||
|
password,x,y, |
||||
|
z,device_model,position, |
||||
|
brand,remarks,status, |
||||
|
create_user,create_time,update_user, |
||||
|
update_time,transmission_interval,warmup |
||||
|
</sql> |
||||
|
</mapper> |
||||
@ -0,0 +1,43 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper |
||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.xr.device.model.mapper.FocalLengthConfigMapper"> |
||||
|
|
||||
|
<resultMap id="BaseResultMap" type="com.xr.device.model.entity.FocalLengthConfig"> |
||||
|
<id property="id" column="id" jdbcType="INTEGER"/> |
||||
|
<result property="configId" column="config_id" jdbcType="INTEGER"/> |
||||
|
<result property="focalName" column="focal_name" jdbcType="VARCHAR"/> |
||||
|
<result property="focalIndex" column="focal_index" jdbcType="VARCHAR"/> |
||||
|
<result property="copperWid" column="copper_wid" jdbcType="DOUBLE"/> |
||||
|
<result property="copperHei" column="copper_hei" jdbcType="DOUBLE"/> |
||||
|
<result property="copperX" column="copper_x" jdbcType="DOUBLE"/> |
||||
|
<result property="copperX2" column="copper_x2" jdbcType="DOUBLE"/> |
||||
|
<result property="copperY" column="copper_y" jdbcType="DOUBLE"/> |
||||
|
<result property="copperY2" column="copper_y2" jdbcType="DOUBLE"/> |
||||
|
<result property="configType" column="config_type" jdbcType="VARCHAR"/> |
||||
|
<result property="meterMin" column="meter_min" jdbcType="DOUBLE"/> |
||||
|
<result property="meterMax" column="meter_max" jdbcType="DOUBLE"/> |
||||
|
<result property="rotate" column="rotate" jdbcType="INTEGER"/> |
||||
|
<result property="scale" column="scale" jdbcType="DOUBLE"/> |
||||
|
<result property="stateNum" column="state_num" jdbcType="INTEGER"/> |
||||
|
<result property="parameter" column="parameter" jdbcType="VARCHAR"/> |
||||
|
<result property="result" column="result" jdbcType="VARCHAR"/> |
||||
|
<result property="algorithm" column="algorithm" jdbcType="INTEGER"/> |
||||
|
<result property="createUser" column="create_user" jdbcType="VARCHAR"/> |
||||
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/> |
||||
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="Base_Column_List"> |
||||
|
id,config_id,focal_name, |
||||
|
focal_index,copper_wid,copper_hei, |
||||
|
copper_x,copper_x2,copper_y, |
||||
|
copper_y2,config_type,meter_min, |
||||
|
meter_max,rotate,scale, |
||||
|
state_num,parameter,result, |
||||
|
algorithm,create_user,create_time, |
||||
|
update_user,update_time,focal_picture |
||||
|
</sql> |
||||
|
</mapper> |
||||
@ -0,0 +1,59 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper |
||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.xr.device.model.mapper.MeterConfigMapper"> |
||||
|
|
||||
|
<resultMap id="BaseResultMap" type="com.xr.device.model.entity.MeterConfig"> |
||||
|
<id property="id" column="id" jdbcType="INTEGER"/> |
||||
|
<result property="ids5000Id" column="ids5000_id" jdbcType="INTEGER"/> |
||||
|
<result property="intervalType" column="interval_type" jdbcType="INTEGER"/> |
||||
|
<result property="voltageClass" column="voltage_class" jdbcType="VARCHAR"/> |
||||
|
<result property="owningInterval" column="owning_interval" jdbcType="VARCHAR"/> |
||||
|
<result property="identificationInterval" column="identification_interval" jdbcType="VARCHAR"/> |
||||
|
<result property="deviceName" column="device_name" jdbcType="VARCHAR"/> |
||||
|
<result property="locationY" column="location_y" jdbcType="DOUBLE"/> |
||||
|
<result property="locationX" column="location_x" jdbcType="DOUBLE"/> |
||||
|
<result property="deviceType" column="device_type" jdbcType="VARCHAR"/> |
||||
|
<result property="meterCode" column="meter_code" jdbcType="VARCHAR"/> |
||||
|
<result property="meterName" column="meter_name" jdbcType="VARCHAR"/> |
||||
|
<result property="cameraId" column="camera_id" jdbcType="INTEGER"/> |
||||
|
<result property="warningMax" column="warning_max" jdbcType="DOUBLE"/> |
||||
|
<result property="warningMin" column="warning_min" jdbcType="DOUBLE"/> |
||||
|
<result property="typeId" column="type_id" jdbcType="INTEGER"/> |
||||
|
<result property="status" column="status" jdbcType="INTEGER"/> |
||||
|
<result property="firstTime" column="first_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="algorithmType" column="algorithm_type" jdbcType="VARCHAR"/> |
||||
|
<result property="intervalTime" column="interval_time" jdbcType="INTEGER"/> |
||||
|
<result property="focalNumber" column="focal_number" jdbcType="INTEGER"/> |
||||
|
<result property="parameterConfig" column="parameter_config" jdbcType="VARCHAR"/> |
||||
|
<result property="remarks" column="remarks" jdbcType="VARCHAR"/> |
||||
|
<result property="iec61850mx" column="iec61850mx" jdbcType="VARCHAR"/> |
||||
|
<result property="isJz" column="is_jz" jdbcType="INTEGER"/> |
||||
|
<result property="jzVal" column="jz_val" jdbcType="VARCHAR"/> |
||||
|
<result property="initStatus" column="init_status" jdbcType="VARCHAR"/> |
||||
|
<result property="createUser" column="create_user" jdbcType="VARCHAR"/> |
||||
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/> |
||||
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="Base_Column_List"> |
||||
|
id,ids5000_id,interval_type, |
||||
|
voltage_class,owning_interval,identification_interval, |
||||
|
device_name,location_y,location_x, |
||||
|
device_type,meter_code,meter_name, |
||||
|
camera_id,warning_max,warning_min, |
||||
|
type_id,status,first_time, |
||||
|
algorithm_type,interval_time,focal_number, |
||||
|
parameter_config,remarks,iec61850mx, |
||||
|
is_jz,jz_val,init_status, |
||||
|
create_user,create_time,update_user, |
||||
|
update_time |
||||
|
</sql> |
||||
|
|
||||
|
<select id="getMeterList" resultType="com.xr.device.model.entity.MeterConfig"> |
||||
|
select a.*,b.device_ip from meter_config a left join device_camera b |
||||
|
on a.camera_id = b.id where a.status = 1 |
||||
|
</select> |
||||
|
</mapper> |
||||
@ -0,0 +1,32 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper |
||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.xr.device.model.mapper.MeterReadingRecordMapper"> |
||||
|
|
||||
|
<resultMap id="BaseResultMap" type="com.xr.device.model.entity.MeterReadingRecord"> |
||||
|
<id property="id" column="id" jdbcType="INTEGER"/> |
||||
|
<result property="meterId" column="meter_id" jdbcType="INTEGER"/> |
||||
|
<result property="meterCode" column="meter_code" jdbcType="VARCHAR"/> |
||||
|
<result property="meterTypeId" column="meter_type_id" jdbcType="INTEGER"/> |
||||
|
<result property="meterTypeName" column="meter_type_name" jdbcType="VARCHAR"/> |
||||
|
<result property="owningInterval" column="owning_interval" jdbcType="VARCHAR"/> |
||||
|
<result property="readingTime" column="reading_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="readingType" column="reading_type" jdbcType="INTEGER"/> |
||||
|
<result property="dataType" column="data_type" jdbcType="INTEGER"/> |
||||
|
<result property="readingValue" column="reading_value" jdbcType="VARCHAR"/> |
||||
|
<result property="readingUrl" column="reading_url" jdbcType="VARCHAR"/> |
||||
|
<result property="createUser" column="create_user" jdbcType="VARCHAR"/> |
||||
|
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> |
||||
|
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/> |
||||
|
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<sql id="Base_Column_List"> |
||||
|
id,meter_id,meter_code, |
||||
|
meter_type_id,meter_type_name,owning_interval, |
||||
|
reading_time,reading_type,data_type, |
||||
|
reading_value,reading_url,create_user, |
||||
|
create_time,update_user,update_time |
||||
|
</sql> |
||||
|
</mapper> |
||||
@ -0,0 +1,31 @@ |
|||||
|
package com.xr.iec61850clent.common.util; |
||||
|
|
||||
|
import com.xr.iec61850clent.models.entity.MeterConfig; |
||||
|
import com.xr.iec61850clent.models.service.MeterConfigService; |
||||
|
|
||||
|
public class ValueFormatUtil { |
||||
|
|
||||
|
/* |
||||
|
* 处理AI分析的计数器数值,针对可以识别到,但偶尔有错误结果出现的情况 |
||||
|
* 1.抄写基准值 |
||||
|
* 2.与基准值比较,如果比基准值大于1,可能计数器跳1,更新基准值,并返回结果 |
||||
|
* 反之返回基准值结果为识别结果 |
||||
|
* 3.如果未设基准值,去0后保存结果 |
||||
|
* */ |
||||
|
public static String getNumBerJx(float getVal,MeterConfig config, MeterConfigService meterConfigService){ |
||||
|
int s = (int) getVal; |
||||
|
Integer jz = Integer.valueOf(config.getJzVal())+1; |
||||
|
if(StringUtils.isNotEmpty(config.getJzVal())){ |
||||
|
if(s==jz){ |
||||
|
config.setJzVal(jz+""); |
||||
|
meterConfigService.updateById(config); |
||||
|
return jz+""; |
||||
|
}else{ |
||||
|
return config.getJzVal(); |
||||
|
} |
||||
|
}else{ |
||||
|
return s+""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,107 @@ |
|||||
|
server: |
||||
|
port: 8091 |
||||
|
servlet: |
||||
|
context-path: /api |
||||
|
spring: |
||||
|
datasource: |
||||
|
dynamic: |
||||
|
primary: db1 |
||||
|
strict: false |
||||
|
datasource: |
||||
|
db1: |
||||
|
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
|
type: com.zaxxer.hikari.HikariDataSource |
||||
|
url: jdbc:mysql://116.196.120.81:3306/device_system?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false |
||||
|
username: root |
||||
|
password: 5ea47c0bdd7146ebbd53020eca@672307 |
||||
|
db2: |
||||
|
driver-class-name: com.mysql.cj.jdbc.Driver |
||||
|
type: com.zaxxer.hikari.HikariDataSource |
||||
|
url: jdbc:mysql://116.196.120.81:3306/image_analysis?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false |
||||
|
username: root |
||||
|
password: 5ea47c0bdd7146ebbd53020eca@672307 |
||||
|
#Hikari连接池配置 |
||||
|
hikari: |
||||
|
#池中维护的最小空闲连接数 |
||||
|
minimum-idle: 5 |
||||
|
#池中最大连接数,包括闲置和使用中的连接 |
||||
|
maximum-pool-size: 15 |
||||
|
#自动提交从池中返回的连接 |
||||
|
auto-commit: true |
||||
|
#连接允许在池中闲置的最长时间 |
||||
|
idle-timeout: 30000 |
||||
|
#连接池的用户定义名称,主要出现在日志记录和JMX管理控制台中以识别池和池配置 |
||||
|
pool-name: DatebookHikariCP |
||||
|
#池中连接最长生命周期 |
||||
|
max-lifetime: 18000000 |
||||
|
#等待来自池的连接的最大毫秒数 |
||||
|
connection-timeout: 30000 |
||||
|
#验证该连接是否是有效的查询语句 |
||||
|
connection-test-query: select 1 from dual |
||||
|
cloud: |
||||
|
inetutils: |
||||
|
timeout-seconds: 1000 |
||||
|
config: |
||||
|
enabled: false |
||||
|
stream: |
||||
|
kafka: |
||||
|
binder: |
||||
|
brokers: localhost:9092 #Kafka的消息中间件服务器 |
||||
|
zk-nodes: localhost:2181 #Zookeeper的节点,如果集群,后面加,号分隔 |
||||
|
auto-create-topics: false #如果设置为false,就不会自动创建Topic 有可能你Topic还没创建就直接调用了。 |
||||
|
# kafka: |
||||
|
# bootstrap-servers: localhost:9092 |
||||
|
# consumer: |
||||
|
# group-id: ai-consumer-group |
||||
|
#kafka: |
||||
|
# topic: ai-topic |
||||
|
# # redis 相关 |
||||
|
# redis: |
||||
|
# host: ${REDIS_URL:localhost} |
||||
|
# port: ${REDIS_PORT:6379} |
||||
|
# password: ${REDIS_PWD:111111} |
||||
|
# timeout: 10000 |
||||
|
# jedis: |
||||
|
# pool: |
||||
|
# max-active: 1000 |
||||
|
# max-wait: -1ms |
||||
|
# max-idle: 10 |
||||
|
# min-idle: 5 |
||||
|
mybatis-plus: |
||||
|
mapper-locations: classpath:mapper/*Mapper.xml |
||||
|
type-aliases-package: com.xr.device_udpclent |
||||
|
# 在查询语句的是否,对Map或者是entity进行映射赋值的时候null也进行映射。默认false,不进行映射 |
||||
|
configuration: |
||||
|
map-underscore-to-camel-case: true |
||||
|
call-setters-on-nulls: true |
||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl |
||||
|
# 设置更新或者修改的时候的策略,不进行校验,否则如果是null则不会进行更新或者插入,当然在@TableField注解进行指定单个字段 |
||||
|
global-config: |
||||
|
db-config: |
||||
|
insert-strategy: ignored |
||||
|
update-strategy: ignored |
||||
|
logging: |
||||
|
org: |
||||
|
springframework: |
||||
|
boot: |
||||
|
autoconfigure: |
||||
|
logging: debug |
||||
|
udp: |
||||
|
server: |
||||
|
host: 172.26.4.59 |
||||
|
port: 9300 |
||||
|
upLoad: |
||||
|
url: http://192.168.1.83:18081/file/img/zs/ |
||||
|
path: D:\\service\\fileService\\img\\sn\\ |
||||
|
python: |
||||
|
path: C:\\Users\\admin\\Anaconda3\\envs\\myconda310\\python.exe |
||||
|
modelPath: D:\\smartGrid\\smartGrid\\models |
||||
|
eureka: |
||||
|
instance: |
||||
|
instance-id: ${spring.cloud.client.ip-address}:${server.port} |
||||
|
prefer-ip-address: true |
||||
|
client: |
||||
|
healthcheck: |
||||
|
enabled: true |
||||
|
service-url: |
||||
|
defaultZone: http://localhost:8084/eureka |
||||
Loading…
Reference in new issue