Browse Source

优化采集存储

master
mh 2 months ago
parent
commit
435d5c5378
  1. 35
      user-service/src/main/java/com/mh/user/job/DealDataJob.java
  2. 59
      user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java
  3. 101
      user-service/src/main/resources/application-dev.yml
  4. 4
      user-service/src/main/resources/application-prod.yml
  5. 101
      user-service/src/main/resources/application-test.yml
  6. 3
      user-service/src/main/resources/application.yml
  7. 64
      user-service/src/main/resources/log4j.properties
  8. 2
      user-service/src/main/resources/logback-spring.xml

35
user-service/src/main/java/com/mh/user/job/DealDataJob.java

@ -1,6 +1,5 @@
package com.mh.user.job;
import com.mh.user.netty.EchoServerHandler;
import com.mh.user.service.chillers.DealDataService;
import com.mh.user.utils.ExchangeStringUtil;
import com.mh.user.utils.SimpleWeather;
@ -39,19 +38,19 @@ public class DealDataJob {
// dealDataService.proEnergy(curDate);//中央热水yyyy-MM-dd HH:mm:ss
String m=curDate.substring(15,16);
if (Integer.valueOf(m)==0){
if (Integer.parseInt(m)==0){
curDate=curDate.substring(0,16)+":00";
}else if(Integer.valueOf(m)==2){
}else if(Integer.parseInt(m)==2){
curDate=curDate.substring(0,16)+":00";
}else if(Integer.valueOf(m)==4){
}else if(Integer.parseInt(m)==4){
curDate=curDate.substring(0,16)+":00";
}else if(Integer.valueOf(m)==6){
}else if(Integer.parseInt(m)==6){
curDate=curDate.substring(0,16)+":00";
}else if(Integer.valueOf(m)==8){
}else if(Integer.parseInt(m)==8){
curDate=curDate.substring(0,16)+":00";
}
dealDataService.proEnergyData(curDate);//中央空调yyyy-MM-dd HH:mm:ss
System.out.println("---------数据分析定时汇总,每二分钟!"+curDate);
log.info("---------数据分析定时汇总,每二分钟!"+curDate);
} catch (Exception e) {
// e.printStackTrace();
}
@ -66,9 +65,9 @@ public class DealDataJob {
Date date=new Date();
String curDate=sdf1.format(date);
dealDataService.proDeviceState(curDate);
System.out.println("---------设备状态定时汇总,每十五分钟!"+curDate);
log.info("---------设备状态定时汇总,每十五分钟!"+curDate);
} catch (Exception e) {
// e.printStackTrace();
log.error("设备状态定时汇总异常", e);
}
}
@ -79,15 +78,15 @@ public class DealDataJob {
public void proDataResult() {
try {
String curDate= ExchangeStringUtil.dateTime(1,"");
List<String> list=dealDataService.queryProjectId("3");
if (list.size()>0){
List<String> list=dealDataService.queryProjectId("1");
if (!list.isEmpty()){
for(String projectID:list){
dealDataService.proDataResult(curDate,projectID); //1珠江酒店,2广合,3广大
}
}
System.out.println("---------能效监测定时汇总,每一分钟!"+curDate);
log.info("---------能效监测定时汇总,每一分钟!"+curDate);
} catch (Exception e) {
// e.printStackTrace();
log.error("能效监测定时汇总异常", e);
}
}
@ -100,7 +99,7 @@ public class DealDataJob {
try {
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
Map<String, Object> map=simpleWeather.queryWeather("广州");
Map<String, Object> map= SimpleWeather.queryWeather("广州");
String curDate=sdf1.format(date);
String temperature=map.get("temperature").toString();
String humidity=map.get("humidity").toString();
@ -108,7 +107,7 @@ public class DealDataJob {
log.info(curDate+","+temperature+"℃,"+humidity+"%");
} catch (Exception e) {
// e.printStackTrace();
log.error("调用获取环境温湿度接口失败!");
log.error("调用获取环境温湿度接口失败!", e);
}
}
@ -126,14 +125,14 @@ public class DealDataJob {
calendar.add(Calendar.DATE, -1);// 减少一天
String curDate=sdf1.format(calendar.getTime());
List<String> list=dealDataService.queryProjectId("2");
if (list.size()>0){
if (!list.isEmpty()){
for(String projectID:list){
dealDataService.proEnergyDaySum(curDate,projectID);
}
}
System.out.println("---------中央热水生产概况汇总,每一小时!"+curDate);
log.info("---------中央热水生产概况汇总,每一小时!"+curDate);
} catch (Exception e) {
// e.printStackTrace();
log.error("中央热水生产概况定时汇总异常", e);
}
}

59
user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java

@ -46,6 +46,7 @@ public class AnalysisReceiveOrder485 {
ProjectInfoService projectInfoService=context.getBean(ProjectInfoService.class);
private final SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private final DecimalFormat df = new DecimalFormat("#.##");
//解析冷量表
public void analysisCloudOrder485(final String dataStr1,final DeviceCodeParamEntity deviceCodeParam) {
@ -471,20 +472,7 @@ public class AnalysisReceiveOrder485 {
data = ExchangeStringUtil.hexToDec(dataStr.substring(6, 8));
try{
// 赋值给dataResultCh
dataResultCh.setDeviceAddr(chillerAddr);
dataResultCh.setDeviceType(deviceCodeParam.getDeviceType());
dataResultCh.setCurDate(sdf1.parse(dateStr));
dataResultCh.setCurValue(data);
dataResultCh.setDeviceAddr(deviceCodeParam.getRegisterAddr());
dataResultCh.setRegisterName(deviceCodeParam.getRegisterName());
dataResultCh.setGrade(deviceCodeParam.getGrade());
dataResultCh.setFunCode(deviceCodeParam.getFunCode());
dataResultCh.setProjectID(deviceCodeParam.getProjectID());
String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID());
log.info("冷水机:" + chillerAddr + ",状态:" + data+",项目名称:"+projectName);
dataResultService.saveDataResultChiller(dataResultCh);
dataResultService.deleteDataResultNow(deviceCodeParam.getDeviceAddr(),deviceCodeParam.getDeviceType(),deviceCodeParam.getRegisterAddr(),deviceCodeParam.getProjectID());
log.info("冷水机保存成功!项目名称:"+projectName);
initialDataResultCh(deviceCodeParam, dataResultCh, chillerAddr, dateStr, data);
}catch (Exception e){
e.printStackTrace();
log.error("冷水机报错:{}", e);
@ -494,41 +482,54 @@ public class AnalysisReceiveOrder485 {
if (dataStr.length() == 14) {
if (deviceCodeParam.getDigit() == 1) {
// 数据
data = Double.toString(Integer.parseInt(ExchangeStringUtil.hexToDec(dataStr.substring(6, 10))) * 0.1);
data = df.format(Integer.parseInt(ExchangeStringUtil.hexToDec(dataStr.substring(6, 10))) * 0.1);
} else if (deviceCodeParam.getDigit() == 2) {
// 数据
data = Double.toString(Integer.parseInt(ExchangeStringUtil.hexToDec(dataStr.substring(6, 10))) * 0.01);
data = df.format(Integer.parseInt(ExchangeStringUtil.hexToDec(dataStr.substring(6, 10))) * 0.01);
} else {
// 数据
data = ExchangeStringUtil.hexToDec(dataStr.substring(6, 10));
}
try{
// 赋值给dataResultCh
initialDataResultCh(deviceCodeParam, dataResultCh, chillerAddr, dateStr, data);
}catch (Exception e){
e.printStackTrace();
log.error("冷水机保存异常:", e);
}
}
}
}else{
log.info("冷水机校验失败===>" + dataStr);
}
// });
}
}
/**
* 格式化数据
* @param deviceCodeParam
* @param dataResultCh
* @param chillerAddr
* @param dateStr
* @param data
* @throws ParseException
*/
private void initialDataResultCh(DeviceCodeParamEntity deviceCodeParam, DataResultChEntity dataResultCh, String chillerAddr, String dateStr, String data) throws ParseException {
dataResultCh.setDeviceAddr(chillerAddr);
dataResultCh.setDeviceType(deviceCodeParam.getDeviceType());
dataResultCh.setCurDate(sdf1.parse(dateStr));
// dataResultCh.setCurDate(dateStr);
dataResultCh.setCurValue(data);
dataResultCh.setRegisterAddr(deviceCodeParam.getRegisterAddr());
dataResultCh.setRegisterName(deviceCodeParam.getRegisterName());
dataResultCh.setGrade(deviceCodeParam.getGrade());
dataResultCh.setFunCode(deviceCodeParam.getFunCode());
dataResultCh.setProjectID(deviceCodeParam.getProjectID());
String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID());
log.info("冷水机:" + chillerAddr + ",读数:" + data+",项目名称:"+projectName);
log.info("冷水机:" + chillerAddr + ",状态:" + data +",项目名称:"+projectName);
dataResultService.saveDataResultChiller(dataResultCh);
dataResultService.deleteDataResultNow(deviceCodeParam.getDeviceAddr(), deviceCodeParam.getDeviceType(), deviceCodeParam.getRegisterAddr(), deviceCodeParam.getProjectID());
log.info("冷水机保存成功!项目名称:"+projectName);
}catch (Exception e){
e.printStackTrace();
log.error("冷水机保存异常:", e);
}
}
}
}else{
log.info("冷水机校验失败===>" + dataStr);
}
// });
}
}
public void analysisChillersDDC(final String receiveData1) throws InterruptedException {

101
user-service/src/main/resources/application-dev.yml

@ -0,0 +1,101 @@
server:
port: 8766 #8764新珠江,8766广合科技,8767广大科技,8768珠江国际,8769保利山庄,8770东莞迎宾馆
spring:
application:
name: jnd-user-service
datasource:
name: druidDataSource
type: com.alibaba.druid.pool.DruidDataSource
druid:
#添加allowMultiQueries=true 在批量更新时才不会出错
url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mh_esi;allowMultiQueries=true
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: mh@803
filters: stat,wall,log4j,config
max-active: 100
initial-size: 1
max-wait: 60000
min-idle: 1
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: select 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-open-prepared-statements: 50
max-pool-prepared-statement-per-connection-size: 50
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
virtual-host: /jnd
listener:
direct:
prefetch: 2
simple:
prefetch: 2
# redis:
# database: 0
# host: 127.0.0.1
# port: 6379
# password: 123456
# timeout: 3000 #链接超时时间
# lettuce:
# pool:
# max-active: 8 #连接池最大连接数(使用负值没有限制)
# max-wait: -1 #最大等待时间,使用负值没有限制
# max-idle: 8 #最大空闲连接,使用负值没有限制
# min-idle: 0 #默认最小空闲连接 默认0
# redis配置
# cloud:
# config:
# uri: http://localhost:8769
# fail-fast: true
# profiles:
# active: pro
# consul:
# host: localhost
# port: 8500
# discovery:
# service-name: ${spring.application.name}
# application:
# name: user-service
# 开放健康检查接口
#management:
# endpoints:
# web:
# exposure:
# include: "*"
# endpoint:
# health:
# show-details: ALWAYS
#files:
# path: ${file-path:d:/files}
log:
level:
root: info
my: debug
file:
maxsize: 30MB
#设置将SQL语句打印到控制台 level后面是 mybatis接口目录
logging:
level:
com:
mh:
user:
mapper: DEBUG
file:
max-size: 30
path: logs/${spring.application.name}
##软件最后更新日期20230116

4
user-service/src/main/resources/bootstrap.yml → user-service/src/main/resources/application-prod.yml

@ -12,10 +12,6 @@ spring:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: jnd
password: Mh@803tech
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mh_esi;allowMultiQueries=true
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# username: sa
# password: mh@803
filters: stat,wall,log4j,config
max-active: 100
initial-size: 1

101
user-service/src/main/resources/application-test.yml

@ -0,0 +1,101 @@
server:
port: 8766 #8764新珠江,8766广合科技,8767广大科技,8768珠江国际,8769保利山庄,8770东莞迎宾馆
spring:
application:
name: jnd-user-service
datasource:
name: druidDataSource
type: com.alibaba.druid.pool.DruidDataSource
druid:
#添加allowMultiQueries=true 在批量更新时才不会出错
url: jdbc:sqlserver://111.230.50.186:32012;DatabaseName=mh_jnd;allowMultiQueries=true
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: jnd
password: Mh@803tech
filters: stat,wall,log4j,config
max-active: 100
initial-size: 1
max-wait: 60000
min-idle: 1
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: select 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-open-prepared-statements: 50
max-pool-prepared-statement-per-connection-size: 50
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
virtual-host: /jnd
listener:
direct:
prefetch: 2
simple:
prefetch: 2
# redis:
# database: 0
# host: 127.0.0.1
# port: 6379
# password: 123456
# timeout: 3000 #链接超时时间
# lettuce:
# pool:
# max-active: 8 #连接池最大连接数(使用负值没有限制)
# max-wait: -1 #最大等待时间,使用负值没有限制
# max-idle: 8 #最大空闲连接,使用负值没有限制
# min-idle: 0 #默认最小空闲连接 默认0
# redis配置
# cloud:
# config:
# uri: http://localhost:8769
# fail-fast: true
# profiles:
# active: pro
# consul:
# host: localhost
# port: 8500
# discovery:
# service-name: ${spring.application.name}
# application:
# name: user-service
# 开放健康检查接口
#management:
# endpoints:
# web:
# exposure:
# include: "*"
# endpoint:
# health:
# show-details: ALWAYS
#files:
# path: ${file-path:d:/files}
log:
level:
root: info
my: debug
file:
maxsize: 30MB
#设置将SQL语句打印到控制台 level后面是 mybatis接口目录
logging:
level:
com:
mh:
user:
mapper: DEBUG
file:
max-size: 30
path: logs/${spring.application.name}
##软件最后更新日期20230116

3
user-service/src/main/resources/application.yml

@ -0,0 +1,3 @@
spring:
profiles:
active: dev

64
user-service/src/main/resources/log4j.properties

@ -1,32 +1,32 @@
### set log levels DEBUG ###
log4j.rootLogger = INFO,CONSOLE,infoFile, errorFile
LocationInfo=true
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
#log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
log4j.appender.infoFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.infoFile.Threshold = INFO
log4j.appender.infoFile.File = ./logs/log.log
log4j.appender.infoFile.DatePattern ='.'yyyy-MM-dd'.log'
log4j.appender.infoFile.Append=true
log4j.appender.infoFile.layout = org.apache.log4j.PatternLayout
log4j.appender.infoFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
log4j.appender.errorFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorFile.Threshold = ERROR
log4j.appender.errorFile.File = ./logs/error.log
log4j.appender.errorFile.DatePattern ='.'yyyy-MM-dd'.log'
log4j.appender.errorFile.Append=true
log4j.appender.errorFile.layout = org.apache.log4j.PatternLayout
log4j.appender.errorFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
#log4j.appender.debugfile = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.debugfile.Threshold = DEBUG
#log4j.appender.debugfile.File = ./logs/debug
#log4j.appender.debugfile.DatePattern = yyyy-MM-dd'.log'
#log4j.appender.debugfile.Append=true
#log4j.appender.debugfile.layout = org.apache.log4j.PatternLayout
#log4j.appender.debugfile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
#### set log levels DEBUG ###
#log4j.rootLogger = INFO,CONSOLE,infoFile, errorFile
#LocationInfo=true
#log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
##log4j.appender.CONSOLE.Encoding=UTF-8
#log4j.appender.CONSOLE.Target = System.out
#log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
#
#log4j.appender.infoFile = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.infoFile.Threshold = INFO
#log4j.appender.infoFile.File = ./logs/log.log
#log4j.appender.infoFile.DatePattern ='.'yyyy-MM-dd'.log'
#log4j.appender.infoFile.Append=true
#log4j.appender.infoFile.layout = org.apache.log4j.PatternLayout
#log4j.appender.infoFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
#
#log4j.appender.errorFile = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.errorFile.Threshold = ERROR
#log4j.appender.errorFile.File = ./logs/error.log
#log4j.appender.errorFile.DatePattern ='.'yyyy-MM-dd'.log'
#log4j.appender.errorFile.Append=true
#log4j.appender.errorFile.layout = org.apache.log4j.PatternLayout
#log4j.appender.errorFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n
#
##log4j.appender.debugfile = org.apache.log4j.DailyRollingFileAppender
##log4j.appender.debugfile.Threshold = DEBUG
##log4j.appender.debugfile.File = ./logs/debug
##log4j.appender.debugfile.DatePattern = yyyy-MM-dd'.log'
##log4j.appender.debugfile.Append=true
##log4j.appender.debugfile.layout = org.apache.log4j.PatternLayout
##log4j.appender.debugfile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n

2
user-service/src/main/resources/logback-spring.xml

@ -70,7 +70,7 @@
<root level="error">
<appender-ref ref="file_error" />
</root>
<!-- 日志类型为info时,输出到控制台 -->
<!-- 日志类型为debug时,输出到控制台 -->
<root level="info">
<appender-ref ref="console" />
</root>

Loading…
Cancel
Save