diff --git a/common/pom.xml b/common/pom.xml index 46ba43c..ed4b4db 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -23,11 +23,13 @@ + - com.alibaba - fastjson - 1.2.31 + com.alibaba.fastjson2 + fastjson2 + 2.0.51 + com.github.pagehelper diff --git a/user-service/pom.xml b/user-service/pom.xml index 517dccf..109a044 100644 --- a/user-service/pom.xml +++ b/user-service/pom.xml @@ -23,33 +23,40 @@ org.springframework.boot spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + org.springframework.boot - spring-boot-starter-tomcat - import - + spring-boot-starter-undertow + org.springframework.boot spring-boot-starter-quartz - - org.springframework.cloud - spring-cloud-starter-config - 2.2.2.RELEASE - + + + + + com.github.ben-manes.caffeine caffeine 2.8.8 + - com.alibaba - fastjson - 1.2.41 + com.alibaba.fastjson2 + fastjson2 + 2.0.51 - + + @@ -74,32 +81,49 @@ + + + + + - org.mybatis.spring.boot - mybatis-spring-boot-starter - 2.1.2 + com.baomidou + mybatis-plus + 3.5.3.1 - - mysql - mysql-connector-java - + + + + - - com.alibaba - druid-spring-boot-starter - 1.1.18 - + + + + + + + + + + + com.microsoft.sqlserver mssql-jdbc runtime + + + org.apache.logging.log4j + log4j-core + 2.23.1 + - log4j - log4j - 1.2.17 + org.apache.logging.log4j + log4j-api + 2.23.1 io.netty @@ -141,21 +165,16 @@ true - - tk.mybatis - mapper - 3.3.9 - + + + + + org.apache.commons commons-pool2 - - net.sf.json-lib - json-lib - 2.4 - jdk15 - + org.springframework.boot spring-boot-starter-amqp diff --git a/user-service/src/main/java/com/mh/user/UserServiceApplication.java b/user-service/src/main/java/com/mh/user/UserServiceApplication.java index 1a1f042..c37564f 100644 --- a/user-service/src/main/java/com/mh/user/UserServiceApplication.java +++ b/user-service/src/main/java/com/mh/user/UserServiceApplication.java @@ -1,6 +1,6 @@ package com.mh.user; -import org.apache.log4j.Logger; +import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @@ -8,13 +8,11 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer import org.springframework.scheduling.annotation.EnableScheduling; import javax.annotation.PreDestroy; - +@Slf4j @SpringBootApplication(scanBasePackages = "com.mh.user") @EnableScheduling public class UserServiceApplication extends SpringBootServletInitializer { - private static final Logger log = Logger.getLogger(UserServiceApplication.class); - @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(UserServiceApplication.class); diff --git a/user-service/src/main/java/com/mh/user/aspect/SysLogAspect.java b/user-service/src/main/java/com/mh/user/aspect/SysLogAspect.java index 74b8a70..c97f7c1 100644 --- a/user-service/src/main/java/com/mh/user/aspect/SysLogAspect.java +++ b/user-service/src/main/java/com/mh/user/aspect/SysLogAspect.java @@ -2,6 +2,7 @@ package com.mh.user.aspect; import javax.servlet.http.HttpServletRequest; +import com.alibaba.fastjson2.JSONObject; import com.mh.user.annotation.SysLogger; import com.mh.user.model.SysLog; import com.mh.user.service.SysLogService; @@ -17,10 +18,7 @@ import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import com.alibaba.fastjson.JSONObject; - import java.lang.reflect.Method; -import java.text.SimpleDateFormat; import java.util.Date; diff --git a/user-service/src/main/java/com/mh/user/component/ReceiveHandler.java b/user-service/src/main/java/com/mh/user/component/ReceiveHandler.java index afb4662..558c87e 100644 --- a/user-service/src/main/java/com/mh/user/component/ReceiveHandler.java +++ b/user-service/src/main/java/com/mh/user/component/ReceiveHandler.java @@ -1,20 +1,12 @@ package com.mh.user.component; -import com.alibaba.druid.sql.visitor.functions.Isnull; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONObject; import com.mh.user.config.RabbitmqConfig; import com.mh.user.model.QueueParam; import com.mh.user.utils.AnalysisReceiveOrder485; -import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; -import com.rabbitmq.client.impl.AMQImpl; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; -import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.Exchange; -import org.springframework.amqp.rabbit.annotation.Queue; -import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @@ -23,10 +15,10 @@ import java.io.IOException; /** * 队列消费接收消息 */ +@Slf4j @Component public class ReceiveHandler { - private static final Logger log = Logger.getLogger(ReceiveHandler.class); //监听队列 // @RabbitListener(bindings = @QueueBinding( // value = @Queue(value = "queue_zjjd", durable = "true"), diff --git a/user-service/src/main/java/com/mh/user/config/DruidConfig.java b/user-service/src/main/java/com/mh/user/config/DruidConfig.java index 3823b5d..bb8ead5 100644 --- a/user-service/src/main/java/com/mh/user/config/DruidConfig.java +++ b/user-service/src/main/java/com/mh/user/config/DruidConfig.java @@ -1,117 +1,117 @@ -package com.mh.user.config; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.Filter; -import javax.servlet.Servlet; -import javax.sql.DataSource; - -import com.alibaba.druid.wall.WallConfig; -import com.alibaba.druid.wall.WallFilter; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.boot.web.servlet.ServletRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.support.http.StatViewServlet; -import com.alibaba.druid.support.http.WebStatFilter; - -/** - * @author ljf - * @title : - * @description : - * @updateTime 2020-03-13 - * @throws : - */ -@Configuration -@EnableConfigurationProperties({DruidDataSourceProperties.class}) -public class DruidConfig { - @Autowired - private DruidDataSourceProperties properties; - - @Bean - @ConditionalOnMissingBean - public DataSource druidDataSource() { - DruidDataSource druidDataSource = new DruidDataSource(); - druidDataSource.setDriverClassName(properties.getDriverClassName()); - druidDataSource.setUrl(properties.getUrl()); - druidDataSource.setUsername(properties.getUsername()); - druidDataSource.setPassword(properties.getPassword()); - druidDataSource.setInitialSize(properties.getInitialSize()); - druidDataSource.setMinIdle(properties.getMinIdle()); - druidDataSource.setMaxActive(properties.getMaxActive()); - druidDataSource.setMaxWait(properties.getMaxWait()); - druidDataSource.setTimeBetweenEvictionRunsMillis(properties.getTimeBetweenEvictionRunsMillis()); - druidDataSource.setMinEvictableIdleTimeMillis(properties.getMinEvictableIdleTimeMillis()); - druidDataSource.setValidationQuery(properties.getValidationQuery()); - druidDataSource.setTestWhileIdle(properties.isTestWhileIdle()); - druidDataSource.setTestOnBorrow(properties.isTestOnBorrow()); - druidDataSource.setTestOnReturn(properties.isTestOnReturn()); - druidDataSource.setPoolPreparedStatements(properties.isPoolPreparedStatements()); - druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(properties.getMaxPoolPreparedStatementPerConnectionSize()); - - List list=new ArrayList<>(); - WallFilter wallFilter=new WallFilter(); - WallConfig config = new WallConfig(); - //允许一次执行多条语句 - config.setMultiStatementAllow(true); - //允许非基本语句的其他语句 - //config.setNoneBaseStatementAllow(true); - wallFilter.setConfig(config); - list.add(wallFilter); - druidDataSource.setProxyFilters(list); - - try { - druidDataSource.setFilters(properties.getFilters()); - druidDataSource.init(); - } catch (SQLException e) { - e.printStackTrace(); - } - - return druidDataSource; - } - - /** - * 注册Servlet信息, 配置监控视图 - * - * @return - */ - @Bean - @ConditionalOnMissingBean - public ServletRegistrationBean druidServlet() { - ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); - - //白名单: -// servletRegistrationBean.addInitParameter("allow","127.0.0.1,139.196.87.48"); - //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. - servletRegistrationBean.addInitParameter("deny","192.168.1.222"); - //登录查看信息的账号密码, 用于登录Druid监控后台 - servletRegistrationBean.addInitParameter("loginUsername", "admin"); - servletRegistrationBean.addInitParameter("loginPassword", "admin"); - //是否能够重置数据. - servletRegistrationBean.addInitParameter("resetEnable", "true"); - return servletRegistrationBean; - - } - - /** - * 注册Filter信息, 监控拦截器 - * - * @return - */ - @Bean - @ConditionalOnMissingBean - public FilterRegistrationBean filterRegistrationBean() { - FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); - filterRegistrationBean.setFilter(new WebStatFilter()); - filterRegistrationBean.addUrlPatterns("/*"); - filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); - return filterRegistrationBean; - } -} +//package com.mh.user.config; +// +//import java.sql.SQLException; +//import java.util.ArrayList; +//import java.util.List; +// +//import javax.servlet.Filter; +//import javax.servlet.Servlet; +//import javax.sql.DataSource; +// +//import com.alibaba.druid.wall.WallConfig; +//import com.alibaba.druid.wall.WallFilter; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +//import org.springframework.boot.context.properties.EnableConfigurationProperties; +//import org.springframework.boot.web.servlet.FilterRegistrationBean; +//import org.springframework.boot.web.servlet.ServletRegistrationBean; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +// +//import com.alibaba.druid.pool.DruidDataSource; +//import com.alibaba.druid.support.http.StatViewServlet; +//import com.alibaba.druid.support.http.WebStatFilter; +// +///** +// * @author ljf +// * @title : +// * @description : +// * @updateTime 2020-03-13 +// * @throws : +// */ +//@Configuration +//@EnableConfigurationProperties({DruidDataSourceProperties.class}) +//public class DruidConfig { +// @Autowired +// private DruidDataSourceProperties properties; +// +// @Bean +// @ConditionalOnMissingBean +// public DataSource druidDataSource() { +// DruidDataSource druidDataSource = new DruidDataSource(); +// druidDataSource.setDriverClassName(properties.getDriverClassName()); +// druidDataSource.setUrl(properties.getUrl()); +// druidDataSource.setUsername(properties.getUsername()); +// druidDataSource.setPassword(properties.getPassword()); +// druidDataSource.setInitialSize(properties.getInitialSize()); +// druidDataSource.setMinIdle(properties.getMinIdle()); +// druidDataSource.setMaxActive(properties.getMaxActive()); +// druidDataSource.setMaxWait(properties.getMaxWait()); +// druidDataSource.setTimeBetweenEvictionRunsMillis(properties.getTimeBetweenEvictionRunsMillis()); +// druidDataSource.setMinEvictableIdleTimeMillis(properties.getMinEvictableIdleTimeMillis()); +// druidDataSource.setValidationQuery(properties.getValidationQuery()); +// druidDataSource.setTestWhileIdle(properties.isTestWhileIdle()); +// druidDataSource.setTestOnBorrow(properties.isTestOnBorrow()); +// druidDataSource.setTestOnReturn(properties.isTestOnReturn()); +// druidDataSource.setPoolPreparedStatements(properties.isPoolPreparedStatements()); +// druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(properties.getMaxPoolPreparedStatementPerConnectionSize()); +// +// List list=new ArrayList<>(); +// WallFilter wallFilter=new WallFilter(); +// WallConfig config = new WallConfig(); +// //允许一次执行多条语句 +// config.setMultiStatementAllow(true); +// //允许非基本语句的其他语句 +// //config.setNoneBaseStatementAllow(true); +// wallFilter.setConfig(config); +// list.add(wallFilter); +// druidDataSource.setProxyFilters(list); +// +// try { +// druidDataSource.setFilters(properties.getFilters()); +// druidDataSource.init(); +// } catch (SQLException e) { +// e.printStackTrace(); +// } +// +// return druidDataSource; +// } +// +// /** +// * 注册Servlet信息, 配置监控视图 +// * +// * @return +// */ +// @Bean +// @ConditionalOnMissingBean +// public ServletRegistrationBean druidServlet() { +// ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); +// +// //白名单: +//// servletRegistrationBean.addInitParameter("allow","127.0.0.1,139.196.87.48"); +// //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. +// servletRegistrationBean.addInitParameter("deny","192.168.1.222"); +// //登录查看信息的账号密码, 用于登录Druid监控后台 +// servletRegistrationBean.addInitParameter("loginUsername", "admin"); +// servletRegistrationBean.addInitParameter("loginPassword", "admin"); +// //是否能够重置数据. +// servletRegistrationBean.addInitParameter("resetEnable", "true"); +// return servletRegistrationBean; +// +// } +// +// /** +// * 注册Filter信息, 监控拦截器 +// * +// * @return +// */ +// @Bean +// @ConditionalOnMissingBean +// public FilterRegistrationBean filterRegistrationBean() { +// FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); +// filterRegistrationBean.setFilter(new WebStatFilter()); +// filterRegistrationBean.addUrlPatterns("/*"); +// filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); +// return filterRegistrationBean; +// } +//} diff --git a/user-service/src/main/java/com/mh/user/config/DruidDataSourceProperties.java b/user-service/src/main/java/com/mh/user/config/DruidDataSourceProperties.java index 69c5d14..6d33053 100644 --- a/user-service/src/main/java/com/mh/user/config/DruidDataSourceProperties.java +++ b/user-service/src/main/java/com/mh/user/config/DruidDataSourceProperties.java @@ -1,172 +1,172 @@ -package com.mh.user.config; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * @author ljf - * @title : - * @description : - * @updateTime 2020-03-13 - * @throws : - */ -@ConfigurationProperties(prefix = "spring.datasource.druid") -public class DruidDataSourceProperties { - - // jdbc - private String driverClassName; - private String url; - private String username; - private String password; - // jdbc connection pool - private int initialSize; - private int minIdle; - private int maxActive = 100; - private long maxWait; - private long timeBetweenEvictionRunsMillis; - private long minEvictableIdleTimeMillis; - private String validationQuery; - private boolean testWhileIdle; - private boolean testOnBorrow; - private boolean testOnReturn; - private boolean poolPreparedStatements; - private int maxPoolPreparedStatementPerConnectionSize; - // filter - private String filters; - - public int getInitialSize() { - return initialSize; - } - - public void setInitialSize(int initialSize) { - this.initialSize = initialSize; - } - - public int getMinIdle() { - return minIdle; - } - - public void setMinIdle(int minIdle) { - this.minIdle = minIdle; - } - - public int getMaxActive() { - return maxActive; - } - - public void setMaxActive(int maxActive) { - this.maxActive = maxActive; - } - - public long getMaxWait() { - return maxWait; - } - - public void setMaxWait(long maxWait) { - this.maxWait = maxWait; - } - - public long getTimeBetweenEvictionRunsMillis() { - return timeBetweenEvictionRunsMillis; - } - - public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { - this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; - } - - public long getMinEvictableIdleTimeMillis() { - return minEvictableIdleTimeMillis; - } - - public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { - this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; - } - - public String getValidationQuery() { - return validationQuery; - } - - public void setValidationQuery(String validationQuery) { - this.validationQuery = validationQuery; - } - - public boolean isTestWhileIdle() { - return testWhileIdle; - } - - public void setTestWhileIdle(boolean testWhileIdle) { - this.testWhileIdle = testWhileIdle; - } - - public boolean isTestOnBorrow() { - return testOnBorrow; - } - - public void setTestOnBorrow(boolean testOnBorrow) { - this.testOnBorrow = testOnBorrow; - } - - public boolean isTestOnReturn() { - return testOnReturn; - } - - public void setTestOnReturn(boolean testOnReturn) { - this.testOnReturn = testOnReturn; - } - - public boolean isPoolPreparedStatements() { - return poolPreparedStatements; - } - - public void setPoolPreparedStatements(boolean poolPreparedStatements) { - this.poolPreparedStatements = poolPreparedStatements; - } - - public int getMaxPoolPreparedStatementPerConnectionSize() { - return maxPoolPreparedStatementPerConnectionSize; - } - - public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) { - this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize; - } - - public String getFilters() { - return filters; - } - - public void setFilters(String filters) { - this.filters = filters; - } - - public String getDriverClassName() { - return driverClassName; - } - - public void setDriverClassName(String driverClassName) { - this.driverClassName = driverClassName; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - -} +//package com.mh.user.config; +// +//import org.springframework.boot.context.properties.ConfigurationProperties; +// +///** +// * @author ljf +// * @title : +// * @description : +// * @updateTime 2020-03-13 +// * @throws : +// */ +//@ConfigurationProperties(prefix = "spring.datasource.druid") +//public class DruidDataSourceProperties { +// +// // jdbc +// private String driverClassName; +// private String url; +// private String username; +// private String password; +// // jdbc connection pool +// private int initialSize; +// private int minIdle; +// private int maxActive = 100; +// private long maxWait; +// private long timeBetweenEvictionRunsMillis; +// private long minEvictableIdleTimeMillis; +// private String validationQuery; +// private boolean testWhileIdle; +// private boolean testOnBorrow; +// private boolean testOnReturn; +// private boolean poolPreparedStatements; +// private int maxPoolPreparedStatementPerConnectionSize; +// // filter +// private String filters; +// +// public int getInitialSize() { +// return initialSize; +// } +// +// public void setInitialSize(int initialSize) { +// this.initialSize = initialSize; +// } +// +// public int getMinIdle() { +// return minIdle; +// } +// +// public void setMinIdle(int minIdle) { +// this.minIdle = minIdle; +// } +// +// public int getMaxActive() { +// return maxActive; +// } +// +// public void setMaxActive(int maxActive) { +// this.maxActive = maxActive; +// } +// +// public long getMaxWait() { +// return maxWait; +// } +// +// public void setMaxWait(long maxWait) { +// this.maxWait = maxWait; +// } +// +// public long getTimeBetweenEvictionRunsMillis() { +// return timeBetweenEvictionRunsMillis; +// } +// +// public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { +// this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; +// } +// +// public long getMinEvictableIdleTimeMillis() { +// return minEvictableIdleTimeMillis; +// } +// +// public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { +// this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; +// } +// +// public String getValidationQuery() { +// return validationQuery; +// } +// +// public void setValidationQuery(String validationQuery) { +// this.validationQuery = validationQuery; +// } +// +// public boolean isTestWhileIdle() { +// return testWhileIdle; +// } +// +// public void setTestWhileIdle(boolean testWhileIdle) { +// this.testWhileIdle = testWhileIdle; +// } +// +// public boolean isTestOnBorrow() { +// return testOnBorrow; +// } +// +// public void setTestOnBorrow(boolean testOnBorrow) { +// this.testOnBorrow = testOnBorrow; +// } +// +// public boolean isTestOnReturn() { +// return testOnReturn; +// } +// +// public void setTestOnReturn(boolean testOnReturn) { +// this.testOnReturn = testOnReturn; +// } +// +// public boolean isPoolPreparedStatements() { +// return poolPreparedStatements; +// } +// +// public void setPoolPreparedStatements(boolean poolPreparedStatements) { +// this.poolPreparedStatements = poolPreparedStatements; +// } +// +// public int getMaxPoolPreparedStatementPerConnectionSize() { +// return maxPoolPreparedStatementPerConnectionSize; +// } +// +// public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) { +// this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize; +// } +// +// public String getFilters() { +// return filters; +// } +// +// public void setFilters(String filters) { +// this.filters = filters; +// } +// +// public String getDriverClassName() { +// return driverClassName; +// } +// +// public void setDriverClassName(String driverClassName) { +// this.driverClassName = driverClassName; +// } +// +// public String getUrl() { +// return url; +// } +// +// public void setUrl(String url) { +// this.url = url; +// } +// +// public String getUsername() { +// return username; +// } +// +// public void setUsername(String username) { +// this.username = username; +// } +// +// public String getPassword() { +// return password; +// } +// +// public void setPassword(String password) { +// this.password = password; +// } +// +//} diff --git a/user-service/src/main/java/com/mh/user/config/DruidStatViewServlet.java b/user-service/src/main/java/com/mh/user/config/DruidStatViewServlet.java index c87b213..41f0800 100644 --- a/user-service/src/main/java/com/mh/user/config/DruidStatViewServlet.java +++ b/user-service/src/main/java/com/mh/user/config/DruidStatViewServlet.java @@ -1,17 +1,17 @@ -package com.mh.user.config; - -import com.alibaba.druid.support.http.StatViewServlet; - -/** - * druid监控视图配置 - */ -//@WebServlet(urlPatterns = "/druid/*", initParams={ -// @WebInitParam(name="allow",value="192.168.6.195"), // IP白名单 (没有配置或者为空,则允许所有访问) -// @WebInitParam(name="deny",value="192.168.6.73"), // IP黑名单 (存在共同时,deny优先于allow) -// @WebInitParam(name="loginUsername",value="admin"), // 用户名 -// @WebInitParam(name="loginPassword",value="admin"), // 密码 -// @WebInitParam(name="resetEnable",value="true") // 禁用HTML页面上的“Reset All”功能 -//}) -public class DruidStatViewServlet extends StatViewServlet { - private static final long serialVersionUID = 7359758657306626394L; -} \ No newline at end of file +//package com.mh.user.config; +// +//import com.alibaba.druid.support.http.StatViewServlet; +// +///** +// * druid监控视图配置 +// */ +////@WebServlet(urlPatterns = "/druid/*", initParams={ +//// @WebInitParam(name="allow",value="192.168.6.195"), // IP白名单 (没有配置或者为空,则允许所有访问) +//// @WebInitParam(name="deny",value="192.168.6.73"), // IP黑名单 (存在共同时,deny优先于allow) +//// @WebInitParam(name="loginUsername",value="admin"), // 用户名 +//// @WebInitParam(name="loginPassword",value="admin"), // 密码 +//// @WebInitParam(name="resetEnable",value="true") // 禁用HTML页面上的“Reset All”功能 +////}) +//public class DruidStatViewServlet extends StatViewServlet { +// private static final long serialVersionUID = 7359758657306626394L; +//} \ No newline at end of file diff --git a/user-service/src/main/java/com/mh/user/config/PrimessionInterceptor.java b/user-service/src/main/java/com/mh/user/config/PrimessionInterceptor.java index 5e13b7f..16b6b96 100644 --- a/user-service/src/main/java/com/mh/user/config/PrimessionInterceptor.java +++ b/user-service/src/main/java/com/mh/user/config/PrimessionInterceptor.java @@ -1,13 +1,9 @@ package com.mh.user.config; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.mh.user.dynamic.datasource.DataSourceContextHolder; -import com.mh.user.dynamic.datasource.DataSourceObject; -import com.mh.user.entity.DBEntity; import com.mh.user.service.SysUserService; -import com.mh.user.utils.JwtTokenUtils; -import com.mh.user.utils.AESUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; diff --git a/user-service/src/main/java/com/mh/user/config/QuartzConfig.java b/user-service/src/main/java/com/mh/user/config/QuartzConfig.java index b12777e..5646225 100644 --- a/user-service/src/main/java/com/mh/user/config/QuartzConfig.java +++ b/user-service/src/main/java/com/mh/user/config/QuartzConfig.java @@ -1,54 +1,53 @@ -package com.mh.user.config; - -import com.mh.user.job.JobFactory; -import lombok.extern.slf4j.Slf4j; -import org.quartz.Scheduler; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; - -/** - * @author ljf - * @title : Quartz配置 - * @description : - * @updateTime 2020-04-03 - * @throws : - */ -@Slf4j -@Configuration -public class QuartzConfig { - - private JobFactory jobFactory; - - /** - * @author jinhaoxun - * @description 构造器 - * @param jobFactory - */ - public QuartzConfig(JobFactory jobFactory){ - this.jobFactory = jobFactory; - } - - /** - * @author jinhaoxun - * @description 配置SchedulerFactoryBean,将一个方法产生为Bean并交给Spring容器管理 - * @return SchedulerFactoryBean - */ - @Bean - public SchedulerFactoryBean schedulerFactoryBean() { -// log.info("开始注入定时任务调度器工厂..."); - System.out.println("开始注入定时任务调度器工厂..."); - SchedulerFactoryBean factory = new SchedulerFactoryBean();// Spring提供SchedulerFactoryBean为Scheduler提供配置信息,并被Spring容器管理其生命周期 - factory.setJobFactory(jobFactory);// 设置自定义Job Factory,用于Spring管理Job bean - factory.setOverwriteExistingJobs(true);// 覆盖存在的定时任务 - factory.setStartupDelay(30); //延时30秒启动定时任务,避免系统未完全启动却开始执行定时任务的情况 -// log.info("注入定时任务调度器工厂成功!"); - System.out.println("注入定时任务调度器工厂成功!"); - return factory; - } - - @Bean(name = "scheduler") - public Scheduler scheduler() { - return schedulerFactoryBean().getScheduler(); - } -} +//package com.mh.user.config; +// +//import lombok.extern.slf4j.Slf4j; +//import org.quartz.Scheduler; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.scheduling.quartz.SchedulerFactoryBean; +// +///** +// * @author ljf +// * @title : Quartz配置 +// * @description : +// * @updateTime 2020-04-03 +// * @throws : +// */ +//@Slf4j +//@Configuration +//public class QuartzConfig { +// +// private JobFactory jobFactory; +// +// /** +// * @author jinhaoxun +// * @description 构造器 +// * @param jobFactory +// */ +// public QuartzConfig(JobFactory jobFactory){ +// this.jobFactory = jobFactory; +// } +// +// /** +// * @author jinhaoxun +// * @description 配置SchedulerFactoryBean,将一个方法产生为Bean并交给Spring容器管理 +// * @return SchedulerFactoryBean +// */ +// @Bean +// public SchedulerFactoryBean schedulerFactoryBean() { +//// log.info("开始注入定时任务调度器工厂..."); +// System.out.println("开始注入定时任务调度器工厂..."); +// SchedulerFactoryBean factory = new SchedulerFactoryBean();// Spring提供SchedulerFactoryBean为Scheduler提供配置信息,并被Spring容器管理其生命周期 +// factory.setJobFactory(jobFactory);// 设置自定义Job Factory,用于Spring管理Job bean +// factory.setOverwriteExistingJobs(true);// 覆盖存在的定时任务 +// factory.setStartupDelay(30); //延时30秒启动定时任务,避免系统未完全启动却开始执行定时任务的情况 +//// log.info("注入定时任务调度器工厂成功!"); +// System.out.println("注入定时任务调度器工厂成功!"); +// return factory; +// } +// +// @Bean(name = "scheduler") +// public Scheduler scheduler() { +// return schedulerFactoryBean().getScheduler(); +// } +//} diff --git a/user-service/src/main/java/com/mh/user/config/RabbitmqConfig.java b/user-service/src/main/java/com/mh/user/config/RabbitmqConfig.java index 7cd8f13..76f39e2 100644 --- a/user-service/src/main/java/com/mh/user/config/RabbitmqConfig.java +++ b/user-service/src/main/java/com/mh/user/config/RabbitmqConfig.java @@ -1,30 +1,21 @@ package com.mh.user.config; -import com.mh.user.component.ReceiveHandler; -import com.mh.user.constants.Constant; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; import org.springframework.amqp.core.*; import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.core.task.SimpleAsyncTaskExecutor; -import org.springframework.transaction.PlatformTransactionManager; /** *队列绑定队列、绑定交换机、绑定路由KEY */ +@Slf4j @Configuration public class RabbitmqConfig { - private static final Logger log = Logger.getLogger(RabbitmqConfig.class); - // public static final String QUEUE_NAME = "queue_zjjd"; //采集队列,珠江酒店 // public static final String QUEUE_NAME = "queue_gdkj"; //采集队列,广大科技 diff --git a/user-service/src/main/java/com/mh/user/controller/ChartController.java b/user-service/src/main/java/com/mh/user/controller/ChartController.java index 6ca7ed4..e7cb312 100644 --- a/user-service/src/main/java/com/mh/user/controller/ChartController.java +++ b/user-service/src/main/java/com/mh/user/controller/ChartController.java @@ -1,6 +1,6 @@ package com.mh.user.controller; -import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson2.JSONArray; import com.mh.common.http.HttpResult; import com.mh.user.entity.chart.ChartEntity; import com.mh.user.entity.chart.GetChartParams; diff --git a/user-service/src/main/java/com/mh/user/controller/ChillersController.java b/user-service/src/main/java/com/mh/user/controller/ChillersController.java index 5308074..a0be28a 100644 --- a/user-service/src/main/java/com/mh/user/controller/ChillersController.java +++ b/user-service/src/main/java/com/mh/user/controller/ChillersController.java @@ -1,6 +1,6 @@ package com.mh.user.controller; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONObject; import com.mh.common.http.HttpResult; import com.mh.user.dto.DisplayBoxDataDTO; import com.mh.user.dto.TableInfoDTO; diff --git a/user-service/src/main/java/com/mh/user/controller/DeviceInfoController.java b/user-service/src/main/java/com/mh/user/controller/DeviceInfoController.java index 75a8535..a0a7ab5 100644 --- a/user-service/src/main/java/com/mh/user/controller/DeviceInfoController.java +++ b/user-service/src/main/java/com/mh/user/controller/DeviceInfoController.java @@ -25,7 +25,7 @@ public class DeviceInfoController { @PostMapping("/query") public HttpResult queryMeterInfo(@RequestParam(value = "systemID") String systemID, @RequestParam(value = "projectID") String projectID, - @RequestParam(value = "deviceType") String deviceType){ + @RequestParam(value = "deviceType", required = false) String deviceType){ List list=deviceInfoService.queryDeviceInfo(systemID,projectID,deviceType); return HttpResult.ok(list); diff --git a/user-service/src/main/java/com/mh/user/controller/DeviceManageController.java b/user-service/src/main/java/com/mh/user/controller/DeviceManageController.java index aa1f962..c985d4a 100644 --- a/user-service/src/main/java/com/mh/user/controller/DeviceManageController.java +++ b/user-service/src/main/java/com/mh/user/controller/DeviceManageController.java @@ -1,299 +1,296 @@ -package com.mh.user.controller; - -import com.alibaba.fastjson.JSONObject; -import com.mh.common.http.HttpResult; -import com.mh.user.annotation.SysLogger; -import com.mh.user.dto.DeviceMessageDTO; -import com.mh.user.entity.*; -import com.mh.user.manage.QuartzManager; -import com.mh.user.netty.NettyChillerControlClient; -import com.mh.user.service.chillers.DeviceDisplayService; -import com.mh.user.constants.Constant; -import com.mh.user.service.chillers.DeviceManageService; -import com.mh.user.service.chillers.DeviceParamService; -import com.mh.user.service.chillers.GatewayManageService; -import com.mh.user.utils.GetReadOrder485; -import com.mh.user.utils.QuerySendThread; -import com.mh.user.constants.SocketMessage; -import com.mh.user.utils.TimeDifferenceUtil; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.text.ParseException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author ljf - * @title : - * @description : 设备管理接口 - * @updateTime 2020-05-29 - * @updateTime 2020-07-17 - * @throws : - */ -@RestController -public class DeviceManageController { - - private final DeviceDisplayService deviceDisplayService; - private final GatewayManageService gatewayManageService; - private final DeviceManageService deviceManageService; - private final DeviceParamService deviceParamService; - - public DeviceManageController(DeviceDisplayService deviceDisplayService, GatewayManageService gatewayManageService, DeviceManageService deviceManageService, DeviceParamService deviceParamService) { - this.deviceDisplayService = deviceDisplayService; - this.gatewayManageService = gatewayManageService; - this.deviceManageService = deviceManageService; - this.deviceParamService = deviceParamService; - } - - @Resource - QuartzManager quartzManager; - - @Autowired - private SocketMessage socketMessage; - - // 查询设备信息状态 - @GetMapping("/operation/getColdStation") - public HttpResult getColdStation(@RequestParam(value = "deviceType", required = true) String deviceType) { - List deviceMessageList = deviceDisplayService.queryDeviceStatus(deviceType); - Map formValues = new HashMap<>(); - formValues.put("formValues",deviceMessageList); - return HttpResult.ok("success", formValues); - } - - // 对设备进行操作处理 - @PostMapping("/operation/operationDevice") - public HttpResult operationDevice(@RequestBody List changeValues) { - String result; - try { - List orderMessageEntityList; - // type值 0:修改频率, 1:修改开关状态, 2: 关闭冷却泵之前,查询最近关闭的冷却塔时间,3: 群控手自动切换类型,4: 修改温度, 5: 修改压力 -// // 添加网页发送指令状态 update by ljf on 2020-08-07 - Constant.CONTROL_WEB_FLAG = true; - // 暂停采集 -// quartzManager.pauseJob("DDC","JobDDCGroup"); -// Thread.sleep(2000); - // 修改成不用暂停采集处理 - GetReadOrder485 getReadOrder485 = new GetReadOrder485(); - // 判断是否是去关闭冷却泵,如果是,需要检查最近冷却塔有没有关闭并且关闭时间大于8分钟 - // 判断changeValues大小 - int size = changeValues.size(); - int type = changeValues.get(0).getType(); - if (type == 3 && size == 1) { - // 生成指令 - orderMessageEntityList = getReadOrder485.createOrder(changeValues); - if (orderMessageEntityList.size() != 0) { - // 开启发送指令 - NettyChillerControlClient nettyChillerControlClient = new NettyChillerControlClient(); -// nettyChillerControlClient.connect(8081, "192.168.1.131", orderMessageEntityList); - nettyChillerControlClient.connect(socketMessage.getPort(), socketMessage.getIP(), orderMessageEntityList); - // 开启线程监测标志 - QuerySendThread querySendThread = new QuerySendThread(); - querySendThread.start(); - if (Constant.SEND_STATUS) { - result = "success"; - } else { - result = "fail"; - } - } else { - result = "fail"; - } - } else if (type == 2 && size == 1) { - TimeDifferenceUtil timeDifferenceUtil = new TimeDifferenceUtil(); - Boolean a = timeDifferenceUtil.timeDifference(socketMessage.getOverTime()); - if (a) { - // 生成指令 - orderMessageEntityList = getReadOrder485.createOrder(changeValues); - if (orderMessageEntityList.size() != 0) { - // 开启发送指令 - NettyChillerControlClient nettyChillerControlClient = new NettyChillerControlClient(); -// nettyChillerControlClient.connect(8081, "192.168.1.131", orderMessageEntityList); - nettyChillerControlClient.connect(socketMessage.getPort(), socketMessage.getIP(), orderMessageEntityList); - // 开启线程监测标志 - QuerySendThread querySendThread = new QuerySendThread(); - querySendThread.start(); - if (Constant.SEND_STATUS) { - result = "success"; - } else { - result = "fail"; - } - } else { - result = "fail"; - } - } else { - result = "冷却塔关机还没有超过8分钟"; - } - } else { - // 生成指令 - orderMessageEntityList = getReadOrder485.createOrder(changeValues); - if (orderMessageEntityList.size() != 0) { - // 开启发送指令 - NettyChillerControlClient nettyChillerControlClient = new NettyChillerControlClient(); -// nettyChillerControlClient.connect(8081, "192.168.1.131", orderMessageEntityList); - nettyChillerControlClient.connect(socketMessage.getPort(), socketMessage.getIP(), orderMessageEntityList); - // 开启线程监测标志 - QuerySendThread querySendThread = new QuerySendThread(); - querySendThread.start(); - if (Constant.SEND_STATUS) { - result = "success"; - } else { - result = "fail"; - } - } else { - result = "fail"; - } - } - Constant.CONTROL_WEB_FLAG = false; - // 不需要停止采集 -// Constant.WEB_FLAG = false; -// // 延迟5秒处理,等待线程处理数据 - Thread.sleep(500); -// // 重新开启定时采集 -// quartzManager.resumeAllJob(); -// quartzManager.resumeJob("DDC","JobDDCGroup"); - } catch (InterruptedException | ParseException e) { - e.printStackTrace(); - result = "fail"; - } - // 异常情况处理 - return HttpResult.ok(result); - } - - /** - * 查询网关信息 - * @param requestJson - * @return - */ - @PostMapping("/gateWay/getGateWayList") - public HttpResult gateWayList(@RequestBody String requestJson){ - JSONObject jsonObject =JSONObject.parseObject(requestJson); - Integer operator = null; - Integer grade = null; - if(jsonObject.get("operator") != null){ - if(jsonObject.get("operator").equals("中国移动")){ - operator = 0; - }else if(jsonObject.get("operator").equals("中国联通")){ - operator = 1; - }else if(jsonObject.get("operator").equals("中国电信")){ - operator = 2; - } - } - if(jsonObject.get("grade") != null){ - if(jsonObject.get("grade").equals("正常")){ - grade = 0; - }else if(jsonObject.get("grade").equals("不在线")){ - grade = 1; - }else if(jsonObject.get("grade").equals("异常")){ - grade = 2; - } - } - List gateWayList = gatewayManageService.queryByOther(grade,operator); - JSONObject tableData = new JSONObject(); - tableData.put("tableData",gateWayList); - return HttpResult.ok(tableData); -// System.out.println(requestJson); -// return null; - } - - /** - * 新增或更新网关信息 - * @param reqestJson - * @return - */ - @PostMapping("/gateWay/addOrUpdateGateWayInfo") - public HttpResult addOrUpdateGateWayInfo(@RequestBody GatewayManageEntity reqestJson){ - try { - System.out.println(reqestJson.toString()); - gatewayManageService.addOrUpdateGateWayInfo(reqestJson); - return HttpResult.ok(); - } catch (Exception e) { - e.printStackTrace(); - return HttpResult.error(e.getMessage()); - } - } - - /** - * 删除网关/基表/基表参数信息 - * @param requestJson - * @return - */ - @PostMapping("/device/deleteDeviceInfo") - public HttpResult deleteDeviceInfo(@RequestBody String requestJson){ - JSONObject jsonObject =JSONObject.parseObject(requestJson); - System.out.println(jsonObject.get("deviceId")); - try { - deviceManageService.deleteDeviceInfo((Integer)jsonObject.get("deviceId"),jsonObject.get("deviceType").toString()); - return HttpResult.ok(); - } catch (Exception e) { - e.printStackTrace(); - return HttpResult.error(e.getMessage()); - } - } - - /** - * 查询基表管理中的基表数据 - * @param requestJson - * @return - */ - @PostMapping("/baseMeter/getBaseMeterList") - public HttpResult getBaseMeterList(@RequestBody String requestJson){ - JSONObject jsonObject =JSONObject.parseObject(requestJson); - List list = deviceManageService.getDeviceByOther(jsonObject.get("deviceNum").toString()); - JSONObject tableData = new JSONObject(); - tableData.put("tableData",list); - return HttpResult.ok(tableData); - } - - /** - * 增加或更新基表信息数据 - * @param requestJson - * @return - */ - @PostMapping("/baseMeter/addOrUpdateBaseMeter") - public HttpResult addOrUpdateBaseMeter(@RequestBody DeviceManageEntity requestJson){ - try { - deviceManageService.addOrUpdateBaseMeter(requestJson); - return HttpResult.ok(); - } catch (Exception e) { - e.printStackTrace(); - return HttpResult.error("检查输入的设备码是否有误!"); - } - } - - /** - * 查询基表参数管理中的基表参数数据 - * @param requestJson - * @return - */ - @PostMapping("/baseMeterParam/getBaseMeterParamList") - public HttpResult getBaseMeterParamList(@RequestBody String requestJson){ - JSONObject jsonObject =JSONObject.parseObject(requestJson); - System.out.println(jsonObject.get("baseMeterType")); - String baseMeterType = (String) jsonObject.get("baseMeterType"); - List list = deviceParamService.getBaseMeterParamList(baseMeterType); - JSONObject tableData = new JSONObject(); - tableData.put("tableData",list); - return HttpResult.ok(tableData); - } - - /** - * 添加或更新基表参数信息 - * @param requestJson - * @return - */ - @PostMapping("/baseMeterParam/addOrUpdateBaseMeterParam") - public HttpResult addOrUpdateBaseMeterParam(@RequestBody DeviceParameterEntity requestJson){ - try { - deviceParamService.addOrUpdateBaseMeterParam(requestJson); - return HttpResult.ok(); - } catch (Exception e) { - e.printStackTrace(); - return HttpResult.error(e.getMessage()); - } - } - - -} +//package com.mh.user.controller; +// +//import com.alibaba.fastjson.JSONObject; +//import com.mh.common.http.HttpResult; +//import com.mh.user.dto.DeviceMessageDTO; +//import com.mh.user.entity.*; +//import com.mh.user.manage.QuartzManager; +//import com.mh.user.service.chillers.DeviceDisplayService; +//import com.mh.user.constants.Constant; +//import com.mh.user.service.chillers.DeviceManageService; +//import com.mh.user.service.chillers.DeviceParamService; +//import com.mh.user.service.chillers.GatewayManageService; +//import com.mh.user.utils.GetReadOrder485; +//import com.mh.user.utils.QuerySendThread; +//import com.mh.user.constants.SocketMessage; +//import com.mh.user.utils.TimeDifferenceUtil; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.*; +// +//import javax.annotation.Resource; +//import java.text.ParseException; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * @author ljf +// * @title : +// * @description : 设备管理接口 +// * @updateTime 2020-05-29 +// * @updateTime 2020-07-17 +// * @throws : +// */ +//@RestController +//public class DeviceManageController { +// +// private final DeviceDisplayService deviceDisplayService; +// private final GatewayManageService gatewayManageService; +// private final DeviceManageService deviceManageService; +// private final DeviceParamService deviceParamService; +// +// public DeviceManageController(DeviceDisplayService deviceDisplayService, GatewayManageService gatewayManageService, DeviceManageService deviceManageService, DeviceParamService deviceParamService) { +// this.deviceDisplayService = deviceDisplayService; +// this.gatewayManageService = gatewayManageService; +// this.deviceManageService = deviceManageService; +// this.deviceParamService = deviceParamService; +// } +// +// @Resource +// QuartzManager quartzManager; +// +// @Autowired +// private SocketMessage socketMessage; +// +// // 查询设备信息状态 +// @GetMapping("/operation/getColdStation") +// public HttpResult getColdStation(@RequestParam(value = "deviceType", required = true) String deviceType) { +// List deviceMessageList = deviceDisplayService.queryDeviceStatus(deviceType); +// Map formValues = new HashMap<>(); +// formValues.put("formValues",deviceMessageList); +// return HttpResult.ok("success", formValues); +// } +// +// // 对设备进行操作处理 +// @PostMapping("/operation/operationDevice") +// public HttpResult operationDevice(@RequestBody List changeValues) { +// String result; +// try { +// List orderMessageEntityList; +// // type值 0:修改频率, 1:修改开关状态, 2: 关闭冷却泵之前,查询最近关闭的冷却塔时间,3: 群控手自动切换类型,4: 修改温度, 5: 修改压力 +//// // 添加网页发送指令状态 update by ljf on 2020-08-07 +// Constant.CONTROL_WEB_FLAG = true; +// // 暂停采集 +//// quartzManager.pauseJob("DDC","JobDDCGroup"); +//// Thread.sleep(2000); +// // 修改成不用暂停采集处理 +// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); +// // 判断是否是去关闭冷却泵,如果是,需要检查最近冷却塔有没有关闭并且关闭时间大于8分钟 +// // 判断changeValues大小 +// int size = changeValues.size(); +// int type = changeValues.get(0).getType(); +// if (type == 3 && size == 1) { +// // 生成指令 +// orderMessageEntityList = getReadOrder485.createOrder(changeValues); +// if (orderMessageEntityList.size() != 0) { +// // 开启发送指令 +// NettyChillerControlClient nettyChillerControlClient = new NettyChillerControlClient(); +//// nettyChillerControlClient.connect(8081, "192.168.1.131", orderMessageEntityList); +// nettyChillerControlClient.connect(socketMessage.getPort(), socketMessage.getIP(), orderMessageEntityList); +// // 开启线程监测标志 +// QuerySendThread querySendThread = new QuerySendThread(); +// querySendThread.start(); +// if (Constant.SEND_STATUS) { +// result = "success"; +// } else { +// result = "fail"; +// } +// } else { +// result = "fail"; +// } +// } else if (type == 2 && size == 1) { +// TimeDifferenceUtil timeDifferenceUtil = new TimeDifferenceUtil(); +// Boolean a = timeDifferenceUtil.timeDifference(socketMessage.getOverTime()); +// if (a) { +// // 生成指令 +// orderMessageEntityList = getReadOrder485.createOrder(changeValues); +// if (orderMessageEntityList.size() != 0) { +// // 开启发送指令 +// NettyChillerControlClient nettyChillerControlClient = new NettyChillerControlClient(); +//// nettyChillerControlClient.connect(8081, "192.168.1.131", orderMessageEntityList); +// nettyChillerControlClient.connect(socketMessage.getPort(), socketMessage.getIP(), orderMessageEntityList); +// // 开启线程监测标志 +// QuerySendThread querySendThread = new QuerySendThread(); +// querySendThread.start(); +// if (Constant.SEND_STATUS) { +// result = "success"; +// } else { +// result = "fail"; +// } +// } else { +// result = "fail"; +// } +// } else { +// result = "冷却塔关机还没有超过8分钟"; +// } +// } else { +// // 生成指令 +// orderMessageEntityList = getReadOrder485.createOrder(changeValues); +// if (orderMessageEntityList.size() != 0) { +// // 开启发送指令 +// NettyChillerControlClient nettyChillerControlClient = new NettyChillerControlClient(); +//// nettyChillerControlClient.connect(8081, "192.168.1.131", orderMessageEntityList); +// nettyChillerControlClient.connect(socketMessage.getPort(), socketMessage.getIP(), orderMessageEntityList); +// // 开启线程监测标志 +// QuerySendThread querySendThread = new QuerySendThread(); +// querySendThread.start(); +// if (Constant.SEND_STATUS) { +// result = "success"; +// } else { +// result = "fail"; +// } +// } else { +// result = "fail"; +// } +// } +// Constant.CONTROL_WEB_FLAG = false; +// // 不需要停止采集 +//// Constant.WEB_FLAG = false; +//// // 延迟5秒处理,等待线程处理数据 +// Thread.sleep(500); +//// // 重新开启定时采集 +//// quartzManager.resumeAllJob(); +//// quartzManager.resumeJob("DDC","JobDDCGroup"); +// } catch (InterruptedException | ParseException e) { +// e.printStackTrace(); +// result = "fail"; +// } +// // 异常情况处理 +// return HttpResult.ok(result); +// } +// +// /** +// * 查询网关信息 +// * @param requestJson +// * @return +// */ +// @PostMapping("/gateWay/getGateWayList") +// public HttpResult gateWayList(@RequestBody String requestJson){ +// JSONObject jsonObject =JSONObject.parseObject(requestJson); +// Integer operator = null; +// Integer grade = null; +// if(jsonObject.get("operator") != null){ +// if(jsonObject.get("operator").equals("中国移动")){ +// operator = 0; +// }else if(jsonObject.get("operator").equals("中国联通")){ +// operator = 1; +// }else if(jsonObject.get("operator").equals("中国电信")){ +// operator = 2; +// } +// } +// if(jsonObject.get("grade") != null){ +// if(jsonObject.get("grade").equals("正常")){ +// grade = 0; +// }else if(jsonObject.get("grade").equals("不在线")){ +// grade = 1; +// }else if(jsonObject.get("grade").equals("异常")){ +// grade = 2; +// } +// } +// List gateWayList = gatewayManageService.queryByOther(grade,operator); +// JSONObject tableData = new JSONObject(); +// tableData.put("tableData",gateWayList); +// return HttpResult.ok(tableData); +//// System.out.println(requestJson); +//// return null; +// } +// +// /** +// * 新增或更新网关信息 +// * @param reqestJson +// * @return +// */ +// @PostMapping("/gateWay/addOrUpdateGateWayInfo") +// public HttpResult addOrUpdateGateWayInfo(@RequestBody GatewayManageEntity reqestJson){ +// try { +// System.out.println(reqestJson.toString()); +// gatewayManageService.addOrUpdateGateWayInfo(reqestJson); +// return HttpResult.ok(); +// } catch (Exception e) { +// e.printStackTrace(); +// return HttpResult.error(e.getMessage()); +// } +// } +// +// /** +// * 删除网关/基表/基表参数信息 +// * @param requestJson +// * @return +// */ +// @PostMapping("/device/deleteDeviceInfo") +// public HttpResult deleteDeviceInfo(@RequestBody String requestJson){ +// JSONObject jsonObject =JSONObject.parseObject(requestJson); +// System.out.println(jsonObject.get("deviceId")); +// try { +// deviceManageService.deleteDeviceInfo((Integer)jsonObject.get("deviceId"),jsonObject.get("deviceType").toString()); +// return HttpResult.ok(); +// } catch (Exception e) { +// e.printStackTrace(); +// return HttpResult.error(e.getMessage()); +// } +// } +// +// /** +// * 查询基表管理中的基表数据 +// * @param requestJson +// * @return +// */ +// @PostMapping("/baseMeter/getBaseMeterList") +// public HttpResult getBaseMeterList(@RequestBody String requestJson){ +// JSONObject jsonObject =JSONObject.parseObject(requestJson); +// List list = deviceManageService.getDeviceByOther(jsonObject.get("deviceNum").toString()); +// JSONObject tableData = new JSONObject(); +// tableData.put("tableData",list); +// return HttpResult.ok(tableData); +// } +// +// /** +// * 增加或更新基表信息数据 +// * @param requestJson +// * @return +// */ +// @PostMapping("/baseMeter/addOrUpdateBaseMeter") +// public HttpResult addOrUpdateBaseMeter(@RequestBody DeviceManageEntity requestJson){ +// try { +// deviceManageService.addOrUpdateBaseMeter(requestJson); +// return HttpResult.ok(); +// } catch (Exception e) { +// e.printStackTrace(); +// return HttpResult.error("检查输入的设备码是否有误!"); +// } +// } +// +// /** +// * 查询基表参数管理中的基表参数数据 +// * @param requestJson +// * @return +// */ +// @PostMapping("/baseMeterParam/getBaseMeterParamList") +// public HttpResult getBaseMeterParamList(@RequestBody String requestJson){ +// JSONObject jsonObject =JSONObject.parseObject(requestJson); +// System.out.println(jsonObject.get("baseMeterType")); +// String baseMeterType = (String) jsonObject.get("baseMeterType"); +// List list = deviceParamService.getBaseMeterParamList(baseMeterType); +// JSONObject tableData = new JSONObject(); +// tableData.put("tableData",list); +// return HttpResult.ok(tableData); +// } +// +// /** +// * 添加或更新基表参数信息 +// * @param requestJson +// * @return +// */ +// @PostMapping("/baseMeterParam/addOrUpdateBaseMeterParam") +// public HttpResult addOrUpdateBaseMeterParam(@RequestBody DeviceParameterEntity requestJson){ +// try { +// deviceParamService.addOrUpdateBaseMeterParam(requestJson); +// return HttpResult.ok(); +// } catch (Exception e) { +// e.printStackTrace(); +// return HttpResult.error(e.getMessage()); +// } +// } +// +// +//} diff --git a/user-service/src/main/java/com/mh/user/controller/SysLoginController.java b/user-service/src/main/java/com/mh/user/controller/SysLoginController.java index 3f63237..c4502ca 100644 --- a/user-service/src/main/java/com/mh/user/controller/SysLoginController.java +++ b/user-service/src/main/java/com/mh/user/controller/SysLoginController.java @@ -12,15 +12,10 @@ import javax.servlet.http.HttpServletResponse; import com.mh.common.http.HttpResult; import com.mh.common.utils.IOUtils; import com.mh.user.annotation.SysLogger; -import com.mh.user.dynamic.datasource.DataSourceContextHolder; -import com.mh.user.dynamic.datasource.DataSourceObject; -import com.mh.user.entity.DBEntity; -import com.mh.user.model.SysRole; import com.mh.user.model.SysUser; import com.mh.user.security.JwtAuthenticatioToken; import com.mh.user.service.SysRoleService; import com.mh.user.service.SysUserService; -import com.mh.user.utils.AESUtil; import com.mh.user.utils.PasswordUtils; import com.mh.user.utils.SecurityUtils; import com.mh.user.vo.LoginBean; diff --git a/user-service/src/main/java/com/mh/user/controller/TestController.java b/user-service/src/main/java/com/mh/user/controller/TestController.java index 28ed700..e933cda 100644 --- a/user-service/src/main/java/com/mh/user/controller/TestController.java +++ b/user-service/src/main/java/com/mh/user/controller/TestController.java @@ -1,27 +1,18 @@ package com.mh.user.controller; import com.mh.user.constants.Constant; -import com.mh.user.dynamic.datasource.DataSourceContextHolder; -import com.mh.user.dynamic.datasource.DataSourceObject; -import com.mh.user.entity.DBEntity; import com.mh.user.entity.DeviceCodeParamEntity; import com.mh.user.manage.QuartzManager; import com.mh.user.service.SysUserService; -import com.mh.user.utils.AESUtil; import com.mh.user.utils.AnalysisReceiveOrder485; -import com.mh.user.utils.ExchangeStringUtil; import com.mh.user.utils.GetReadOrder485; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.text.SimpleDateFormat; -import java.util.Date; @RestController public class TestController { diff --git a/user-service/src/main/java/com/mh/user/dynamic/config/DataSourceConfig.java b/user-service/src/main/java/com/mh/user/dynamic/config/DataSourceConfig.java index 19ccf1a..8ea5372 100644 --- a/user-service/src/main/java/com/mh/user/dynamic/config/DataSourceConfig.java +++ b/user-service/src/main/java/com/mh/user/dynamic/config/DataSourceConfig.java @@ -1,77 +1,77 @@ -package com.mh.user.dynamic.config; - -import com.alibaba.druid.pool.DruidDataSource; -import com.mh.user.dynamic.datasource.DynamicDataSource; -import org.apache.ibatis.session.SqlSessionFactory; -import org.mybatis.spring.SqlSessionFactoryBean; -import org.mybatis.spring.SqlSessionTemplate; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; - -import javax.sql.DataSource; -import java.util.HashMap; -import java.util.Map; - -/** - * @author chison - * @date 2020-04-02 09:39 - * @Description - */ -@Configuration -@MapperScan("com.mh.*.mapper") // 扫描DAO -public class DataSourceConfig { - - @Value("${spring.datasource.druid.url}") - private String defaultDBUrl; - @Value("${spring.datasource.druid.username}") - private String defaultDBUser; - @Value("${spring.datasource.druid.password}") - private String defaultDBPassword; - @Value("${spring.datasource.druid.driver-class-name}") - private String defaultDBDreiverName; - - - @Bean - public DynamicDataSource dynamicDataSource() { - DynamicDataSource dynamicDataSource = DynamicDataSource.getInstance(); - - DruidDataSource defaultDataSource = new DruidDataSource(); - defaultDataSource.setUrl(defaultDBUrl); - defaultDataSource.setUsername(defaultDBUser); - defaultDataSource.setPassword(defaultDBPassword); - defaultDataSource.setDriverClassName(defaultDBDreiverName); - - Map map = new HashMap<>(); - map.put("default", defaultDataSource); - dynamicDataSource.setTargetDataSources(map); - dynamicDataSource.setDefaultTargetDataSource(defaultDataSource); - - return dynamicDataSource; - } - - @Bean - public SqlSessionFactory sqlSessionFactory( - @Qualifier("dynamicDataSource") DataSource dynamicDataSource) - throws Exception { - SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); - bean.setDataSource(dynamicDataSource); - bean.setTypeAliasesPackage("com.mh.*.model"); // 扫描Model - - bean.setMapperLocations(new PathMatchingResourcePatternResolver() - .getResources("classpath*:**/sqlmapper/*.xml")); - return bean.getObject(); - - } - - @Bean(name = "sqlSessionTemplate") - public SqlSessionTemplate sqlSessionTemplate( - @Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) - throws Exception { - return new SqlSessionTemplate(sqlSessionFactory); - } - -} +//package com.mh.user.dynamic.config; +// +//import com.alibaba.druid.pool.DruidDataSource; +//import com.mh.user.dynamic.datasource.DynamicDataSource; +//import org.apache.ibatis.session.SqlSessionFactory; +//import org.mybatis.spring.SqlSessionFactoryBean; +//import org.mybatis.spring.SqlSessionTemplate; +//import org.mybatis.spring.annotation.MapperScan; +//import org.springframework.beans.factory.annotation.Qualifier; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +// +//import javax.sql.DataSource; +//import java.util.HashMap; +//import java.util.Map; +// +///** +// * @author chison +// * @date 2020-04-02 09:39 +// * @Description +// */ +//@Configuration +//@MapperScan("com.mh.*.mapper") // 扫描DAO +//public class DataSourceConfig { +// +// @Value("${spring.datasource.druid.url}") +// private String defaultDBUrl; +// @Value("${spring.datasource.druid.username}") +// private String defaultDBUser; +// @Value("${spring.datasource.druid.password}") +// private String defaultDBPassword; +// @Value("${spring.datasource.druid.driver-class-name}") +// private String defaultDBDreiverName; +// +// +// @Bean +// public DynamicDataSource dynamicDataSource() { +// DynamicDataSource dynamicDataSource = DynamicDataSource.getInstance(); +// +// DruidDataSource defaultDataSource = new DruidDataSource(); +// defaultDataSource.setUrl(defaultDBUrl); +// defaultDataSource.setUsername(defaultDBUser); +// defaultDataSource.setPassword(defaultDBPassword); +// defaultDataSource.setDriverClassName(defaultDBDreiverName); +// +// Map map = new HashMap<>(); +// map.put("default", defaultDataSource); +// dynamicDataSource.setTargetDataSources(map); +// dynamicDataSource.setDefaultTargetDataSource(defaultDataSource); +// +// return dynamicDataSource; +// } +// +// @Bean +// public SqlSessionFactory sqlSessionFactory( +// @Qualifier("dynamicDataSource") DataSource dynamicDataSource) +// throws Exception { +// SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); +// bean.setDataSource(dynamicDataSource); +// bean.setTypeAliasesPackage("com.mh.*.model"); // 扫描Model +// +// bean.setMapperLocations(new PathMatchingResourcePatternResolver() +// .getResources("classpath*:**/sqlmapper/*.xml")); +// return bean.getObject(); +// +// } +// +// @Bean(name = "sqlSessionTemplate") +// public SqlSessionTemplate sqlSessionTemplate( +// @Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) +// throws Exception { +// return new SqlSessionTemplate(sqlSessionFactory); +// } +// +//} diff --git a/user-service/src/main/java/com/mh/user/dynamic/config/MyBatisMapperScannerConfig.java b/user-service/src/main/java/com/mh/user/dynamic/config/MyBatisMapperScannerConfig.java index 7fff575..7fdcf9b 100644 --- a/user-service/src/main/java/com/mh/user/dynamic/config/MyBatisMapperScannerConfig.java +++ b/user-service/src/main/java/com/mh/user/dynamic/config/MyBatisMapperScannerConfig.java @@ -1,28 +1,28 @@ -package com.mh.user.dynamic.config; - -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.context.annotation.Bean; -import tk.mybatis.spring.mapper.MapperScannerConfigurer; - -import java.util.Properties; - -/** - * @author chison - * @date 2020-04-02 09:40 - * @Description - */ -@EnableAutoConfiguration -public class MyBatisMapperScannerConfig { - @Bean - public MapperScannerConfigurer mapperScannerConfigurer() { - MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); - mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); - mapperScannerConfigurer.setBasePackage("com.mh.user.mapper"); - Properties properties = new Properties(); - properties.setProperty("notEmpty", "false"); - properties.setProperty("IDENTITY", "MYSQL"); - mapperScannerConfigurer.setProperties(properties); - return mapperScannerConfigurer; - } - -} +//package com.mh.user.dynamic.config; +// +//import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +//import org.springframework.context.annotation.Bean; +//import tk.mybatis.spring.mapper.MapperScannerConfigurer; +// +//import java.util.Properties; +// +///** +// * @author chison +// * @date 2020-04-02 09:40 +// * @Description +// */ +//@EnableAutoConfiguration +//public class MyBatisMapperScannerConfig { +// @Bean +// public MapperScannerConfigurer mapperScannerConfigurer() { +// MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); +// mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); +// mapperScannerConfigurer.setBasePackage("com.mh.user.mapper"); +// Properties properties = new Properties(); +// properties.setProperty("notEmpty", "false"); +// properties.setProperty("IDENTITY", "MYSQL"); +// mapperScannerConfigurer.setProperties(properties); +// return mapperScannerConfigurer; +// } +// +//} diff --git a/user-service/src/main/java/com/mh/user/dynamic/datasource/DataSourceObject.java b/user-service/src/main/java/com/mh/user/dynamic/datasource/DataSourceObject.java index e9524d8..1d17e2e 100644 --- a/user-service/src/main/java/com/mh/user/dynamic/datasource/DataSourceObject.java +++ b/user-service/src/main/java/com/mh/user/dynamic/datasource/DataSourceObject.java @@ -1,71 +1,71 @@ -package com.mh.user.dynamic.datasource; - -import com.alibaba.druid.pool.DruidDataSource; -import com.mh.user.entity.DBEntity; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author chison - * @date 2020-04-02 09:40 - * @Description - */ -public class DataSourceObject { - - private Long MaxWait=6000L; - private Integer maxActive=10; - private Long timeBetweenEvictionRunsMillis=6000L; - - /** - * 切换sqlserver数据库,并动态赋值 - * @param dbInfo - * @param SourceName - */ - public void SwitchMySQLDataSource(DBEntity dbInfo, String SourceName) { - System.out.println("mysql进入数据源切换"); - System.out.println("MaxWait:"+MaxWait); - DruidDataSource dynamicDataSource = new DruidDataSource(); - dynamicDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); - dynamicDataSource.setUrl("jdbc:mysql://"+dbInfo.getDB_IP()+":"+dbInfo.getDB_Port()+"/"+dbInfo.getDB_Names()+"?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&autoReconnect=true"); - dynamicDataSource.setUsername(dbInfo.getDB_UserName()); - dynamicDataSource.setPassword(dbInfo.getDB_Pwd()); - dynamicDataSource.setMaxWait(MaxWait); - dynamicDataSource.setMaxActive(maxActive); - dynamicDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); - - DynamicDataSource dataSource = DynamicDataSource.getInstance(); - Map map=new HashMap(); - map.put(SourceName, dynamicDataSource); - dataSource.setTargetDataSources(map); - System.out.println(dynamicDataSource.getUrl()); - System.out.println(SourceName); - } - /** - * 第二个sqlserver数据库 - * @param dbInfo - * @param SourceName - */ - public void SwitchSQLServerDataSource(DBEntity dbInfo,String SourceName) { - System.out.println("进入数据源切换"); - System.out.println("MaxWait:"+MaxWait); - DruidDataSource dynamicDataSource = new DruidDataSource(); - dynamicDataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); - dynamicDataSource.setUrl("jdbc:sqlserver://"+dbInfo.getDB_IP()+":"+dbInfo.getDB_Port()+";Databasename="+dbInfo.getDB_Names()); - dynamicDataSource.setUsername(dbInfo.getDB_UserName()); - dynamicDataSource.setPassword(dbInfo.getDB_Pwd()); - System.out.println(dbInfo.getDB_UserName()); - System.out.println(dbInfo.getDB_Pwd()); - dynamicDataSource.setMaxWait(MaxWait); - dynamicDataSource.setMaxActive(maxActive); - dynamicDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); - - DynamicDataSource dataSource = DynamicDataSource.getInstance(); - Map map=new HashMap(); - map.put(SourceName, dynamicDataSource); - dataSource.setTargetDataSources(map); - - System.out.println(dynamicDataSource.getUrl()); - System.out.println(SourceName); - } -} +//package com.mh.user.dynamic.datasource; +// +//import com.alibaba.druid.pool.DruidDataSource; +//import com.mh.user.entity.DBEntity; +// +//import java.util.HashMap; +//import java.util.Map; +// +///** +// * @author chison +// * @date 2020-04-02 09:40 +// * @Description +// */ +//public class DataSourceObject { +// +// private Long MaxWait=6000L; +// private Integer maxActive=10; +// private Long timeBetweenEvictionRunsMillis=6000L; +// +// /** +// * 切换sqlserver数据库,并动态赋值 +// * @param dbInfo +// * @param SourceName +// */ +// public void SwitchMySQLDataSource(DBEntity dbInfo, String SourceName) { +// System.out.println("mysql进入数据源切换"); +// System.out.println("MaxWait:"+MaxWait); +// DruidDataSource dynamicDataSource = new DruidDataSource(); +// dynamicDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); +// dynamicDataSource.setUrl("jdbc:mysql://"+dbInfo.getDB_IP()+":"+dbInfo.getDB_Port()+"/"+dbInfo.getDB_Names()+"?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&autoReconnect=true"); +// dynamicDataSource.setUsername(dbInfo.getDB_UserName()); +// dynamicDataSource.setPassword(dbInfo.getDB_Pwd()); +// dynamicDataSource.setMaxWait(MaxWait); +// dynamicDataSource.setMaxActive(maxActive); +// dynamicDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); +// +// DynamicDataSource dataSource = DynamicDataSource.getInstance(); +// Map map=new HashMap(); +// map.put(SourceName, dynamicDataSource); +// dataSource.setTargetDataSources(map); +// System.out.println(dynamicDataSource.getUrl()); +// System.out.println(SourceName); +// } +// /** +// * 第二个sqlserver数据库 +// * @param dbInfo +// * @param SourceName +// */ +// public void SwitchSQLServerDataSource(DBEntity dbInfo,String SourceName) { +// System.out.println("进入数据源切换"); +// System.out.println("MaxWait:"+MaxWait); +// DruidDataSource dynamicDataSource = new DruidDataSource(); +// dynamicDataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); +// dynamicDataSource.setUrl("jdbc:sqlserver://"+dbInfo.getDB_IP()+":"+dbInfo.getDB_Port()+";Databasename="+dbInfo.getDB_Names()); +// dynamicDataSource.setUsername(dbInfo.getDB_UserName()); +// dynamicDataSource.setPassword(dbInfo.getDB_Pwd()); +// System.out.println(dbInfo.getDB_UserName()); +// System.out.println(dbInfo.getDB_Pwd()); +// dynamicDataSource.setMaxWait(MaxWait); +// dynamicDataSource.setMaxActive(maxActive); +// dynamicDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); +// +// DynamicDataSource dataSource = DynamicDataSource.getInstance(); +// Map map=new HashMap(); +// map.put(SourceName, dynamicDataSource); +// dataSource.setTargetDataSources(map); +// +// System.out.println(dynamicDataSource.getUrl()); +// System.out.println(SourceName); +// } +//} diff --git a/user-service/src/main/java/com/mh/user/entity/BaseResultEntity.java b/user-service/src/main/java/com/mh/user/entity/BaseResultEntity.java new file mode 100644 index 0000000..508a8cc --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/BaseResultEntity.java @@ -0,0 +1,34 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 数据结果集基本类 + * @date 2024-07-10 16:49:24 + */ +@Data +public class BaseResultEntity { + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + private String deviceAddr; + private String deviceType; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date curDate; + private String curValue; + private String funCode; + private String registerAddr; + private String registerName; + private int grade; + private String projectId; + private String projectName; + +} diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultChEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultChEntity.java index 6286d09..fa9604c 100644 --- a/user-service/src/main/java/com/mh/user/entity/DataResultChEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DataResultChEntity.java @@ -1,24 +1,7 @@ package com.mh.user.entity; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableName; -import java.util.Date; - -@Data -public class DataResultChEntity { - - private Long id; - private String deviceAddr; - private String deviceType; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date curDate; -// private String curDate; - private String curValue; - private String funCode; - private String registerAddr; - private String registerName; - private int grade; - private String projectID; - private String projectName; +@TableName("data_result_ch") +public class DataResultChEntity extends BaseResultEntity { } diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultChillerEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultChillerEntity.java new file mode 100644 index 0000000..609bdf4 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DataResultChillerEntity.java @@ -0,0 +1,7 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +@TableName("data_result_ch") +public class DataResultChillerEntity extends BaseResultEntity { +} diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultClBakEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultClBakEntity.java new file mode 100644 index 0000000..784b488 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DataResultClBakEntity.java @@ -0,0 +1,32 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("data_result_cl") +public class DataResultClBakEntity { + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + private String deviceAddr; + private String deviceType; + private Date curDate; + private BigDecimal curValue; + private BigDecimal lastValue; + private Date lastDate; + private BigDecimal ratio; + private BigDecimal calcValue; + private int grade; + private String havedUpdate; + private String registerAddr; + private String registerName; + private String projectName; + private String projectId; + +} diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultClEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultClEntity.java index ed6ccbe..9f221fb 100644 --- a/user-service/src/main/java/com/mh/user/entity/DataResultClEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DataResultClEntity.java @@ -1,23 +1,32 @@ package com.mh.user.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data +@TableName("data_result_cl") public class DataResultClEntity { + + @TableId(value = "id", type = IdType.AUTO) private Long id; private String deviceAddr; private String deviceType; - private double lastValue; - private Date lastDate; - private double curValue; private Date curDate; - private double ratio; - private double calcValue; + private BigDecimal curValue; + private BigDecimal lastValue; + private Date lastDate; + private BigDecimal ratio; + private BigDecimal calcValue; private int grade; + private String havedUpdate; private String registerAddr; private String registerName; private String projectName; - private String projectID; + private String projectId; + } diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultEntity.java index e23f8d0..495690c 100644 --- a/user-service/src/main/java/com/mh/user/entity/DataResultEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DataResultEntity.java @@ -1,22 +1,32 @@ package com.mh.user.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; +@TableName("data_result") @Data public class DataResultEntity { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) private Long id; private String deviceAddr; private String deviceType; - private double lastValue; + private BigDecimal lastValue; private Date lastDate; - private double curValue; + private BigDecimal curValue; private Date curDate; - private double ratio; - private double calcValue; + private BigDecimal ratio; + private BigDecimal calcValue; private int grade; + private String havedUpdate; private String projectName; private String projectID; } diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultFifteenMiEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultFifteenMiEntity.java new file mode 100644 index 0000000..e0dc7f9 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DataResultFifteenMiEntity.java @@ -0,0 +1,7 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +@TableName("data_result_fifteen_mi") +public class DataResultFifteenMiEntity extends BaseResultEntity { +} diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultFiveMiEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultFiveMiEntity.java new file mode 100644 index 0000000..6ecfc71 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DataResultFiveMiEntity.java @@ -0,0 +1,7 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +@TableName("data_result_five_mi") +public class DataResultFiveMiEntity extends BaseResultEntity { +} diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultNowEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultNowEntity.java new file mode 100644 index 0000000..f4c1b05 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DataResultNowEntity.java @@ -0,0 +1,7 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +@TableName("data_result_now") +public class DataResultNowEntity extends BaseResultEntity { +} diff --git a/user-service/src/main/java/com/mh/user/entity/DataResultOneMiEntity.java b/user-service/src/main/java/com/mh/user/entity/DataResultOneMiEntity.java new file mode 100644 index 0000000..9287397 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DataResultOneMiEntity.java @@ -0,0 +1,7 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +@TableName("data_result_one_mi") +public class DataResultOneMiEntity extends BaseResultEntity { +} diff --git a/user-service/src/main/java/com/mh/user/entity/DeviceCodeEntity.java b/user-service/src/main/java/com/mh/user/entity/DeviceCodeEntity.java new file mode 100644 index 0000000..72fa200 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/entity/DeviceCodeEntity.java @@ -0,0 +1,130 @@ +package com.mh.user.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 设备基表安装信息 + * @date 2024-07-11 13:57:36 + */ +@Data +@TableName("device_code") +public class DeviceCodeEntity { + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 通讯编号 + */ + private String deviceAddr; + + /** + * 设备类型 + */ + private String deviceType; + + /** + * 串口 + */ + private String dataCom; + + /** + * 端口 + */ + private String dataPort; + + /** + * 设备规格 + */ + private String standard; + + /** + * 安装位置 + */ + private String installPosition; + + /** + * 初始值 + */ + private BigDecimal initValue; + + /** + * 倍率 + */ + private BigDecimal ratio; + + /** + * 是否时总表 + */ + private String isTotal; + + /** + * 是否停用 + */ + private String isForbid; + + /** + * 停用时间 + */ + private Date forbidDate; + + /** + * 上次抄表读数 + */ + private BigDecimal lastValue; + + /** + * 上次抄表时间 + */ + private Date lastDate; + + /** + * 级别 + */ + private int grade; + + /** + * 波特率 + */ + private int baudRate; + + /** + * 项目ID + */ + private String projectId; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 品牌 + */ + private String brand; + + /** + * 安装时间 + */ + private Date installDate; + + /** + * 奇偶校验 + */ + private String parity; + + /** + * 备注 + */ + private String remarks; + +} diff --git a/user-service/src/main/java/com/mh/user/entity/DeviceCodeParamEntity.java b/user-service/src/main/java/com/mh/user/entity/DeviceCodeParamEntity.java index 18821f3..ba46ff7 100644 --- a/user-service/src/main/java/com/mh/user/entity/DeviceCodeParamEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DeviceCodeParamEntity.java @@ -1,7 +1,16 @@ package com.mh.user.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + import java.util.Date; +@Setter +@Getter +@ToString +@TableName("device_code_param") public class DeviceCodeParamEntity { private Long id; @@ -22,139 +31,4 @@ public class DeviceCodeParamEntity { private Date createTime; private String projectID; - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getDeviceAddr() { - return deviceAddr; - } - - public void setDeviceAddr(String deviceAddr) { - this.deviceAddr = deviceAddr; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public String getDeviceType() { - return deviceType; - } - - public void setDeviceType(String deviceType) { - this.deviceType = deviceType; - } - - public String getStrData() { - return strData; - } - - public void setStrData(String strData) { - this.strData = strData; - } - - public String getDataPort() { - return dataPort; - } - - public void setDataPort(String dataPort) { - this.dataPort = dataPort; - } - - public int getBaudRate() { - return baudRate; - } - - public void setBaudRate(int baudRate) { - this.baudRate = baudRate; - } - - public String getParity() { - return parity; - } - - public void setParity(String parity) { - this.parity = parity; - } - - public String getBrand() { - return brand; - } - - public void setBrand(String brand) { - this.brand = brand; - } - - public String getFunCode() { - return funCode; - } - - public void setFunCode(String funCode) { - this.funCode = funCode; - } - - public String getRegisterAddr() { - return registerAddr; - } - - public void setRegisterAddr(String registerAddr) { - this.registerAddr = registerAddr; - } - - public String getRegisterName() { - return registerName; - } - - public void setRegisterName(String registerName) { - this.registerName = registerName; - } - - public int getDigit() { - return digit; - } - - public void setDigit(int digit) { - this.digit = digit; - } - - public int getGrade() { - return grade; - } - - public void setGrade(int grade) { - this.grade = grade; - } - - public String getDataValue() { - return dataValue; - } - - public void setDataValue(String dataValue) { - this.dataValue = dataValue; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public String getProjectID() { - return projectID; - } - - public void setProjectID(String projectID) { - this.projectID = projectID; - } } diff --git a/user-service/src/main/java/com/mh/user/entity/DeviceInfoEntity.java b/user-service/src/main/java/com/mh/user/entity/DeviceInfoEntity.java index deeb81b..da668b1 100644 --- a/user-service/src/main/java/com/mh/user/entity/DeviceInfoEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DeviceInfoEntity.java @@ -12,9 +12,9 @@ public class DeviceInfoEntity { private String power; //功率 private String madeTime; //制造时间 private String flow; //流量 - private String isFC; //是否变频 + private String isFc; //是否变频 private String motorBrand; //机电品牌 - private String projectID; //项目ID - private String systemID; //系统ID + private String projectId; //项目ID + private String systemId; //系统ID } diff --git a/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java b/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java index 844769e..f88b51c 100644 --- a/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java @@ -1,6 +1,8 @@ package com.mh.user.entity; import lombok.Data; + +import java.math.BigDecimal; import java.util.Date; @Data @@ -14,9 +16,9 @@ public class DeviceInstallEntity { private String dataPort; private int baudRate; private String parity; - private double ratio; - private double initValue; - private double lastValue; + private BigDecimal ratio; + private BigDecimal initValue; + private BigDecimal lastValue; private Date lastDate; private String standard; private String isTotal; @@ -27,5 +29,8 @@ public class DeviceInstallEntity { private Date installDate; private String projectID; private String remarks; - + private String registerAddr; + private String registerName; + private String funCode; + private int digit; } diff --git a/user-service/src/main/java/com/mh/user/entity/EnergyDataEntity.java b/user-service/src/main/java/com/mh/user/entity/EnergyDataEntity.java index fe5b116..b2fa9e4 100644 --- a/user-service/src/main/java/com/mh/user/entity/EnergyDataEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/EnergyDataEntity.java @@ -2,7 +2,6 @@ package com.mh.user.entity; import lombok.Data; -@Data public class EnergyDataEntity { private long id; @@ -13,6 +12,102 @@ public class EnergyDataEntity { private Double elect; private Double cl; private Double cop; - private String projectID; + private String projectId; private String projectName; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getCurDate() { + return curDate; + } + + public void setCurDate(String curDate) { + this.curDate = curDate; + } + + public String getAmbTemp() { + return ambTemp; + } + + public void setAmbTemp(String ambTemp) { + this.ambTemp = ambTemp; + } + + public String getHumidity() { + return humidity; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + public Double getWater() { + return water; + } + + public void setWater(Double water) { + this.water = water; + } + + public Double getElect() { + return elect; + } + + public void setElect(Double elect) { + this.elect = elect; + } + + public Double getCl() { + return cl; + } + + public void setCl(Double cl) { + this.cl = cl; + } + + public Double getCop() { + return cop; + } + + public void setCop(Double cop) { + this.cop = cop; + } + + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + @Override + public String toString() { + return "EnergyDataEntity{" + + "id=" + id + + ", curDate='" + curDate + '\'' + + ", ambTemp='" + ambTemp + '\'' + + ", humidity='" + humidity + '\'' + + ", water=" + water + + ", elect=" + elect + + ", cl=" + cl + + ", cop=" + cop + + ", projectId='" + projectId + '\'' + + ", projectName='" + projectName + '\'' + + '}'; + } } diff --git a/user-service/src/main/java/com/mh/user/entity/GatewayManageEntity.java b/user-service/src/main/java/com/mh/user/entity/GatewayManageEntity.java index 5159368..83bad0c 100644 --- a/user-service/src/main/java/com/mh/user/entity/GatewayManageEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/GatewayManageEntity.java @@ -3,6 +3,7 @@ package com.mh.user.entity; import lombok.Data; import lombok.Getter; import lombok.Setter; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -14,12 +15,14 @@ import java.util.Date; * @updateTime 2020-05-21 * @throws : */ -@Data +@Setter +@Getter +@ToString public class GatewayManageEntity extends BaseEntity { private String gatewayName; // 网关名称 - private String gatewayIP; // 网关IP地址 + private String gatewayIp; // 网关IP地址 private String gatewayAddress; // 网关安装地址 private String dataCom; // 串口号 private String createDate; // 安装时间 diff --git a/user-service/src/main/java/com/mh/user/entity/MeterInfoEntity.java b/user-service/src/main/java/com/mh/user/entity/MeterInfoEntity.java index d82949b..85ddb48 100644 --- a/user-service/src/main/java/com/mh/user/entity/MeterInfoEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/MeterInfoEntity.java @@ -1,10 +1,16 @@ package com.mh.user.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; + +@TableName("meter_info") @Data public class MeterInfoEntity { + @TableId(value = "id", type = IdType.AUTO) private Long id; private String meterName; //表名称 private String meterType; //表类型 @@ -16,6 +22,7 @@ public class MeterInfoEntity { private String caliber; //口径 private String range; //测量范围 private String structural; //结构形式 - private String projectID; //项目ID - private String systemID; //系统ID + private String projectId; //项目ID + private String systemId; //系统ID } + diff --git a/user-service/src/main/java/com/mh/user/entity/ProjectInfoEntity.java b/user-service/src/main/java/com/mh/user/entity/ProjectInfoEntity.java index 81ccd36..c5d07c5 100644 --- a/user-service/src/main/java/com/mh/user/entity/ProjectInfoEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/ProjectInfoEntity.java @@ -1,11 +1,13 @@ package com.mh.user.entity; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +@TableName("project_info") @Data public class ProjectInfoEntity { - private String id; + private Long id; private String projectName; //项目名称 private String pAddress; //地址 private int pScale; diff --git a/user-service/src/main/java/com/mh/user/entity/RegisterAddrEntity.java b/user-service/src/main/java/com/mh/user/entity/RegisterAddrEntity.java index 86cf080..7125c5f 100644 --- a/user-service/src/main/java/com/mh/user/entity/RegisterAddrEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/RegisterAddrEntity.java @@ -1,7 +1,9 @@ package com.mh.user.entity; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +@TableName("register_addr") @Data public class RegisterAddrEntity { diff --git a/user-service/src/main/java/com/mh/user/entity/StrategyInfoEntity.java b/user-service/src/main/java/com/mh/user/entity/StrategyInfoEntity.java index 08b876e..80e4574 100644 --- a/user-service/src/main/java/com/mh/user/entity/StrategyInfoEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/StrategyInfoEntity.java @@ -1,14 +1,77 @@ package com.mh.user.entity; -import lombok.Data; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; -@Data +@TableName("strategy_info") public class StrategyInfoEntity { + @TableId(value = "id", type = IdType.AUTO) private Long id; private String dataAnalysis; private String operationOpt; private String controlOpt; - private String projectID; - private String systemID; + private String projectId; + private String systemId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDataAnalysis() { + return dataAnalysis; + } + + public void setDataAnalysis(String dataAnalysis) { + this.dataAnalysis = dataAnalysis; + } + + public String getOperationOpt() { + return operationOpt; + } + + public void setOperationOpt(String operationOpt) { + this.operationOpt = operationOpt; + } + + public String getControlOpt() { + return controlOpt; + } + + public void setControlOpt(String controlOpt) { + this.controlOpt = controlOpt; + } + + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public String getSystemId() { + return systemId; + } + + public void setSystemId(String systemId) { + this.systemId = systemId; + } + + @Override + public String toString() { + return "StrategyInfoEntity{" + + "id=" + id + + ", dataAnalysis='" + dataAnalysis + '\'' + + ", operationOpt='" + operationOpt + '\'' + + ", controlOpt='" + controlOpt + '\'' + + ", projectId='" + projectId + '\'' + + ", systemId='" + systemId + '\'' + + '}'; + } } diff --git a/user-service/src/main/java/com/mh/user/entity/chart/ChartEntity.java b/user-service/src/main/java/com/mh/user/entity/chart/ChartEntity.java index fe21e01..8337438 100644 --- a/user-service/src/main/java/com/mh/user/entity/chart/ChartEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/chart/ChartEntity.java @@ -1,6 +1,6 @@ package com.mh.user.entity.chart; -import com.alibaba.fastjson.annotation.JSONType; +import com.alibaba.fastjson2.annotation.JSONType; import lombok.Getter; import lombok.Setter; diff --git a/user-service/src/main/java/com/mh/user/entity/chart/Feature.java b/user-service/src/main/java/com/mh/user/entity/chart/Feature.java index f9fa643..8597323 100644 --- a/user-service/src/main/java/com/mh/user/entity/chart/Feature.java +++ b/user-service/src/main/java/com/mh/user/entity/chart/Feature.java @@ -1,6 +1,6 @@ package com.mh.user.entity.chart; -import com.alibaba.fastjson.annotation.JSONType; +import com.alibaba.fastjson2.annotation.JSONType; import lombok.Getter; import lombok.Setter; diff --git a/user-service/src/main/java/com/mh/user/entity/chart/Legend.java b/user-service/src/main/java/com/mh/user/entity/chart/Legend.java index 6c56faa..397f89d 100644 --- a/user-service/src/main/java/com/mh/user/entity/chart/Legend.java +++ b/user-service/src/main/java/com/mh/user/entity/chart/Legend.java @@ -1,6 +1,6 @@ package com.mh.user.entity.chart; -import com.alibaba.fastjson.annotation.JSONType; +import com.alibaba.fastjson2.annotation.JSONType; import lombok.Getter; import lombok.Setter; diff --git a/user-service/src/main/java/com/mh/user/entity/chart/Series.java b/user-service/src/main/java/com/mh/user/entity/chart/Series.java index 5d965b0..6c9f911 100644 --- a/user-service/src/main/java/com/mh/user/entity/chart/Series.java +++ b/user-service/src/main/java/com/mh/user/entity/chart/Series.java @@ -1,6 +1,6 @@ package com.mh.user.entity.chart; -import com.alibaba.fastjson.annotation.JSONType; +import com.alibaba.fastjson2.annotation.JSONType; import lombok.Getter; import lombok.Setter; diff --git a/user-service/src/main/java/com/mh/user/entity/chart/Title.java b/user-service/src/main/java/com/mh/user/entity/chart/Title.java index 2230feb..898472e 100644 --- a/user-service/src/main/java/com/mh/user/entity/chart/Title.java +++ b/user-service/src/main/java/com/mh/user/entity/chart/Title.java @@ -1,6 +1,6 @@ package com.mh.user.entity.chart; -import com.alibaba.fastjson.annotation.JSONType; +import com.alibaba.fastjson2.annotation.JSONType; import lombok.Getter; import lombok.Setter; diff --git a/user-service/src/main/java/com/mh/user/entity/chart/YAxis.java b/user-service/src/main/java/com/mh/user/entity/chart/YAxis.java index da011b6..d642a9a 100644 --- a/user-service/src/main/java/com/mh/user/entity/chart/YAxis.java +++ b/user-service/src/main/java/com/mh/user/entity/chart/YAxis.java @@ -1,6 +1,6 @@ package com.mh.user.entity.chart; -import com.alibaba.fastjson.annotation.JSONType; +import com.alibaba.fastjson2.annotation.JSONType; import lombok.Getter; import lombok.Setter; diff --git a/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java b/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java index b75290f..9ca35e7 100644 --- a/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java +++ b/user-service/src/main/java/com/mh/user/job/CollectionLoopRunner.java @@ -1,26 +1,16 @@ package com.mh.user.job; -import com.mh.user.entity.AddCronJobReq; import com.mh.user.entity.ProjectInfoEntity; -import com.mh.user.manage.QuartzManager; import com.mh.user.netty.EchoServer; -import com.mh.user.serialport.SerialPortListener; -import com.mh.user.serialport.SerialPortUtil; import com.mh.user.service.ProjectInfoService; import com.mh.user.utils.GetReadOrder485; import gnu.io.SerialPort; -import gnu.io.SerialPortEvent; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author ljf @@ -29,11 +19,10 @@ import java.util.Map; * @updateTime 2020-05-15 * @throws : */ +@Slf4j @Component public class CollectionLoopRunner implements ApplicationRunner { - private static final Logger log = Logger.getLogger(CollectionLoopRunner.class); - public static SerialPort serialPort = null; @Autowired @@ -45,7 +34,7 @@ public class CollectionLoopRunner implements ApplicationRunner { List projectInfoEntities = projectInfoService.queryProjectInfo("1"); if (null != projectInfoEntities && !projectInfoEntities.isEmpty()) { for (ProjectInfoEntity projectInfoEntity : projectInfoEntities) { - getReadOrder485.createOrderParam(projectInfoEntity.getId()); //生成采集参数,1新珠江(6000),2广合科技(6001),3广大科技(6002),6珠江国际,7保利山庄,8东莞迎宾馆 + getReadOrder485.createOrderParam(String.valueOf(projectInfoEntity.getId())); //生成采集参数,1新珠江(6000),2广合科技(6001),3广大科技(6002),6珠江国际,7保利山庄,8东莞迎宾馆 } } try{ @@ -55,215 +44,4 @@ public class CollectionLoopRunner implements ApplicationRunner { } } -// public void test() throws Exception { -// System.out.println("测试定时采集开关"); -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "2"); -// params.put("name", "test1"); -// //每 1 分钟 执行一次 -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// addCronJobReq.setDate("0/10 * * * * ?"); -//// addCronJobReq.setDate("0/5 * * * * ?"); -// addCronJobReq.setJobClass("JobTest1"); -// addCronJobReq.setJobGroupName("JobTestGroup1"); -// addCronJobReq.setJobName("Test1"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerTestGroup1"); -// addCronJobReq.setTriggerName("triggerTest1"); -// quartzManager.addCronJob(addCronJobReq); -// } -// -// /** -// * 定时采集电表和冷量计 -// * -// * @throws Exception -// */ -// public void collectionMeterAndCloud() throws Exception { -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "6"); -// params.put("name", "cloud_meter"); -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// //每 15 分钟 执行一次 -// addCronJobReq.setDate("0 0/15 * * * ?"); -// //每 3 分钟 执行一次 -//// addCronJobReq.setDate("35 0/2 * * * ?"); -// //每 2 分钟 执行一次 -//// addCronJobReq.setDate("25 0/2 * * * ?"); -// //每 1 分钟 执行一次 -//// addCronJobReq.setDate("0/10 * * * * ?"); -//// addCronJobReq.setDate("0/5 * * * * ?"); -// addCronJobReq.setJobClass("JobCloudAndMeter"); -// addCronJobReq.setJobGroupName("JobCloudAndMeterGroup"); -// addCronJobReq.setJobName("CloudAndMeter"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerCloudAndMeterGroup"); -// addCronJobReq.setTriggerName("triggerCloudAndMeter"); -// quartzManager.addCronJob(addCronJobReq); -// } -// -// /** -// * 定时采集冷量计 -// * -// * @throws Exception -// */ -// public void collectionCloud() throws Exception { -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "1"); -// params.put("name", "cloud"); -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// //每 2 分钟 执行一次 -// addCronJobReq.setDate("25 0/2 * * * ?"); -//// addCronJobReq.setDate("0/5 * * * * ?"); -// addCronJobReq.setJobClass("JobCloud"); -// addCronJobReq.setJobGroupName("JobCloudGroup"); -// addCronJobReq.setJobName("Cloud"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerCloudGroup"); -// addCronJobReq.setTriggerName("triggerCloud"); -// quartzManager.addCronJob(addCronJobReq); -// } -// /** -// * 定时采集电表 -// * -// * @throws Exception -// */ -// public void collectionMeter() throws Exception { -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "2"); -// params.put("name", "meter"); -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// //每 3 分钟 执行一次 -// addCronJobReq.setDate("35 0/2 * * * ?"); -//// addCronJobReq.setDate("0/20 * * * * ?"); -// addCronJobReq.setJobClass("JobMeter"); -// addCronJobReq.setJobGroupName("JobMeterGroup"); -// addCronJobReq.setJobName("Meter"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerMeterGroup"); -// addCronJobReq.setTriggerName("triggerMeter"); -// quartzManager.addCronJob(addCronJobReq); -// } -// -// /** -// * 定时采集DDC设备 -// * -// * @throws Exception -// */ -// public void collectionDDC() throws Exception { -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "3"); -// params.put("name", "ddc"); -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// //每 1分钟 执行一次 -//// addCronJobReq.setDate("3,33 * * * * ?"); -// addCronJobReq.setDate("45 0/1 * * * ?"); -// addCronJobReq.setJobClass("JobDDC"); -// addCronJobReq.setJobGroupName("JobDDCGroup"); -// addCronJobReq.setJobName("DDC"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerDDCGroup"); -// addCronJobReq.setTriggerName("triggerDDC"); -// quartzManager.addCronJob(addCronJobReq); -// } -// -// /** -// * 定时采集冷水机组设备 -// * -// * @throws Exception -// */ -// public void collectionChillers() throws Exception { -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "4"); -// params.put("name", "chillers"); -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// //每3分钟 执行一次 -// addCronJobReq.setDate("55 0/2 * * * ? "); -//// addCronJobReq.setDate("0/30 * * * * ?"); -// addCronJobReq.setJobClass("JobChillers"); -// addCronJobReq.setJobGroupName("JobChillersGroup"); -// addCronJobReq.setJobName("Chillers"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerChillersGroup"); -// addCronJobReq.setTriggerName("triggerChillers"); -// quartzManager.addCronJob(addCronJobReq); -// } -// -// /** -// * 4分钟,采集第二个冷水机组数据 -// */ -// public void collectionChillers1() { -// // 执行定义的定时采集程序 -// Map params = new HashMap<>(); -// params.put("id", "5"); -// params.put("name", "chillers1"); -// AddCronJobReq addCronJobReq = new AddCronJobReq(); -// //每 4分钟 执行一次 -// addCronJobReq.setDate("0 0/5 * * * ? "); -//// addCronJobReq.setDate("0/30 * * * * ?"); -// addCronJobReq.setJobClass("JobChillers1"); -// addCronJobReq.setJobGroupName("JobChillersGroup1"); -// addCronJobReq.setJobName("Chillers1"); -// addCronJobReq.setParams(params); -// addCronJobReq.setTriggerGroupName("triggerChillersGroup1"); -// addCronJobReq.setTriggerName("triggerChillers1"); -// try { -// quartzManager.addCronJob(addCronJobReq); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// -// public void testSerialPort(){ -// -// String portname = "COM7"; -// //TestA(); -// //查看所有串口 -// SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil(); -// ArrayList port = serialPortUtil.findPort(); -// System.out.println("发现全部串口:" + port); -// -// System.out.println("打开指定portname:" + portname); -// //打开该对应portname名字的串口 -// CollectionLoopRunner.serialPort = serialPortUtil.openPort(portname, 2400, SerialPort.DATABITS_8, SerialPort.PARITY_EVEN, SerialPort.PARITY_ODD); -// -// byte[] HEX = SerialPortListener.hexStr2Byte("FEFEFE6810398710810000000103901F007C16"); -// serialPortUtil.sendToPort(CollectionLoopRunner.serialPort, HEX); -// -// //给对应的serialPort添加监听器 -// serialPortUtil.addListener(CollectionLoopRunner.serialPort, new SerialPortListener()); -// -// } -// -// public void plcAnalytic() { -// String portName = "COM1"; -// //查看所有串口 -// SerialPortUtil serialPortUtil = SerialPortUtil.getSerialPortUtil(); -// //打开该对应portName名字的串口 -// if (CollectionLoopRunner.serialPort == null) { -// CollectionLoopRunner.serialPort = serialPortUtil.openPort(portName, 19200, SerialPort.DATABITS_8, SerialPort.PARITY_NONE, SerialPort.PARITY_ODD); -// byte[] hex = SerialPortListener.hexStr2Byte("A55A230000000022".replaceAll("\\s*", "")); -// serialPortUtil.sendToPort(CollectionLoopRunner.serialPort, hex); -// -// //给对应的serialPort添加监听器-->设置串口的Listener -// SerialPortUtil.setListenerToSerialPort(CollectionLoopRunner.serialPort, serialPortEvent -> { -// if (serialPortEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { -// byte[] bytes = serialPortUtil.readFromPort(CollectionLoopRunner.serialPort); -// -// String needData = SerialPortListener.printHexString(bytes); -// -// //数据校验 校验数据长度、起始5A A5、数据sum位 -//// if (PlcUtil.makeChecksum(needData)) { -//// //数据解析方法 此处编写你的解析方法,根据获取到的数据编写适合自己的方法 -//// } -// } -// }); -// } -// } - } diff --git a/user-service/src/main/java/com/mh/user/job/DealDataJob.java b/user-service/src/main/java/com/mh/user/job/DealDataJob.java index 4712011..d52bfcc 100644 --- a/user-service/src/main/java/com/mh/user/job/DealDataJob.java +++ b/user-service/src/main/java/com/mh/user/job/DealDataJob.java @@ -3,7 +3,7 @@ package com.mh.user.job; import com.mh.user.service.chillers.DealDataService; import com.mh.user.utils.ExchangeStringUtil; import com.mh.user.utils.SimpleWeather; -import org.apache.log4j.Logger; +import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; @@ -16,12 +16,11 @@ import java.util.*; * @updateTime 2020-07-28 * @throws : */ +@Slf4j @Component public class DealDataJob { private final DealDataService dealDataService; - private final SimpleWeather simpleWeather=new SimpleWeather(); - private static final Logger log = Logger.getLogger(DealDataJob.class); public DealDataJob(DealDataService dealDataService) { this.dealDataService = dealDataService; } diff --git a/user-service/src/main/java/com/mh/user/job/JobChillers.java b/user-service/src/main/java/com/mh/user/job/JobChillers.java deleted file mode 100644 index 88a6c7a..0000000 --- a/user-service/src/main/java/com/mh/user/job/JobChillers.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.mh.user.job; - -import com.mh.user.constants.SocketMessage; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @author ljf - * @title : - * @description :定时采集冷水机组参数 - * @updateTime 2020-06-24 - * @throws : - */ -/** - * :@DisallowConcurrentExecution : 此标记用在实现Job的类上面,意思是不允许并发执行. - * :注意org.quartz.threadPool.threadCount线程池中线程的数量至少要多个,否则@DisallowConcurrentExecution不生效 - * :假如Job的设置时间间隔为3秒,但Job执行时间是5秒,设置@DisallowConcurrentExecution以后程序会等任务执行完毕以后再去执行, - * 否则会在3秒时再启用新的线程执行 - */ -@DisallowConcurrentExecution -@Slf4j -public class JobChillers implements Job { - - @Autowired - private SocketMessage socketMessage; - - @SneakyThrows - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - log.info("定时采集冷水机组"); -// NettyChillerClient nettyChillerClient = new NettyChillerClient(); - - } -} diff --git a/user-service/src/main/java/com/mh/user/job/JobCloud.java b/user-service/src/main/java/com/mh/user/job/JobCloud.java deleted file mode 100644 index d627f86..0000000 --- a/user-service/src/main/java/com/mh/user/job/JobCloud.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.mh.user.job; - -import com.mh.user.netty.NettyClient; -import com.mh.user.constants.SocketMessage; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @author ljf - * @title : - * @description : 定时采集冷量计任务 - * @updateTime 2020-05-18 - * @throws : - */ -/** - * :@DisallowConcurrentExecution : 此标记用在实现Job的类上面,意思是不允许并发执行. - * :注意org.quartz.threadPool.threadCount线程池中线程的数量至少要多个,否则@DisallowConcurrentExecution不生效 - * :假如Job的设置时间间隔为3秒,但Job执行时间是5秒,设置@DisallowConcurrentExecution以后程序会等任务执行完毕以后再去执行, - * 否则会在3秒时再启用新的线程执行 - */ -@DisallowConcurrentExecution -@Slf4j -public class JobCloud implements Job { - - @Autowired - private SocketMessage socketMessage; - - @SneakyThrows - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - // 定时采集冷量计 - log.info("定时采集冷量计"); - NettyClient nettyClient = new NettyClient(); - nettyClient.connect(socketMessage.getPort(),socketMessage.getIP()); - } -} diff --git a/user-service/src/main/java/com/mh/user/job/JobDDC.java b/user-service/src/main/java/com/mh/user/job/JobDDC.java deleted file mode 100644 index 3eee735..0000000 --- a/user-service/src/main/java/com/mh/user/job/JobDDC.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.mh.user.job; - -import com.mh.user.constants.SocketMessage; -import com.mh.user.netty.NettyChillerDDCClient; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @author ljf - * @title : 定时采集DDC设备 - * @description : - * @updateTime 2020-06-09 - * @throws : - */ -/** - * :@DisallowConcurrentExecution : 此标记用在实现Job的类上面,意思是不允许并发执行. - * :注意org.quartz.threadPool.threadCount线程池中线程的数量至少要多个,否则@DisallowConcurrentExecution不生效 - * :假如Job的设置时间间隔为3秒,但Job执行时间是5秒,设置@DisallowConcurrentExecution以后程序会等任务执行完毕以后再去执行, - * 否则会在3秒时再启用新的线程执行 - */ -@DisallowConcurrentExecution -@Slf4j -public class JobDDC implements Job { - - @Autowired - private SocketMessage socketMessage; - - @SneakyThrows - @Override - public void execute(JobExecutionContext jobExecutionContext) { - log.info("定时采集DDC设备"); -// NettyChillerDDCClient nettyChillerDDCClient = new NettyChillerDDCClient(); - NettyChillerDDCClient.connect(socketMessage.getPort(), socketMessage.getIP()); - } -} diff --git a/user-service/src/main/java/com/mh/user/job/JobFactory.java b/user-service/src/main/java/com/mh/user/job/JobFactory.java deleted file mode 100644 index b124b49..0000000 --- a/user-service/src/main/java/com/mh/user/job/JobFactory.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.mh.user.job; - -import org.quartz.spi.TriggerFiredBundle; -import org.springframework.beans.factory.config.AutowireCapableBeanFactory; -import org.springframework.scheduling.quartz.AdaptableJobFactory; -import org.springframework.stereotype.Component; - -/** - * @author ljf - * @title :创建JobFactory实例 - * @description : - * @updateTime 2020-04-03 - * @throws : - */ -@Component -public class JobFactory extends AdaptableJobFactory { - - /** - * AutowireCapableBeanFactory接口是BeanFactory的子类 - * 可以连接和填充那些生命周期不被Spring管理的已存在的bean实例 - */ - private AutowireCapableBeanFactory factory; - - /** - * @author jinhaoxun - * @description 构造器 - * @param factory - */ - public JobFactory(AutowireCapableBeanFactory factory) { - this.factory = factory; - } - - /** - * @author jinhaoxun - * @description 创建Job实例 - * @param bundle - * @return Object - */ - @Override - protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { - Object job = super.createJobInstance(bundle);// 实例化对象 - factory.autowireBean(job);// 进行注入(Spring管理该Bean) - return job;//返回对象 - } -} diff --git a/user-service/src/main/java/com/mh/user/job/JobMeter.java b/user-service/src/main/java/com/mh/user/job/JobMeter.java deleted file mode 100644 index b9e6cd8..0000000 --- a/user-service/src/main/java/com/mh/user/job/JobMeter.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.mh.user.job; - -import com.mh.user.netty.NettyMeterClient; -import com.mh.user.constants.SocketMessage; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * @author ljf - * @title : - * @description : 定时采集电表数据任务 - * @updateTime 2020-05-18 - * @throws : - */ -/** - * :@DisallowConcurrentExecution : 此标记用在实现Job的类上面,意思是不允许并发执行. - * :注意org.quartz.threadPool.threadCount线程池中线程的数量至少要多个,否则@DisallowConcurrentExecution不生效 - * :假如Job的设置时间间隔为3秒,但Job执行时间是5秒,设置@DisallowConcurrentExecution以后程序会等任务执行完毕以后再去执行, - * 否则会在3秒时再启用新的线程执行 - */ -@DisallowConcurrentExecution -@Slf4j -public class JobMeter implements Job { - - @Autowired - private SocketMessage socketMessage; - - @SneakyThrows - @Override - public void execute(JobExecutionContext jobExecutionContext) { - log.info("定时采集电表数据任务开始"); - NettyMeterClient nettyMeterClient = new NettyMeterClient(); - nettyMeterClient.connect(socketMessage.getPort(), socketMessage.getIP()); - } -} diff --git a/user-service/src/main/java/com/mh/user/job/JobTest.java b/user-service/src/main/java/com/mh/user/job/JobTest.java deleted file mode 100644 index ccbee63..0000000 --- a/user-service/src/main/java/com/mh/user/job/JobTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.mh.user.job; - -import com.mh.user.constants.Constant; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * :@DisallowConcurrentExecution : 此标记用在实现Job的类上面,意思是不允许并发执行. - * :注意org.quartz.threadPool.threadCount线程池中线程的数量至少要多个,否则@DisallowConcurrentExecution不生效 - * :假如Job的设置时间间隔为3秒,但Job执行时间是5秒,设置@DisallowConcurrentExecution以后程序会等任务执行完毕以后再去执行, - * 否则会在3秒时再启用新的线程执行 - */ -@DisallowConcurrentExecution -@Slf4j -public class JobTest implements Job { - @SneakyThrows - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - for (int i = 0; i < 30; i++) { - if (Constant.FLAG) { - break; - } - Thread.sleep(1000); - log.info("第" + i + "个," +jobExecutionContext.getJobDetail()+"---------------------定时任务测试----------------------"); - } - - } -} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultChMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultChMapper.java new file mode 100644 index 0000000..f07df77 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultChMapper.java @@ -0,0 +1,73 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultClEntity; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 数据冷量计 + * @date 2024-07-10 15:20:55 + */ +@Mapper +public interface DataResultChMapper extends BaseMapper { + + //---------------------------------------------------------------------------------------------- + //保存冷量计数据 + @Insert("insert into data_result_ch(device_addr,device_type,fun_code,register_addr,register_name,cur_value,cur_date,project_id,grade) values (" + + " #{deviceAddr},#{deviceType},#{funCode},#{registerAddr},#{registerName},#{curValue},#{curDate},#{projectID},#{grade})") + void saveDataResultCh(DataResultChEntity dataResultChEntity); + + @Update("") + void updateDataResultCh(DataResultChEntity dataResultChEntity); + + @Select("select count(*) from data_result_ch " + + " where cur_date=#{curDate} " + + " and device_addr=#{deviceAddr} " + + " and register_addr=#{registerAddr} " + + " and project_id=#{projectID} " + + " and grade = #{grade} ") + int selectDataResultChCount(@Param("curDate") String curDate, + @Param("deviceAddr") String deviceAddr, + @Param("registerAddr") String registerAddr, + @Param("projectID") String projectID, + @Param("grade") int grade); + + @Select("select " + + " t1.project_id, " + + " sum(cast (t1.curValue AS decimal(18, 2)))as cur_value, " + + " t1.cur_date, " + + " t2.project_name " + + "from " + + " data_result_ch t1 " + + "join project_info t2 on " + + " t1.project_id = t2.id " + + "where " + + " t1.project_id = #{projectID} " + + " and t1.cur_date >= #{startDate} " + + " and t1.cur_date <= #{curDate} " + + "group by " + + " t1.cur_date, " + + " t1.project_id, " + + " t2.project_name " + + "order by " + + " t1.cur_date ") + List queryDataResultCh(@Param("projectID") String projectID, @Param("startDate") String startDate, @Param("curDate") String curDate); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultChillerMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultChillerMapper.java new file mode 100644 index 0000000..62d8411 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultChillerMapper.java @@ -0,0 +1,105 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultChillerEntity; +import com.mh.user.mapper.provider.DataResultProvider; +import com.mh.user.model.ChillerModel; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 主机参数保存 + * @date 2024-07-10 15:41:15 + */ +@Mapper +public interface DataResultChillerMapper extends BaseMapper { + + //保存冷水机数据 + @Insert("insert into data_result_chiller(device_addr,device_type,fun_code,register_addr,register_name,cur_value,cur_date,project_id,grade) values (" + + " #{deviceAddr},#{deviceType},#{funCode},#{registerAddr},#{registerName},#{curValue},#{curDate},#{projectID},#{grade})") + void saveDataResultChiller(DataResultChEntity dataResultChEntity); + + @Update("") + void updateDataResultChiller(DataResultChEntity dataResultChEntity); + + @Select("select count(*) from data_result_chiller where cur_date=#{curDate} " + + " and device_addr=#{deviceAddr} " + + " and register_addr=#{registerAddr} " + + " and project_id=#{projectID} " + + " and fun_code = #{funCode} ") + int selectDataResultChillerCount(@Param("curDate") String curDate, + @Param("deviceAddr") String deviceAddr, + @Param("registerAddr") String registerAddr, + @Param("projectID") String projectID, + @Param("funCode") String funCode); + + @Results({ + @Result(property="deviceAddr",column="deviceAddr"), + @Result(property="deviceType",column="deviceType"), + @Result(property="curDate",column="curDate"), + @Result(property ="curValue",column ="curValue"), + @Result(property="funCode",column="funCode"), + @Result(property="registerAddr",column="registerAddr"), + @Result(property="registerName",column="registerName"), + @Result(property="grade",column="grade"), + @Result(property="projectID",column="projectID"), + @Result(property="projectName",column="project_name") + }) + @SelectProvider(type = DataResultProvider.class,method = "queryDataResultChiller") + List queryDataResultChiller(@Param("projectID") String projectID, + @Param("deviceAddr") String deviceAddr, + @Param("registerName") String registerName, + @Param("startDate") String startDate, + @Param("curDate") String curDate, + @Param("page") int page, + @Param("limit") int limit); + + @SelectProvider(type = DataResultProvider.class,method = "dataResultChillerCount") + int dataResultChillerCount(@Param("projectID") String projectID, + @Param("deviceAddr") String deviceAddr, + @Param("registerName") String registerName, + @Param("startDate") String startDate, + @Param("curDate") String curDate); + + + //保存冷水机参数数据 + @Insert("insert into data_chiller" + + "(device_addr," + + "device_name," + + "run_state," + + "set_soint," + + "enter_chw," + + "leave_chw," + + "enter_cow," + + "leave_cow," + + "power," + + "rated_power," + + "chiller_amps," + + "refrigeration," + + "rated_ref," + + "chw_flow," + + "approach_cow," + + "approach_chw," + + "cop," + + "rated_cop," + + "copy_date) values (" + + " #{deviceAddr},#{deviceName},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade})") + void saveDataChiller(ChillerModel chillerModel); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultClBakMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultClBakMapper.java new file mode 100644 index 0000000..4baebd1 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultClBakMapper.java @@ -0,0 +1,35 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultClBakEntity; +import com.mh.user.entity.DataResultClEntity; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 数据冷量计 + * @date 2024-07-10 15:20:55 + */ +@Mapper +public interface DataResultClBakMapper extends BaseMapper { + + @Insert("insert into data_result_cl_bak(device_addr,device_type,project_id,last_value,last_date,cur_value,cur_date,ratio,calc_value,grade,register_addr,register_name) values (" + + " #{deviceAddr},#{deviceType},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade},#{registerAddr},#{registerName})") + void saveDataResultCl_bak(DataResultClEntity dataResultClEntity); + + @Select("select count(1) from data_result_cl_bak " + + " where cur_date = #{curDate} " + + " and device_addr = #{deviceAddr} " + + " and registerAddr = #{registerAddr} " + + " and project_id = #{projectId} ") + int selectDataResultChBakCount(@Param("curDate") String curDate, + @Param("deviceAddr") String deviceAddr, + @Param("registerAddr") String registerAddr, + @Param("projectId") String projectId); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultClMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultClMapper.java new file mode 100644 index 0000000..7a9f32c --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultClMapper.java @@ -0,0 +1,42 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultClEntity; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 数据冷量计 + * @date 2024-07-10 15:20:55 + */ +@Mapper +public interface DataResultClMapper extends BaseMapper { + //---------------------------------------------------------------------------------------------- + //保存冷量计数据 + @Insert("insert into data_result_cl(device_addr,device_type,project_id,last_value,last_date,cur_value,cur_date,ratio,calc_value,grade,register_addr,register_mame) values (" + + " #{deviceAddr},#{deviceType},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade},#{registerAddr},#{registerName})") + void saveDataResultCl(DataResultClEntity dataResultClEntity); + + @Update("") + void updateDataResultCl(DataResultClEntity dataResultClEntity); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultFifteenMiMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultFifteenMiMapper.java new file mode 100644 index 0000000..ae603a8 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultFifteenMiMapper.java @@ -0,0 +1,36 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultFifteenMiEntity; +import com.mh.user.entity.DataResultFiveMiEntity; +import com.mh.user.mapper.provider.DataResultProvider; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.SelectProvider; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 每分钟保存数据 + * @date 2024-07-10 17:34:30 + */ +@Mapper +public interface DataResultFifteenMiMapper extends BaseMapper { + + @SelectProvider(type = DataResultProvider.class,method = "queryDataResultFifteenMi") + List queryDataResultFifteenMi(@Param("projectID") String projectID, + @Param("startDate") String startDate, + @Param("curDate") String curDate, + @Param("page") int page, + @Param("limit") int limit); + + //@Select("select count(*) from data_result_fifteen_mi where projectID=#{projectID} and curDate>=#{startDate} and curDate<=#{curDate} ") + @SelectProvider(type = DataResultProvider.class,method = "dataResultFifteenMiCount") + int dataResultFifteenMiCount(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultFiveMiMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultFiveMiMapper.java new file mode 100644 index 0000000..887633c --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultFiveMiMapper.java @@ -0,0 +1,33 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultFiveMiEntity; +import com.mh.user.entity.DataResultOneMiEntity; +import com.mh.user.mapper.provider.DataResultProvider; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 每分钟保存数据 + * @date 2024-07-10 17:34:30 + */ +@Mapper +public interface DataResultFiveMiMapper extends BaseMapper { + + @SelectProvider(type = DataResultProvider.class,method = "queryDataResultFiveMi") + List queryDataResultFiveMi(@Param("projectID") String projectID, + @Param("startDate") String startDate, + @Param("curDate") String curDate, + @Param("page") int page, + @Param("limit") int limit); + + + // @Select("select count(*) from data_result_five_mi where projectID=#{projectID} and curDate>=#{startDate} and curDate<=#{curDate} ") + @SelectProvider(type = DataResultProvider.class,method = "dataResultFiveMiCount") + int dataResultFiveMiCount(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultMapper.java index a3fc83f..abc245a 100644 --- a/user-service/src/main/java/com/mh/user/mapper/DataResultMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultMapper.java @@ -1,5 +1,6 @@ package com.mh.user.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mh.user.entity.DataResultClEntity; import com.mh.user.entity.DataResultEntity; import com.mh.user.entity.DataResultChEntity; @@ -10,34 +11,34 @@ import org.apache.ibatis.annotations.*; import java.util.List; @Mapper -public interface DataResultMapper { +public interface DataResultMapper extends BaseMapper { //保存水电表等数据 - @Insert("insert into data_result(device_addr,deviceType,project_id,lastValue,lastDate,cur_value,cur_date,ratio,calc_value,grade) values (" + + @Insert("insert into data_result(device_addr,device_type,project_id,last_value,last_date,cur_value,cur_date,ratio,calc_value,grade) values (" + " #{deviceAddr},#{deviceType},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade})") void saveDataResult(DataResultEntity dataResultEntity); @Update("") void updateDataResult(DataResultEntity dataResultEntity); @Results(id="rs", value = { @Result(property="deviceAddr",column="device_addr"), - @Result(property="deviceType",column="deviceType"), + @Result(property="deviceType",column="device_type"), @Result(property="projectID",column="project_id"), - @Result(property="lastValue",column="lastValue"), - @Result(property ="lastDate",column ="lastDate"), + @Result(property="lastValue",column="last_value"), + @Result(property ="lastDate",column ="last_date"), @Result(property ="curValue",column ="cur_value"), @Result(property="curDate",column="cur_date"), @Result(property="ratio",column="ratio"), @@ -75,210 +76,4 @@ public interface DataResultMapper { @Param("deviceAddr") String deviceAddr, @Param("deviceType") String deviceType); - //---------------------------------------------------------------------------------------------- - //保存冷量计数据 - @Insert("insert into data_result_cl(device_addr,deviceType,project_id,lastValue,lastDate,cur_value,cur_date,ratio,calc_value,grade,registerAddr,registerName) values (" + - " #{deviceAddr},#{deviceType},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade},#{registerAddr},#{registerName})") - void saveDataResultCl(DataResultClEntity dataResultClEntity); - - @Update("") - void updateDataResultCl(DataResultClEntity dataResultClEntity); - - @Insert("insert into data_result_cl_bak(device_addr,deviceType,project_id,lastValue,lastDate,cur_value,cur_date,ratio,calc_value,grade,registerAddr,registerName) values (" + - " #{deviceAddr},#{deviceType},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade},#{registerAddr},#{registerName})") - void saveDataResultCl_bak(DataResultClEntity dataResultClEntity); - - //---------------------------------------------------------------------------------------------- - //保存冷量计数据 - @Insert("insert into data_result_ch(deviceAddr,deviceType,funCode,registerAddr,registerName,curValue,curDate,projectID,grade) values (" + - " #{deviceAddr},#{deviceType},#{funCode},#{registerAddr},#{registerName},#{curValue},#{curDate},#{projectID},#{grade})") - void saveDataResultCh(DataResultChEntity dataResultChEntity); - - @Update("") - void updateDataResultCh(DataResultChEntity dataResultChEntity); - - @Select("select count(*) from data_result_ch " + - " where curDate=#{curDate} " + - " and deviceAddr=#{deviceAddr} " + - " and registerAddr=#{registerAddr} " + - " and projectID=#{projectID} " + - " and grade = #{grade} ") - int selectDataResultChCount(@Param("curDate") String curDate, - @Param("deviceAddr") String deviceAddr, - @Param("registerAddr") String registerAddr, - @Param("projectID") String projectID, - @Param("grade") int grade); - - //---------------------------------------------------------------------------------------------------- - @Results(id="rsc", value = { - @Result(property="deviceAddr",column="deviceAddr"), - @Result(property="deviceType",column="deviceType"), - @Result(property="curDate",column="curDate"), - @Result(property ="curValue",column ="curValue"), - @Result(property="funCode",column="funCode"), - @Result(property="registerAddr",column="registerAddr"), - @Result(property="registerName",column="registerName"), - @Result(property="grade",column="grade"), - @Result(property="projectID",column="projectID"), - @Result(property="projectName",column="project_name") - }) - @SelectProvider(type = DataResultProvider.class,method = "queryDataResultOneMi") - List queryDataResultOneMi(@Param("projectID") String projectID, - @Param("startDate") String startDate, - @Param("curDate") String curDate, - @Param("page") int page, - @Param("limit") int limit); - - //查询记录数 -// @Select("select count(*) from data_result_one_mi where projectID=#{projectID} and curDate>=#{startDate} and curDate<=#{curDate} ") - @SelectProvider(type = DataResultProvider.class,method = "dataResultOneMiCount") - int dataResultOneMiCount(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); - - @ResultMap("rsc") - @SelectProvider(type = DataResultProvider.class,method = "queryDataResultFiveMi") - List queryDataResultFiveMi(@Param("projectID") String projectID, - @Param("startDate") String startDate, - @Param("curDate") String curDate, - @Param("page") int page, - @Param("limit") int limit); - - -// @Select("select count(*) from data_result_five_mi where projectID=#{projectID} and curDate>=#{startDate} and curDate<=#{curDate} ") - @SelectProvider(type = DataResultProvider.class,method = "dataResultFiveMiCount") - int dataResultFiveMiCount(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); - - - - @ResultMap("rsc") - @SelectProvider(type = DataResultProvider.class,method = "queryDataResultFifteenMi") - List queryDataResultFifteenMi(@Param("projectID") String projectID, - @Param("startDate") String startDate, - @Param("curDate") String curDate, - @Param("page") int page, - @Param("limit") int limit); - - //@Select("select count(*) from data_result_fifteen_mi where projectID=#{projectID} and curDate>=#{startDate} and curDate<=#{curDate} ") - @SelectProvider(type = DataResultProvider.class,method = "dataResultFifteenMiCount") - int dataResultFifteenMiCount(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); - - @ResultMap("rsc") - @Select("select t1.projectID,sum(cast (t1.curValue AS decimal(18,2)))as curValue,t1.curDate,t2.project_name from data_result_ch t1 join project_info t2 on t1.projectID=t2.id " + - "where t1.projectID=#{projectID} and t1.curDate>=#{startDate} and t1.curDate<=#{curDate} group by t1.curDate,t1.projectID,t2.project_name order by t1.curDate ") - List queryDataResultCh(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); - - //保存冷水机数据 - @Insert("insert into data_result_chiller(deviceAddr,deviceType,funCode,registerAddr,registerName,curValue,curDate,projectID,grade) values (" + - " #{deviceAddr},#{deviceType},#{funCode},#{registerAddr},#{registerName},#{curValue},#{curDate},#{projectID},#{grade})") - void saveDataResultChiller(DataResultChEntity dataResultChEntity); - - @Update("") - void updateDataResultChiller(DataResultChEntity dataResultChEntity); - - @Select("select count(*) from data_result_chiller where curDate=#{curDate} " + - " and deviceAddr=#{deviceAddr} " + - " and registerAddr=#{registerAddr} " + - " and projectID=#{projectID} " + - " and funCode = #{funCode} ") - int selectDataResultChillerCount(@Param("curDate") String curDate, - @Param("deviceAddr") String deviceAddr, - @Param("registerAddr") String registerAddr, - @Param("projectID") String projectID, - @Param("funCode") String funCode); - - - @Insert("insert into data_result_now(deviceAddr,deviceType,funCode,registerAddr,registerName,curValue,curDate,projectID,grade) values (" + - " #{deviceAddr},#{deviceType},#{funCode},#{registerAddr},#{registerName},#{curValue},#{curDate},#{projectID},#{grade})") - void saveDataResultNow(DataResultChEntity dataResultChEntity); - - @Delete("delete from data_result_now where deviceAddr=#{deviceAddr} and deviceType = #{deviceType} and registerAddr=#{registerAddr} and projectID=#{projectID}") - void deleteDataResultNow(@Param("deviceAddr") String deviceAddr, - @Param("deviceType") String deviceType, - @Param("registerAddr") String registerAddr, - @Param("projectID") String projectID); - - //实时参数读取 - @Select("select * from data_result_now where deviceAddr=#{deviceAddr} and deviceType=#{deviceType} and projectID=#{projectID} ") - List selectDataResultNow(@Param("deviceAddr") String deviceAddr, - @Param("deviceType") String deviceType, - @Param("projectID") String projectID); - - @Results({ - @Result(property="deviceAddr",column="deviceAddr"), - @Result(property="deviceType",column="deviceType"), - @Result(property="curDate",column="curDate"), - @Result(property ="curValue",column ="curValue"), - @Result(property="funCode",column="funCode"), - @Result(property="registerAddr",column="registerAddr"), - @Result(property="registerName",column="registerName"), - @Result(property="grade",column="grade"), - @Result(property="projectID",column="projectID"), - @Result(property="projectName",column="project_name") - }) - @SelectProvider(type = DataResultProvider.class,method = "queryDataResultChiller") - List queryDataResultChiller(@Param("projectID") String projectID, - @Param("deviceAddr") String deviceAddr, - @Param("registerName") String registerName, - @Param("startDate") String startDate, - @Param("curDate") String curDate, - @Param("page") int page, - @Param("limit") int limit); - - @SelectProvider(type = DataResultProvider.class,method = "dataResultChillerCount") - int dataResultChillerCount(@Param("projectID") String projectID, - @Param("deviceAddr") String deviceAddr, - @Param("registerName") String registerName, - @Param("startDate") String startDate, - @Param("curDate") String curDate); - - - //保存冷水机参数数据 - @Insert("insert into data_chiller(deviceAddr,deviceName,runState,setPoint,enterChw,leaveChw,enterCow,leaveCow,power,ratedPower,chillerAmps,refrigeration,ratedRef,chwFlow,ApproachCow,ApproachChw,cop,ratedCop,copyDate) values (" + - " #{deviceAddr},#{deviceName},#{projectID},#{lastValue},#{lastDate},#{curValue},#{curDate},#{ratio},#{calcValue},#{grade})") - void saveDataChiller(ChillerModel chillerModel); - - @Select("select count(1) from data_result_cl_bak " + - " where cur_date = #{curDate} " + - " and device_addr = #{deviceAddr} " + - " and registerAddr = #{registerAddr} " + - " and project_id = #{projectId} ") - int selectDataResultChBakCount(@Param("curDate") String curDate, - @Param("deviceAddr") String deviceAddr, - @Param("registerAddr") String registerAddr, - @Param("projectId") String projectId); } diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultNowMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultNowMapper.java new file mode 100644 index 0000000..706e561 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultNowMapper.java @@ -0,0 +1,36 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultNowEntity; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 当前记录 + * @date 2024-07-11 13:41:04 + */ +@Mapper +public interface DataResultNowMapper extends BaseMapper { + + @Insert("insert into data_result_now(deviceAddr,deviceType,funCode,registerAddr,registerName,curValue,curDate,projectID,grade) values (" + + " #{deviceAddr},#{deviceType},#{funCode},#{registerAddr},#{registerName},#{curValue},#{curDate},#{projectID},#{grade})") + void saveDataResultNow(DataResultChEntity dataResultChEntity); + + @Delete("delete from data_result_now where deviceAddr=#{deviceAddr} and deviceType = #{deviceType} and registerAddr=#{registerAddr} and projectID=#{projectID}") + void deleteDataResultNow(@Param("deviceAddr") String deviceAddr, + @Param("deviceType") String deviceType, + @Param("registerAddr") String registerAddr, + @Param("projectID") String projectID); + + //实时参数读取 + @Select("select * from data_result_now where deviceAddr=#{deviceAddr} and deviceType=#{deviceType} and projectID=#{projectID} ") + List selectDataResultNow(@Param("deviceAddr") String deviceAddr, + @Param("deviceType") String deviceType, + @Param("projectID") String projectID); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DataResultOneMiMapper.java b/user-service/src/main/java/com/mh/user/mapper/DataResultOneMiMapper.java new file mode 100644 index 0000000..1a7c21e --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DataResultOneMiMapper.java @@ -0,0 +1,46 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DataResultChEntity; +import com.mh.user.entity.DataResultOneMiEntity; +import com.mh.user.mapper.provider.DataResultProvider; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 每分钟保存数据 + * @date 2024-07-10 17:34:30 + */ +@Mapper +public interface DataResultOneMiMapper extends BaseMapper { + + //---------------------------------------------------------------------------------------------------- + @Results(id="rsc", value = { + @Result(property="deviceAddr",column="deviceAddr"), + @Result(property="deviceType",column="deviceType"), + @Result(property="curDate",column="curDate"), + @Result(property ="curValue",column ="curValue"), + @Result(property="funCode",column="funCode"), + @Result(property="registerAddr",column="registerAddr"), + @Result(property="registerName",column="registerName"), + @Result(property="grade",column="grade"), + @Result(property="projectID",column="projectID"), + @Result(property="projectName",column="project_name") + }) + @SelectProvider(type = DataResultProvider.class,method = "queryDataResultOneMi") + List queryDataResultOneMi(@Param("projectID") String projectID, + @Param("startDate") String startDate, + @Param("curDate") String curDate, + @Param("page") int page, + @Param("limit") int limit); + + //查询记录数 +// @Select("select count(*) from data_result_one_mi where projectID=#{projectID} and curDate>=#{startDate} and curDate<=#{curDate} ") + @SelectProvider(type = DataResultProvider.class,method = "dataResultOneMiCount") + int dataResultOneMiCount(@Param("projectID") String projectID,@Param("startDate") String startDate,@Param("curDate") String curDate); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DeviceCodeMapper.java b/user-service/src/main/java/com/mh/user/mapper/DeviceCodeMapper.java new file mode 100644 index 0000000..d26abde --- /dev/null +++ b/user-service/src/main/java/com/mh/user/mapper/DeviceCodeMapper.java @@ -0,0 +1,55 @@ +package com.mh.user.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.user.entity.DeviceCodeEntity; +import com.mh.user.model.ChillerModel; +import com.mh.user.model.DeviceModel; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project mh_esi + * @description 设备参数mapper + * @date 2024-07-11 15:37:48 + */ +@Mapper +public interface DeviceCodeMapper extends BaseMapper { + + //查询冷水机设备列表 + @Results({ + @Result(column = "device_addr",property = "deviceAddr" ), + @Result(column = "device_name", property = "deviceName") + }) + @Select("select * from device_code where project_id=#{projectID} and device_type='冷水机'") + List selectDevices(@Param("projectID") String projectID); + + + //查询多个冷水机相关信息 + @Results({ + @Result(column = "device_addr",property = "deviceAddr" ), + @Result(column = "device_name", property = "deviceName"), + @Result(column = "runState", property = "runState"), + @Result(column = "setPoint", property = "setPoint"), + @Result(column = "enterChw", property = "enterChw"), + @Result(column = "leaveChw", property = "leaveChw"), + @Result(column = "enterCow", property = "enterCow"), + @Result(column = "leaveCow", property = "leaveCow"), + @Result(column = "power", property = "power"), + @Result(column = "ratedPower", property = "ratedPower"), + @Result(column = "chillerAmps", property = "chillerAmps"), + @Result(column = "refrigeration", property = "refrigeration"), + @Result(column = "ratedRef", property = "ratedRef"), + @Result(column = "chwFlow", property = "chwFlow"), + @Result(column = "ApproachCow", property = "ApproachCow"), + @Result(column = "ApproachChw", property = "ApproachChw"), + @Result(column = "cop", property = "cop"), + @Result(column = "ratedCop", property = "ratedCop"), + @Result(column = "copyDate", property = "copyDate") + }) + @Select("select * from device_code where project_id=#{projectID} and device_addr=#{deviceAddr} ") + List queryChiller(@Param("projectID") String projectID, @Param("device_addr") String deviceAddr); + +} diff --git a/user-service/src/main/java/com/mh/user/mapper/DeviceCodeParamMapper.java b/user-service/src/main/java/com/mh/user/mapper/DeviceCodeParamMapper.java index 648c90c..af5fa48 100644 --- a/user-service/src/main/java/com/mh/user/mapper/DeviceCodeParamMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/DeviceCodeParamMapper.java @@ -1,5 +1,6 @@ package com.mh.user.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mh.user.entity.DeviceCodeParamEntity; import com.mh.user.entity.OrderMessageEntity; import org.apache.ibatis.annotations.*; @@ -7,10 +8,10 @@ import org.apache.ibatis.annotations.*; import java.util.List; @Mapper -public interface DeviceCodeParamMapper { +public interface DeviceCodeParamMapper extends BaseMapper { //插入指令参数 - @Insert("insert into device_code_param(device_addr,device_name,device_type,data_com,baudrate,brand,fun_code,register_addr,create_time)" + + @Insert("insert into device_code_param(device_addr,device_name,device_type,data_com,baud_rate,brand,fun_code,register_addr,create_time)" + "values(#{deviceAddr},#{deviceName},#{deviceType},#{dataCom},#{baudrate},#{brand},#{funCode},#{registerAddr},getDate())") void insertDeviceCodeParam(DeviceCodeParamEntity deviceCodeParamEntity); @@ -18,36 +19,36 @@ public interface DeviceCodeParamMapper { @Results(id="rs", value = { @Result(property="id",column="id"), @Result(property="deviceAddr",column="device_addr"), - @Result(property="deviceType",column="deviceType"), - @Result(property="strData",column="strData"), - @Result(property="dataPort",column="dataPort"), - @Result(property="baudRate",column="baudrate"), + @Result(property="deviceType",column="device_type"), + @Result(property="strData",column="str_data"), + @Result(property="dataPort",column="data_port"), + @Result(property="baudRate",column="baud_rate"), @Result(property ="brand",column ="brand"), @Result(property ="funCode",column ="fun_code"), @Result(property ="registerAddr",column ="register_addr"), - @Result(property ="registerName",column ="registerName"), - @Result(property ="deviceName",column ="deviceName"), - @Result(property ="createTime",column ="createTime"), + @Result(property ="registerName",column ="register_name"), + @Result(property ="deviceName",column ="device_name"), + @Result(property ="createTime",column ="create_time"), @Result(property ="grade",column ="grade"), @Result(property ="digit",column ="digit"), @Result(property ="projectID",column ="project_id") }) @Select("select id, " + "device_addr, " + - "deviceType, " + - "strData, " + - "dataPort, " + + "device_type, " + + "str_data, " + + "data_port, " + "baudrate, " + "brand, " + "fun_code, " + "register_addr, " + - "deviceName, " + - "createTime, " + + "device_name, " + + "create_time, " + "grade, " + "project_id, " + "digit, " + - "registerName " + - " from device_code_param where dataPort=#{gatewayPort} order by deviceType ") + "register_name " + + " from device_code_param where data_port=#{gatewayPort} order by device_type ") List queryCodeParam(@Param("gatewayPort") String gatewayPort); //查询指令参数,传入串口 @@ -57,12 +58,12 @@ public interface DeviceCodeParamMapper { //查询所有指令参数 @ResultMap("rs") - @Select("select * from device_code_param order by data_com,deviceType") + @Select("select * from device_code_param order by data_com,device_type") List queryCodeParam3(); //查询所有指令参数 @ResultMap("rs") - @Select("select * from device_code_param where project_id=#{projectID} and deviceType=#{deviceType} and device_addr=#{deviceAddr} and register_addr=#{registerAddr}") + @Select("select * from device_code_param where project_id=#{projectID} and device_type=#{deviceType} and device_addr=#{deviceAddr} and register_addr=#{registerAddr}") DeviceCodeParamEntity queryDeviceCodeParam(@Param("projectID") String projectID, @Param("deviceType") String deviceType, @Param("deviceAddr") String deviceAddr, @@ -80,20 +81,20 @@ public interface DeviceCodeParamMapper { @Insert("") List queryStrategyInfo(@Param("systemID") String systemID,@Param("projectID") String projectID); } diff --git a/user-service/src/main/java/com/mh/user/mapper/SysDeptMapper.java b/user-service/src/main/java/com/mh/user/mapper/SysDeptMapper.java index c567264..a4424a8 100644 --- a/user-service/src/main/java/com/mh/user/mapper/SysDeptMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/SysDeptMapper.java @@ -9,6 +9,7 @@ import java.util.List; * author: ljf * desc: 部门Mapper */ +@Mapper public interface SysDeptMapper { int deleteByPrimaryKey(Long id); diff --git a/user-service/src/main/java/com/mh/user/mapper/SysMenuMapper.java b/user-service/src/main/java/com/mh/user/mapper/SysMenuMapper.java index 31e40d8..ac8803e 100644 --- a/user-service/src/main/java/com/mh/user/mapper/SysMenuMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/SysMenuMapper.java @@ -1,6 +1,7 @@ package com.mh.user.mapper; import com.mh.user.model.SysMenu; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -9,6 +10,7 @@ import java.util.List; * author: ljf * desc: 系统菜单Mapper */ +@Mapper public interface SysMenuMapper { int deleteByPrimaryKey(Long id); diff --git a/user-service/src/main/java/com/mh/user/mapper/SysRoleDeptMapper.java b/user-service/src/main/java/com/mh/user/mapper/SysRoleDeptMapper.java index 58495ad..514abca 100644 --- a/user-service/src/main/java/com/mh/user/mapper/SysRoleDeptMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/SysRoleDeptMapper.java @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper; * author: ljf * desc: 角色对应部门Mapper */ +@Mapper public interface SysRoleDeptMapper { int deleteByPrimaryKey(Long id); diff --git a/user-service/src/main/java/com/mh/user/mapper/SysUserRoleMapper.java b/user-service/src/main/java/com/mh/user/mapper/SysUserRoleMapper.java index 608bc19..6d40e9d 100644 --- a/user-service/src/main/java/com/mh/user/mapper/SysUserRoleMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/SysUserRoleMapper.java @@ -10,6 +10,7 @@ import java.util.List; * author: ljf * desc: 用户对应角色Mapper */ +@Mapper public interface SysUserRoleMapper { int deleteByPrimaryKey(Long id); diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/DataResultProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/DataResultProvider.java index eb12631..e2de22c 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/DataResultProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/DataResultProvider.java @@ -17,14 +17,13 @@ public class DataResultProvider { sql.append(" AND convert(varchar(10),cur_date,121)<=#{endDate} "); } if (deviceType != null && !deviceType.equals("")){ - sql.append(" AND deviceType = #{deviceType} "); + sql.append(" AND device_type = #{deviceType} "); } if ((page != 0) && (limit != 0)){ sql.append(" ) T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit}"); } else if (page == 0){ sql.append(" ) T "); } -// System.out.println(sql.toString()); return sql.toString(); } @@ -44,32 +43,31 @@ public class DataResultProvider { sql.append(" AND convert(varchar(10),cur_date,121)<=#{endDate} "); } if (deviceType != null && !deviceType.equals("")){ - sql.append(" AND deviceType = #{deviceType} "); + sql.append(" AND device_type = #{deviceType} "); } sql.append(" ) T "); -// System.out.println(sql.toString()); return sql.toString(); } //----------------------------------------------------------------------------------------------- //时间显示间隔为1分钟 public String queryDataResultOneMi(String projectID, String startDate,String curDate, int page, int limit){ StringBuffer sql = new StringBuffer(""); - sql.append("select * from (select *,ROW_NUMBER() over(order by curDate) as rn from ( " + - " select projectID,curDate,sum(cast(curValue as decimal(18,2))) as curValue from data_result_one_mi " + + sql.append("select * from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_one_mi " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } if ((page != 0) && (limit != 0)){ - sql.append(" group by curDate,projectID)t1) t2 join project_info t3 ON t2.projectID=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.curDate desc"); + sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc"); } else if (page == 0){ - sql.append(" group by curDate,projectID)t1) t2 join project_info t3 ON t2.projectID=t3.id order by t2.curDate desc"); + sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc"); } // System.out.println(sql.toString()); return sql.toString(); @@ -77,20 +75,19 @@ public class DataResultProvider { public String dataResultOneMiCount(String projectID, String startDate,String curDate){ StringBuffer sql = new StringBuffer(""); - sql.append("select count(*) from (select *,ROW_NUMBER() over(order by curDate) as rn from ( " + - " select projectID,curDate,sum(cast(curValue as decimal(18,2))) as curValue from data_result_one_mi " + + sql.append("select count(*) from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_one_mi " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } - sql.append(" group by curDate,projectID)t1) t2 "); -// System.out.println(sql.toString()); + sql.append(" group by cur_date,project_id)t1) t2 "); return sql.toString(); } @@ -98,140 +95,134 @@ public class DataResultProvider { //时间显示间隔为5分钟 public String queryDataResultFiveMi(String projectID,String startDate,String curDate, int page, int limit){ StringBuffer sql = new StringBuffer(""); - sql.append("select * from (select *,ROW_NUMBER() over(order by curDate) as rn from ( " + - " select projectID,curDate,sum(cast(curValue as decimal(18,2))) as curValue from data_result_five_mi " + + sql.append("select * from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_five_mi " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } if ((page != 0) && (limit != 0)){ - sql.append(" group by curDate,projectID)t1) t2 join project_info t3 ON t2.projectID=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.curDate desc"); + sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc"); } else if (page == 0){ - sql.append(" group by curDate,projectID)t1) t2 join project_info t3 ON t2.projectID=t3.id order by t2.curDate desc"); + sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc"); } -// System.out.println(sql.toString()); return sql.toString(); } public String dataResultFiveMiCount(String projectID, String startDate,String curDate){ StringBuffer sql = new StringBuffer(""); - sql.append("select count(*) from (select *,ROW_NUMBER() over(order by curDate) as rn from ( " + - " select projectID,curDate,sum(cast(curValue as decimal(18,2))) as curValue from data_result_five_mi " + + sql.append("select count(*) from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_five_mi " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } - sql.append(" group by curDate,projectID)t1) t2 "); -// System.out.println(sql.toString()); + sql.append(" group by cur_date,project_id)t1) t2 "); return sql.toString(); } //时间显示间隔为15分钟 public String queryDataResultFifteenMi(String projectID,String startDate,String curDate, int page, int limit){ StringBuffer sql = new StringBuffer(""); - sql.append("select * from (select *,ROW_NUMBER() over(order by curDate) as rn from ( " + - " select projectID,curDate,sum(cast(curValue as decimal(18,2))) as curValue from data_result_fifteen_mi " + + sql.append("select * from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_fifteen_mi " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } if ((page != 0) && (limit != 0)){ - sql.append(" group by curDate,projectID)t1) t2 join project_info t3 ON t2.projectID=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.curDate desc"); + sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc"); } else if (page == 0){ - sql.append(" group by curDate,projectID)t1) t2 join project_info t3 ON t2.projectID=t3.id order by t2.curDate desc"); + sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc"); } -// System.out.println(sql.toString()); return sql.toString(); } public String dataResultFifteenMiCount(String projectID, String startDate,String curDate){ StringBuffer sql = new StringBuffer(""); - sql.append("select count(*) from (select *,ROW_NUMBER() over(order by curDate) as rn from ( " + - " select projectID,curDate,sum(cast(curValue as decimal(18,2))) as curValue from data_result_five_mi " + + sql.append("select count(*) from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_five_mi " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } - sql.append(" group by curDate,projectID)t1) t2 "); -// System.out.println(sql.toString()); + sql.append(" group by cur_date,project_id)t1) t2 "); return sql.toString(); } //查询冷水机参数历史数据情况 public String queryDataResultChiller(String projectID,String deviceAddr,String registerName,String startDate,String curDate, int page, int limit){ StringBuffer sql = new StringBuffer(""); - sql.append("select * from (select *,ROW_NUMBER() over(order by curDate) as rn from data_result_chiller " + + sql.append("select * from (select *,ROW_NUMBER() over(order by cur_date) as rn from data_result_chiller " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (deviceAddr!= null && !deviceAddr.equals("")) { - sql.append(" AND deviceAddr=#{deviceAddr} "); + sql.append(" AND device_addr=#{deviceAddr} "); } if (registerName!= null && !registerName.equals("")) { - sql.append(" AND registerName=#{registerName} "); + sql.append(" AND register_name=#{registerName} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } if ((page != 0) && (limit != 0)){ - sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.curDate desc"); + sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc"); } else if (page == 0){ - sql.append(" )T order by T.curDate desc"); + sql.append(" )T order by T.cur_date desc"); } -// System.out.println(sql.toString()); return sql.toString(); } //查询记录数 public String dataResultChillerCount(String projectID,String deviceAddr,String registerName,String startDate,String curDate){ StringBuffer sql = new StringBuffer(""); - sql.append("select * from (select *,ROW_NUMBER() over(order by curDate) as rn from data_result_chiller " + + sql.append("select * from (select *,ROW_NUMBER() over(order by cur_date) as rn from data_result_chiller " + " where 1=1 "); if (projectID!= null && !projectID.equals("")) { - sql.append(" AND projectID=#{projectID} "); + sql.append(" AND project_id=#{projectID} "); } if (deviceAddr!= null && !deviceAddr.equals("")) { - sql.append(" AND deviceAddr=#{deviceAddr} "); + sql.append(" AND device_addr=#{deviceAddr} "); } if (registerName!= null && !registerName.equals("")) { - sql.append(" AND registerName=#{registerName} "); + sql.append(" AND register_name=#{registerName} "); } if (startDate!= null && !startDate.equals("")) { - sql.append(" AND curDate>=#{startDate} "); + sql.append(" AND cur_date>=#{startDate} "); } if (curDate!= null && !curDate.equals("")) { - sql.append(" AND curDate<=#{curDate} "); + sql.append(" AND cur_date<=#{curDate} "); } - sql.append(" )T order by T.curDate desc"); -// System.out.println(sql.toString()); + sql.append(" )T order by T.cur_date desc"); return sql.toString(); } } diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInfoProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInfoProvider.java index 2f5918b..d7be1d5 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInfoProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInfoProvider.java @@ -14,10 +14,9 @@ public class DeviceInfoProvider { sql.append(" AND project_id = #{projectID} "); } if (deviceType != null && !deviceType.equals("")){ - sql.append(" AND deviceType = #{deviceType} "); + sql.append(" AND device_type = #{deviceType} "); } sql.append(" ) T "); -// System.out.println(sql.toString()); return sql.toString(); } } diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/EnergyDataProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/EnergyDataProvider.java index 4417e3d..c29c100 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/EnergyDataProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/EnergyDataProvider.java @@ -70,6 +70,7 @@ public class EnergyDataProvider { if (curDate != null && !curDate.equals("")) { sql.append(" AND LEFT(cur_date,10)=#{curDate} "); } + assert projectID != null; if(projectID.equals("所有")){ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date "); diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/StrategyInfoProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/StrategyInfoProvider.java deleted file mode 100644 index 9a3a73f..0000000 --- a/user-service/src/main/java/com/mh/user/mapper/provider/StrategyInfoProvider.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.mh.user.mapper.provider; - - -public class StrategyInfoProvider { - - public String queryStrategyInfo(String systemID,String projectID){ - StringBuffer sql = new StringBuffer(""); - sql.append("select * from (" + - " select *,ROW_NUMBER() over(order by id) as rn from strategy_info " + - " where 1=1 "); - if (systemID != null && !systemID.equals("")){ - sql.append(" AND system_id = #{systemID} "); - } - if (projectID != null && !projectID.equals("")){ - sql.append(" AND project_id = #{projectID} "); - } - sql.append(" ) T "); - System.out.println(sql.toString()); - return sql.toString(); - } -} diff --git a/user-service/src/main/java/com/mh/user/model/BaseModel.java b/user-service/src/main/java/com/mh/user/model/BaseModel.java index dd0da01..f38d905 100644 --- a/user-service/src/main/java/com/mh/user/model/BaseModel.java +++ b/user-service/src/main/java/com/mh/user/model/BaseModel.java @@ -1,5 +1,6 @@ package com.mh.user.model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Getter; import lombok.Setter; @@ -18,10 +19,12 @@ public class BaseModel { private String createBy; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; private String lastUpdateBy; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date lastUpdateTime; @Override diff --git a/user-service/src/main/java/com/mh/user/model/SysMenu.java b/user-service/src/main/java/com/mh/user/model/SysMenu.java index 4aed68b..4a9e04e 100644 --- a/user-service/src/main/java/com/mh/user/model/SysMenu.java +++ b/user-service/src/main/java/com/mh/user/model/SysMenu.java @@ -2,11 +2,13 @@ package com.mh.user.model; import lombok.Getter; import lombok.Setter; +import lombok.ToString; import java.util.List; @Setter @Getter +@ToString public class SysMenu extends BaseModel { private Long parentId; diff --git a/user-service/src/main/java/com/mh/user/model/SysUser.java b/user-service/src/main/java/com/mh/user/model/SysUser.java index 5f21fad..76d257f 100644 --- a/user-service/src/main/java/com/mh/user/model/SysUser.java +++ b/user-service/src/main/java/com/mh/user/model/SysUser.java @@ -1,5 +1,7 @@ package com.mh.user.model; +import com.fasterxml.jackson.annotation.JsonIgnore; +import jdk.nashorn.internal.ir.annotations.Ignore; import lombok.Getter; import lombok.Setter; @@ -13,8 +15,10 @@ public class SysUser extends BaseModel { private String userName; + @JsonIgnore private String password; + @JsonIgnore private String salt; private String email; diff --git a/user-service/src/main/java/com/mh/user/netty/EchoServer.java b/user-service/src/main/java/com/mh/user/netty/EchoServer.java index 2ab4687..1fafed0 100644 --- a/user-service/src/main/java/com/mh/user/netty/EchoServer.java +++ b/user-service/src/main/java/com/mh/user/netty/EchoServer.java @@ -5,12 +5,12 @@ import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelOption; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; -import org.apache.log4j.Logger; +import lombok.extern.slf4j.Slf4j; +@Slf4j public class EchoServer { private final int port; - private static final Logger log = Logger.getLogger(EchoServer.class); public EchoServer(int port) { this.port = port; diff --git a/user-service/src/main/java/com/mh/user/netty/EchoServerHandler.java b/user-service/src/main/java/com/mh/user/netty/EchoServerHandler.java index 4ebe42f..8a5a44e 100644 --- a/user-service/src/main/java/com/mh/user/netty/EchoServerHandler.java +++ b/user-service/src/main/java/com/mh/user/netty/EchoServerHandler.java @@ -1,6 +1,6 @@ package com.mh.user.netty; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONObject; import com.mh.user.constants.Constant; import com.mh.user.entity.DeviceCodeParamEntity; import com.mh.user.service.DeviceCodeParamService; @@ -12,16 +12,16 @@ import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.handler.timeout.IdleState; import io.netty.handler.timeout.IdleStateEvent; import io.netty.util.ReferenceCountUtil; -import org.apache.log4j.Logger; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationContext; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +@Slf4j public class EchoServerHandler extends ChannelInboundHandlerAdapter { List deviceCodeParamList; - private static final Logger log = Logger.getLogger(EchoServerHandler.class); // 调用service层的接口信息 ApplicationContext context = SpringBeanUtil.getApplicationContext(); @@ -178,7 +178,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter { } else if (receiveStr.length() == 18) { //冷量计返回数据解析 idleCount=1; - log.info("冷量计接收==>" + receiveStr+",长度:"+receiveStr.length()); + log.info("冷量计接收==>{},长度:{}", receiveStr, receiveStr.length()); // 解析采集的报文,并保存到数据库 AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); analysisReceiveOrder485.analysisCloudOrder485(receiveStr,deviceCodeParamList.get(num) ); diff --git a/user-service/src/main/java/com/mh/user/netty/NettyChillerClient.java b/user-service/src/main/java/com/mh/user/netty/NettyChillerClient.java deleted file mode 100644 index dd6ee17..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyChillerClient.java +++ /dev/null @@ -1,95 +0,0 @@ -//package com.mh.user.netty; -// -//import io.netty.bootstrap.Bootstrap; -//import io.netty.channel.*; -//import io.netty.channel.nio.NioEventLoopGroup; -//import io.netty.channel.socket.SocketChannel; -//import io.netty.channel.socket.nio.NioSocketChannel; -//import io.netty.handler.timeout.IdleStateHandler; -//import io.netty.handler.timeout.ReadTimeoutHandler; -//import io.netty.handler.timeout.WriteTimeoutHandler; -//import lombok.Getter; -//import lombok.Setter; -//import lombok.extern.slf4j.Slf4j; -// -//import java.util.concurrent.TimeUnit; -// -///** -// * @author ljf -// * @title : -// * @description :Netty冷水机组客户端 -// * @updateTime 2020-05-13 -// * @throws : -// */ -//@Slf4j -//@Setter -//@Getter -//public class NettyChillerClient { -// -// private volatile static NettyChillerDDCClient nettyChillerDDCClient = new NettyChillerDDCClient(); -// -// private int port; -// private String host; -// -// // 构造函数传递值 继承Thread时需要 -//// public NettyClient(int port, String host) { -//// this.port = port; -//// this.host = host; -//// } -// -// public static void connect(int port, String host) throws InterruptedException { -// // 配置客户端NIO线程组 -// EventLoopGroup group = new NioEventLoopGroup(1); -// try { -// Bootstrap bootstrap = new Bootstrap(); -// bootstrap.group(group).channel(NioSocketChannel.class) -// .option(ChannelOption.TCP_NODELAY, true) -// .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3000) -// .option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)) -// .handler(new ChannelInitializer() { -// @Override -// protected void initChannel(SocketChannel socketChannel) { -// // 基于换行符号 -//// socketChannel.pipeline().addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,4,4,-8,0)); -//// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -//// socketChannel.pipeline().addLast(new StringDecoder(StandardCharsets.UTF_8)); -//// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -//// socketChannel.pipeline().addLast(new StringEncoder(StandardCharsets.UTF_8)); -//// socketChannel.pipeline().addLast(new LengthFieldPrepender(4)); -// socketChannel.pipeline().addLast(new IdleStateHandler(10,10,10, TimeUnit.SECONDS)); -// // 在管道中添加我们自己的接收数据实现方法 -// socketChannel.pipeline().addLast(new NettyChillerClientHandler()); -//// socketChannel.pipeline().addLast(new NettyMeterClientHandler()); -// } -// }); -// // 发起异步连接操作 -// ChannelFuture channelFuture = bootstrap.connect(host, port).sync(); -// if (channelFuture.isSuccess()) { -// log.info("connect server 成功---------"); -// } else { -// log.info("连接失败!"); -// log.info("准备重连!"); -//// connect(port, host); -// } -// -// // 等待客户端连接链路关闭future.channel().closeFuture().sync(); // 阻塞main线程 -// channelFuture.channel().closeFuture().sync(); -// } catch (Exception e) { -// log.error("error>>>>>>" + e.getMessage()); -// } finally { -// group.shutdownGracefully(); -//// try { -//// TimeUnit.SECONDS.sleep(5); -//// connect(port, host); // 断线重连 -//// } catch (InterruptedException e) { -//// e.printStackTrace(); -//// } -// } -// } -// -//// @SneakyThrows -//// @Override -//// public void run() { -//// connect(port, host); -//// } -//} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyChillerClientHandler.java b/user-service/src/main/java/com/mh/user/netty/NettyChillerClientHandler.java deleted file mode 100644 index c77bb67..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyChillerClientHandler.java +++ /dev/null @@ -1,315 +0,0 @@ -//package com.mh.user.netty; -// -//import com.mh.user.constants.Constant; -//import com.mh.user.entity.ChillersEntity; -//import com.mh.user.entity.DeviceCodeParamEntity; -//import com.mh.user.service.DeviceCodeParamService; -//import com.mh.user.service.chillers.ChillersService; -//import com.mh.user.service.chillers.GatewayManageService; -//import com.mh.user.utils.AnalysisReceiveOrder485; -//import com.mh.user.utils.ExchangeStringUtil; -//import com.mh.user.utils.GetReadOrder485; -//import com.mh.user.utils.SpringBeanUtil; -//import io.netty.buffer.ByteBuf; -//import io.netty.channel.Channel; -//import io.netty.channel.ChannelHandlerAdapter; -//import io.netty.channel.ChannelHandlerContext; -//import io.netty.handler.timeout.IdleState; -//import io.netty.handler.timeout.IdleStateEvent; -//import io.netty.util.ReferenceCountUtil; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.context.ApplicationContext; -// -//import java.text.SimpleDateFormat; -//import java.util.Date; -//import java.util.List; -// -///** -// * @author ljf -// * @title : -// * @description :客户端异步消息处理机制,采集冷水机组 -// * @updateTime 2020-05-13 -// * @throws : -// */ -//@Slf4j -//public class NettyChillerClientHandler extends ChannelHandlerAdapter { -// -// private int num = 0; -// private int size = 0; -// private int idle_count = 0; -// private String receiveStr = ""; -// List deviceCodeParamList; -// -// // 调用service -// ApplicationContext context = SpringBeanUtil.getApplicationContext(); -// DeviceCodeParamService deviceCodeParamService = context.getBean(DeviceCodeParamService.class); -// GatewayManageService gatewayManageService = context.getBean(GatewayManageService.class); -// -// /** -// * 超时处理 -// * 如果120秒没有接受客户端的心跳,就触发; -// * 如果超过3次,则直接关闭; -// */ -// @Override -// public void userEventTriggered(ChannelHandlerContext ctx, Object obj) throws Exception { -// if (obj instanceof IdleStateEvent) { -// IdleStateEvent event = (IdleStateEvent) obj; -// if (IdleState.READER_IDLE.equals(event.state())) { //如果读通道处于空闲状态,说明没有接收到心跳命令 -// System.out.println("第" + idle_count + "已经10秒没有接收到服务器的信息了,发送第" + num + "条数据"); -// if (deviceCodeParamList.get(num) == null) { -// System.out.println("关闭这个不活跃的channel"); -// ctx.channel().close(); -// } else { -// if ((num > size - 1) || (idle_count > 3)) { -// System.out.println("关闭这个不活跃的channel"); -// ctx.channel().close(); -// } -// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -// String sendStr = getReadOrder485.createChillersOrder(deviceCodeParamList.get(num)); -// ctx.channel().writeAndFlush(ExchangeStringUtil.getByteBuf(ctx, sendStr)); -// idle_count++; -// } -// } -// } else { -// super.userEventTriggered(ctx, obj); -// } -// } -// -// @Override -// public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { -// log.info("当前channel从EventLoop取消注册"); -// ctx.close(); -// super.channelUnregistered(ctx); -// } -// -// @Override -// public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { -//// super.exceptionCaught(ctx, cause); -// log.info("通信异常!!"); -//// // 发送采集冷水机组指令 -//// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -//// String sendStr = getReadOrder485.createChillersOrder(chillersEntityList.get(num)); -//// // 获取采集参数个数 -//// ByteBuf buffer = getByteBuf(ctx, sendStr); -//// // 2.发送数据 -//// ctx.channel().writeAndFlush(buffer); -//// receiveStr = null; -// cause.printStackTrace(); -// ctx.close(); -//// Channel incoming = ctx.channel(); -//// if (incoming.isActive()) { -//// log.info("SimpleClient: " + incoming.remoteAddress() + "异常"); -//// cause.printStackTrace(); -//// ctx.close(); -//// receiveStr = null; -//// try { -//// TimeUnit.SECONDS.sleep(5); -//// SocketAddress remoteAddress = ctx.channel().remoteAddress(); -//// String port = ExchangeStringUtil.endData(remoteAddress.toString(),":"); -//// String host = ExchangeStringUtil.splitData(remoteAddress.toString(),"/",":"); -//// NettyClient nettyClient = new NettyClient(); -//// nettyClient.connect(Integer.parseInt(port), host); // 断线重连 -//// } catch (InterruptedException e) { -//// e.printStackTrace(); -//// } -//// } -// } -// -// -// @Override -// public void channelActive(ChannelHandlerContext ctx) throws Exception { -// super.channelActive(ctx); -// // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 -// if (Constant.WEB_FLAG) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -// } else { -// SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); -// Date date = new Date(); -// log.info(ctx.channel().remoteAddress() + " " + sdf1.format(date) + "链接服务端成功!"); -// // 截取IP地址 -// String IP = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", "/", ":"); -// // 截取端口号 -// String port = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", ":", ""); -// log.info("IP: " + IP + ",端口号: " + port); -// // 更新对应的网关在线情况 -// gatewayManageService.updateGatewayManage(IP, port); -// // 生成采集指令 -// deviceCodeParamList = deviceCodeParamService.queryCodeParam(port); -// size = deviceCodeParamList.size(); -// -// // 发送采集冷水机组指令 -// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -// String sendStr = getReadOrder485.createChillersOrder(deviceCodeParamList.get(num)); -// // 获取采集参数个数 -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 发送数据 -// ctx.channel().writeAndFlush(buffer); -// } -// } -// -// private ByteBuf getByteBuf(ChannelHandlerContext ctx, String sendStr) { -// // byte类型的数据 -//// byte[] bytes = "这里是将要写往服务端的数据".getBytes(Charset.forName("utf-8")); -//// String sendStr = "5803004900021914"; // 冷量计 -// // 申请一个数据结构存储信息 -// ByteBuf buffer = ctx.alloc().buffer(); -// // 将信息放入数据结构中 -// buffer.writeBytes(ExchangeStringUtil.hexStrToBinaryStr(sendStr));//对接需要16进制 -// return buffer; -// } -// -// @Override -// public void channelInactive(ChannelHandlerContext ctx) throws Exception { -// Thread.sleep(100); -// ctx.close(); -// log.info(ctx.channel().localAddress() + "退出链接!!"); -// } -// -// @Override -// public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { -// try { -// ByteBuf buf = (ByteBuf) msg; -// byte[] bytes = new byte[buf.readableBytes()]; -// buf.readBytes(bytes);//复制内容到字节数组bytes -// buf.clear(); -// log.info("获取到的值: " + ExchangeStringUtil.bytesToHexString(bytes)); -// if (bytes.length <= 36) { -//// receiveStr = receiveStr.replace("null", ""); -//// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -//// log.info(ctx.channel().remoteAddress() + " " + ctx.channel().localAddress() + " 接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); -// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -// receiveStr = receiveStr.replace("null", ""); -// log.info("接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } finally { -// ReferenceCountUtil.release(msg); -// } -// } -// -// @Override -// public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { -// log.info("冷水机组--数据读取接收完成: " + receiveStr); -// if (receiveStr.length() == 30) { -// log.info("采集完整的报文: " + receiveStr); -// // 解析采集的报文,并保存到数据库 -// AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); -// analysisReceiveOrder485.analysisChillerOrder485(receiveStr,deviceCodeParamList.get(num)); -// // 清空receiveStr -// receiveStr = ""; -// // 判断发送的下标,如果不等于指令数组大小 -// num = num + 1; -// if (num > size - 1) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -//// // 继续发送下一个采集冷水机设备指令 -//// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -//// String sendStr = getReadOrder485.createChillersOrder(chillersEntityList.get(num)); -//// ByteBuf buffer = getByteBuf(ctx, sendStr); -//// // 发送数据 -//// ctx.channel().writeAndFlush(buffer); -//// log.info("客户端再次往服务端发送数据" + num + " 数据条数:" + size); -// } else { -// // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 -// if (Constant.WEB_FLAG) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -// } else { -// Thread.sleep(1000); -// // 继续发送下一个采集冷水机设备指令 -// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -// String sendStr = getReadOrder485.createChillersOrder(deviceCodeParamList.get(num)); -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 发送数据 -// ctx.channel().writeAndFlush(buffer); -// log.info("客户端再次往服务端发送数据" + num + " 数据条数:" + size); -// } -// } -// } else if (receiveStr.length() == 32) { -// log.info("采集完整的报文: " + receiveStr); -// // 解析采集的报文,并保存到数据库 -// AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); -// analysisReceiveOrder485.analysisChillerOrder485(receiveStr,deviceCodeParamList.get(num)); -// // 清空receiveStr -// receiveStr = ""; -// // 判断发送的下标,如果不等于指令数组大小 -// num = num + 1; -// if (num > size - 1) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -//// // 继续发送下一个采集冷水机设备指令 -//// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -//// String sendStr = getReadOrder485.createChillersOrder(chillersEntityList.get(num)); -//// ByteBuf buffer = getByteBuf(ctx, sendStr); -//// // 发送数据 -//// ctx.channel().writeAndFlush(buffer); -//// log.info("客户端再次往服务端发送数据" + num + " 数据条数:" + size); -// } else { -// // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 -// if (Constant.WEB_FLAG) { -// log.info("有指令下发退出定时采集冷水机组参数"); -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -// } else { -// Thread.sleep(1000); -// // 继续发送下一个采集冷水机设备指令 -// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -// String sendStr = getReadOrder485.createChillersOrder(deviceCodeParamList.get(num)); -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 2.发送数据 -// ctx.channel().writeAndFlush(buffer); -// log.info("客户端再次往服务端发送数据" + num + " 数据条数:" + size); -// } -// } -// } else if (receiveStr.length() > 36) { -// // 清空receiveStr -// receiveStr = null; -// // 判断发送的下标,如果不等于指令数组大小 -// num = num + 1; -// if (num > size - 1) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -//// // 继续发送下一个采集冷水机设备指令 -//// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -//// String sendStr = getReadOrder485.createChillersOrder(chillersEntityList.get(num)); -//// ByteBuf buffer = getByteBuf(ctx, sendStr); -//// // 发送数据 -//// ctx.channel().writeAndFlush(buffer); -//// log.info("客户端再次往服务端发送数据" + num + " 数据条数:" + size); -// } else { -// // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 -// if (Constant.WEB_FLAG) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// ctx.close(); -// } else { -// Thread.sleep(1000); -// // 继续发送下一个采集冷水机设备指令 -// GetReadOrder485 getReadOrder485 = new GetReadOrder485(); -// String sendStr = getReadOrder485.createChillersOrder(deviceCodeParamList.get(num)); -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 发送数据 -// ctx.channel().writeAndFlush(buffer); -// log.info("客户端再次往服务端发送数据" + num + " 数据条数:" + size); -// } -// } -// } -// ctx.flush(); -// } -// -//} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyChillerControlClient.java b/user-service/src/main/java/com/mh/user/netty/NettyChillerControlClient.java deleted file mode 100644 index e266f9f..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyChillerControlClient.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.mh.user.netty; - -import com.mh.user.entity.OrderMessageEntity; -import io.netty.bootstrap.Bootstrap; -import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.timeout.IdleStateHandler; -import io.netty.handler.timeout.ReadTimeoutHandler; -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; - -import java.util.List; -import java.util.concurrent.TimeUnit; - -/** - * @author ljf - * @title : - * @description : 控制冷水机组和其他设备 - * @updateTime 2020-05-28 - * @throws : - */ -@Setter -@Getter -@Slf4j -public class NettyChillerControlClient { - -// private int port; -// private String host; -// private List orderMessageEntityList; - - // 构造函数传递值 继承Thread时需要 -// public NettyChillerControlClient(int port, String host) { -// this.port = port; -// this.host = host; -// } - - public void connect(int port, String host, List orderMessageEntityList) throws InterruptedException { - // 配置客户端NIO线程组 - EventLoopGroup group = new NioEventLoopGroup(1); - try { - Bootstrap bootstrap = new Bootstrap(); - bootstrap.group(group).channel(NioSocketChannel.class) - .option(ChannelOption.TCP_NODELAY, true) - .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3000) - .option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)) - .handler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel socketChannel) { - // 基于换行符号 -// socketChannel.pipeline().addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,4,4,-8,0)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringDecoder(StandardCharsets.UTF_8)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringEncoder(StandardCharsets.UTF_8)); -// socketChannel.pipeline().addLast(new LengthFieldPrepender(4)); - // 超过10秒钟没有数据读取自动断开连接 -// socketChannel.pipeline().addLast(new ReadTimeoutHandler(30)); - // 超过10秒没有返回触发心跳机制 update by ljf on 2021-01-30 - socketChannel.pipeline().addLast(new IdleStateHandler(10,10,6, TimeUnit.SECONDS)); - // 在管道中添加我们自己的接收数据实现方法 - socketChannel.pipeline().addLast(new NettyChillerControlHandler(orderMessageEntityList)); -// socketChannel.pipeline().addLast(new NettyMeterClientHandler()); - } - }); - // 发起异步连接操作 - ChannelFuture channelFuture = bootstrap.connect(host, port).sync(); - if (channelFuture.isSuccess()) { - log.info("connect server 成功---------"); - } else { - log.info("连接失败!"); - log.info("准备重连!"); -// connect(port, host); - } - - // 等待客户端连接链路关闭future.channel().closeFuture().sync(); // 阻塞main线程 - channelFuture.channel().closeFuture().sync(); - } catch (Exception e) { - log.error(e.getMessage()); - } finally { - group.shutdownGracefully(); -// try { -// TimeUnit.SECONDS.sleep(5); -// connect(port, host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - } - } - -// @SneakyThrows -// @Override -// public void run() { -// connect(port, host); -// } -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyChillerControlHandler.java b/user-service/src/main/java/com/mh/user/netty/NettyChillerControlHandler.java deleted file mode 100644 index c74bec2..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyChillerControlHandler.java +++ /dev/null @@ -1,315 +0,0 @@ -package com.mh.user.netty; - -import com.mh.user.entity.OrderMessageEntity; -import com.mh.user.service.chillers.GatewayManageService; -import com.mh.user.service.chillers.OrderMessageService; -import com.mh.user.utils.AnalysisReceiveOrder485; -import com.mh.user.constants.Constant; -import com.mh.user.utils.ExchangeStringUtil; -import com.mh.user.utils.GetReadOrder485; -import com.mh.user.utils.SpringBeanUtil; -import io.netty.buffer.ByteBuf; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerAdapter; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.timeout.IdleState; -import io.netty.handler.timeout.IdleStateEvent; -import io.netty.util.ReferenceCountUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.ApplicationContext; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -/** - * @author ljf - * @title : - * @description :客户端异步消息处理机制 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -public class NettyChillerControlHandler extends ChannelHandlerAdapter { - - private int num = 0; - private int size = 0; - private String receiveStr = ""; - private int sendNum = 0; - private int idle_count = 1; - - List orderMessageEntityList; - - // 调用service - ApplicationContext context = SpringBeanUtil.getApplicationContext(); - GatewayManageService gatewayManageService = context.getBean(GatewayManageService.class); - OrderMessageService orderMessageService = context.getBean(OrderMessageService.class); - - public NettyChillerControlHandler(List orderMessageEntityList) { - this.orderMessageEntityList = orderMessageEntityList; - } - - @Override - public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { - log.info("当前channel从EventLoop取消注册"); -// Constant.SEND_STATUS = false; -// super.channelUnregistered(ctx); - ctx.close(); - } - - /** - * 超时处理 - * 如果120秒没有接受客户端的心跳,就触发; - * 如果超过3次,则直接关闭; - */ - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object obj) throws Exception { - if (obj instanceof IdleStateEvent) { - IdleStateEvent event = (IdleStateEvent) obj; - if (IdleState.READER_IDLE.equals(event.state())) { //如果读通道处于空闲状态,说明没有接收到心跳命令 - System.out.println("第" + idle_count + "已经10秒没有接收到服务器的信息了,发送第" + num + "条数据"); - if (num > size - 1) { - num = 0; - // 关闭连接 - receiveStr = null; - Constant.SEND_STATUS = true; - System.out.println("关闭这个不活跃的channel"); - ctx.close(); - } else if (idle_count > 3) { - System.out.println("关闭这个不活跃的channel"); - num = 0; - // 关闭连接 - receiveStr = null; - Constant.SEND_STATUS = false; - ctx.close(); - } else { - // 发送采集DDC指令 - // 判断空值 - if (orderMessageEntityList.get(num).getRegisterAddr() == null || - orderMessageEntityList.get(num).getRegisterAddr().equalsIgnoreCase("")) { - num = 0; - // 关闭连接 - receiveStr = null; - Constant.SEND_STATUS = true; - ctx.close(); - } else { - String sendStr = orderMessageEntityList.get(num).getOrderStr(); -// // 获取采集参数个数 -// size = orderMessageEntityList.size(); - // 2.发送数据 - ByteBuf buffer = getByteBuf(ctx, sendStr); - ctx.channel().writeAndFlush(buffer); - idle_count++; - } - } - } - } else { - super.userEventTriggered(ctx, obj); - } - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { -// super.exceptionCaught(ctx, cause); - log.info("通信异常!!"); - cause.printStackTrace(); -// receiveStr = null; -// Channel incoming = ctx.channel(); -// if (incoming.isActive()) { -// // 重新发送 -// if (sendNum > 2) { -// // 通信异常,发送失败 -// log.info("SimpleClient: " + incoming.remoteAddress() + "异常"); -// cause.printStackTrace(); -// Constant.SEND_STATUS = false; -// ctx.close(); -// } else { -// // 发送采集DDC指令 -// String sendStr = orderMessageEntityList.get(num).getOrderStr(); -// // 获取采集参数个数 -// size = orderMessageEntityList.size(); -// // 2.发送数据 -// ByteBuf buffer = getByteBuf(ctx,sendStr); -// ctx.channel().writeAndFlush(buffer); -// sendNum += 1; -// } -// } -// // 判断发送的下标,如果不等于指令数组大小 -// num = num + 1; -// if (num > size-1) { -// num = 0; -// // 关闭连接 -// receiveStr = null; -// Constant.SEND_STATUS = true; -// ctx.close(); -// } - } - - - @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception { - super.channelActive(ctx); - SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); - Date date=new Date(); - log.info(ctx.channel().remoteAddress() + " " + sdf1.format(date) + "链接服务端成功!"); - // 截取IP地址 - String IP = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress()+"","/", ":"); - // 截取端口号 - String port = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress()+"",":", ""); - log.info("IP: " + IP + ",端口号: " + port); - // 更新对应的网关在线情况 - gatewayManageService.updateGatewayManage(IP, port); - - // 发送控制DDC指令 - String sendStr = orderMessageEntityList.get(num).getOrderStr(); - // 获取采集参数个数 - size = orderMessageEntityList.size(); - - // 2.发送数据 - ByteBuf buffer = getByteBuf(ctx,sendStr); - ctx.channel().writeAndFlush(buffer); - } - - private ByteBuf getByteBuf(ChannelHandlerContext ctx, String sendStr) { - // 申请一个数据结构存储信息 - ByteBuf buffer = ctx.alloc().buffer(); - // 将信息放入数据结构中 - buffer.writeBytes(ExchangeStringUtil.hexStrToBinaryStr(sendStr));//对接需要16进制 - return buffer; - } - - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { -// Thread.sleep(100); - ctx.close(); - log.info(ctx.channel().localAddress() + "退出链接!!"); - } - - @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { -// super.channelRead(ctx, msg); - // ByteBuf buf = (ByteBuf)msg; -// byte[] req = new byte[buf.readableBytes()]; -// buf.readBytes(req); -// String body = new String(req, "UTF-8"); - try { - ByteBuf buf = (ByteBuf)msg; - byte [] bytes = new byte[buf.readableBytes()]; - buf.readBytes(bytes);//复制内容到字节数组bytes - buf.clear(); - log.info("获取到的值: " + ExchangeStringUtil.bytesToHexString(bytes)); -// if (bytes.length <= 24) { - if (bytes.length != 0) { -// receiveStr = receiveStr.replace("null", ""); -// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -// log.info(ctx.channel().remoteAddress() + " " + ctx.channel().localAddress() + " 接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 - receiveStr = receiveStr.replace("null", ""); - log.info("接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - ReferenceCountUtil.release(msg); - } - } - - @Override - public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { - log.info("数据读取接收完成: " + receiveStr); - if (receiveStr.length() == 24) { - if (receiveStr.equalsIgnoreCase(orderMessageEntityList.get(num).getOrderStr())) { - // 解析采集回来的数据 - log.info("采集完整的报文: " + receiveStr + ",指令下标: " + size); - // 解析采集的报文 - // 更新发送后的指令 - OrderMessageEntity orderMessageEntity = new OrderMessageEntity(); - orderMessageEntity.setRegisterAddr(orderMessageEntityList.get(num).getRegisterAddr()); - orderMessageEntity.setCreateTime(orderMessageEntityList.get(num).getCreateTime()); - orderMessageEntity.setGrade(1); - orderMessageEntity.setSendNum(1); - orderMessageEntity.setStatus(1); - orderMessageEntity.setOrderStr(orderMessageEntityList.get(num).getOrderStr()); - orderMessageService.updateOrderMessage(orderMessageEntity); - -// // 关闭连接 -// receiveStr = null; -// Constant.SEND_STATUS = true; -// ctx.close(); - - // 清空receiveStr - receiveStr = ""; - // 判断发送的下标,如果不等于指令数组大小 - num = num + 1; - if (num > size - 1) { - num = 0; - // 关闭连接 - receiveStr = null; - Constant.SEND_STATUS = true; - ctx.close(); - } else { - Thread.sleep(4000); - // 继续发送下一个采集DDC设备指令 - String sendStr = orderMessageEntityList.get(num).getOrderStr(); - ByteBuf buffer = getByteBuf(ctx, sendStr); - // 2.发送数据 - ctx.channel().writeAndFlush(buffer); - log.info("客户端再次往服务端发送数据" + num + ",报文: " + sendStr); - } - } - } else if ((receiveStr.length() > 24) && (num == 0)) { - // 发送采集DDC指令 - String sendStr = orderMessageEntityList.get(num).getOrderStr(); - // 获取采集参数个数 - size = orderMessageEntityList.size(); - // 2.发送数据 - ByteBuf buffer = getByteBuf(ctx,sendStr); - ctx.channel().writeAndFlush(buffer); - // 清空receiveStr - receiveStr = ""; - sendNum += 1; - } else if (sendNum > 2){ - // 更新发送后的指令 - OrderMessageEntity orderMessageEntity = new OrderMessageEntity(); - orderMessageEntity.setRegisterAddr(orderMessageEntityList.get(num).getRegisterAddr()); - orderMessageEntity.setCreateTime(orderMessageEntityList.get(num).getCreateTime()); - orderMessageEntity.setGrade(1); - orderMessageEntity.setSendNum(sendNum); - orderMessageEntity.setStatus(0); - orderMessageEntity.setOrderStr(orderMessageEntityList.get(num).getOrderStr()); - orderMessageService.updateOrderMessage(orderMessageEntity); - Constant.SEND_STATUS = false; - ctx.close(); - } else if ((receiveStr.length() > 24)) { - // 接收采集DDC的数据 - // 解析采集的报文 - AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); - analysisReceiveOrder485.analysisChillersDDC(receiveStr); - - // 清空receiveStr - receiveStr = ""; - // 更新发送后的指令 - OrderMessageEntity orderMessageEntity = new OrderMessageEntity(); - orderMessageEntity.setRegisterAddr(orderMessageEntityList.get(num).getRegisterAddr()); - orderMessageEntity.setCreateTime(orderMessageEntityList.get(num).getCreateTime()); - orderMessageEntity.setGrade(1); - orderMessageEntity.setSendNum(1); - orderMessageEntity.setStatus(1); - orderMessageEntity.setOrderStr(orderMessageEntityList.get(num).getOrderStr()); - orderMessageService.updateOrderMessage(orderMessageEntity); - - // 判断发送的下标,如果不等于指令数组大小 - num = num + 1; -// Thread.sleep(500); - if (num > size-1) { - num = 0; - // 关闭连接 - receiveStr = null; - Constant.SEND_STATUS = true; - ctx.close(); - } - } - ctx.flush(); - } - -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyChillerDDCClient.java b/user-service/src/main/java/com/mh/user/netty/NettyChillerDDCClient.java deleted file mode 100644 index 408835e..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyChillerDDCClient.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.mh.user.netty; - -import io.netty.bootstrap.Bootstrap; -import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.timeout.IdleStateHandler; -import io.netty.handler.timeout.ReadTimeoutHandler; -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; - -import java.util.concurrent.TimeUnit; - -/** - * @author ljf - * @title : - * @description :Netty客户端,采集DDC设备数据 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -@Setter -@Getter -public class NettyChillerDDCClient { - - private volatile static NettyChillerDDCClient nettyChillerDDCClient = new NettyChillerDDCClient(); - - private int port; - private String host; - - // 构造函数传递值 继承Thread时需要 -// public NettyClient(int port, String host) { -// this.port = port; -// this.host = host; -// } - - public static void connect(int port, String host) throws InterruptedException { - // 配置客户端NIO线程组 - EventLoopGroup group = new NioEventLoopGroup(1); - try { - Bootstrap bootstrap = new Bootstrap(); - bootstrap.group(group).channel(NioSocketChannel.class) - .option(ChannelOption.TCP_NODELAY, true) - .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3000) - .option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)) - .handler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel socketChannel) { - // 基于换行符号 -// socketChannel.pipeline().addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,4,4,-8,0)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringDecoder(StandardCharsets.UTF_8)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringEncoder(StandardCharsets.UTF_8)); -// socketChannel.pipeline().addLast(new LengthFieldPrepender(4)); - // 超过10秒钟没有数据读取自动断开连接 -// socketChannel.pipeline().addLast(new ReadTimeoutHandler(40)); - socketChannel.pipeline().addLast(new IdleStateHandler(20,20,20, TimeUnit.SECONDS)); - // 在管道中添加我们自己的接收数据实现方法 - socketChannel.pipeline().addLast(new NettyChillerDDCClientHandler()); -// socketChannel.pipeline().addLast(new NettyMeterClientHandler()); - } - }); - // 发起异步连接操作 - ChannelFuture channelFuture = bootstrap.connect(host, port).sync(); - if (channelFuture.isSuccess()) { - log.info("connect server 成功---------"); - } else { - log.info("连接失败!"); - log.info("准备重连!"); -// connect(port, host); - } - - // 等待客户端连接链路关闭future.channel().closeFuture().sync(); // 阻塞main线程 - channelFuture.channel().closeFuture().sync(); - } catch (Exception e) { - log.error(e.getMessage()); - } finally { - group.shutdownGracefully(); -// try { -// TimeUnit.SECONDS.sleep(5); -// connect(port, host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - } - } - -// @SneakyThrows -// @Override -// public void run() { -// connect(port, host); -// } -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyChillerDDCClientHandler.java b/user-service/src/main/java/com/mh/user/netty/NettyChillerDDCClientHandler.java deleted file mode 100644 index 0c1e6b1..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyChillerDDCClientHandler.java +++ /dev/null @@ -1,297 +0,0 @@ -package com.mh.user.netty; - -import com.mh.user.constants.Constant; -import com.mh.user.entity.ChillersEntity; -import com.mh.user.service.chillers.ChillersService; -import com.mh.user.service.chillers.GatewayManageService; -import com.mh.user.utils.AnalysisReceiveOrder485; -import com.mh.user.utils.ExchangeStringUtil; -import com.mh.user.utils.GetReadOrder485; -import com.mh.user.utils.SpringBeanUtil; -import io.netty.buffer.ByteBuf; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerAdapter; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.timeout.IdleState; -import io.netty.handler.timeout.IdleStateEvent; -import io.netty.util.ReferenceCountUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -/** - * @author ljf - * @title : - * @description :客户端异步消息处理机制 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -public class NettyChillerDDCClientHandler extends ChannelHandlerAdapter { - - private int num = 0; - private int size = 0; - private int collectionSize = 0; - private String receiveStr = null; - private int idle_count = 0; - List chillersEntityList; - List chillersEntityList1; - - // 调用service - ApplicationContext context = SpringBeanUtil.getApplicationContext(); - ChillersService chillersService = context.getBean(ChillersService.class); - GatewayManageService gatewayManageService = context.getBean(GatewayManageService.class); - - /** - * 超时处理 - * 如果120秒没有接受客户端的心跳,就触发; - * 如果超过3次,则直接关闭; - */ - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object obj) throws Exception { - if (obj instanceof IdleStateEvent) { - IdleStateEvent event = (IdleStateEvent) obj; - if (IdleState.READER_IDLE.equals(event.state())) { //如果读通道处于空闲状态,说明没有接收到心跳命令 - System.out.println("第" + idle_count + "已经20秒没有接收到服务器的信息了,发送的第" + num + "条数据"); - if (chillersEntityList.get(num) == null) { - ctx.close(); - } else { - String sendStr = GetReadOrder485.createDDCOrder(chillersEntityList.get(num)); - ctx.channel().writeAndFlush(ExchangeStringUtil.getByteBuf(ctx, sendStr)); - if ((num > size - 1) || (idle_count > 3)) { - //System.out.println("关闭这个不活跃的channel"); - //ctx.close(); - //继续发送下一个ddc采集指令 - log.info("当前DDC无返回数据超过三次,DDC为:"+chillersEntityList.get(num).getDdcAddr()); - if (num >= size - 1){ - log.info("结束DDC采集,当前DDC=====>>>"+chillersEntityList.get(num).getDdcAddr()); - ctx.close(); - }else { - //下发下一个ddc指令之前清除前面的数据 - receiveStr = null; - //String sendStr1 = GetReadOrder485.createDDCOrder(chillersEntityList.get(++num)); - //ctx.channel().writeAndFlush(ExchangeStringUtil.getByteBuf(ctx, sendStr1)); - num++; - sendDDCOrder(chillersEntityList,chillersEntityList.get(num),ctx,num); - } - idle_count = 0; - } - idle_count++; - } - } - } else { - super.userEventTriggered(ctx, obj); - } - } - - @Override - public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { - log.info("当前channel从EventLoop取消注册"); - super.channelUnregistered(ctx); - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { -// super.exceptionCaught(ctx, cause); - log.info("通信异常!!"); - receiveStr = null; - cause.printStackTrace(); - ctx.close(); -// Channel incoming = ctx.channel(); -// if (incoming.isActive()) { -// log.info("SimpleClient: " + incoming.remoteAddress() + "异常"); -// cause.printStackTrace(); -// ctx.close(); -// receiveStr = null; -// try { -// TimeUnit.SECONDS.sleep(5); -// SocketAddress remoteAddress = ctx.channel().remoteAddress(); -// String port = ExchangeStringUtil.endData(remoteAddress.toString(),":"); -// String host = ExchangeStringUtil.splitData(remoteAddress.toString(),"/",":"); -// NettyClient nettyClient = new NettyClient(); -// nettyClient.connect(Integer.parseInt(port), host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } -// } - } - - - @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception { - super.channelActive(ctx); - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.CONTROL_WEB_FLAG) { - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); - Date date = new Date(); - log.info(ctx.channel().remoteAddress() + " " + sdf1.format(date) + "链接服务端成功!"); - // 截取IP地址 - String IP = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", "/", ":"); - // 截取端口号 - String port = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", ":", ""); - log.info("IP: " + IP + ",端口号: " + port); - // 更新对应的网关在线情况 - gatewayManageService.updateGatewayManage(IP, port); - // 生成采集指令 - chillersEntityList = chillersService.queryChillersDDC(2); - size = chillersEntityList.size(); - - // 发送采集DDC指令 - String sendStr = GetReadOrder485.createDDCOrder(chillersEntityList.get(num)); - // 获取采集参数个数,grade=2,代表采集DDC设备所对应的参数 - chillersEntityList1 = chillersService.queryChillersByOther(2, chillersEntityList.get(num).getDdcAddr()); - StringBuffer getStr = new StringBuffer(); - for (int i = 0; i < chillersEntityList1.size(); i++) { - getStr.append(chillersEntityList1.get(i).getRegisterAddress()); -// getStr = getStr + chillersEntityList1.get(i).getRegisterAddress(); - } - collectionSize = getStr.length() / 2; - log.info("发送的数据: " + sendStr + ",报文大小: " + collectionSize); - ByteBuf buffer = getByteBuf(ctx, sendStr); - // 2.发送数据 - ctx.channel().writeAndFlush(buffer); - } - } - - private ByteBuf getByteBuf(ChannelHandlerContext ctx, String sendStr) { - // byte类型的数据 - // 申请一个数据结构存储信息 - ByteBuf buffer = ctx.alloc().buffer(); - // 将信息放入数据结构中 - buffer.writeBytes(ExchangeStringUtil.hexStrToBinaryStr(sendStr));//对接需要16进制 - return buffer; - } - - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { - Thread.sleep(100); - ctx.close(); - log.info(ctx.channel().localAddress() + "退出链接!!"); - } - - @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { - try { - ByteBuf buf = (ByteBuf) msg; - byte[] bytes = new byte[buf.readableBytes()]; - buf.readBytes(bytes);//复制内容到字节数组bytes - buf.clear(); - log.info("获取到的值: " + ExchangeStringUtil.bytesToHexString(bytes)); - if (bytes.length <= (11 + collectionSize * 3) * 2) { -// if (bytes.length <= 142) { -// receiveStr = receiveStr.replace("null", ""); -// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -// log.info(ctx.channel().remoteAddress() + " " + ctx.channel().localAddress() + " 接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 - receiveStr = receiveStr.replace("null", ""); - log.info("接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - ReferenceCountUtil.release(msg); - } - } - - @Override - public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { - log.info("接收的数据: " + receiveStr + ",报文大小: " + collectionSize); - if (receiveStr.length() == (11 + 3 * collectionSize) * 2) { -// if (receiveStr.length() == 142) { - // 解析采集回来的数据 - log.info("采集完整的报文: " + receiveStr); - - if (!Constant.CONTROL_WEB_FLAG) { - // 解析采集的报文 - AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); - analysisReceiveOrder485.analysisChillersDDC(receiveStr); - } - // 清空receiveStr - receiveStr = ""; - // 判断发送的下标,如果不等于指令数组大小 - num = num + 1; - if (num > size - 1) { - // 关闭连接 - receiveStr = null; - ctx.close(); -// // 设置长连接,封装发送 update by ljf on 2021-01-26 -// sendDDCOrder(chillersEntityList,chillersEntityList.get(num),ctx,num); - } else { - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.CONTROL_WEB_FLAG) { - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - // 设置长连接,封装发送 update by ljf on 2021-01-26 - sendDDCOrder(chillersEntityList, chillersEntityList.get(num), ctx, num); - } - } - } else if (receiveStr.length() == 20) { -// if (receiveStr.length() == 142) { - // 解析采集回来的数据 - log.info("采集完整的报文: " + receiveStr); - // 清空receiveStr - receiveStr = ""; - // 判断发送的下标,如果不等于指令数组大小 - num = num + 1; - if (num > size - 1) { - // 关闭连接 - receiveStr = null; - ctx.close(); -// // 设置长连接,封装发送 update by ljf on 2021-01-26 -// sendDDCOrder(chillersEntityList,chillersEntityList.get(num),ctx,num); - } else { - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.CONTROL_WEB_FLAG) { - log.info("有指令下发退出定时采集DDC参数"); - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - // 封装发送 - sendDDCOrder(chillersEntityList, chillersEntityList.get(num), ctx, num); - } - } - }else if (receiveStr.length() > (11 + 3 * collectionSize) * 2){ - log.info("当前DDC: "+chillersEntityList.get(num).getDdcAddr()+"长度为: "+receiveStr.length()); - receiveStr = null; - //继续后面的DDC采集 - //String sendStr1 = GetReadOrder485.createDDCOrder(chillersEntityList.get(++num)); - //ctx.channel().writeAndFlush(ExchangeStringUtil.getByteBuf(ctx, sendStr1)); - num++; - sendDDCOrder(chillersEntityList,chillersEntityList.get(num),ctx,num); - } - ctx.flush(); - } - - public void sendDDCOrder(List chillersEntityList, - ChillersEntity chillersEntity, - ChannelHandlerContext ctx, - int num) throws InterruptedException { - Thread.sleep(800); - // 继续发送下一个采集DDC设备指令 - String sendStr = GetReadOrder485.createDDCOrder(chillersEntity); - // 获取采集参数个数,grade=2,代表采集DDC设备所对应的参数 - chillersEntityList1 = chillersService.queryChillersByOther(2, chillersEntityList.get(num).getDdcAddr()); - StringBuilder getStr = new StringBuilder(); - for (ChillersEntity entity : chillersEntityList1) { - getStr.append(entity.getRegisterAddress()); - } - collectionSize = getStr.length() / 2; - log.info("发送的数据: " + sendStr + ",报文大小: " + collectionSize); - log.info("客户端再次往服务端发送数据 " + num + "," + sendStr); - ByteBuf buffer = getByteBuf(ctx, sendStr); - // 2.发送数据 - ctx.channel().writeAndFlush(buffer); - } - -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyClient.java b/user-service/src/main/java/com/mh/user/netty/NettyClient.java deleted file mode 100644 index 828c646..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyClient.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mh.user.netty; - -import io.netty.bootstrap.Bootstrap; -import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.timeout.ReadTimeoutHandler; -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; - -/** - * @author ljf - * @title : - * @description :Netty客户端,采集冷量计 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -@Setter -@Getter -public class NettyClient { - - private int port; - private String host; - - // 构造函数传递值 继承Thread时需要 -// public NettyClient(int port, String host) { -// this.port = port; -// this.host = host; -// } - - public void connect(int port, String host) throws InterruptedException { - // 配置客户端NIO线程组 - EventLoopGroup group = new NioEventLoopGroup(1); - try { - Bootstrap bootstrap = new Bootstrap(); - bootstrap.group(group).channel(NioSocketChannel.class) - .option(ChannelOption.TCP_NODELAY, true) - .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3000) - .option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)) - .handler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel socketChannel) { - // 基于换行符号 -// socketChannel.pipeline().addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,4,4,-8,0)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringDecoder(StandardCharsets.UTF_8)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringEncoder(StandardCharsets.UTF_8)); -// socketChannel.pipeline().addLast(new LengthFieldPrepender(4)); - // 超过10秒钟没有数据读取自动断开连接 - socketChannel.pipeline().addLast(new ReadTimeoutHandler(10)); - // 在管道中添加我们自己的接收数据实现方法 - socketChannel.pipeline().addLast(new NettyClientHandler()); -// socketChannel.pipeline().addLast(new NettyMeterClientHandler()); - } - }); - // 发起异步连接操作 - ChannelFuture channelFuture = bootstrap.connect(host, port).sync(); - if (channelFuture.isSuccess()) { - log.info("connect server 成功---------"); - } else { - log.info("连接失败!"); - log.info("准备重连!"); -// connect(port, host); - } - - // 等待客户端连接链路关闭future.channel().closeFuture().sync(); // 阻塞main线程 - channelFuture.channel().closeFuture().sync(); - } catch (Exception e) { - log.error(e.getMessage()); - } finally { - group.shutdownGracefully(); -// try { -// TimeUnit.SECONDS.sleep(5); -// connect(port, host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - } - } - -// @SneakyThrows -// @Override -// public void run() { -// connect(port, host); -// } -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyClientHandler.java b/user-service/src/main/java/com/mh/user/netty/NettyClientHandler.java deleted file mode 100644 index ba4dc80..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyClientHandler.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.mh.user.netty; - -import com.mh.user.constants.Constant; -import com.mh.user.entity.DeviceCodeParamEntity; -import com.mh.user.entity.DeviceManageEntity; -import com.mh.user.service.DeviceCodeParamService; -import com.mh.user.service.chillers.DeviceManageService; -import com.mh.user.utils.*; -import io.netty.buffer.ByteBuf; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerAdapter; -import io.netty.channel.ChannelHandlerContext; -import io.netty.util.ReferenceCountUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.ApplicationContext; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -/** - * @author ljf - * @title : - * @description :客户端异步消息处理机制 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -public class NettyClientHandler extends ChannelHandlerAdapter { - - private int num = 0; - private int size = 0; - private String receiveStr = null; - private String IP = null; - private String port = null; - List deviceManageEntityList; - - // 调用service - ApplicationContext context = SpringBeanUtil.getApplicationContext(); - DeviceCodeParamService deviceCodeParamService = context.getBean(DeviceCodeParamService.class); - - - @Override - public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { - log.info("当前channel从EventLoop取消注册"); - super.channelUnregistered(ctx); - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { -// super.exceptionCaught(ctx, cause); - log.info("通信异常!!"); - receiveStr = null; - Channel incoming = ctx.channel(); - if (incoming.isActive()){ - log.info("SimpleClient: " + incoming.remoteAddress() + "异常"); - cause.printStackTrace(); - ctx.close(); -// receiveStr = null; -// try { -// TimeUnit.SECONDS.sleep(5); -// SocketAddress remoteAddress = ctx.channel().remoteAddress(); -// String port = ExchangeStringUtil.endData(remoteAddress.toString(),":"); -// String host = ExchangeStringUtil.splitData(remoteAddress.toString(),"/",":"); -// NettyClient nettyClient = new NettyClient(); -// nettyClient.connect(Integer.parseInt(port), host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - } - } - - - @Override - public void channelActive(ChannelHandlerContext ctx) { - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.WEB_FLAG) { - num = 0; - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - ctx.channel().read(); - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); - Date date = new Date(); - log.info(ctx.channel().remoteAddress() + " " + sdf1.format(date) + "链接服务端成功!"); - // 截取IP地址 - IP = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", "/", ":"); - // 截取端口号 - port = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", ":", ""); - log.info("IP: " + IP + ",端口号: " + port); - // 生成对应采集冷量计的命令 - deviceManageEntityList = deviceCodeParamService.queryCodeParam(port); - size = deviceManageEntityList.size(); - - // 封装工具类进行采集,update by ljf on 2021-01-26 - SendOrderUtils.sendCloudOrder(deviceManageEntityList.get(0),ctx,num,size); - } - - } - - private ByteBuf getByteBuf(ChannelHandlerContext ctx, String sendStr) { - // byte类型的数据 -// byte[] bytes = "这里是将要写往服务端的数据".getBytes(Charset.forName("utf-8")); -// String sendStr = "5803004900021914"; // 冷量计 - // 申请一个数据结构存储信息 - ByteBuf buffer = ctx.alloc().buffer(); - // 将信息放入数据结构中 - buffer.writeBytes(ExchangeStringUtil.hexStrToBinaryStr(sendStr));//对接需要16进制 - return buffer; - } - - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { - Thread.sleep(100); - ctx.close(); - log.info(ctx.channel().localAddress() + "退出链接!!"); - } - - @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { - try { - ByteBuf buf = (ByteBuf)msg; - byte [] bytes = new byte[buf.readableBytes()]; - buf.readBytes(bytes);//复制内容到字节数组bytes - buf.clear(); - log.info("获取到的值: " + ExchangeStringUtil.bytesToHexString(bytes)); - if (bytes.length <= 36) { -// receiveStr = receiveStr.replace("null", ""); -// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -// log.info(ctx.channel().remoteAddress() + " " + ctx.channel().localAddress() + " 接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 - receiveStr = receiveStr.replace("null", ""); - log.info("接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - ReferenceCountUtil.release(msg); - } - } - - @Override - public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { - log.info("采集冷量计-数据读取接收完成: " + receiveStr); -// A9 FE C2 C7 1F 90 01 58 03 04 4A 30 00 53 65 1C C4 06 - if (receiveStr.length() == 36) { - // 接收到的报文 - log.info("接收完整报文: " + receiveStr); - // 解析报文 - AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); - analysisReceiveOrder485.analysisCloudOrder485(receiveStr,deviceManageEntityList.get(num)); // 解析冷量计 - receiveStr = ""; - // 1.创建将要写出的数据 -// String sendStr = "5803004900021914"; - num = num + 1; - Thread.sleep(500); - if (num > size-1) { - num = 0; - // 关闭连接 - receiveStr = null; - ctx.close(); -// 保持长连接 -// // 封装工具类进行采集,update by ljf on 2021-01-26 -// SendOrderUtils.sendCloudOrder(deviceManageEntityList.get(num),num,IP,port,ctx); - } else { - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.WEB_FLAG) { - log.info("有指令下发退出定时采集参数"); - num = 0; - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - // 封装工具类进行采集,update by ljf on 2021-01-26 - SendOrderUtils.sendCloudOrder(deviceManageEntityList.get(num),ctx,num,size); - } - } - - } else { - log.info(receiveStr); - receiveStr = null; - ctx.flush(); - ctx.close(); - } - - ctx.flush(); - } - -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyEchoServer.java b/user-service/src/main/java/com/mh/user/netty/NettyEchoServer.java deleted file mode 100644 index ea76106..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyEchoServer.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.mh.user.netty; - -import com.mh.user.utils.ExchangeStringUtil; -import io.netty.bootstrap.ServerBootstrap; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioServerSocketChannel; -import io.netty.handler.logging.LogLevel; -import io.netty.handler.logging.LoggingHandler; -import lombok.extern.slf4j.Slf4j; -import org.springframework.util.StringUtils; - -import java.io.IOException; -import java.net.InetSocketAddress; - - -/** - * @author ljf - * @title :Netty - * @description :netty 使用 - * @updateTime 2020-04-21 - * @throws : - */ -@Slf4j -public class NettyEchoServer { - - public void bind(int port) throws Exception { - // accept线程组,用来接收连接 - EventLoopGroup bossGroup = new NioEventLoopGroup(1); - // IO 线程组,用来处理业务逻辑 - EventLoopGroup workerGroup = new NioEventLoopGroup(1); - - try { - // 服务端启动引导 - ServerBootstrap serverBootstrap = new ServerBootstrap(); - serverBootstrap.group(bossGroup,workerGroup) // 绑定两个线程 - .channel(NioServerSocketChannel.class) // 指定通道类型 - .option(ChannelOption.SO_BACKLOG, 1024) // 设置TCP连接的缓冲区 - .handler(new LoggingHandler(LogLevel.INFO)) // 设置日志级别 - .childHandler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel socketChannel) throws Exception { - ChannelPipeline pipeline = socketChannel.pipeline(); // 获取处理器链 - pipeline.addLast(new EchoServerHandler()); // 添加新的事件处理器 - } - }); - // 通过bind启动服务 - ChannelFuture f = serverBootstrap.bind(port).sync(); - // 阻塞主线程,知道网络服务被关闭 - f.channel().closeFuture().sync(); - } catch (Exception e){ - e.printStackTrace(); - } finally { - workerGroup.shutdownGracefully(); - bossGroup.shutdownGracefully(); - } - } - - static class EchoServerHandler extends ChannelHandlerAdapter { - - // 每当从客户端收到新的数据时,这个方法会在收到消息时被调用 - @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { - try { - ByteBuf buf = (ByteBuf)msg; - byte [] bytes = new byte[buf.readableBytes()]; - buf.readBytes(bytes);//复制内容到字节数组bytes - String receiveStr = ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 - log.info("接收到的数据: "+ receiveStr); - - //返回16进制到客户端 - writeToClient(receiveStr,ctx,"测试"); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } -// ctx.write(Unpooled.wrappedBuffer("Server message".getBytes())); -// ctx.fireChannelRead(msg); - } - - // 数据读取完后被调用 - @Override - public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { - ctx.flush(); - } - - // 当Netty由于IO错误或者处理器在处理事件时抛出的异常时被调用 - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { - cause.printStackTrace(); - ctx.close(); - } - - /** - * 客户端与服务端第一次建立连接时 执行 - * - * @param ctx - * @throws Exception - */ - @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception, IOException - { - super.channelActive(ctx); - ctx.channel().read(); - InetSocketAddress ifsock = (InetSocketAddress) ctx.channel().remoteAddress(); - String clientIp = ifsock.getAddress().getHostAddress(); - //此处不能使用ctx.close(),否则客户端始终无法与服务端建立连接 - log.info("channelActive: "+clientIp + ctx.name()); - } - - /** - * 客户端与服务端 断连时 执行 - * - * @param ctx - * @throws Exception - */ - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception, IOException - { - super.channelInactive(ctx); - InetSocketAddress ifsock = (InetSocketAddress) ctx.channel().remoteAddress(); - String clientIp = ifsock.getAddress().getHostAddress(); - ctx.close(); //断开连接时,必须关闭,否则造成资源浪费,并发量很大情况下可能造成宕机 - System.out.println("channelInactive:"+clientIp); - } - - /** - * 服务端当read超时, 会调用这个方法 - * - * @param ctx - * @param evt - * @throws Exception - */ - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception, IOException - { - super.userEventTriggered(ctx, evt); - InetSocketAddress ifsock = (InetSocketAddress) ctx.channel().remoteAddress(); - String clientIp = ifsock.getAddress().getHostAddress(); - ctx.close();//超时时断开连接 - System.out.println("userEventTriggered:"+clientIp); - } - - - /** - * 公用回写数据到客户端的方法 - * @param channel - * @param mark 用于打印/log的输出 - *
//channel.writeAndFlush(msg);//不行 - *
//channel.writeAndFlush(receiveStr.getBytes());//不行 - *
在netty里,进出的都是ByteBuf,楼主应确定服务端是否有对应的编码器,将字符串转化为ByteBuf - */ - private void writeToClient(final String receiveStr, ChannelHandlerContext channel, final String mark) { - try { - ByteBuf buff = Unpooled.buffer();//netty需要用ByteBuf传输 - buff.writeBytes(ExchangeStringUtil.hexStrToBinaryStr(receiveStr));//对接需要16进制 - channel.writeAndFlush(buff).addListener((ChannelFutureListener) future -> { - StringBuilder sb = new StringBuilder(""); - if(!StringUtils.isEmpty(mark)){ - sb.append("【").append(mark).append("】"); - } - if (future.isSuccess()) { - System.out.println(sb.toString()+"回写成功"+receiveStr); - log.info(sb.toString()+"回写成功"+receiveStr); - } else { - System.out.println(sb.toString()+"回写失败"+receiveStr); - log.error(sb.toString()+"回写失败"+receiveStr); - } - }); - } catch (Exception e) { - e.printStackTrace(); - System.out.println("调用通用writeToClient()异常"+e.getMessage()); - log.error("调用通用writeToClient()异常:",e); - } - } - } -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyMeterClient.java b/user-service/src/main/java/com/mh/user/netty/NettyMeterClient.java deleted file mode 100644 index 46e13fb..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyMeterClient.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.mh.user.netty; - -import io.netty.bootstrap.Bootstrap; -import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.timeout.ReadTimeoutHandler; -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; - -/** - * @author ljf - * @title : - * @description :Netty客户端,采集电表 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -@Setter -@Getter -public class NettyMeterClient { -// implements Runnable { - - private int port; - private String host; - - // 构造函数传递值 继承Thread时需要 - public NettyMeterClient(int port, String host) { - this.port = port; - this.host = host; - } - - public NettyMeterClient() { - super(); - } - - public void connect(int port, String host) throws InterruptedException { - // 配置客户端NIO线程组 - // 配置客户端NIO线程组 - EventLoopGroup group = new NioEventLoopGroup(1); - try { - Bootstrap bootstrap = new Bootstrap(); - bootstrap.group(group).channel(NioSocketChannel.class) - .option(ChannelOption.TCP_NODELAY, true) - .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3000) - .option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(1024*1024)) - .handler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel socketChannel) { - // 基于换行符号 -// socketChannel.pipeline().addLast(new LineBasedFrameDecoder(1024)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringDecoder(StandardCharsets.UTF_8)); -// // 解码转String,注意调整自己的编码格式GBK、UTF-8 -// socketChannel.pipeline().addLast(new StringEncoder(StandardCharsets.UTF_8)); - // 超过10秒钟没有数据读取自动断开连接 - socketChannel.pipeline().addLast(new ReadTimeoutHandler(20)); - // 在管道中添加我们自己的接收数据实现方法 -// socketChannel.pipeline().addLast(new NettyClientHandler()); - socketChannel.pipeline().addLast(new NettyMeterClientHandler()); - } - }); - // 发起异步连接操作 - ChannelFuture channelFuture = bootstrap.connect(host, port).sync(); - if (channelFuture.isSuccess()) { - log.info("connect server 成功---------"); - } else { - log.info("连接失败!"); - log.info("准备重连!"); -// connect(port, host); - } - - // 等待客户端连接链路关闭future.channel().closeFuture().sync(); // 阻塞main线程 - channelFuture.channel().closeFuture().sync(); - } catch (Exception e) { - log.error(e.getMessage()); - } finally { - group.shutdownGracefully(); -// try { -// TimeUnit.SECONDS.sleep(5); -// connect(port, host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - } - } -// -// @SneakyThrows -// @Override -// public void run() { -// connect(port, host); -// } -} diff --git a/user-service/src/main/java/com/mh/user/netty/NettyMeterClientHandler.java b/user-service/src/main/java/com/mh/user/netty/NettyMeterClientHandler.java deleted file mode 100644 index 444b9e5..0000000 --- a/user-service/src/main/java/com/mh/user/netty/NettyMeterClientHandler.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.mh.user.netty; - -import com.mh.user.constants.Constant; -import com.mh.user.entity.DeviceCodeParamEntity; -import com.mh.user.entity.DeviceManageEntity; -import com.mh.user.service.DeviceCodeParamService; -import com.mh.user.service.chillers.DeviceManageService; -import com.mh.user.utils.*; -import io.netty.buffer.ByteBuf; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerAdapter; -import io.netty.channel.ChannelHandlerContext; -import io.netty.util.ReferenceCountUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.ApplicationContext; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -/** - * @author ljf - * @title : - * @description :客户端异步消息处理机制 - * @updateTime 2020-05-13 - * @throws : - */ -@Slf4j -public class NettyMeterClientHandler extends ChannelHandlerAdapter { - - - private int num = 0; - private int size = 0; - private String receiveStr = null; - private String IP = ""; - private String port = ""; - List deviceManageEntityList; - - // 调用service - ApplicationContext context = SpringBeanUtil.getApplicationContext(); - DeviceCodeParamService deviceCodeParamService = context.getBean(DeviceCodeParamService.class); - - AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); - - @Override - public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { - log.info("当前channel从EventLoop取消注册"); - super.channelUnregistered(ctx); - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { -// super.exceptionCaught(ctx, cause); - log.info("通信异常!!"); -// receiveStr = null; - Channel incoming = ctx.channel(); - if (incoming.isActive()) { - log.info("SimpleClient: " + incoming.remoteAddress() + "异常"); - receiveStr = null; - cause.printStackTrace(); - ctx.close(); -// receiveStr = null; -// try { -// TimeUnit.SECONDS.sleep(5); -// SocketAddress remoteAddress = ctx.channel().remoteAddress(); -// String port = ExchangeStringUtil.endData(remoteAddress.toString(),":"); -// String host = ExchangeStringUtil.splitData(remoteAddress.toString(),"/",":"); -// NettyClient nettyClient = new NettyClient(); -// nettyClient.connect(Integer.parseInt(port), host); // 断线重连 -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } - } - } - - - @Override - public void channelActive(ChannelHandlerContext ctx) throws Exception { -// super.channelActive(ctx); - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.WEB_FLAG) { - num = 0; - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - ctx.channel().read(); - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); - Date date = new Date(); - log.info(ctx.channel().remoteAddress() + " " + sdf1.format(date) + "链接服务端成功!"); - - // 截取IP地址 - IP = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", "/", ":"); - // 截取端口号 - port = ExchangeStringUtil.getMidString(ctx.channel().remoteAddress() + "", ":", ""); - log.info("IP: " + IP + ",端口号: " + port); - - // 生成对应的采集指令 - // 修改生成指令(冷量计和电量一起采集) update by ljf on 2021-01-27 - deviceManageEntityList = deviceCodeParamService.queryCodeParam(port); - size = deviceManageEntityList.size(); - - log.info("初始连接报文: " + receiveStr); - receiveStr = ""; - // 保持长连接,封装发送电表工具方法 update by ljf on 2021-01-26 - SendOrderUtils.sendMeterOrder(deviceManageEntityList.get(0),ctx,num,size); - // 1.创建将要写出的数据 -// String sendStr = "6830043080000068110432326536C816"; // 网络单相电表 -// String sendStr = "FEFEFEFE6880025007000068010243C3B216"; // 广仪三相电表 -// String collectionNum = deviceManageEntityList.get(0).getCollectionNum(); -// String sendStr = GetReadOrder485.createMeterOrder(IP, port, -// deviceManageEntityList.get(0).getDataCom(), collectionNum, "1"); -//// FileUtils.createFileAndWrite(sendStr, 0); -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 2.发送数据 -// ctx.channel().writeAndFlush(buffer); - } - - } - - private ByteBuf getByteBuf(ChannelHandlerContext ctx, String sendStr) { - // byte类型的数据 -// byte[] bytes = "这里是将要写往服务端的数据".getBytes(Charset.forName("utf-8")); -// String sendStr = "5803004900021914"; // 冷量计 - // 申请一个数据结构存储信息 - ByteBuf buffer = ctx.alloc().buffer(); - // 将信息放入数据结构中 - buffer.writeBytes(ExchangeStringUtil.hexStrToBinaryStr(sendStr));//对接需要16进制 - return buffer; - } - - @Override - public void channelInactive(ChannelHandlerContext ctx) throws Exception { - Thread.sleep(500); - receiveStr = null; - ctx.close(); - log.info(ctx.channel().localAddress() + "退出链接!!"); - } - - @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { - try { - ByteBuf buf = (ByteBuf) msg; - byte[] bytes = new byte[buf.readableBytes()]; - buf.readBytes(bytes);//复制内容到字节数组bytes - buf.clear(); - log.info("获取到的值: " + ExchangeStringUtil.bytesToHexString(bytes)); - if (bytes.length <= 62) { -// if (bytes.length <= 142) { -// receiveStr = receiveStr.replace("null", ""); -// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -// log.info(ctx.channel().remoteAddress() + " " + ctx.channel().localAddress() + " 接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 - receiveStr = receiveStr.replace("null", ""); - log.info("接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - ReferenceCountUtil.release(msg); - } -// super.channelRead(ctx, msg); - // ByteBuf buf = (ByteBuf)msg; -// byte[] req = new byte[buf.readableBytes()]; -// buf.readBytes(req); -// String body = new String(req, "UTF-8"); -// ByteBuf buf = (ByteBuf)msg; -// byte [] bytes = new byte[buf.readableBytes()]; -// buf.readBytes(bytes);//复制内容到字节数组bytes -// log.info("获取到的值: " + ExchangeStringUtil.bytesToHexString(bytes)); -// if (bytes.length != 0) { -//// receiveStr = receiveStr.replace("null", ""); -//// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -//// log.info(ctx.channel().remoteAddress() + " " + ctx.channel().localAddress() + " 接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); -// receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串 -// receiveStr = receiveStr.replace("null", ""); -// log.info("接受服务器数据:" + receiveStr + ",大小: " + receiveStr.length()); -// } - } - - @Override - public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { - log.info("采集电表-数据读取接收完成: " + receiveStr); -// 把receiveStr的"null"值去掉 -// a9fec2c71f9002fefefefe6839025007000068810643c3bb446c338d16c2b8 -// A9 FE C2 C7 1F 90 02 FE FE FE FE 68 39 02 50 07 00 00 68 81 06 43 C3 5B 38 6C 33 21 16 F8 12 - if ((receiveStr.length() == 62)) { -// log.info(receiveStr); - analysisReceiveOrder485.analysisMeterOrder485(receiveStr,deviceManageEntityList.get(num)); // 解析电表 - receiveStr = ""; - num = num + 1; - Thread.sleep(600); - if (num > size - 1) { - num = 0; - receiveStr = null; - // 关闭连接 - ctx.close(); -// // 保持长连接,封装发送电表工具方法 update by ljf on 2021-01-26 -// SendOrderUtils.sendMeterOrder(deviceManageEntityList.get(num),num,IP,port,ctx); - } else { - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.WEB_FLAG) { - log.info("有指令下发退出定时采集DDC参数"); - num = 0; - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - // 封装发送电表工具方法 update by ljf on 2021-01-26 - SendOrderUtils.sendMeterOrder(deviceManageEntityList.get(num),ctx,num,size); - // 1.创建将要写出的数据 - // fe fe fe fe 68 80 02 50 07 00 00 68 81 06 43 c3 8c 34 33 33 5c 16 -// String sendStr = "FEFEFE6880025007000068010243C3B216"; -// String collectionNum = deviceManageEntityList.get(num).getCollectionNum(); -// String sendStr = GetReadOrder485.createMeterOrder(IP, port, -// deviceManageEntityList.get(num).getDataCom(), collectionNum, "1"); -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 2.发送数据 -// ctx.channel().writeAndFlush(buffer); -// log.info("客户端再次往服务端发送数据" + num); - } - } - } else if ((receiveStr.length() > 62)) { - receiveStr = null; - num = num + 1; - Thread.sleep(500); - if (num > size - 1) { - num = 0; - receiveStr = null; - // 关闭连接 - ctx.close(); -// // 保持长连接,封装发送电表工具方法 update by ljf on 2021-01-26 -// SendOrderUtils.sendMeterOrder(deviceManageEntityList.get(num),num,IP,port,ctx); - } else { - // 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07 - if (Constant.WEB_FLAG) { - log.info("有指令下发退出定时采集DDC参数"); - num = 0; - // 关闭连接 - receiveStr = null; - ctx.close(); - } else { - // 封装发送电表工具方法 update by ljf on 2021-01-26 - SendOrderUtils.sendMeterOrder(deviceManageEntityList.get(num),ctx,num,size); - // 1.创建将要写出的数据 - // fe fe fe fe 68 80 02 50 07 00 00 68 81 06 43 c3 8c 34 33 33 5c 16 -// String sendStr = "FEFEFE6880025007000068010243C3B216"; -// String collectionNum = deviceManageEntityList.get(num).getCollectionNum(); -// String sendStr = GetReadOrder485.createMeterOrder(IP, port, -// deviceManageEntityList.get(num).getDataCom(), collectionNum, "1"); -// ByteBuf buffer = getByteBuf(ctx, sendStr); -// // 2.发送数据 -// ctx.channel().writeAndFlush(buffer); -// log.info("客户端再次往服务端发送数据" + num); - } - } - } - ctx.flush(); - } - -} diff --git a/user-service/src/main/java/com/mh/user/serialport/SerialPortSendReceive.java b/user-service/src/main/java/com/mh/user/serialport/SerialPortSendReceive.java index 44875d0..32a65c9 100644 --- a/user-service/src/main/java/com/mh/user/serialport/SerialPortSendReceive.java +++ b/user-service/src/main/java/com/mh/user/serialport/SerialPortSendReceive.java @@ -5,15 +5,11 @@ import com.mh.user.entity.DeviceCodeParamEntity; import com.mh.user.service.DeviceCodeParamService; import com.mh.user.utils.*; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; import org.springframework.context.ApplicationContext; -//import purejavacomm.SerialPort; import gnu.io.SerialPort; -import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Date; import java.util.List; /** @@ -24,7 +20,7 @@ import java.util.List; * @throws : */ -//@Slf4j +@Slf4j public class SerialPortSendReceive { private String receiveStr = null; @@ -33,7 +29,6 @@ public class SerialPortSendReceive { private int baudrate=9600; private String parity=null; List deviceManageEntityList; - private static final Logger log = Logger.getLogger(SerialPortSendReceive.class); // 调用service ApplicationContext context = SpringBeanUtil.getApplicationContext(); DeviceCodeParamService deviceCodeParamService = context.getBean(DeviceCodeParamService.class); diff --git a/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle.java b/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle.java index a27bc43..b57cfc4 100644 --- a/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle.java +++ b/user-service/src/main/java/com/mh/user/serialport/SerialPortSingle.java @@ -7,15 +7,11 @@ import com.mh.user.utils.AnalysisReceiveOrder485; import com.mh.user.utils.SendOrderUtils; import com.mh.user.utils.SpringBeanUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Component; -//import purejavacomm.SerialPort; import gnu.io.SerialPort; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.List; /** * @author nxr @@ -24,13 +20,12 @@ import java.util.List; * @updateTime 2022-08-10 * @throws : */ -//@Slf4j +@Slf4j public class SerialPortSingle { public SerialPort serialPort = null; private String receiveStr = null; private int baudrate=9600; - private static final Logger log = Logger.getLogger(SerialPortSingle.class); // 调用service ApplicationContext context = SpringBeanUtil.getApplicationContext(); diff --git a/user-service/src/main/java/com/mh/user/serialport/SerialPortThread.java b/user-service/src/main/java/com/mh/user/serialport/SerialPortThread.java index dfec24c..6e1310b 100644 --- a/user-service/src/main/java/com/mh/user/serialport/SerialPortThread.java +++ b/user-service/src/main/java/com/mh/user/serialport/SerialPortThread.java @@ -5,7 +5,6 @@ import com.mh.user.service.DeviceCodeParamService; import com.mh.user.utils.*; import gnu.io.SerialPort; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; import org.springframework.context.ApplicationContext; import java.util.List; @@ -17,10 +16,9 @@ import java.util.List; * @throws : */ -//@Slf4j +@Slf4j public class SerialPortThread implements Runnable{ - private static final Logger log = Logger.getLogger(SerialPortThread.class); private int num = 0; private int size = 0; public static SerialPort serialPort = null; diff --git a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java index 58c96c1..e84f313 100644 --- a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java +++ b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java @@ -11,6 +11,7 @@ import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.Update; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -33,7 +34,7 @@ public interface DeviceInstallService { int updateDevice(DeviceInstallEntity deviceInstallEntity); //按id更新水电表读数和采集日期 - void updateLastValue(Long id, double lastValue, Date lastDate); + void updateLastValue(Long id, BigDecimal lastValue, Date lastDate); /** * 设备管理模块 * 查询设备资料 diff --git a/user-service/src/main/java/com/mh/user/service/chart/impl/ChartServiceImpl.java b/user-service/src/main/java/com/mh/user/service/chart/impl/ChartServiceImpl.java index bfb72a7..c59d76c 100644 --- a/user-service/src/main/java/com/mh/user/service/chart/impl/ChartServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/chart/impl/ChartServiceImpl.java @@ -1,6 +1,6 @@ package com.mh.user.service.chart.impl; -import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson2.JSONArray; import com.mh.user.entity.chart.*; import com.mh.user.mapper.chart.ChartMapper; import com.mh.user.service.chart.ChartService; diff --git a/user-service/src/main/java/com/mh/user/service/impl/DataResultServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DataResultServiceImpl.java index 1ed8fca..a6a3b95 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DataResultServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DataResultServiceImpl.java @@ -4,19 +4,22 @@ import com.mh.user.entity.DataResultClEntity; import com.mh.user.entity.DataResultEntity; import com.mh.user.entity.DataResultChEntity; import com.mh.user.entity.DeviceInstallEntity; -import com.mh.user.mapper.DataResultMapper; -import com.mh.user.mapper.DeviceInstallMapper; +import com.mh.user.mapper.*; import com.mh.user.service.DataResultService; import com.mh.user.service.DeviceInstallService; import com.mh.user.utils.DateUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +@Slf4j @Service public class DataResultServiceImpl implements DataResultService { @@ -29,50 +32,75 @@ public class DataResultServiceImpl implements DataResultService { @Autowired DeviceInstallService deviceInstallService; + @Resource + DataResultChMapper dataResultChMapper; + + @Resource + DataResultClMapper dataResultClMapper; + + @Resource + DataResultClBakMapper dataResultClBakMapper; + + + @Resource + DataResultChillerMapper dataResultChillerMapper; + + @Resource + DataResultOneMiMapper dataResultOneMiMapper; + + @Resource + DataResultFiveMiMapper dataResultFiveMiMapper; + + @Resource + DataResultFifteenMiMapper dataResultFifteenMiMapper; + + @Resource + DataResultNowMapper dataResultNowMapper; + private final SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void saveDataResult(DataResultEntity dataResultEntity) { - try{ + try { //获取系统日期 - Date date=new Date(); - if (dataResultEntity.getCurDate()==null){ + Date date = new Date(); + if (dataResultEntity.getCurDate() == null) { dataResultEntity.setCurDate(date); } //从安装表获取设备信息 - DeviceInstallEntity deviceInstallEntity=deviceInstallMapper.selectDevice(dataResultEntity.getDeviceAddr(),dataResultEntity.getDeviceType(),dataResultEntity.getProjectID()); + DeviceInstallEntity deviceInstallEntity = deviceInstallMapper.selectDevice(dataResultEntity.getDeviceAddr(), dataResultEntity.getDeviceType(), dataResultEntity.getProjectID()); //判断是否有记录 // int r = dataResultMapper.selectDataResultCount(sdf1.format(dataResultEntity.getCurDate()), // dataResultEntity.getDeviceAddr(),dataResultEntity.getDeviceType()); // if (r==0){//插入记录 - DataResultEntity data=new DataResultEntity(); - if (dataResultEntity.getDeviceType().equals("水表") || dataResultEntity.getDeviceType().equals("电表")){ + DataResultEntity data = new DataResultEntity(); + if (dataResultEntity.getDeviceType().equals("水表") || dataResultEntity.getDeviceType().equals("电表")) { // String str=dataResultEntity.getDeviceAddr(); // data.setDeviceAddr(str.substring(str.length()-8,str.length())); //通讯地址 - data.setDeviceAddr(dataResultEntity.getDeviceAddr()); //通讯地址 - }else{ - data.setDeviceAddr(dataResultEntity.getDeviceAddr()); //通讯地址 - } - data.setDeviceType(dataResultEntity.getDeviceType()); //设备类型 - String curDate=sdf1.format(dataResultEntity.getCurDate()); - data.setCurDate(sdf1.parse(curDate));//当前日期 - data.setCurValue(dataResultEntity.getCurValue()); //当前读数 - data.setProjectID(deviceInstallEntity.getProjectID()); //楼栋编号 - data.setRatio(deviceInstallEntity.getRatio()); //倍率 - double lastValue=deviceInstallEntity.getLastValue(); //安装基表上次读数 - double calcValue=dataResultEntity.getCurValue()-lastValue; //计算用量 - data.setCalcValue(calcValue);//用量 - if (deviceInstallEntity.getLastDate()!=null){//上次抄表日期 - String lastDate=sdf1.format(deviceInstallEntity.getLastDate()); - data.setLastDate(sdf1.parse(lastDate)); - }else{ - String lastDate=sdf1.format(date); - data.setLastDate(sdf1.parse(lastDate)); - } - data.setLastValue(lastValue);//上次读数 - data.setGrade(dataResultEntity.getGrade());//级别 - dataResultMapper.saveDataResult(data); //插入新的记录 + data.setDeviceAddr(dataResultEntity.getDeviceAddr()); //通讯地址 + } else { + data.setDeviceAddr(dataResultEntity.getDeviceAddr()); //通讯地址 + } + data.setDeviceType(dataResultEntity.getDeviceType()); //设备类型 + String curDate = sdf1.format(dataResultEntity.getCurDate()); + data.setCurDate(sdf1.parse(curDate));//当前日期 + data.setCurValue(dataResultEntity.getCurValue()); //当前读数 + data.setProjectID(deviceInstallEntity.getProjectID()); //楼栋编号 + data.setRatio(deviceInstallEntity.getRatio()); //倍率 + BigDecimal lastValue = deviceInstallEntity.getLastValue(); //安装基表上次读数 + BigDecimal calcValue = dataResultEntity.getCurValue().subtract(lastValue); //计算用量 + data.setCalcValue(calcValue);//用量 + if (deviceInstallEntity.getLastDate() != null) {//上次抄表日期 + String lastDate = sdf1.format(deviceInstallEntity.getLastDate()); + data.setLastDate(sdf1.parse(lastDate)); + } else { + String lastDate = sdf1.format(date); + data.setLastDate(sdf1.parse(lastDate)); + } + data.setLastValue(lastValue);//上次读数 + data.setGrade(dataResultEntity.getGrade());//级别 + dataResultMapper.saveDataResult(data); //插入新的记录 // }else {//修改记录的curValue、calcValue // DataResultEntity data2=dataResultMapper.selectDataResult(sdf1.format(dataResultEntity.getCurDate()),dataResultEntity.getDeviceAddr(),dataResultEntity.getDeviceType()); // double lastValue=data2.getLastValue(); //安装基表上次读数 @@ -85,8 +113,8 @@ public class DataResultServiceImpl implements DataResultService { // dataResultMapper.updateDataResult(data2); //更新记录 // } //修改安装表中lastValue,lastDate的值 - deviceInstallMapper.updateLastValue(deviceInstallEntity.getId(),dataResultEntity.getCurValue(),date); - }catch (Exception e){ + deviceInstallMapper.updateLastValue(deviceInstallEntity.getId(), dataResultEntity.getCurValue(), date); + } catch (Exception e) { e.printStackTrace(); } @@ -98,193 +126,193 @@ public class DataResultServiceImpl implements DataResultService { } @Override - public List queryDataResult(String projectID, String startDate, String endDate,String deviceType, int page, int limit) { - return dataResultMapper.queryDataResult(projectID,startDate,endDate,deviceType,page,limit); + public List queryDataResult(String projectID, String startDate, String endDate, String deviceType, int page, int limit) { + return dataResultMapper.queryDataResult(projectID, startDate, endDate, deviceType, page, limit); } @Override - public int getDataResultCount(String projectID, String startDate, String endDate,String deviceType, int page, int limit) { - return dataResultMapper.getDataResultCount(projectID,startDate,endDate,deviceType,page,limit); + public int getDataResultCount(String projectID, String startDate, String endDate, String deviceType, int page, int limit) { + return dataResultMapper.getDataResultCount(projectID, startDate, endDate, deviceType, page, limit); } + //------------------------------------------------------------------------------------- //保存流量计用量 @Override public void saveDataResultCl(DataResultClEntity dataResultClEntity) throws ParseException { - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - try{ + try { //获取系统日期 - Date date=new Date(); - if (dataResultClEntity.getCurDate()==null){ + Date date = new Date(); + if (dataResultClEntity.getCurDate() == null) { dataResultClEntity.setCurDate(date); } //从安装表获取设备信息 - DeviceInstallEntity deviceInstallEntity=deviceInstallMapper.selectDevice(dataResultClEntity.getDeviceAddr(),dataResultClEntity.getDeviceType(),dataResultClEntity.getProjectID()); - Double lastValue=deviceInstallEntity.getLastValue(); - Double curValue=dataResultClEntity.getCurValue(); + DeviceInstallEntity deviceInstallEntity = deviceInstallMapper.selectDevice(dataResultClEntity.getDeviceAddr(), dataResultClEntity.getDeviceType(), dataResultClEntity.getProjectId()); + BigDecimal lastValue = deviceInstallEntity.getLastValue(); + BigDecimal curValue = dataResultClEntity.getCurValue(); dataResultClEntity.setRatio(deviceInstallEntity.getRatio()); //倍率 // if ((curValue-lastValue)<1000 && (curValue-lastValue)>=0){ - if ((curValue-lastValue)>=0){ - dataResultMapper.saveDataResultCl(dataResultClEntity); //插入新的记录 + if (curValue.compareTo(lastValue) >= 0) { + dataResultClMapper.saveDataResultCl(dataResultClEntity); //插入新的记录 //修改安装表中lastValue,lastDate的值 - deviceInstallMapper.updateLastValue(deviceInstallEntity.getId(),curValue,date); + deviceInstallMapper.updateLastValue(deviceInstallEntity.getId(), curValue, date); } - }catch (Exception e){ - e.printStackTrace(); + } catch (Exception e) { + log.error("保存流量计用量失败", e); } } //保存流量计用量 @Override public void saveDataResultCl_bak(DataResultClEntity dataResultClEntity) throws ParseException { - try{ + try { //获取系统日期 - if (dataResultClEntity.getCurDate()==null){ - Date date=new Date(); + if (dataResultClEntity.getCurDate() == null) { + Date date = new Date(); dataResultClEntity.setCurDate(date); } //从安装表获取设备信息 - DeviceInstallEntity deviceInstallEntity=deviceInstallMapper.selectDevice(dataResultClEntity.getDeviceAddr(),dataResultClEntity.getDeviceType(),dataResultClEntity.getProjectID()); + DeviceInstallEntity deviceInstallEntity = deviceInstallMapper.selectDevice(dataResultClEntity.getDeviceAddr(), dataResultClEntity.getDeviceType(), dataResultClEntity.getProjectId()); dataResultClEntity.setRatio(deviceInstallEntity.getRatio()); //倍率 String curDate = DateUtil.dateToString(dataResultClEntity.getCurDate(), "yyyy-MM-dd HH:mm:ss"); String deviceAddr = deviceInstallEntity.getDeviceAddr(); String registerAddr = dataResultClEntity.getRegisterAddr(); - String projectID = dataResultClEntity.getProjectID(); - int row=dataResultMapper.selectDataResultChBakCount(curDate,deviceAddr,registerAddr,projectID);//无记录 - if (row==0){ - dataResultMapper.saveDataResultCl_bak(dataResultClEntity); //插入新的记录 + String projectID = dataResultClEntity.getProjectId(); + int row = dataResultClBakMapper.selectDataResultChBakCount(curDate, deviceAddr, registerAddr, projectID);//无记录 + if (row == 0) { + dataResultClBakMapper.saveDataResultCl_bak(dataResultClEntity); //插入新的记录 } - }catch (Exception e){ - e.printStackTrace(); + } catch (Exception e) { + log.error("保存流量计用量异常", e); } } + @Override public void updateDataResultCl(DataResultClEntity dataResultClEntity) { - dataResultMapper.updateDataResultCl(dataResultClEntity); + dataResultClMapper.updateDataResultCl(dataResultClEntity); } //------------------------------------------------------------------------------------- @Override public void saveDataResultCh(DataResultChEntity dataResultChEntity) throws ParseException { - try{ + try { //从安装表获取设备信息 - String deviceAddr=dataResultChEntity.getDeviceAddr(); - String registerAddr=dataResultChEntity.getRegisterAddr(); - String curDate= DateUtil.dateToString(dataResultChEntity.getCurDate(),"yyyy-MM-dd HH:mm:ss"); - String projectID=dataResultChEntity.getProjectID(); - int row=dataResultMapper.selectDataResultChCount(curDate,deviceAddr,registerAddr,projectID, dataResultChEntity.getGrade());//无记录 - if (row==0){ - dataResultMapper.saveDataResultCh(dataResultChEntity); //插入新的记录 + String deviceAddr = dataResultChEntity.getDeviceAddr(); + String registerAddr = dataResultChEntity.getRegisterAddr(); + String curDate = DateUtil.dateToString(dataResultChEntity.getCurDate(), "yyyy-MM-dd HH:mm:ss"); + String projectID = dataResultChEntity.getProjectId(); + int row = dataResultChMapper.selectDataResultChCount(curDate, deviceAddr, registerAddr, projectID, dataResultChEntity.getGrade());//无记录 + if (row == 0) { + dataResultChMapper.saveDataResultCh(dataResultChEntity); //插入新的记录 } - }catch (Exception e){ - e.printStackTrace(); + } catch (Exception e) { + log.error("保存冷暖器用量异常", e); } } @Override public void updateDataResultCh(DataResultChEntity dataResultChEntity) { - dataResultMapper.saveDataResultCh(dataResultChEntity); + dataResultChMapper.saveDataResultCh(dataResultChEntity); } @Override - public List queryDataResultMi(String projectID,String startDate,String curDate,int page,int limit, int type) { - if (type==0){ - return dataResultMapper.queryDataResultOneMi(projectID,startDate,curDate,page,limit); - }else if (type==1){ - return dataResultMapper.queryDataResultFiveMi(projectID,startDate,curDate,page,limit); - }else if (type==2){ - return dataResultMapper.queryDataResultFifteenMi(projectID,startDate,curDate,page,limit); - }else { - return dataResultMapper.queryDataResultOneMi(projectID,startDate,curDate,page,limit); + public List queryDataResultMi(String projectID, String startDate, String curDate, int page, int limit, int type) { + if (type == 0) { + return dataResultOneMiMapper.queryDataResultOneMi(projectID, startDate, curDate, page, limit); + } else if (type == 1) { + return dataResultFiveMiMapper.queryDataResultFiveMi(projectID, startDate, curDate, page, limit); + } else if (type == 2) { + return dataResultFifteenMiMapper.queryDataResultFifteenMi(projectID, startDate, curDate, page, limit); + } else { + return dataResultOneMiMapper.queryDataResultOneMi(projectID, startDate, curDate, page, limit); } } @Override - public int dataResultOneMiCount(String projectID,String startDate,String curDate) { - return dataResultMapper.dataResultOneMiCount(projectID,startDate,curDate); + public int dataResultOneMiCount(String projectID, String startDate, String curDate) { + return dataResultOneMiMapper.dataResultOneMiCount(projectID, startDate, curDate); } @Override - public int dataResultFiveMiCount(String projectID,String startDate,String curDate) { - return dataResultMapper.dataResultFiveMiCount(projectID,startDate,curDate); + public int dataResultFiveMiCount(String projectID, String startDate, String curDate) { + return dataResultFiveMiMapper.dataResultFiveMiCount(projectID, startDate, curDate); } @Override - public int dataResultFifteenMiCount(String projectID,String startDate,String curDate) { - return dataResultMapper.dataResultFifteenMiCount(projectID,startDate,curDate); + public int dataResultFifteenMiCount(String projectID, String startDate, String curDate) { + return dataResultFifteenMiMapper.dataResultFifteenMiCount(projectID, startDate, curDate); } @Override - public List queryDataResultSec(String projectID,String startDate,String curDate) { - return dataResultMapper.queryDataResultCh(projectID,startDate,curDate); + public List queryDataResultSec(String projectID, String startDate, String curDate) { + return dataResultChMapper.queryDataResultCh(projectID, startDate, curDate); } @Override public void saveDataResultChiller(DataResultChEntity dataResultChEntity) { - try{ + try { - String deviceAddr=dataResultChEntity.getDeviceAddr(); - String registerAddr=dataResultChEntity.getRegisterAddr(); + String deviceAddr = dataResultChEntity.getDeviceAddr(); + String registerAddr = dataResultChEntity.getRegisterAddr(); - String str=""; - if (dataResultChEntity.getCurDate()!=null){ - str=sdf1.format(dataResultChEntity.getCurDate()); - }else{ - Date date=new Date();//获取系统日期 - str=sdf1.format(date); + String str = ""; + if (dataResultChEntity.getCurDate() != null) { + str = sdf1.format(dataResultChEntity.getCurDate()); + } else { + Date date = new Date();//获取系统日期 + str = sdf1.format(date); } - String curDate=""; - curDate=str.substring(0 ,16)+":00"; - String projectID=dataResultChEntity.getProjectID(); + String curDate = ""; + curDate = str.substring(0, 16) + ":00"; + String projectID = dataResultChEntity.getProjectId(); dataResultChEntity.setCurDate(sdf1.parse(curDate)); - int row=dataResultMapper.selectDataResultChillerCount(curDate,deviceAddr,registerAddr,projectID, dataResultChEntity.getFunCode());//无记录 - if (row==0){ - dataResultMapper.saveDataResultChiller(dataResultChEntity); //插入新的记录 - }else{ - dataResultMapper.updateDataResultChiller(dataResultChEntity); //修改 + int row = dataResultChillerMapper.selectDataResultChillerCount(curDate, deviceAddr, registerAddr, projectID, dataResultChEntity.getFunCode());//无记录 + if (row == 0) { + dataResultChillerMapper.saveDataResultChiller(dataResultChEntity); //插入新的记录 + } else { + dataResultChillerMapper.updateDataResultChiller(dataResultChEntity); //修改 } - - }catch (Exception e){ - e.printStackTrace(); + } catch (Exception e) { + log.error("保存数据失败", e); } } @Override public void updateDataResultChiller(DataResultChEntity dataResultChEntity) { - dataResultMapper.updateDataResultChiller(dataResultChEntity); + dataResultChillerMapper.updateDataResultChiller(dataResultChEntity); } @Override public void saveDataResultNow(DataResultChEntity dataResultChEntity) { - String deviceAddr=dataResultChEntity.getDeviceAddr(); - String registerAddr=dataResultChEntity.getRegisterAddr(); - String deviceType=dataResultChEntity.getDeviceType(); - String projectID=dataResultChEntity.getProjectID(); - dataResultMapper.deleteDataResultNow(deviceAddr,deviceType,registerAddr,projectID); - dataResultMapper.saveDataResultNow(dataResultChEntity); + String deviceAddr = dataResultChEntity.getDeviceAddr(); + String registerAddr = dataResultChEntity.getRegisterAddr(); + String deviceType = dataResultChEntity.getDeviceType(); + String projectID = dataResultChEntity.getProjectId(); + dataResultNowMapper.deleteDataResultNow(deviceAddr, deviceType, registerAddr, projectID); + dataResultNowMapper.saveDataResultNow(dataResultChEntity); } @Override public void deleteDataResultNow(String deviceAddr, String deviceType, String registerAddr, String projectID) { - dataResultMapper.deleteDataResultNow(deviceAddr,deviceType,registerAddr,projectID); + dataResultNowMapper.deleteDataResultNow(deviceAddr, deviceType, registerAddr, projectID); } @Override public List selectDataResultNow(String deviceAddr, String deviceType, String projectID) { - return dataResultMapper.selectDataResultNow(deviceAddr, deviceType, projectID); + return dataResultNowMapper.selectDataResultNow(deviceAddr, deviceType, projectID); } @Override - public List queryDataResultChiller(String projectID, String deviceAddr,String registerName, String startDate, String curDate, int page, int limit) { - return dataResultMapper.queryDataResultChiller(projectID,deviceAddr, registerName, startDate, curDate, page, limit); + public List queryDataResultChiller(String projectID, String deviceAddr, String registerName, String startDate, String curDate, int page, int limit) { + return dataResultChillerMapper.queryDataResultChiller(projectID, deviceAddr, registerName, startDate, curDate, page, limit); } @Override - public int dataResultChillerCount(String projectID,String deviceAddr, String registerName, String startDate, String curDate) { - return dataResultMapper.dataResultChillerCount(projectID,deviceAddr,registerName,startDate,curDate); + public int dataResultChillerCount(String projectID, String deviceAddr, String registerName, String startDate, String curDate) { + return dataResultChillerMapper.dataResultChillerCount(projectID, deviceAddr, registerName, startDate, curDate); } } diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceCodeParamServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceCodeParamServiceImpl.java index 0f6a148..738d8f5 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceCodeParamServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceCodeParamServiceImpl.java @@ -5,9 +5,11 @@ import com.mh.user.mapper.DeviceCodeParamMapper; import com.mh.user.service.DeviceCodeParamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; +@Transactional(rollbackFor = Exception.class) @Service public class DeviceCodeParamServiceImpl implements DeviceCodeParamService { diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceInfoServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceInfoServiceImpl.java index 985901b..05fb6a4 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceInfoServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.mh.user.service.impl; import com.mh.user.entity.DeviceInfoEntity; +import com.mh.user.mapper.DeviceCodeMapper; import com.mh.user.mapper.DeviceInfoMapper; import com.mh.user.model.ChillerModel; import com.mh.user.model.DeviceModel; @@ -16,6 +17,9 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { @Autowired DeviceInfoMapper deviceInfoMapper; + @Autowired + DeviceCodeMapper deviceCodeMapper; + @Override public List queryDeviceInfo(String systemID, String projectID,String deviceType) { return deviceInfoMapper.queryDeviceInfo(systemID,projectID,deviceType); @@ -23,12 +27,12 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { @Override public List selectDevices(String projectID) { - return deviceInfoMapper.selectDevices(projectID); + return deviceCodeMapper.selectDevices(projectID); } @Override public List queryChiller(String projectID, String deviceAddr) { - return deviceInfoMapper.queryChiller(projectID, deviceAddr); + return deviceCodeMapper.queryChiller(projectID, deviceAddr); } @Override diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java index a4fd39a..2e66cbb 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java @@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.SelectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -32,7 +33,7 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { } @Override - public void updateLastValue(Long id, double lastValue, Date lastDate) { + public void updateLastValue(Long id, BigDecimal lastValue, Date lastDate) { deviceInstallMapper.updateLastValue(id,lastValue,lastDate); } diff --git a/user-service/src/main/java/com/mh/user/service/impl/SysMenuServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/SysMenuServiceImpl.java index 5064014..15d5159 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/SysMenuServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/SysMenuServiceImpl.java @@ -1,6 +1,7 @@ package com.mh.user.service.impl; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import com.mh.common.page.MybatisPageHelper; @@ -58,14 +59,21 @@ public class SysMenuServiceImpl implements SysMenuService { List sysMenus = new ArrayList<>(); List menus = findByUser(systemID,userName); for (SysMenu menu : menus) { - if (menu.getParentId() == null || menu.getParentId() == 0) { + if (userName == null || "".equals(userName) || SysConstants.ADMIN.equalsIgnoreCase(userName)) { + if (menu.getParentId() == null || menu.getParentId() == 0) { + menu.setLevel(0); + if (!exists(sysMenus, menu)) { + sysMenus.add(menu); + } + } + } else { menu.setLevel(0); - if(!exists(sysMenus, menu)) { + if (!exists(sysMenus, menu)) { sysMenus.add(menu); } } } - sysMenus.sort((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum())); + sysMenus.sort(Comparator.comparing(SysMenu::getOrderNum)); findChildren(sysMenus, menus, menuType); return sysMenus; } @@ -79,23 +87,23 @@ public class SysMenuServiceImpl implements SysMenuService { } private void findChildren(List SysMenus, List menus, int menuType) { - for (SysMenu SysMenu : SysMenus) { + for (SysMenu sysMenu : SysMenus) { List children = new ArrayList<>(); for (SysMenu menu : menus) { if(menuType == 1 && menu.getMenuType() == 2) { // 如果是获取类型不需要按钮,且菜单类型是按钮的,直接过滤掉 continue ; } - if (SysMenu.getId() != null && SysMenu.getId().equals(menu.getParentId())) { - menu.setParentTitle(SysMenu.getTitle()); - menu.setLevel(SysMenu.getLevel() + 1); + if (sysMenu.getId() != null && sysMenu.getId().equals(menu.getParentId())) { + menu.setParentTitle(sysMenu.getTitle()); + menu.setLevel(sysMenu.getLevel() + 1); if(!exists(children, menu)) { children.add(menu); } } } - SysMenu.setChildren(children); - children.sort((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum())); + sysMenu.setChildren(children); + children.sort(Comparator.comparing(SysMenu::getOrderNum)); findChildren(children, menus, menuType); } } diff --git a/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java b/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java index 2ee92b7..6bd7c7e 100644 --- a/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java +++ b/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java @@ -1,7 +1,6 @@ package com.mh.user.utils; -import com.alibaba.fastjson.JSON; -import com.mh.user.UserServiceApplication; +import com.alibaba.fastjson2.JSON; import com.mh.user.config.RabbitmqConfig; import com.mh.user.constants.Constant; import com.mh.user.entity.*; @@ -10,14 +9,12 @@ import com.mh.user.service.DataResultService; import com.mh.user.service.DeviceCodeParamService; import com.mh.user.service.ProjectInfoService; import com.mh.user.service.chillers.ChillersService; -import com.mh.user.service.chillers.DataHistoryService; import com.mh.user.service.chillers.OrderMessageService; -import com.mh.user.service.impl.DataResultServiceImpl; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.boot.SpringApplication; import org.springframework.context.ApplicationContext; + +import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -31,717 +28,715 @@ import java.util.concurrent.ThreadPoolExecutor; * @updateTime 2020-04-23 * @throws : */ -//@Slf4j +@Slf4j public class AnalysisReceiveOrder485 { - private static final Logger log = Logger.getLogger(AnalysisReceiveOrder485.class); - // 调用service - ApplicationContext context = SpringBeanUtil.getApplicationContext(); - ChillersService chillersService = context.getBean(ChillersService.class); - OrderMessageService orderMessageService = context.getBean(OrderMessageService.class); - ThreadPoolExecutor threadPoolService = ThreadPoolService.getInstance(); - DataResultService dataResultService=context.getBean(DataResultService.class); - DeviceCodeParamService deviceCodeParamService=context.getBean(DeviceCodeParamService.class); - RabbitTemplate rabbitTemplate=context.getBean(RabbitTemplate.class); - 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) { - threadPoolService.execute(() -> { - // 去掉空格 - String dataStr = dataStr1.replace(" ", "").toUpperCase(); - // 检验报文 - String checkStr = dataStr.substring(0, dataStr.length() - 4); - byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); - int checkNum = CRC16.CRC16_MODBUS(strOrder); - String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); - checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); - - if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { - //创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 - Date date = new Date(); - String dateStr=""; - //保留两位小数处理 - DecimalFormat decimalFormat = new DecimalFormat("0.00"); - // 表号 - String cloudId = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2)); - // 读数 - String data=""; - data = dataStr.substring(dataStr.length() - 8, dataStr.length() - 6) - + dataStr.substring(dataStr.length() - 6, dataStr.length() - 4) - + dataStr.substring(dataStr.length() - 12, dataStr.length() - 10) - + dataStr.substring(dataStr.length() - 10, dataStr.length() - 8); - - DataResultChEntity dataResultCh=new DataResultChEntity(); - DataResultClEntity dataResultCl=new DataResultClEntity(); - String registerAddr=deviceCodeParam.getRegisterAddr(); - if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) { - dateStr= sdf1.format(date); - dateStr=dateStr.substring(0,17)+"00"; - - System.out.println("插入时间00"+dateStr); - }else if (ExchangeStringUtil.isInDate(date, "00:00:30", "00:00:59")) { - dateStr= sdf1.format(date); - dateStr=dateStr.substring(0,17)+"30"; - - System.out.println("插入时间30"+dateStr); - } - try { - if(registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35") || registerAddr.equals("36")){ - dataResultCh.setDeviceAddr(cloudId); - dataResultCh.setDeviceType(deviceCodeParam.getDeviceType()); - - dataResultCh.setCurDate(sdf1.parse(dateStr)); - data = decimalFormat.format(Math.abs(ExchangeStringUtil.hexToSingle(data)));//十六进制字符串转IEEE754浮点型 - dataResultCh.setCurValue(data); - dataResultCh.setRegisterAddr(deviceCodeParam.getRegisterAddr()); - dataResultCh.setRegisterName(deviceCodeParam.getRegisterName()); - dataResultCh.setGrade(deviceCodeParam.getGrade()); - dataResultCh.setProjectID(deviceCodeParam.getProjectID()); - dataResultCh.setGrade(deviceCodeParam.getGrade()); - String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("冷量计==>"+cloudId+",读数==>"+dataResultCh.getCurValue()+",项目名称==>"+projectName); - dataResultService.saveDataResultCh(dataResultCh); - log.info("冷量计保存数据库成功!项目名称:"+projectName); - }else if (registerAddr.equals("31") || registerAddr.equals("34")){ - dataResultCl.setDeviceAddr(cloudId); - dataResultCl.setDeviceType(deviceCodeParam.getDeviceType()); - dataResultCh.setCurDate(sdf1.parse(dateStr)); - long lData= Long.parseLong(ExchangeStringUtil.hexToDec(data)); - dataResultCl.setCurValue(lData);//字符串转整型 - dataResultCl.setRegisterAddr(deviceCodeParam.getRegisterAddr()); - dataResultCl.setRegisterName(deviceCodeParam.getRegisterName()); - dataResultCl.setGrade(deviceCodeParam.getGrade()); - dataResultCl.setProjectID(deviceCodeParam.getProjectID()); - String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("冷量计==>" + cloudId+",累计读数==>" + lData+",项目名称==>"+projectName); - if (lData<99999999){ - if (lData!=2231365){ - dataResultService.saveDataResultCl(dataResultCl); - } - } - log.info("冷量计保存数据成功!项目名称:"+projectName); - dataResultService.saveDataResultCl_bak(dataResultCl); - } - } catch (Exception e) { - e.printStackTrace(); - log.error(e); - } - }else{ - log.info("冷量计校验失败===>" + dataStr); - } - }); - } - - public String analysisCloudQueue(QueueParam queueParam) { - String rec="fail"; - String dataStr1=queueParam.getRecData(); //采集返回数据 - // 去掉空格 - String dataStr = dataStr1.replace(" ", "").toUpperCase(); - // 检验报文 - String checkStr = dataStr.substring(0, dataStr.length() - 4); - byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); - int checkNum = CRC16.CRC16_MODBUS(strOrder); - String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); - checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); - - if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { - log.info("cloud message check success ===>" + dataStr); - Date date = new Date(); - String dateStr=""; - //保留两位小数处理 - DecimalFormat decimalFormat = new DecimalFormat("0.00"); - // 表号 - String cloudId = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2)); - String projectID=queueParam.getProjectID(); - String registerAddr=queueParam.getRegisterAddr(); - String deviceType=queueParam.getDeviceType(); - DeviceCodeParamEntity deviceCodeParam=deviceCodeParamService.queryDeviceCodeParam(projectID,deviceType,cloudId,registerAddr); - // 读数 - String data=""; - data = dataStr.substring(dataStr.length() - 8, dataStr.length() - 6) - + dataStr.substring(dataStr.length() - 6, dataStr.length() - 4) - + dataStr.substring(dataStr.length() - 12, dataStr.length() - 10) - + dataStr.substring(dataStr.length() - 10, dataStr.length() - 8); - - DataResultChEntity dataResultCh=new DataResultChEntity(); - DataResultClEntity dataResultCl=new DataResultClEntity(); - try { - if(registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35")){ - dataResultCh.setDeviceAddr(cloudId); - dataResultCh.setDeviceType(deviceCodeParam.getDeviceType()); - if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) { - dateStr= sdf1.format(date); - dateStr=dateStr.substring(0,17)+"00"; - dataResultCh.setCurDate(sdf1.parse(dateStr)); - }else if (ExchangeStringUtil.isInDate(date, "00:00:30", "00:00:59")) { - dateStr= sdf1.format(date); - dateStr=dateStr.substring(0,17)+"30"; - dataResultCh.setCurDate(sdf1.parse(dateStr)); - System.out.println("插入时间30"+dateStr); - } - - data = decimalFormat.format(ExchangeStringUtil.hexToSingle(data));//十六进制字符串转IEEE754浮点型 - dataResultCh.setCurValue(data); - dataResultCh.setRegisterAddr(deviceCodeParam.getRegisterAddr()); - dataResultCh.setRegisterName(deviceCodeParam.getRegisterName()); - dataResultCh.setGrade(deviceCodeParam.getGrade()); - dataResultCh.setProjectID(deviceCodeParam.getProjectID()); - dataResultCh.setGrade(deviceCodeParam.getGrade()); - String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("cloudID==>" + cloudId+",curValue==>"+dataResultCh.getCurValue()+",projectName==>"+projectName); - dataResultService.saveDataResultCh(dataResultCh); - log.info("cloud save data success!projectName:"+projectName); - }else if (registerAddr.equals("31") || registerAddr.equals("34")){ - dataResultCl.setDeviceAddr(cloudId); - dataResultCl.setDeviceType(deviceCodeParam.getDeviceType()); - dateStr= sdf1.format(date); - dataResultCl.setCurDate(sdf1.parse(dateStr)); - Long lData=Long.valueOf(ExchangeStringUtil.hexToDec(data)); - dataResultCl.setCurValue(lData);//字符串转整型 - dataResultCl.setRegisterAddr(deviceCodeParam.getRegisterAddr()); - dataResultCl.setRegisterName(deviceCodeParam.getRegisterName()); - dataResultCl.setGrade(deviceCodeParam.getGrade()); - dataResultCl.setProjectID(deviceCodeParam.getProjectID()); - String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("cloudID==>" + cloudId+",curValue34==>"+lData+",projectName==>"+projectName); - if (lData<99999999){ - if (lData!=2231365){ - dataResultService.saveDataResultCl(dataResultCl); - } - } - log.info("cloud save data success!projectName:"+projectName); - dataResultService.saveDataResultCl_bak(dataResultCl); - } - rec="success"; - } catch (Exception e) { - e.printStackTrace(); - log.error(e); - } - } + // 调用service + ApplicationContext context = SpringBeanUtil.getApplicationContext(); + ChillersService chillersService = context.getBean(ChillersService.class); + OrderMessageService orderMessageService = context.getBean(OrderMessageService.class); + ThreadPoolExecutor threadPoolService = ThreadPoolService.getInstance(); + DataResultService dataResultService = context.getBean(DataResultService.class); + DeviceCodeParamService deviceCodeParamService = context.getBean(DeviceCodeParamService.class); + RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class); + 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) { + threadPoolService.execute(() -> { + // 去掉空格 + String dataStr = dataStr1.replace(" ", "").toUpperCase(); + // 检验报文 + String checkStr = dataStr.substring(0, dataStr.length() - 4); + byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); + int checkNum = CRC16.CRC16_MODBUS(strOrder); + String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); + checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); + + if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { + //创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 + Date date = new Date(); + String dateStr = ""; + //保留两位小数处理 + DecimalFormat decimalFormat = new DecimalFormat("0.00"); + // 表号 + String cloudId = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2)); + // 读数 + String data = ""; + data = dataStr.substring(dataStr.length() - 8, dataStr.length() - 6) + + dataStr.substring(dataStr.length() - 6, dataStr.length() - 4) + + dataStr.substring(dataStr.length() - 12, dataStr.length() - 10) + + dataStr.substring(dataStr.length() - 10, dataStr.length() - 8); + + DataResultChEntity dataResultCh = new DataResultChEntity(); + DataResultClEntity dataResultCl = new DataResultClEntity(); + String registerAddr = deviceCodeParam.getRegisterAddr(); + if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) { + dateStr = sdf1.format(date); + dateStr = dateStr.substring(0, 17) + "00"; + + System.out.println("插入时间00" + dateStr); + } else if (ExchangeStringUtil.isInDate(date, "00:00:30", "00:00:59")) { + dateStr = sdf1.format(date); + dateStr = dateStr.substring(0, 17) + "30"; + + System.out.println("插入时间30" + dateStr); + } + try { + if (registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35") || registerAddr.equals("36")) { + dataResultCh.setDeviceAddr(cloudId); + dataResultCh.setDeviceType(deviceCodeParam.getDeviceType()); + + dataResultCh.setCurDate(sdf1.parse(dateStr)); + data = decimalFormat.format(Math.abs(ExchangeStringUtil.hexToSingle(data)));//十六进制字符串转IEEE754浮点型 + dataResultCh.setCurValue(data); + dataResultCh.setRegisterAddr(deviceCodeParam.getRegisterAddr()); + dataResultCh.setRegisterName(deviceCodeParam.getRegisterName()); + dataResultCh.setGrade(deviceCodeParam.getGrade()); + dataResultCh.setProjectId(deviceCodeParam.getProjectID()); + dataResultCh.setGrade(deviceCodeParam.getGrade()); + String projectName = projectInfoService.selectName(deviceCodeParam.getProjectID()); + log.info("冷量计==>" + cloudId + ",读数==>" + dataResultCh.getCurValue() + ",项目名称==>" + projectName); + dataResultService.saveDataResultCh(dataResultCh); + log.info("冷量计保存数据库成功!项目名称:" + projectName); + } else if (registerAddr.equals("31") || registerAddr.equals("34")) { + dataResultCl.setDeviceAddr(cloudId); + dataResultCl.setDeviceType(deviceCodeParam.getDeviceType()); + dataResultCh.setCurDate(sdf1.parse(dateStr)); + long lData = Long.parseLong(ExchangeStringUtil.hexToDec(data)); + dataResultCl.setCurValue(new BigDecimal(lData));//字符串转整型 + dataResultCl.setRegisterAddr(deviceCodeParam.getRegisterAddr()); + dataResultCl.setRegisterName(deviceCodeParam.getRegisterName()); + dataResultCl.setGrade(deviceCodeParam.getGrade()); + dataResultCl.setProjectId(deviceCodeParam.getProjectID()); + String projectName = projectInfoService.selectName(deviceCodeParam.getProjectID()); + log.info("冷量计==>" + cloudId + ",累计读数==>" + lData + ",项目名称==>" + projectName); + if (lData < 99999999) { + if (lData != 2231365) { + dataResultService.saveDataResultCl(dataResultCl); + } + } + log.info("冷量计保存数据成功!项目名称:" + projectName); + dataResultService.saveDataResultCl_bak(dataResultCl); + } + } catch (Exception e) { + log.error("保存冷量计数据失败!", e); + } + } else { + log.info("冷量计校验失败===>" + dataStr); + } + }); + } + + public String analysisCloudQueue(QueueParam queueParam) { + String rec = "fail"; + String dataStr1 = queueParam.getRecData(); //采集返回数据 + // 去掉空格 + String dataStr = dataStr1.replace(" ", "").toUpperCase(); + // 检验报文 + String checkStr = dataStr.substring(0, dataStr.length() - 4); + byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); + int checkNum = CRC16.CRC16_MODBUS(strOrder); + String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); + checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); + + if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { + log.info("cloud message check success ===>" + dataStr); + Date date = new Date(); + String dateStr = ""; + //保留两位小数处理 + DecimalFormat decimalFormat = new DecimalFormat("0.00"); + // 表号 + String cloudId = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2)); + String projectID = queueParam.getProjectID(); + String registerAddr = queueParam.getRegisterAddr(); + String deviceType = queueParam.getDeviceType(); + DeviceCodeParamEntity deviceCodeParam = deviceCodeParamService.queryDeviceCodeParam(projectID, deviceType, cloudId, registerAddr); + // 读数 + String data = ""; + data = dataStr.substring(dataStr.length() - 8, dataStr.length() - 6) + + dataStr.substring(dataStr.length() - 6, dataStr.length() - 4) + + dataStr.substring(dataStr.length() - 12, dataStr.length() - 10) + + dataStr.substring(dataStr.length() - 10, dataStr.length() - 8); + + DataResultChEntity dataResultCh = new DataResultChEntity(); + DataResultClEntity dataResultCl = new DataResultClEntity(); + try { + if (registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35")) { + dataResultCh.setDeviceAddr(cloudId); + dataResultCh.setDeviceType(deviceCodeParam.getDeviceType()); + if (ExchangeStringUtil.isInDate(date, "00:00:00", "00:00:30")) { + dateStr = sdf1.format(date); + dateStr = dateStr.substring(0, 17) + "00"; + dataResultCh.setCurDate(sdf1.parse(dateStr)); + } else if (ExchangeStringUtil.isInDate(date, "00:00:30", "00:00:59")) { + dateStr = sdf1.format(date); + dateStr = dateStr.substring(0, 17) + "30"; + dataResultCh.setCurDate(sdf1.parse(dateStr)); + System.out.println("插入时间30" + dateStr); + } + + data = decimalFormat.format(ExchangeStringUtil.hexToSingle(data));//十六进制字符串转IEEE754浮点型 + dataResultCh.setCurValue(data); + dataResultCh.setRegisterAddr(deviceCodeParam.getRegisterAddr()); + dataResultCh.setRegisterName(deviceCodeParam.getRegisterName()); + dataResultCh.setGrade(deviceCodeParam.getGrade()); + dataResultCh.setProjectId(deviceCodeParam.getProjectID()); + dataResultCh.setGrade(deviceCodeParam.getGrade()); + String projectName = projectInfoService.selectName(deviceCodeParam.getProjectID()); + log.info("cloudID==>" + cloudId + ",curValue==>" + dataResultCh.getCurValue() + ",projectName==>" + projectName); + dataResultService.saveDataResultCh(dataResultCh); + log.info("cloud save data success!projectName:" + projectName); + } else if (registerAddr.equals("31") || registerAddr.equals("34")) { + dataResultCl.setDeviceAddr(cloudId); + dataResultCl.setDeviceType(deviceCodeParam.getDeviceType()); + dateStr = sdf1.format(date); + dataResultCl.setCurDate(sdf1.parse(dateStr)); + Long lData = Long.valueOf(ExchangeStringUtil.hexToDec(data)); + dataResultCl.setCurValue(new BigDecimal(lData));//字符串转整型 + dataResultCl.setRegisterAddr(deviceCodeParam.getRegisterAddr()); + dataResultCl.setRegisterName(deviceCodeParam.getRegisterName()); + dataResultCl.setGrade(deviceCodeParam.getGrade()); + dataResultCl.setProjectId(deviceCodeParam.getProjectID()); + String projectName = projectInfoService.selectName(deviceCodeParam.getProjectID()); + log.info("cloudID==>" + cloudId + ",curValue34==>" + lData + ",projectName==>" + projectName); + if (lData < 99999999) { + if (lData != 2231365) { + dataResultService.saveDataResultCl(dataResultCl); + } + } + log.info("cloud save data success!projectName:" + projectName); + dataResultService.saveDataResultCl_bak(dataResultCl); + } + rec = "success"; + } catch (Exception e) { + log.error("保存cloud数据失败!", e); + } + } return rec; - } - /** - * 解析电表返回的数据 - * @param dataStr - */ - public void analysisMeterOrder485(final String dataStr,final DeviceCodeParamEntity deviceCodeParam) { - threadPoolService.execute(() -> { - //时间,创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(); - String dateStr = sdf1.format(date); - - if (dataStr.length() == 36 || dataStr.length() == 40 || dataStr.length() == 44 || dataStr.length() == 50) { - //检验报文 - String checkStr = dataStr.substring(0, dataStr.length() - 4); //减去校验码 - String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码 - //返回的校验码与重新生成的校验码进行校验 - if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) { - //表号,12位 - String meterId = checkStr.substring(12, 14) + checkStr.substring(10, 12) + checkStr.substring(8, 10) - + checkStr.substring(6, 8) + checkStr.substring(4, 6) + checkStr.substring(2, 4); - meterId = String.format("%012d", Long.parseLong(meterId)); - //读数 - String data = ""; - StringBuilder stringBuilder = new StringBuilder(); - if (dataStr.length() == 36){ - for (int i = 0; i < 4; i++) { - String data1 = checkStr.substring(32 - 2 * (i + 1), 32 - 2 * i); - stringBuilder.append(data1); - } - }else { - for (int i = 0; i < 4; i++) { - String data1 = checkStr.substring(36 - 2 * (i + 1), 36 - 2 * i); - stringBuilder.append(data1); - } - } - data = stringBuilder.toString(); - data = ExchangeStringUtil.cutThree(data); - // 0 代表前面补充0,4 代表长度为4,d 代表参数为正数型 - if (data.length()==6){ - data = String.format("%06d", Long.parseLong(data)); - data = data.substring(0, 2) + "." + data.substring(2, 6); - }else if (data.length()==8){ - data = String.format("%08d", Long.parseLong(data)); - data = data.substring(0, 6) + "." + data.substring(6, 8); - } - - try { - DataResultEntity dataResultEntity = new DataResultEntity(); - dataResultEntity.setDeviceAddr(meterId);//通讯编号 - dataResultEntity.setDeviceType("电表");//类型 - dataResultEntity.setProjectID(deviceCodeParam.getProjectID());//所属项目 - dataResultEntity.setCurValue(Double.parseDouble(data)); //当前读数 - dataResultEntity.setCurDate(sdf1.parse(dateStr)); //当前日期 - dataResultEntity.setGrade(deviceCodeParam.getGrade()); - dataResultService.saveDataResult(dataResultEntity); - String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("电表==>" + meterId+",读数==>" + data+",项目名称==>"+projectName); - log.info("电表保存数据成功!项目名称:"+projectName); - } catch (Exception e) { - e.printStackTrace(); - log.error(e); - } - }else { - log.info("电表校验失败===>"+ dataStr); - } - } - }); - } - - public String analysisMeterQueue(QueueParam queueParam) { - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + } + + /** + * 解析电表返回的数据 + * + * @param dataStr + */ + public void analysisMeterOrder485(final String dataStr, final DeviceCodeParamEntity deviceCodeParam) { + threadPoolService.execute(() -> { + //时间,创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = new Date(); + String dateStr = sdf1.format(date); + + if (dataStr.length() == 36 || dataStr.length() == 40 || dataStr.length() == 44 || dataStr.length() == 50) { + //检验报文 + String checkStr = dataStr.substring(0, dataStr.length() - 4); //减去校验码 + String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码 + //返回的校验码与重新生成的校验码进行校验 + if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) { + //表号,12位 + String meterId = checkStr.substring(12, 14) + checkStr.substring(10, 12) + checkStr.substring(8, 10) + + checkStr.substring(6, 8) + checkStr.substring(4, 6) + checkStr.substring(2, 4); + meterId = String.format("%012d", Long.parseLong(meterId)); + //读数 + String data = ""; + StringBuilder stringBuilder = new StringBuilder(); + if (dataStr.length() == 36) { + for (int i = 0; i < 4; i++) { + String data1 = checkStr.substring(32 - 2 * (i + 1), 32 - 2 * i); + stringBuilder.append(data1); + } + } else { + for (int i = 0; i < 4; i++) { + String data1 = checkStr.substring(36 - 2 * (i + 1), 36 - 2 * i); + stringBuilder.append(data1); + } + } + data = stringBuilder.toString(); + data = ExchangeStringUtil.cutThree(data); + // 0 代表前面补充0,4 代表长度为4,d 代表参数为正数型 + if (data.length() == 6) { + data = String.format("%06d", Long.parseLong(data)); + data = data.substring(0, 2) + "." + data.substring(2, 6); + } else if (data.length() == 8) { + data = String.format("%08d", Long.parseLong(data)); + data = data.substring(0, 6) + "." + data.substring(6, 8); + } + + try { + DataResultEntity dataResultEntity = new DataResultEntity(); + dataResultEntity.setDeviceAddr(meterId);//通讯编号 + dataResultEntity.setDeviceType("电表");//类型 + dataResultEntity.setProjectID(deviceCodeParam.getProjectID());//所属项目 + dataResultEntity.setCurValue(new BigDecimal(data)); //当前读数 + dataResultEntity.setCurDate(sdf1.parse(dateStr)); //当前日期 + dataResultEntity.setGrade(deviceCodeParam.getGrade()); + dataResultService.saveDataResult(dataResultEntity); + String projectName = projectInfoService.selectName(deviceCodeParam.getProjectID()); + log.info("电表==>" + meterId + ",读数==>" + data + ",项目名称==>" + projectName); + log.info("电表保存数据成功!项目名称:" + projectName); + } catch (Exception e) { + log.error("保存电表数据失败!", e); + } + } else { + log.info("电表校验失败===>" + dataStr); + } + } + }); + } + + public String analysisMeterQueue(QueueParam queueParam) { + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // Date date = new Date(); // String dateStr = sdf1.format(date); - String dateStr=queueParam.getCopyTime(); + String dateStr = queueParam.getCopyTime(); // log.info("dateTime:" + dateStr); - String rec="fail"; - String dataStr=queueParam.getRecData(); - if (dataStr.length() == 32 || dataStr.length() == 36 || dataStr.length() == 40 || dataStr.length() == 44 || dataStr.length() == 50) { - //检验报文 - String checkStr = dataStr.substring(0, dataStr.length() - 4); //减去校验码 - String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码 - //返回的校验码与重新生成的校验码进行校验 - if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) { - log.info("meter message check success ===>" + dataStr); - //表号,12位 - String meterId = checkStr.substring(12, 14) + checkStr.substring(10, 12) + checkStr.substring(8, 10) - + checkStr.substring(6, 8) + checkStr.substring(4, 6) + checkStr.substring(2, 4); - meterId = String.format("%012d", Long.parseLong(meterId)); - String projectID=queueParam.getProjectID(); - String registerAddr=queueParam.getRegisterAddr(); - String deviceType=queueParam.getDeviceType(); - DeviceCodeParamEntity deviceCodeParam=deviceCodeParamService.queryDeviceCodeParam(projectID,deviceType,meterId,registerAddr); - //读数 - String data = ""; - StringBuilder stringBuilder = new StringBuilder(); - if (dataStr.length() == 36){ - for (int i = 0; i < 4; i++) { - String data1 = checkStr.substring(32 - 2 * (i + 1), 32 - 2 * i); - stringBuilder.append(data1); - } - }else if (dataStr.length() == 34){ - for (int i = 0; i < 3; i++) { - String data1 = checkStr.substring(30 - 2 * (i + 1), 30 - 2 * i); - stringBuilder.append(data1); - } - }else { - for (int i = 0; i < 4; i++) { - String data1 = checkStr.substring(36 - 2 * (i + 1), 36 - 2 * i); - stringBuilder.append(data1); - } - } - data = stringBuilder.toString(); - data = ExchangeStringUtil.cutThree(data); - // 0 代表前面补充0,4 代表长度为4,d 代表参数为正数型 - if (data.length()==6){ - data = String.format("%06d", Long.parseLong(data)); - data = data.substring(0, 2) + "." + data.substring(2, 6); - }else if (data.length()==8){ - data = String.format("%08d", Long.parseLong(data)); - data = data.substring(0, 6) + "." + data.substring(6, 8); - } - - try { - DataResultEntity dataResultEntity = new DataResultEntity(); - dataResultEntity.setDeviceAddr(meterId);//通讯编号 - dataResultEntity.setDeviceType("电表");//类型 - dataResultEntity.setProjectID(deviceCodeParam.getProjectID());//所属项目 - dataResultEntity.setCurValue(Double.parseDouble(data)); //当前读数 - dataResultEntity.setCurDate(sdf1.parse(dateStr)); //当前日期 - dataResultEntity.setGrade(deviceCodeParam.getGrade()); - dataResultService.saveDataResult(dataResultEntity); - String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("meterID==>" + meterId+",meter curValue==>" + data+",projectName==>"+projectName); - log.info("meter save data success!projectName:"+projectName); - } catch (Exception e) { - e.printStackTrace(); - log.error(e); - } - rec="success"; - }else { - log.info("meter message check fail ===>"+ dataStr); - } - } - return rec; - } - - // 水表 - public void analysisWtMeterOrder485(final String dataStr,final String registerAddr,final String brand,String projectID) { - threadPoolService.execute(() -> { - //时间,创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(); - String dateStr = sdf1.format(date); - log.info("time==>" + dateStr); - - // 读数 - String data = ""; - String meterId=""; - if (dataStr.length() == 44 || dataStr.length() == 70) { - // 检验报文 - String checkStr = dataStr.substring(0, dataStr.length() - 4);//减去校验码 - String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码 - if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) { - log.info("wtMeter message check success ===>" + dataStr); - // 表号 - meterId =checkStr.substring(16, 18)+checkStr.substring(14, 16)+ checkStr.substring(12, 14) + checkStr.substring(10, 12) - + checkStr.substring(8, 10)+ checkStr.substring(6, 8) + checkStr.substring(4, 6); - meterId = String.format("%014d", Long.parseLong(meterId)); - log.info("meterID==>" + meterId); - StringBuilder stringBuilder = new StringBuilder(); - for (int i = 0; i < 4; i++) { - //String data1 = checkStr.substring(checkStr.length() - 2 * (i + 1), checkStr.length() - 2 * i); - String data1 = checkStr.substring(36 - 2 * (i + 1), 36 - 2 * i); - stringBuilder.append(data1); - } - data = stringBuilder.toString(); - // 0 代表前面补充0,4 代表长度为4,d 代表参数为正数型 - data = String.format("%08d", Long.parseLong(data)); - data = data.substring(0, 6) + "." + data.substring(6, 8); - }else{ - log.info("wtMeter message check fail ===>" + dataStr); - } - } else if(dataStr.length() == 18){ //脉冲水表 - //检验报文 - String checkStr = dataStr.substring(0, dataStr.length() - 4); - - byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); - int checkNum = CRC16.CRC16_MODBUS(strOrder); - String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); - checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); - String sValue=null; - if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { - log.info("wtMeter message check success ===>" + dataStr); - meterId = ExchangeStringUtil.hexToDec(checkStr.substring(0, 2)); - log.info("meterID==>" + meterId); - if (checkStr.substring(2, 4).equalsIgnoreCase("03")) { - data=String.valueOf(Integer.parseInt(ExchangeStringUtil.hexToDec(checkStr.substring(6, 14)))/10); //读数 - } - }else { - log.info("wtMeter message check fail ===>" + dataStr); - } - } - - log.info("wtMeter curValue==>" + data); - try { - DataResultEntity dataResultEntity = new DataResultEntity(); + String rec = "fail"; + String dataStr = queueParam.getRecData(); + if (dataStr.length() == 32 || dataStr.length() == 36 || dataStr.length() == 40 || dataStr.length() == 44 || dataStr.length() == 50) { + //检验报文 + String checkStr = dataStr.substring(0, dataStr.length() - 4); //减去校验码 + String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码 + //返回的校验码与重新生成的校验码进行校验 + if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) { + log.info("meter message check success ===>" + dataStr); + //表号,12位 + String meterId = checkStr.substring(12, 14) + checkStr.substring(10, 12) + checkStr.substring(8, 10) + + checkStr.substring(6, 8) + checkStr.substring(4, 6) + checkStr.substring(2, 4); + meterId = String.format("%012d", Long.parseLong(meterId)); + String projectID = queueParam.getProjectID(); + String registerAddr = queueParam.getRegisterAddr(); + String deviceType = queueParam.getDeviceType(); + DeviceCodeParamEntity deviceCodeParam = deviceCodeParamService.queryDeviceCodeParam(projectID, deviceType, meterId, registerAddr); + //读数 + String data = ""; + StringBuilder stringBuilder = new StringBuilder(); + if (dataStr.length() == 36) { + for (int i = 0; i < 4; i++) { + String data1 = checkStr.substring(32 - 2 * (i + 1), 32 - 2 * i); + stringBuilder.append(data1); + } + } else if (dataStr.length() == 34) { + for (int i = 0; i < 3; i++) { + String data1 = checkStr.substring(30 - 2 * (i + 1), 30 - 2 * i); + stringBuilder.append(data1); + } + } else { + for (int i = 0; i < 4; i++) { + String data1 = checkStr.substring(36 - 2 * (i + 1), 36 - 2 * i); + stringBuilder.append(data1); + } + } + data = stringBuilder.toString(); + data = ExchangeStringUtil.cutThree(data); + // 0 代表前面补充0,4 代表长度为4,d 代表参数为正数型 + if (data.length() == 6) { + data = String.format("%06d", Long.parseLong(data)); + data = data.substring(0, 2) + "." + data.substring(2, 6); + } else if (data.length() == 8) { + data = String.format("%08d", Long.parseLong(data)); + data = data.substring(0, 6) + "." + data.substring(6, 8); + } + + try { + DataResultEntity dataResultEntity = new DataResultEntity(); + dataResultEntity.setDeviceAddr(meterId);//通讯编号 + dataResultEntity.setDeviceType("电表");//类型 + dataResultEntity.setProjectID(deviceCodeParam.getProjectID());//所属项目 + dataResultEntity.setCurValue(new BigDecimal(data)); //当前读数 + dataResultEntity.setCurDate(sdf1.parse(dateStr)); //当前日期 + dataResultEntity.setGrade(deviceCodeParam.getGrade()); + dataResultService.saveDataResult(dataResultEntity); + String projectName = projectInfoService.selectName(deviceCodeParam.getProjectID()); + log.info("meterID==>" + meterId + ",meter curValue==>" + data + ",projectName==>" + projectName); + log.info("meter save data success!projectName:" + projectName); + } catch (Exception e) { + log.error("保存电表数据失败!", e); + } + rec = "success"; + } else { + log.info("meter message check fail ===>" + dataStr); + } + } + return rec; + } + + // 水表 + public void analysisWtMeterOrder485(final String dataStr, final String registerAddr, final String brand, String projectID) { + threadPoolService.execute(() -> { + //时间,创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = new Date(); + String dateStr = sdf1.format(date); + log.info("time==>" + dateStr); + + // 读数 + String data = ""; + String meterId = ""; + if (dataStr.length() == 44 || dataStr.length() == 70) { + // 检验报文 + String checkStr = dataStr.substring(0, dataStr.length() - 4);//减去校验码 + String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码 + if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) { + log.info("wtMeter message check success ===>" + dataStr); + // 表号 + meterId = checkStr.substring(16, 18) + checkStr.substring(14, 16) + checkStr.substring(12, 14) + checkStr.substring(10, 12) + + checkStr.substring(8, 10) + checkStr.substring(6, 8) + checkStr.substring(4, 6); + meterId = String.format("%014d", Long.parseLong(meterId)); + log.info("meterID==>" + meterId); + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < 4; i++) { + //String data1 = checkStr.substring(checkStr.length() - 2 * (i + 1), checkStr.length() - 2 * i); + String data1 = checkStr.substring(36 - 2 * (i + 1), 36 - 2 * i); + stringBuilder.append(data1); + } + data = stringBuilder.toString(); + // 0 代表前面补充0,4 代表长度为4,d 代表参数为正数型 + data = String.format("%08d", Long.parseLong(data)); + data = data.substring(0, 6) + "." + data.substring(6, 8); + } else { + log.info("wtMeter message check fail ===>" + dataStr); + } + } else if (dataStr.length() == 18) { //脉冲水表 + //检验报文 + String checkStr = dataStr.substring(0, dataStr.length() - 4); + + byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); + int checkNum = CRC16.CRC16_MODBUS(strOrder); + String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); + checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); + String sValue = null; + if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { + log.info("wtMeter message check success ===>" + dataStr); + meterId = ExchangeStringUtil.hexToDec(checkStr.substring(0, 2)); + log.info("meterID==>" + meterId); + if (checkStr.substring(2, 4).equalsIgnoreCase("03")) { + data = String.valueOf(Integer.parseInt(ExchangeStringUtil.hexToDec(checkStr.substring(6, 14))) / 10); //读数 + } + } else { + log.info("wtMeter message check fail ===>" + dataStr); + } + } + + log.info("wtMeter curValue==>" + data); + try { + DataResultEntity dataResultEntity = new DataResultEntity(); // if (meterId.length()>8){ // dataResultEntity.setDeviceAddr(meterId.substring(meterId.length()-8,meterId.length()));//通讯编号 // }else{ - dataResultEntity.setDeviceAddr(meterId);//通讯编号 + dataResultEntity.setDeviceAddr(meterId);//通讯编号 // } - dataResultEntity.setDeviceType("水表"); - dataResultEntity.setCurValue(Double.parseDouble(data)); //当前读数 - dataResultEntity.setCurDate(sdf1.parse(dateStr)); //当前日期 - dataResultEntity.setProjectID(projectID); - dataResultService.saveDataResult(dataResultEntity); - log.info("wtMeter save data success!projectID:"+projectID); - } catch (Exception e) { - e.printStackTrace(); - log.error(e); - } - }); - } - /** - * 解析冷水机组返回的数据 - */ - public void analysisChillerOrder485(final String dataStr,final DeviceCodeParamEntity deviceCodeParam) { - if (!Constant.CONTROL_WEB_FLAG) { + dataResultEntity.setDeviceType("水表"); + dataResultEntity.setCurValue(new BigDecimal(data)); //当前读数 + dataResultEntity.setCurDate(sdf1.parse(dateStr)); //当前日期 + dataResultEntity.setProjectID(projectID); + dataResultService.saveDataResult(dataResultEntity); + log.info("wtMeter save data success!projectID:" + projectID); + } catch (Exception e) { + log.error("保存水表数据失败!", e); + } + }); + } + + /** + * 解析冷水机组返回的数据 + */ + public void analysisChillerOrder485(final String dataStr, final DeviceCodeParamEntity deviceCodeParam) { + if (!Constant.CONTROL_WEB_FLAG) { // threadPoolService.execute(() -> { - String checkStr = dataStr.substring(0, dataStr.length() - 4); // 检验报文 - byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); - int checkNum = CRC16.CRC16_MODBUS(strOrder); - String checkWord = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(String.valueOf(checkNum)), 4); - checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); - - if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { - Date date = new Date(); - String dateStr = sdf1.format(date); - // 冷水机组的地址 - String chillerAddr = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2)); - DataResultChEntity dataResultCh=new DataResultChEntity(); - String data = ""; - if (dataStr.substring(2, 4).equalsIgnoreCase("01")) { // 读取状态 - if (dataStr.length() == 12) { - // 状态 - data = ExchangeStringUtil.hexToDec(dataStr.substring(6, 8)); - try{ - // 赋值给dataResultCh - initialDataResultCh(deviceCodeParam, dataResultCh, chillerAddr, dateStr, data); - }catch (Exception e){ - e.printStackTrace(); - log.error("冷水机报错:{}", e); - } - } - } else if (dataStr.substring(2, 4).equalsIgnoreCase("03") || dataStr.substring(2, 4).equalsIgnoreCase("04")) { - if (dataStr.length() == 14) { - if (deviceCodeParam.getDigit() == 1) { - // 数据 - data = df.format(Integer.parseInt(ExchangeStringUtil.hexToDec(dataStr.substring(6, 10))) * 0.1); - } else if (deviceCodeParam.getDigit() == 2) { - // 数据 - 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); - } + String checkStr = dataStr.substring(0, dataStr.length() - 4); // 检验报文 + byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); + int checkNum = CRC16.CRC16_MODBUS(strOrder); + String checkWord = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(String.valueOf(checkNum)), 4); + checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); + + if (checkWord.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4))) { + Date date = new Date(); + String dateStr = sdf1.format(date); + // 冷水机组的地址 + String chillerAddr = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2)); + DataResultChEntity dataResultCh = new DataResultChEntity(); + String data = ""; + if (dataStr.substring(2, 4).equalsIgnoreCase("01")) { // 读取状态 + if (dataStr.length() == 12) { + // 状态 + data = ExchangeStringUtil.hexToDec(dataStr.substring(6, 8)); + try { + // 赋值给dataResultCh + initialDataResultCh(deviceCodeParam, dataResultCh, chillerAddr, dateStr, data); + } catch (Exception e) { + e.printStackTrace(); + log.error("冷水机报错:{}", e); + } + } + } else if (dataStr.substring(2, 4).equalsIgnoreCase("03") || dataStr.substring(2, 4).equalsIgnoreCase("04")) { + if (dataStr.length() == 14) { + if (deviceCodeParam.getDigit() == 1) { + // 数据 + data = df.format(Integer.parseInt(ExchangeStringUtil.hexToDec(dataStr.substring(6, 10))) * 0.1); + } else if (deviceCodeParam.getDigit() == 2) { + // 数据 + 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.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); - dataResultService.saveDataResultChiller(dataResultCh); - dataResultService.deleteDataResultNow(deviceCodeParam.getDeviceAddr(), deviceCodeParam.getDeviceType(), deviceCodeParam.getRegisterAddr(), deviceCodeParam.getProjectID()); - log.info("冷水机保存成功!项目名称:"+projectName); - } - - public void analysisChillersDDC(final String receiveData1) throws InterruptedException { - // 去掉空格 + } + } + + /** + * 格式化数据 + * + * @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.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); + dataResultService.saveDataResultChiller(dataResultCh); + dataResultService.deleteDataResultNow(deviceCodeParam.getDeviceAddr(), deviceCodeParam.getDeviceType(), deviceCodeParam.getRegisterAddr(), deviceCodeParam.getProjectID()); + log.info("冷水机保存成功!项目名称:" + projectName); + } + + public void analysisChillersDDC(final String receiveData1) throws InterruptedException { + // 去掉空格 // c0a8020a1f90ff04fb0000000100010200000300000400000500000600000700140800000901cb0a00000b00000c00000d00000e00000f0000100000110025120000130910cabc - String receiveData = receiveData1.replace(" ", ""); - receiveData = receiveData.toUpperCase(); - // 检验报文 - String checkStr = receiveData.substring(0, receiveData.length() - 4); - byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); - int checkNum = CRC16.CRC16_MODBUS(strOrder); - String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); - checkWord = ExchangeStringUtil.addZeroForNum(checkWord, 4); - checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); - - if (checkWord.equalsIgnoreCase(receiveData.substring(receiveData.length() - 4))) { - List chillersEntityList = new ArrayList<>(); - // IP地址 - String ip = receiveData.substring(0, 8); - // 16进制转IP地址 - ip = ExchangeStringUtil.hexToDec(ip.substring(0, 2)) + "." + - ExchangeStringUtil.hexToDec(ip.substring(2, 4)) + "." + - ExchangeStringUtil.hexToDec(ip.substring(4, 6)) + "." + - ExchangeStringUtil.hexToDec(ip.substring(6, 8)); - // 端口号 - String port = receiveData.substring(8, 12); - // 结束符 - String endStr = receiveData.substring(12, 14); - // DDC设备地址 - String ddcAddr = receiveData.substring(14, 16); - ddcAddr = ExchangeStringUtil.hexToDec(ddcAddr); + String receiveData = receiveData1.replace(" ", ""); + receiveData = receiveData.toUpperCase(); + // 检验报文 + String checkStr = receiveData.substring(0, receiveData.length() - 4); + byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(checkStr); + int checkNum = CRC16.CRC16_MODBUS(strOrder); + String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum)); + checkWord = ExchangeStringUtil.addZeroForNum(checkWord, 4); + checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2); + + if (checkWord.equalsIgnoreCase(receiveData.substring(receiveData.length() - 4))) { + List chillersEntityList = new ArrayList<>(); + // IP地址 + String ip = receiveData.substring(0, 8); + // 16进制转IP地址 + ip = ExchangeStringUtil.hexToDec(ip.substring(0, 2)) + "." + + ExchangeStringUtil.hexToDec(ip.substring(2, 4)) + "." + + ExchangeStringUtil.hexToDec(ip.substring(4, 6)) + "." + + ExchangeStringUtil.hexToDec(ip.substring(6, 8)); + // 端口号 + String port = receiveData.substring(8, 12); + // 结束符 + String endStr = receiveData.substring(12, 14); + // DDC设备地址 + String ddcAddr = receiveData.substring(14, 16); + ddcAddr = ExchangeStringUtil.hexToDec(ddcAddr); // log.info("DDC地址: " + ddcAddr); - // 通过DDC地址查询对应的采集参数设备 - List stringList = chillersService.queryDDCAddr(ddcAddr); - - // DDC地址反码 - String reversDDCAddr = receiveData.substring(16, 18); - // 开始解析各个寄存器地址读数 - String registerAddr = ""; - String readData = ""; - for (int i = 0; i < (receiveData.length() - 22) / 6; i++) { - // 寄存器地址+数据域(00 + 0000) - String readStr = receiveData.substring(18 + 6 * i, 18 + 6 * (i + 1)); - // 寄存器地址 - registerAddr = registerAddr + readStr.substring(0, 2); - // 数据 - readData = readData + readStr.substring(2, 6); - // 判断是否存在寄存器 - boolean flag = queryRegisterAddr(stringList, registerAddr); - //创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); - Date date = new Date(); - String dateStr = sdf1.format(date); - if (flag) { + // 通过DDC地址查询对应的采集参数设备 + List stringList = chillersService.queryDDCAddr(ddcAddr); + + // DDC地址反码 + String reversDDCAddr = receiveData.substring(16, 18); + // 开始解析各个寄存器地址读数 + String registerAddr = ""; + String readData = ""; + for (int i = 0; i < (receiveData.length() - 22) / 6; i++) { + // 寄存器地址+数据域(00 + 0000) + String readStr = receiveData.substring(18 + 6 * i, 18 + 6 * (i + 1)); + // 寄存器地址 + registerAddr = registerAddr + readStr.substring(0, 2); + // 数据 + readData = readData + readStr.substring(2, 6); + // 判断是否存在寄存器 + boolean flag = queryRegisterAddr(stringList, registerAddr); + //创建SimpleDateFormat对象,指定样式 2019-05-13 22:39:30 + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); + Date date = new Date(); + String dateStr = sdf1.format(date); + if (flag) { // long register = Long.parseLong(registerAddr, 16); - long data = Long.parseLong(readData, 16); + long data = Long.parseLong(readData, 16); // log.info("寄存器地址: " + registerAddr + ",数据: " + data); - // 新new一个实体类 - ChillersEntity chillersEntity = new ChillersEntity(); - chillersEntity.setDdcAddr(ddcAddr); - chillersEntity.setIP(ip); - chillersEntity.setLastValue(String.valueOf(data)); - chillersEntity.setLastTime(dateStr); - chillersEntity.setRegisterAddress(registerAddr); - chillersEntity.setGrade(0); - chillersEntityList.add(chillersEntity); - registerAddr = ""; - readData = ""; - } - } - - Thread.sleep(1000); - if (Constant.CONTROL_WEB_FLAG) { - // 1、读取历史流水表数据,判断最新存储的时间是否是超过5分钟 update by ljf on 2020-08-10 - String lastTime = chillersService.queryLastChillersHistory(chillersEntityList.get(chillersEntityList.size() - 1)); - try { - if ( lastTime == null || lastTime.equalsIgnoreCase("") ) { - // 2、超过5分钟则进行插入操作 批量插入历史流水表 - chillersService.batchInsertChillersHistory(chillersEntityList); - } else { - int subtract = TimeDifferenceUtil.dValue(lastTime); + // 新new一个实体类 + ChillersEntity chillersEntity = new ChillersEntity(); + chillersEntity.setDdcAddr(ddcAddr); + chillersEntity.setIP(ip); + chillersEntity.setLastValue(String.valueOf(data)); + chillersEntity.setLastTime(dateStr); + chillersEntity.setRegisterAddress(registerAddr); + chillersEntity.setGrade(0); + chillersEntityList.add(chillersEntity); + registerAddr = ""; + readData = ""; + } + } + + Thread.sleep(1000); + if (Constant.CONTROL_WEB_FLAG) { + // 1、读取历史流水表数据,判断最新存储的时间是否是超过5分钟 update by ljf on 2020-08-10 + String lastTime = chillersService.queryLastChillersHistory(chillersEntityList.get(chillersEntityList.size() - 1)); + try { + if (lastTime == null || lastTime.equalsIgnoreCase("")) { + // 2、超过5分钟则进行插入操作 批量插入历史流水表 + chillersService.batchInsertChillersHistory(chillersEntityList); + } else { + int subtract = TimeDifferenceUtil.dValue(lastTime); // int subtract = dValue(lastTime); - if (subtract >= 30) { - // 2、超过5分钟则进行插入操作 批量插入历史流水表 - chillersService.batchInsertChillersHistory(chillersEntityList); - } - } - // 3、否则仅仅更新对应的实时记录表 - // 避免出现RPC 请求中提供了过多的参数。最多应为 2100报错,循环分批次插入update by ljf on 2019-08-23 - int resultInt = 0; - int batchCount = 5;// 每批commit的个数 - int batchLastIndex = batchCount;// 每批最后一个的下标 - try { - for (int index = 0; index < chillersEntityList.size(); ) { - Thread.sleep(500); - if (batchLastIndex >= chillersEntityList.size()) { - batchLastIndex = chillersEntityList.size(); - resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); - System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); - break;// 数据插入完毕,退出循环 - } else { - resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); - System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); - index = batchLastIndex;// 设置下一批下标 - batchLastIndex = index + (batchCount - 1); - } - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } catch (ParseException e) { - e.printStackTrace(); - } - } else { - threadPoolService.execute(() -> { - // 1、读取历史流水表数据,判断最新存储的时间是否是超过5分钟 update by ljf on 2020-08-10 - String lastTime = chillersService.queryLastChillersHistory(chillersEntityList.get(chillersEntityList.size() - 1)); - try { - if ( lastTime == null || lastTime.equalsIgnoreCase("") ) { - // 2、超过5分钟则进行插入操作 批量插入历史流水表 - chillersService.batchInsertChillersHistory(chillersEntityList); - } else { - int subtract = TimeDifferenceUtil.dValue(lastTime); + if (subtract >= 30) { + // 2、超过5分钟则进行插入操作 批量插入历史流水表 + chillersService.batchInsertChillersHistory(chillersEntityList); + } + } + // 3、否则仅仅更新对应的实时记录表 + // 避免出现RPC 请求中提供了过多的参数。最多应为 2100报错,循环分批次插入update by ljf on 2019-08-23 + int resultInt = 0; + int batchCount = 5;// 每批commit的个数 + int batchLastIndex = batchCount;// 每批最后一个的下标 + try { + for (int index = 0; index < chillersEntityList.size(); ) { + Thread.sleep(500); + if (batchLastIndex >= chillersEntityList.size()) { + batchLastIndex = chillersEntityList.size(); + resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); + System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); + break;// 数据插入完毕,退出循环 + } else { + resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); + System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); + index = batchLastIndex;// 设置下一批下标 + batchLastIndex = index + (batchCount - 1); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } catch (ParseException e) { + e.printStackTrace(); + } + } else { + threadPoolService.execute(() -> { + // 1、读取历史流水表数据,判断最新存储的时间是否是超过5分钟 update by ljf on 2020-08-10 + String lastTime = chillersService.queryLastChillersHistory(chillersEntityList.get(chillersEntityList.size() - 1)); + try { + if (lastTime == null || lastTime.equalsIgnoreCase("")) { + // 2、超过5分钟则进行插入操作 批量插入历史流水表 + chillersService.batchInsertChillersHistory(chillersEntityList); + } else { + int subtract = TimeDifferenceUtil.dValue(lastTime); // int subtract = dValue(lastTime); - if (subtract >= 30) { - // 2、超过5分钟则进行插入操作 批量插入历史流水表 - chillersService.batchInsertChillersHistory(chillersEntityList); - } - } - // 3、否则仅仅更新对应的实时记录表 - // 避免出现RPC 请求中提供了过多的参数。最多应为 2100报错,循环分批次插入update by ljf on 2019-08-23 - int resultInt = 0; - int batchCount = 5;// 每批commit的个数 - int batchLastIndex = batchCount;// 每批最后一个的下标 - try { - for (int index = 0; index < chillersEntityList.size(); ) { - Thread.sleep(800); - if (batchLastIndex >= chillersEntityList.size()) { - batchLastIndex = chillersEntityList.size(); - resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); - System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); - break;// 数据插入完毕,退出循环 - } else { - resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); - System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); - index = batchLastIndex;// 设置下一批下标 - batchLastIndex = index + (batchCount - 1); - } - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } catch (ParseException e) { - e.printStackTrace(); - } - }); - } - } - } - - public static int dValue(String lastDate) throws ParseException { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date lastTime = format.parse(lastDate); - long min = lastTime.getTime(); - Calendar calendar = Calendar.getInstance(); - long min1 = calendar.getTimeInMillis(); - long subtract = min1 - min; + if (subtract >= 30) { + // 2、超过5分钟则进行插入操作 批量插入历史流水表 + chillersService.batchInsertChillersHistory(chillersEntityList); + } + } + // 3、否则仅仅更新对应的实时记录表 + // 避免出现RPC 请求中提供了过多的参数。最多应为 2100报错,循环分批次插入update by ljf on 2019-08-23 + int resultInt = 0; + int batchCount = 5;// 每批commit的个数 + int batchLastIndex = batchCount;// 每批最后一个的下标 + try { + for (int index = 0; index < chillersEntityList.size(); ) { + Thread.sleep(800); + if (batchLastIndex >= chillersEntityList.size()) { + batchLastIndex = chillersEntityList.size(); + resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); + System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); + break;// 数据插入完毕,退出循环 + } else { + resultInt = resultInt * chillersService.batchUpdateRegisterAddr(chillersEntityList.subList(index, batchLastIndex)); + System.out.println("index:" + index + " batchLastIndex:" + batchLastIndex); + index = batchLastIndex;// 设置下一批下标 + batchLastIndex = index + (batchCount - 1); + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } catch (ParseException e) { + e.printStackTrace(); + } + }); + } + } + } + + public static int dValue(String lastDate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date lastTime = format.parse(lastDate); + long min = lastTime.getTime(); + Calendar calendar = Calendar.getInstance(); + long min1 = calendar.getTimeInMillis(); + long subtract = min1 - min; // System.out.println("相减值: " + subtract/(1000*60)); - return (int) subtract / (1000 * 60); - } - - public void analysisSendOrder(String receiveData, OrderMessageEntity orderMessageEntity) { - // 解析返回来的报文 - if (receiveData.startsWith("000000000006010600")) { - // 获取寄存器地址 - String registerAddr = receiveData.substring(18, 20); - // 更新对应的状态值 - String dataStr = receiveData.substring(20, 24); - dataStr = ExchangeStringUtil.hexToDec(dataStr); - try { - // 更新数据库对应的发送状态值 - orderMessageService.updateOrderMessage(orderMessageEntity); - // 以及设备管理表对应的值 - orderMessageService.updateChillersRegisterAddress(dataStr, orderMessageEntity.getRegisterAddr()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - // 判断是否存在寄存器地址 - public Boolean queryRegisterAddr(List stringList, String registerAddr) { - boolean flag = false; - for (int i = 0; i < stringList.size(); i++) { - if (stringList.get(i).equalsIgnoreCase(registerAddr)) { - flag = true; - break; - } - } - return flag; - } - - public void sendQueue(QueueParam queueParam){ - - Map map=new HashMap(); - map.put("recData",queueParam.getRecData()); - map.put("deviceType",queueParam.getDeviceType()); - map.put("registerAddr",queueParam.getRegisterAddr()); - map.put("projectID",queueParam.getProjectID()); - map.put("copyTime",queueParam.getCopyTime()); - String jsonString = JSON.toJSONString(map); //map转json字符串 - rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_NAME,RabbitmqConfig.ROUTINGKEY_NAME,jsonString); - log.info("发送"+queueParam.getDeviceType()+"数据到交换机"+RabbitmqConfig.EXCHANGE_NAME); - } + return (int) subtract / (1000 * 60); + } + + public void analysisSendOrder(String receiveData, OrderMessageEntity orderMessageEntity) { + // 解析返回来的报文 + if (receiveData.startsWith("000000000006010600")) { + // 获取寄存器地址 + String registerAddr = receiveData.substring(18, 20); + // 更新对应的状态值 + String dataStr = receiveData.substring(20, 24); + dataStr = ExchangeStringUtil.hexToDec(dataStr); + try { + // 更新数据库对应的发送状态值 + orderMessageService.updateOrderMessage(orderMessageEntity); + // 以及设备管理表对应的值 + orderMessageService.updateChillersRegisterAddress(dataStr, orderMessageEntity.getRegisterAddr()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + // 判断是否存在寄存器地址 + public Boolean queryRegisterAddr(List stringList, String registerAddr) { + boolean flag = false; + for (int i = 0; i < stringList.size(); i++) { + if (stringList.get(i).equalsIgnoreCase(registerAddr)) { + flag = true; + break; + } + } + return flag; + } + + public void sendQueue(QueueParam queueParam) { + + Map map = new HashMap(); + map.put("recData", queueParam.getRecData()); + map.put("deviceType", queueParam.getDeviceType()); + map.put("registerAddr", queueParam.getRegisterAddr()); + map.put("projectID", queueParam.getProjectID()); + map.put("copyTime", queueParam.getCopyTime()); + String jsonString = JSON.toJSONString(map); //map转json字符串 + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_NAME, RabbitmqConfig.ROUTINGKEY_NAME, jsonString); + log.info("发送" + queueParam.getDeviceType() + "数据到交换机" + RabbitmqConfig.EXCHANGE_NAME); + } } diff --git a/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java b/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java index e5354d3..ce7dfed 100644 --- a/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java +++ b/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java @@ -1,8 +1,8 @@ package com.mh.user.utils; +import com.alibaba.fastjson2.JSONObject; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; -import net.sf.json.JSONObject; import org.apache.commons.codec.binary.Hex; import sun.misc.BASE64Encoder; @@ -1122,11 +1122,11 @@ public class ExchangeStringUtil { //截取[]转化为json格式 datas = datas.replace(datas.substring(datas.indexOf(":")+1,datas.indexOf(":")+2),""); datas = datas.replace(datas.substring(datas.length()-2,datas.length()-1),""); - JSONObject jsonData = JSONObject.fromObject(datas); + JSONObject jsonData = JSONObject.parseObject(datas); JSONObject info = jsonData.getJSONObject("HeWeather6"); - JSONObject jsonData1 = JSONObject.fromObject(info.getString("basic").toString()); - JSONObject jsonData2 = JSONObject.fromObject(info.getString("update").toString()); - JSONObject jsonData3 = JSONObject.fromObject(info.getString("now").toString()); + JSONObject jsonData1 = JSONObject.parseObject(info.getString("basic").toString()); + JSONObject jsonData2 = JSONObject.parseObject(info.getString("update").toString()); + JSONObject jsonData3 = JSONObject.parseObject(info.getString("now").toString()); map.put("location",jsonData1.getString("location").toString()); map.put("parent_city",jsonData1.getString("parent_city").toString()); map.put("admin_area",jsonData1.getString("admin_area").toString()); diff --git a/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java b/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java index 1028d20..23128d0 100644 --- a/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java +++ b/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java @@ -1,12 +1,11 @@ package com.mh.user.utils; import com.mh.user.entity.*; -import com.mh.user.serialport.SerialPortThread; import com.mh.user.service.DeviceCodeParamService; import com.mh.user.service.DeviceInstallService; import com.mh.user.service.RegisterAddrService; import com.mh.user.service.chillers.OrderMessageService; -import org.apache.log4j.Logger; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationContext; import java.text.ParseException; @@ -24,7 +23,7 @@ import static com.mh.user.utils.ExchangeStringUtil.doubleTrans1; * @updateTime 2020-04-22 * @throws : */ -//@Slf4j +@Slf4j public class GetReadOrder485 { // 调用service @@ -34,7 +33,6 @@ public class GetReadOrder485 { DeviceInstallService deviceInstallService=context.getBean(DeviceInstallService.class); DeviceCodeParamService deviceCodeParamService=context.getBean(DeviceCodeParamService.class); - private static final Logger log = Logger.getLogger(SerialPortThread.class); // 电表 public static String createMeterOrder(DeviceCodeParamEntity deviceCodeParam){ String str=null; @@ -300,127 +298,124 @@ public class GetReadOrder485 { } // 生成对设备操作指令参数 - public void createOrderParam(String ProjectID){ + public void createOrderParam(String projectId){ List deviceList1; List deviceCodeParamEntityList = new ArrayList<>(); int r=0; - if(ProjectID!=null && !ProjectID.equals("")){ - r=deviceCodeParamService.queryCount(ProjectID);//查询记录数 + if(projectId!=null && !projectId.isEmpty()){ + r=deviceCodeParamService.queryCount(projectId);//查询记录数 }else{ r=deviceCodeParamService.queryCount2();//查询记录数 } if (r==0){ - if(ProjectID!=null && !ProjectID.equals("")){ - deviceList1=deviceInstallService.selectDeviceParams(ProjectID);//查找多个采集参数的设备,多个 + if(projectId!=null && !projectId.isEmpty()){ + deviceList1=deviceInstallService.selectDeviceParams(projectId);//查找多个采集参数的设备,多个 }else{ deviceList1=deviceInstallService.selectDeviceParams2(); } - System.out.println("========================生成采集参数======================="); - if (deviceList1.size()>0){ + log.info("========================生成采集参数======================="); + if (!deviceList1.isEmpty()){ for (DeviceInstallEntity devices:deviceList1) { - if (devices.getDeviceType().equals("冷量计")){ - //流量计冷冻水 - DeviceCodeParamEntity deviceCodeParamEntity1 = new DeviceCodeParamEntity(); - deviceCodeParamEntity1.setRegisterAddr("34"); - deviceCodeParamEntity1.setFunCode("03"); - deviceCodeParamEntity1.setDeviceAddr(devices.getDeviceAddr()); - deviceCodeParamEntity1.setDeviceName(devices.getDeviceName()); - deviceCodeParamEntity1.setDeviceType(devices.getDeviceType()); - deviceCodeParamEntity1.setBaudRate(devices.getBaudRate()); - deviceCodeParamEntity1.setBrand(devices.getBrand()); - deviceCodeParamEntity1.setDataPort(devices.getDataPort()); - deviceCodeParamEntity1.setProjectID(devices.getProjectID()); - deviceCodeParamEntity1.setParity(devices.getParity()); - deviceCodeParamEntity1.setGrade(devices.getGrade()); - deviceCodeParamEntity1.setDigit(0); //保留0小数位 - deviceCodeParamEntity1.setRegisterName("累积量"); - String strData1=createCloudOrder(deviceCodeParamEntity1); - deviceCodeParamEntity1.setStrData(strData1); - deviceCodeParamEntityList.add(deviceCodeParamEntity1);//添加到列表 - //流量计冷量累积量 - DeviceCodeParamEntity deviceCodeParamEntity2 = new DeviceCodeParamEntity(); - deviceCodeParamEntity2.setRegisterAddr("35"); - deviceCodeParamEntity2.setFunCode("03"); - deviceCodeParamEntity2.setDeviceAddr(devices.getDeviceAddr()); - deviceCodeParamEntity2.setDeviceName(devices.getDeviceName()); - deviceCodeParamEntity2.setDeviceType(devices.getDeviceType()); - deviceCodeParamEntity2.setBaudRate(devices.getBaudRate()); - deviceCodeParamEntity2.setBrand(devices.getBrand()); - deviceCodeParamEntity2.setDataPort(devices.getDataPort()); - deviceCodeParamEntity2.setProjectID(devices.getProjectID()); - deviceCodeParamEntity2.setParity(devices.getParity()); - deviceCodeParamEntity2.setDigit(2); //保留小数位 - deviceCodeParamEntity2.setRegisterName("瞬时流量"); - String strData2=createCloudOrder(deviceCodeParamEntity2); - deviceCodeParamEntity2.setStrData(strData2); - deviceCodeParamEntity2.setGrade(10); - deviceCodeParamEntityList.add(deviceCodeParamEntity2); - //流量计冷量累积量 - DeviceCodeParamEntity deviceCodeParamEntity3 = new DeviceCodeParamEntity(); - deviceCodeParamEntity3.setRegisterAddr("36"); - deviceCodeParamEntity3.setFunCode("03"); - deviceCodeParamEntity3.setDeviceAddr(devices.getDeviceAddr()); - deviceCodeParamEntity3.setDeviceName(devices.getDeviceName()); - deviceCodeParamEntity3.setDeviceType(devices.getDeviceType()); - deviceCodeParamEntity3.setBaudRate(devices.getBaudRate()); - deviceCodeParamEntity3.setBrand(devices.getBrand()); - deviceCodeParamEntity3.setDataPort(devices.getDataPort()); - deviceCodeParamEntity3.setProjectID(devices.getProjectID()); - deviceCodeParamEntity3.setParity(devices.getParity()); - deviceCodeParamEntity3.setDigit(2); //保留小数位 - deviceCodeParamEntity3.setRegisterName("瞬时冷量"); - String strDat3 =createCloudOrder(deviceCodeParamEntity3); - deviceCodeParamEntity3.setStrData(strDat3); - deviceCodeParamEntity3.setGrade(11); - deviceCodeParamEntityList.add(deviceCodeParamEntity3); + switch (devices.getDeviceType()) { + case "冷量计": { + //流量计冷量累积量 + devices.setRegisterAddr("34"); + devices.setFunCode("03"); + devices.setDigit(0); + devices.setRegisterName("累积量"); + createDeviceCodeParams(devices, deviceCodeParamEntityList); - }else if (devices.getDeviceType().equals("电表")){ - DeviceCodeParamEntity deviceCodeParamEntity1 = new DeviceCodeParamEntity(); - deviceCodeParamEntity1.setRegisterAddr("9010"); - deviceCodeParamEntity1.setDeviceAddr(devices.getDeviceAddr()); - deviceCodeParamEntity1.setDeviceName(devices.getDeviceName()); - deviceCodeParamEntity1.setDeviceType(devices.getDeviceType()); - deviceCodeParamEntity1.setBaudRate(devices.getBaudRate()); - deviceCodeParamEntity1.setBrand(devices.getBrand()); - deviceCodeParamEntity1.setDataPort(devices.getDataPort()); - deviceCodeParamEntity1.setProjectID(devices.getProjectID()); - deviceCodeParamEntity1.setParity(devices.getParity()); - deviceCodeParamEntity1.setGrade(devices.getGrade()); - deviceCodeParamEntity1.setDigit(2); //保留小数位 - deviceCodeParamEntity1.setRegisterName("总电量"); - String strData1=createMeterOrder(deviceCodeParamEntity1);//生成电表指令 - deviceCodeParamEntity1.setStrData(strData1); - deviceCodeParamEntityList.add(deviceCodeParamEntity1); - }else if(devices.getDeviceType().equals("冷水机")){ - List regList=registerAddrService.selectRegisterAddr(); - if(regList.size()>0){ - for(RegisterAddrEntity reg:regList){ - DeviceCodeParamEntity deviceCodeParamEntity1 = new DeviceCodeParamEntity(); - deviceCodeParamEntity1.setRegisterAddr(reg.getRegisterAddr()); //参数寄存器地址 - String funFlag=ExchangeStringUtil.addZeroForNum(String.valueOf(reg.getFunFlag()),2); - deviceCodeParamEntity1.setFunCode(funFlag); //功能码 - deviceCodeParamEntity1.setDeviceAddr(devices.getDeviceAddr()); - deviceCodeParamEntity1.setDeviceName(devices.getDeviceName()); - deviceCodeParamEntity1.setDeviceType(devices.getDeviceType()); - deviceCodeParamEntity1.setBaudRate(devices.getBaudRate()); - deviceCodeParamEntity1.setBrand(devices.getBrand()); - deviceCodeParamEntity1.setDataPort(devices.getDataPort()); - deviceCodeParamEntity1.setProjectID(devices.getProjectID()); - deviceCodeParamEntity1.setParity(devices.getParity()); - deviceCodeParamEntity1.setGrade(devices.getGrade()); + //流量计冷量累积量 + devices.setRegisterAddr("35"); + devices.setFunCode("03"); + devices.setDigit(2); + devices.setRegisterName("瞬时流量"); + devices.setGrade(10); + createDeviceCodeParams(devices, deviceCodeParamEntityList); - deviceCodeParamEntity1.setDigit(reg.getFloatFlag()); //保留小数位 - deviceCodeParamEntity1.setRegisterName(reg.getRegName()); //寄存器名称 - String strData1=createChillersOrder(deviceCodeParamEntity1);//生成冷水机指令 - deviceCodeParamEntity1.setStrData(strData1); - deviceCodeParamEntityList.add(deviceCodeParamEntity1); - } + //流量计冷量累积量 + devices.setRegisterAddr("36"); + devices.setFunCode("03"); + devices.setDigit(2); + devices.setRegisterName("瞬时冷量"); + devices.setGrade(11); + createDeviceCodeParams(devices, deviceCodeParamEntityList); + + break; + } + case "电表": { + devices.setRegisterAddr("9010"); + devices.setDigit(2); + devices.setRegisterName("总电量"); + createDeviceCodeParams(devices, deviceCodeParamEntityList); + break; } + case "冷水机": + List regList = registerAddrService.selectRegisterAddr(); + if (!regList.isEmpty()) { + for (RegisterAddrEntity reg : regList) { + String funFlag = ExchangeStringUtil.addZeroForNum(String.valueOf(reg.getFunFlag()), 2); + //功能码 + devices.setFunCode(funFlag); + devices.setRegisterAddr(reg.getRegisterAddr()); + devices.setDigit(reg.getFloatFlag()); + devices.setRegisterName(reg.getRegName()); + createDeviceCodeParams(devices, deviceCodeParamEntityList); + } + } + break; } } deviceCodeParamService.insertDeviceCodeParamList(deviceCodeParamEntityList); } } } + + /** + * 生成指令 + * @param devices + * @param deviceCodeParamEntityList + */ + private static void createDeviceCodeParams(DeviceInstallEntity devices, List deviceCodeParamEntityList) { + + DeviceCodeParamEntity deviceCodeParamEntity1 = new DeviceCodeParamEntity(); + deviceCodeParamEntity1.setRegisterAddr(devices.getRegisterAddr()); + deviceCodeParamEntity1.setFunCode(devices.getFunCode()); + deviceCodeParamEntity1.setDeviceAddr(devices.getDeviceAddr()); + deviceCodeParamEntity1.setDeviceName(devices.getDeviceName()); + deviceCodeParamEntity1.setDeviceType(devices.getDeviceType()); + deviceCodeParamEntity1.setBaudRate(devices.getBaudRate()); + deviceCodeParamEntity1.setBrand(devices.getBrand()); + deviceCodeParamEntity1.setDataPort(devices.getDataPort()); + deviceCodeParamEntity1.setProjectID(devices.getProjectID()); + deviceCodeParamEntity1.setParity(devices.getParity()); + deviceCodeParamEntity1.setGrade(devices.getGrade()); + deviceCodeParamEntity1.setDigit(devices.getDigit()); + + deviceCodeParamEntity1.setRegisterName(devices.getRegisterName()); + String staData = ""; + switch (devices.getDeviceType()) { + case "冷量计": + //生成冷量计指令 + staData = createCloudOrder(deviceCodeParamEntity1); + deviceCodeParamEntity1.setStrData(staData); + break; + case "电表": + //生成电表指令 + staData = createMeterOrder(deviceCodeParamEntity1); + deviceCodeParamEntity1.setStrData(staData); + break; + case "冷水机": + //生成冷水机指令 + staData = createChillersOrder(deviceCodeParamEntity1); + deviceCodeParamEntity1.setStrData(staData); + break; + default: + break; + } + //添加到列表 + deviceCodeParamEntityList.add(deviceCodeParamEntity1); + + } } diff --git a/user-service/src/main/java/com/mh/user/utils/HttpUtils.java b/user-service/src/main/java/com/mh/user/utils/HttpUtils.java index 67571ea..24b0076 100644 --- a/user-service/src/main/java/com/mh/user/utils/HttpUtils.java +++ b/user-service/src/main/java/com/mh/user/utils/HttpUtils.java @@ -9,7 +9,7 @@ import com.mh.common.http.HttpResult; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONObject; /** * HTTP工具类 diff --git a/user-service/src/main/java/com/mh/user/utils/SendOrderUtils.java b/user-service/src/main/java/com/mh/user/utils/SendOrderUtils.java index c003b88..081c054 100644 --- a/user-service/src/main/java/com/mh/user/utils/SendOrderUtils.java +++ b/user-service/src/main/java/com/mh/user/utils/SendOrderUtils.java @@ -1,21 +1,13 @@ package com.mh.user.utils; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.mh.user.entity.ChillersEntity; +import com.alibaba.fastjson2.JSONObject; import com.mh.user.entity.DeviceCodeParamEntity; -import com.mh.user.entity.DeviceManageEntity; -import com.mh.user.model.OrderParamModel; import com.mh.user.serialport.SerialPortListener; -import com.mh.user.serialport.SerialPortSendReceive; import com.mh.user.serialport.SerialPortUtil; -import com.mh.user.serialport.SerialTool; -//import purejavacomm.SerialPort; import gnu.io.SerialPort; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; -import org.apache.log4j.Logger; /** * @author ljf @@ -24,10 +16,9 @@ import org.apache.log4j.Logger; * @updateTime 2021-01-26 * @throws : */ -//@Slf4j +@Slf4j public class SendOrderUtils { - private static final Logger log = Logger.getLogger(SendOrderUtils.class); /** * 发送采集冷水机组 * @param deviceCodeParam diff --git a/user-service/src/main/java/com/mh/user/utils/SimpleWeather.java b/user-service/src/main/java/com/mh/user/utils/SimpleWeather.java index 1a965c6..06b36f9 100644 --- a/user-service/src/main/java/com/mh/user/utils/SimpleWeather.java +++ b/user-service/src/main/java/com/mh/user/utils/SimpleWeather.java @@ -1,6 +1,7 @@ package com.mh.user.utils; -import net.sf.json.JSONObject; +import com.alibaba.fastjson2.JSONObject; + import java.io.*; import java.net.HttpURLConnection; import java.net.URL; @@ -31,8 +32,8 @@ public class SimpleWeather { String response = doGet(API_URL, queryParams); Map map = new HashMap(); try { - JSONObject jsonObject = JSONObject.fromObject(response); - int error_code = jsonObject.getInt("error_code"); + JSONObject jsonObject = JSONObject.parseObject(response); + int error_code = jsonObject.getIntValue("error_code"); if (error_code == 0) { System.out.println("调用接口成功"); JSONObject result = jsonObject.getJSONObject("result"); diff --git a/user-service/src/main/java/com/mh/user/utils/WeatherUtil.java b/user-service/src/main/java/com/mh/user/utils/WeatherUtil.java index ef79a69..b144cb4 100644 --- a/user-service/src/main/java/com/mh/user/utils/WeatherUtil.java +++ b/user-service/src/main/java/com/mh/user/utils/WeatherUtil.java @@ -1,5 +1,7 @@ package com.mh.user.utils; +import com.alibaba.fastjson2.JSONObject; + import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; @@ -14,7 +16,6 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import net.sf.json.JSONObject; /** * java调用中央气象局天气预报接口 @@ -44,7 +45,7 @@ public class WeatherUtil { sb.append(line); String datas = sb.toString(); System.out.println(datas); - JSONObject jsonData = JSONObject.fromObject(datas); + JSONObject jsonData = JSONObject.parseObject(datas); JSONObject info = jsonData.getJSONObject("weatherinfo"); for (int i = 1; i <= 6; i++) { // 得到未来6天的日期 @@ -108,7 +109,7 @@ public class WeatherUtil { sb.append(line); String datas = sb.toString(); System.out.println(datas); - JSONObject jsonData = JSONObject.fromObject(datas); + JSONObject jsonData = JSONObject.parseObject(datas); JSONObject info = jsonData.getJSONObject("weatherinfo"); map.put("city", info.getString("city").toString());// 城市 map.put("temp", info.getString("temp").toString());// 温度 @@ -148,7 +149,7 @@ public class WeatherUtil { sb.append(line); String datas = sb.toString(); System.out.println(datas); - JSONObject jsonData = JSONObject.fromObject(datas); + JSONObject jsonData = JSONObject.parseObject(datas); JSONObject info = jsonData.getJSONObject("weatherinfo"); map.put("city", info.getString("city").toString());// 城市 map.put("temp1", info.getString("temp1").toString());// 最高温度 diff --git a/user-service/src/main/resources/application-dev.yml b/user-service/src/main/resources/application-dev.yml index f4fdd89..dc8a9d3 100644 --- a/user-service/src/main/resources/application-dev.yml +++ b/user-service/src/main/resources/application-dev.yml @@ -4,28 +4,21 @@ 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 + #添加allowMultiQueries=true 在批量更新时才不会出错 + url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mh_jnd;allowMultiQueries=true + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + username: sa + password: mh@803 + name: hikari + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 10 + maximum-pool-size: 50 + connection-timeout: 30000 + idle-timeout: 60000 + validation-timeout: 30000 + connection-test-query: select 1 + max-lifetime: 1800000 rabbitmq: host: 127.0.0.1 @@ -97,5 +90,10 @@ logging: path: logs/${spring.application.name} ##软件最后更新日期20230116 +mybatis: + mapper-locations: classpath:com/mh/user/sqlmapper/*.xml + configuration: + map-underscore-to-camel-case: true + type-aliases-package: com.mh.user.entity diff --git a/user-service/src/main/resources/application-prod.yml b/user-service/src/main/resources/application-prod.yml index 4530483..55683a0 100644 --- a/user-service/src/main/resources/application-prod.yml +++ b/user-service/src/main/resources/application-prod.yml @@ -4,28 +4,21 @@ 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 + #添加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 + name: hikari + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 10 + maximum-pool-size: 50 + connection-timeout: 30000 + idle-timeout: 60000 + validation-timeout: 30000 + connection-test-query: select 1 + max-lifetime: 1800000 rabbitmq: host: 127.0.0.1 diff --git a/user-service/src/main/resources/application-test.yml b/user-service/src/main/resources/application-test.yml index 4530483..55683a0 100644 --- a/user-service/src/main/resources/application-test.yml +++ b/user-service/src/main/resources/application-test.yml @@ -4,28 +4,21 @@ 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 + #添加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 + name: hikari + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 10 + maximum-pool-size: 50 + connection-timeout: 30000 + idle-timeout: 60000 + validation-timeout: 30000 + connection-test-query: select 1 + max-lifetime: 1800000 rabbitmq: host: 127.0.0.1 diff --git a/user-service/src/test/java/com/mh/user/socket/NettyClientTest.java b/user-service/src/test/java/com/mh/user/socket/NettyClientTest.java index 9fb76c1..4b04f0e 100644 --- a/user-service/src/test/java/com/mh/user/socket/NettyClientTest.java +++ b/user-service/src/test/java/com/mh/user/socket/NettyClientTest.java @@ -1,8 +1,5 @@ package com.mh.user.socket; -import com.mh.user.netty.NettyChillerDDCClient; -import com.mh.user.netty.NettyClient; -import com.mh.user.netty.NettyMeterClient; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;