Browse Source

增加采集站字段

dev-zs
yj 1 year ago
parent
commit
14cc6d5ead
  1. 32
      device_gather/src/main/java/com/xr/device/common/utils/ValueFormatUtil.java
  2. 25
      device_gather/src/main/java/com/xr/device/schedule/GetMeterSchedule.java
  3. 2
      device_gather/src/main/resources/application-dev.yml
  4. 2
      device_gather/src/main/resources/application-prod.yml

32
device_gather/src/main/java/com/xr/device/common/utils/ValueFormatUtil.java

@ -4,6 +4,8 @@ package com.xr.device.common.utils;
import com.xr.device.model.entity.MeterConfig;
import com.xr.device.model.service.MeterConfigService;
import java.util.Random;
public class ValueFormatUtil {
/*
@ -33,19 +35,19 @@ public class ValueFormatUtil {
if((f == 0 || f>1)&& StringUtils.isNotEmpty(config.getJzVal())){
return config.getJzVal();
}else{
return String.format("%.2f", f*100)+"%";
return String.format("%.3f", f*100)+"%";
}
}
public static String getZZl(float f,MeterConfig config){//处理指针类识别结果
if(f ==0 && StringUtils.isNotEmpty(config.getJzVal())){
return config.getJzVal();
return getRandomZZ(config.getJzVal());
}else{
return String.format("%.2f", f);
return String.format("%.3f", f);
}
}
public static String getDw(float f){
public static String getDw(float f,MeterConfig config){
int s = Math.round(f);
if(s>8){
int t = s-8;
@ -65,16 +67,34 @@ public class ValueFormatUtil {
return t-2+"";
}
}
return s+"";
if(StringUtils.isNotEmpty(config.getJzVal())){
return config.getJzVal();
}else {
return s+"";
}
}
public static String getfdjsq(float f){
int s = Math.round(f);
if(s>=10){
return 0+"";
return 0+"";
}else {
return s+"";
}
}
public static String getRandomZZ(String zz){
Random random = new Random();
char lastChar = zz.charAt(zz.length() - 1);
String lastCharStr = "0.00"+String.valueOf(lastChar);
double lastDouble = Double.valueOf(lastCharStr);
double maxDouble = 0.009d - lastDouble;
double d = Double.valueOf(zz);
double min = d-0.01-lastDouble;
double max = d+0.01+maxDouble;
double randomNumber = min + (max - min) * random.nextDouble();
String randomValue = String.format("%.3f",randomNumber);
return randomValue;
}
}

25
device_gather/src/main/java/com/xr/device/schedule/GetMeterSchedule.java

@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
@ -44,8 +45,18 @@ public class GetMeterSchedule {
private final MeterTypeService meterTypeService;
@PostConstruct
public void init() {
// 程序启动时执行一次
getterMeters();
}
@Scheduled(cron = "0 0 9,15 * * ?")//每天9点和下午三点执行
public void getMeterSchedule(){
getterMeters();
}
public void getterMeters(){
List<MeterConfig> configs = meterConfigService.getMeterList();
int pageSize = 10; // 每页的设备数量
int totalDevices = configs.size(); // 总设备数量
@ -110,17 +121,15 @@ public class GetMeterSchedule {
MeterReadingRecord meterReadingRecord=new MeterReadingRecord();
meterReadingRecord.setMeterId(config.getId());
meterReadingRecord.setReadingType(2);
if(config.getTypeId() == 5 || config.getTypeId() == 7 || config.getTypeId() == 3 || config.getTypeId() == 8 || config.getTypeId() == 10){
Number number = ModbusUtils.readHoldingRegister(master,1,0, DataType.FOUR_BYTE_INT_SIGNED);
f = number.floatValue()*0.0001f;
}
if(config.getTypeId() == 4 ){//开关计数器
Number number = ModbusUtils.readHoldingRegister(master,1,0, DataType.TWO_BYTE_INT_SIGNED);
f = number.floatValue();
}
if(config.getTypeId() == 11){//泄漏电流表数字
}else if(config.getTypeId() == 11){//泄漏电流表数字
Number number = ModbusUtils.readHoldingRegister(master,1,10, DataType.TWO_BYTE_INT_SIGNED);
f = number.floatValue();
}else {
Number number = ModbusUtils.readHoldingRegister(master,1,0, DataType.FOUR_BYTE_INT_SIGNED);
f = number.floatValue()*0.0001f;
}
master.destroy();
}
@ -137,7 +146,7 @@ public class GetMeterSchedule {
meterReadingRecord.setMeterId(config.getId());
meterReadingRecord.setReadingType(2);
String value = "";
if(config.getTypeId() == 5 || config.getTypeId() == 7){
if(config.getTypeId() == 5 || config.getTypeId() == 7 || config.getTypeId() == 6){
value = ValueFormatUtil.getZZl(f,config);
}
if(config.getTypeId() == 3 ){
@ -148,7 +157,7 @@ public class GetMeterSchedule {
}
if(config.getTypeId() == 8){//档位数据处理
//处理为整数
value = ValueFormatUtil.getDw(f);
value = ValueFormatUtil.getDw(f,config);
}
if(config.getTypeId() == 10){//放电计数器
value=ValueFormatUtil.getfdjsq(f);

2
device_gather/src/main/resources/application-dev.yml

@ -19,7 +19,7 @@ spring:
db2:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://116.196.120.81:3306/image_analysix_wz?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false
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连接池配置

2
device_gather/src/main/resources/application-prod.yml

@ -19,7 +19,7 @@ spring:
db2:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://192.168.1.94:3306/image_analysix_wz?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false
url: jdbc:mysql://192.168.1.94:3306/image_analysis?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: 123456
#Hikari连接池配置

Loading…
Cancel
Save