Browse Source

1、去掉log.info;

2、netty相关代码优化操作;
3、热水系统用量查询;
dev
3067418132@qq.com 1 day ago
parent
commit
beb4bc866e
  1. 4
      mh-common/src/main/java/com/mh/common/config/wechat/WechatSignUtil.java
  2. 38
      mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java
  3. 2
      mh-common/src/main/java/com/mh/common/utils/ModbusUtils.java
  4. 2
      mh-common/src/main/java/com/mh/common/utils/SendOrderUtils.java
  5. 12
      mh-common/src/main/java/com/mh/common/utils/http/HttpUtils.java
  6. 14
      mh-framework/src/main/java/com/mh/framework/aspectj/ControlDeviceAspect.java
  7. 2
      mh-framework/src/main/java/com/mh/framework/aspectj/RateLimiterAspect.java
  8. 2
      mh-framework/src/main/java/com/mh/framework/datasource/DynamicDataSourceContextHolder.java
  9. 23
      mh-framework/src/main/java/com/mh/framework/dealdata/impl/DataProcessServiceImpl.java
  10. 2
      mh-framework/src/main/java/com/mh/framework/manager/factory/AsyncFactory.java
  11. 4
      mh-framework/src/main/java/com/mh/framework/mqtt/handler/InboundMessageRouter.java
  12. 8
      mh-framework/src/main/java/com/mh/framework/mqtt/service/impl/EventsServiceImpl.java
  13. 4
      mh-framework/src/main/java/com/mh/framework/mqtt/service/impl/MqttMsgSenderServiceImpl.java
  14. 6
      mh-framework/src/main/java/com/mh/framework/netty/EchoServer.java
  15. 39
      mh-framework/src/main/java/com/mh/framework/netty/EchoServerHandler.java
  16. 6
      mh-framework/src/main/java/com/mh/framework/netty/session/ServerSession.java
  17. 8
      mh-framework/src/main/java/com/mh/framework/netty/session/SessionMap.java
  18. 8
      mh-framework/src/main/java/com/mh/framework/rabbitmq/consumer/ReceiveHandler.java
  19. 6
      mh-framework/src/main/java/com/mh/framework/web/service/UserDetailsServiceImpl.java
  20. 2
      mh-quartz/src/main/java/com/mh/quartz/task/CreateAlarmTask.java
  21. 2
      mh-quartz/src/main/java/com/mh/quartz/task/DealDataTask.java
  22. 2
      mh-quartz/src/main/java/com/mh/quartz/task/DealOnOrOffData.java
  23. 2
      mh-quartz/src/main/java/com/mh/quartz/task/HotWaterTask.java
  24. 2
      mh-quartz/src/main/java/com/mh/quartz/task/PushDataToWechatTask.java
  25. 2
      mh-system/src/main/java/com/mh/system/mapper/energy/HotEnergyQueryMapper.java
  26. 2
      mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java
  27. 2
      mh-system/src/main/java/com/mh/system/service/device/impl/IndoorTempMonitorServiceImpl.java
  28. 10
      mh-system/src/main/java/com/mh/system/service/impl/WechatServiceImpl.java

4
mh-common/src/main/java/com/mh/common/config/wechat/WechatSignUtil.java

@ -44,7 +44,7 @@ public class WechatSignUtil {
// 可选:将字节数组转换为Base64字符串,便于显示和传输
String base64Encoded = Base64.getEncoder().encodeToString(encodedHash);
log.info("SHA-1 (Base64 Encoded): {}", base64Encoded);
// log.info("SHA-1 (Base64 Encoded): {}", base64Encoded);
// 或者,直接以16进制形式输出
StringBuilder hexString = new StringBuilder();
@ -53,7 +53,7 @@ public class WechatSignUtil {
if(hex.length() == 1) hexString.append('0');
hexString.append(hex);
}
log.info("SHA-1 (Hexadecimal): {}", hexString);
// log.info("SHA-1 (Hexadecimal): {}", hexString);
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("SHA-1 algorithm not found", e);

38
mh-common/src/main/java/com/mh/common/utils/AnalysisReceiveOrder485.java

@ -59,16 +59,16 @@ public class AnalysisReceiveOrder485 {
try {
if (registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35") || registerAddr.equals("36")) {
data = decimalFormat.format(Math.abs(ExchangeStringUtil.hexToSingle(data)));//十六进制字符串转IEEE754浮点型
log.info("冷量计==>{},寄存器地址==>{},读数==>{}", cloudId, registerAddr, data);
// log.info("冷量计==>{},寄存器地址==>{},读数==>{}", cloudId, registerAddr, data);
} else if (registerAddr.equals("31") || registerAddr.equals("34")) {
long lData = Long.parseLong(ExchangeStringUtil.hexToDec(data));
log.info("冷量计==>{},寄存器地址==>{},累计读数==>{}", cloudId, registerAddr, lData);
// log.info("冷量计==>{},寄存器地址==>{},累计读数==>{}", cloudId, registerAddr, lData);
}
} catch (Exception e) {
log.error("保存冷量计数据失败!", e);
}
} else {
log.info("冷量计校验失败===>{}", dataStr);
// log.info("冷量计校验失败===>{}", dataStr);
}
}
@ -113,7 +113,7 @@ public class AnalysisReceiveOrder485 {
try {
if (dataType == 3) {
data = decimalFormat.format(Math.abs(ExchangeStringUtil.hexToSingle(data)));//十六进制字符串转IEEE754浮点型
log.info("水表==>{},寄存器地址==>{},读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
// log.info("水表==>{},寄存器地址==>{},读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
} else if (dataType == 2) {
data = dataStr.substring(dataStr.length() - 12, dataStr.length() - 10)
+ dataStr.substring(dataStr.length() - 10, dataStr.length() - 8)
@ -123,7 +123,7 @@ public class AnalysisReceiveOrder485 {
BigDecimal bigDecimal = new BigDecimal(data);
bigDecimal = bigDecimal.divide(new BigDecimal((int) Math.pow(10, deviceCodeParam.getDigits()))).setScale(2, RoundingMode.HALF_UP); // 除以1000并保留整数
data = bigDecimal.toString();
log.info("水表==>{},寄存器地址==>{},累计读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
// log.info("水表==>{},寄存器地址==>{},累计读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
}
// 判断data大于99999999,就返回空
if (new BigDecimal(data).intValue() > 99999999) {
@ -134,7 +134,7 @@ public class AnalysisReceiveOrder485 {
log.error("保存水表数据失败!", e);
}
} else {
log.info("水表===>{}", dataStr);
// log.info("水表===>{}", dataStr);
return "";
}
return "";
@ -165,7 +165,7 @@ public class AnalysisReceiveOrder485 {
DecimalFormat decimalFormat = new DecimalFormat("0.00");
// 表号
String cloudId = ExchangeStringUtil.hexToDec(dataStr.substring(0, 2));
// 读数
// 读数 02 04 04 00 04 4D 1F FD DD
String data = "";
data = dataStr.substring(dataStr.length() - 8, dataStr.length() - 6)
+ dataStr.substring(dataStr.length() - 6, dataStr.length() - 4)
@ -183,10 +183,20 @@ public class AnalysisReceiveOrder485 {
try {
if (dataType == 3) {
data = decimalFormat.format(Math.abs(ExchangeStringUtil.hexToSingle(data)));//十六进制字符串转IEEE754浮点型
log.info("电表==>{},寄存器地址==>{},读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
// log.info("电表==>{},寄存器地址==>{},读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
} else if (dataType == 2) {
data = ExchangeStringUtil.hexToDec(data);
log.info("电表==>{},寄存器地址==>{},累计读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
// log.info("电表==>{},寄存器地址==>{},累计读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
} else if (dataType == 4) {
data = dataStr.substring(dataStr.length() - 12, dataStr.length() - 10)
+ dataStr.substring(dataStr.length() - 10, dataStr.length() - 8)
+ dataStr.substring(dataStr.length() - 8, dataStr.length() - 6)
+ dataStr.substring(dataStr.length() - 6, dataStr.length() - 4);
data = ExchangeStringUtil.hexToDec(data);
BigDecimal bigDecimal = new BigDecimal(data);
bigDecimal = bigDecimal.divide(new BigDecimal((int) Math.pow(10, deviceCodeParam.getDigits()))).setScale(2, RoundingMode.HALF_UP); // 除以1000并保留整数
data = bigDecimal.toString();
// log.info("电表==>{},寄存器地址==>{},累计读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
}
// 判断data大于99999999,就返回空
if (new BigDecimal(data).intValue() > 99999999) {
@ -197,7 +207,7 @@ public class AnalysisReceiveOrder485 {
log.error("保存电表数据失败!", e);
}
} else {
log.info("电表===>{}", dataStr);
// log.info("电表===>{}", dataStr);
return "";
}
return "";
@ -270,13 +280,13 @@ public class AnalysisReceiveOrder485 {
)) {
data = ExchangeStringUtil.hexToDec(data);
}
log.info("热泵==>{},寄存器地址==>{},读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
// log.info("热泵==>{},寄存器地址==>{},读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
return data;
} catch (Exception e) {
log.error("保存热泵数据失败!", e);
}
} else {
log.info("热泵===>{}", dataStr);
// log.info("热泵===>{}", dataStr);
return "";
}
return "";
@ -317,7 +327,7 @@ public class AnalysisReceiveOrder485 {
BigDecimal bigDecimal = new BigDecimal(data);
bigDecimal = bigDecimal.divide(new BigDecimal((int) Math.pow(10, deviceCodeParam.getDigits()))).setScale(3, RoundingMode.HALF_UP); // 除以1000并保留整数
data = bigDecimal.toString();
log.info("液位==>{},寄存器地址==>{},实时读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
// log.info("液位==>{},寄存器地址==>{},实时读数==>{}", cloudId, deviceCodeParam.getRegisterAddr(), data);
}
// 判断data大于99999999,就返回空
if (new BigDecimal(data).intValue() > 100) {
@ -328,7 +338,7 @@ public class AnalysisReceiveOrder485 {
log.error("保存液位数据失败!", e);
}
} else {
log.info("液位===>{}", dataStr);
// log.info("液位===>{}", dataStr);
return "";
}
return "";

2
mh-common/src/main/java/com/mh/common/utils/ModbusUtils.java

@ -41,7 +41,7 @@ public class ModbusUtils {
String checkWord = ExchangeStringUtil.decToHex(String.valueOf(checkNum));
checkWord = checkWord.substring(2, 4) + checkWord.substring(0, 2);
// 发送的指令
log.info("发送指令:{}", orderStr+checkWord);
// log.info("发送指令:{}", orderStr+checkWord);
return orderStr + checkWord;
}

2
mh-common/src/main/java/com/mh/common/utils/SendOrderUtils.java

@ -35,7 +35,7 @@ public class SendOrderUtils {
ByteBuf buffer = getByteBuf(ctx, sendOrderStr);
// 发送数据
ctx.channel().writeAndFlush(buffer);
log.info("sends :" + sendOrderStr + ",num:" + num + ",records:" + size);
// log.info("sends :" + sendOrderStr + ",num:" + num + ",records:" + size);
try {
Thread.sleep(500);
} catch (InterruptedException e) {

12
mh-common/src/main/java/com/mh/common/utils/http/HttpUtils.java

@ -69,7 +69,7 @@ public class HttpUtils
try
{
String urlNameString = StringUtils.isNotBlank(param) ? url + "?" + param : url;
log.info("sendGet - {}", urlNameString);
// log.info("sendGet - {}", urlNameString);
URL realUrl = new URL(urlNameString);
URLConnection connection = realUrl.openConnection();
connection.setRequestProperty("accept", "*/*");
@ -82,7 +82,7 @@ public class HttpUtils
{
result.append(line);
}
log.info("recv - {}", result);
// log.info("recv - {}", result);
}
catch (ConnectException e)
{
@ -131,7 +131,7 @@ public class HttpUtils
StringBuilder result = new StringBuilder();
try
{
log.info("sendPost - {}", url);
// log.info("sendPost - {}", url);
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
@ -150,7 +150,7 @@ public class HttpUtils
{
result.append(line);
}
log.info("recv - {}", result);
// log.info("recv - {}", result);
}
catch (ConnectException e)
{
@ -195,7 +195,7 @@ public class HttpUtils
String urlNameString = url + "?" + param;
try
{
log.info("sendSSLPost - {}", urlNameString);
// log.info("sendSSLPost - {}", urlNameString);
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom());
URL console = new URL(urlNameString);
@ -221,7 +221,7 @@ public class HttpUtils
result.append(new String(ret.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
}
}
log.info("recv - {}", result);
// log.info("recv - {}", result);
conn.disconnect();
br.close();
}

14
mh-framework/src/main/java/com/mh/framework/aspectj/ControlDeviceAspect.java

@ -48,10 +48,10 @@ public class ControlDeviceAspect {
@Before("executionMethod()")
public void controlBefore(JoinPoint joinPoint) {
log.info("前置通知");
// log.info("前置通知");
Object[] args = joinPoint.getArgs();
for (Object arg : args) {
log.info("获取到对应的参数==>{}",arg);
// log.info("获取到对应的参数==>{}",arg);
}
}
@ -68,10 +68,10 @@ public class ControlDeviceAspect {
// Object proceed;
// 获取参数
Object[] args = joinPoint.getArgs();
log.info("注解方法标注值=={}", annotation.value());
log.info("注解方法标注=={}", annotation.isAop());
// log.info("注解方法标注值=={}", annotation.value());
// log.info("注解方法标注=={}", annotation.isAop());
for (Object arg : args) {
log.info("方法内的参数==>{}", arg);
// log.info("方法内的参数==>{}", arg);
if (Objects.isNull(arg)) {
continue;
}
@ -104,10 +104,10 @@ public class ControlDeviceAspect {
}
}
// if (!annotation.isAop()) {
// log.info("你无需处理当前注解内容");
// // log.info("你无需处理当前注解内容");
// proceed = joinPoint.proceed();
// } else {
// log.info("进入aop判断");
// // log.info("进入aop判断");
// proceed = joinPoint.proceed();
//
// }

2
mh-framework/src/main/java/com/mh/framework/aspectj/RateLimiterAspect.java

@ -61,7 +61,7 @@ public class RateLimiterAspect
{
throw new ServiceException("访问过于频繁,请稍候再试");
}
log.info("限制请求'{}',当前请求'{}',缓存key'{}'", count, number.intValue(), combineKey);
// log.info("限制请求'{}',当前请求'{}',缓存key'{}'", count, number.intValue(), combineKey);
}
catch (ServiceException e)
{

2
mh-framework/src/main/java/com/mh/framework/datasource/DynamicDataSourceContextHolder.java

@ -23,7 +23,7 @@ public class DynamicDataSourceContextHolder
*/
public static void setDataSourceType(String dsType)
{
log.info("切换到{}数据源", dsType);
// log.info("切换到{}数据源", dsType);
CONTEXT_HOLDER.set(dsType);
}

23
mh-framework/src/main/java/com/mh/framework/dealdata/impl/DataProcessServiceImpl.java

@ -59,7 +59,7 @@ public class DataProcessServiceImpl implements DataProcessService {
}
private void insertTempDataToDb(OneTwoThreeTempData data, String registerKey, String cacheKey) {
// log.info("{}数据解析入库:{}", registerKey.equals("SENSOR_REGISTER") ? "温湿度传感器" : "其他设备", data);
// // log.info("{}数据解析入库:{}", registerKey.equals("SENSOR_REGISTER") ? "温湿度传感器" : "其他设备", data);
if (registerKey.equals("SENSOR_REGISTER")) {
databaseMapper.createChillerTable();
} else {
@ -132,7 +132,7 @@ public class DataProcessServiceImpl implements DataProcessService {
}
private void insertData(AdvantechReceiver data, String registerKey, String cacheKey) {
// log.info("{}数据解析入库:{}", registerKey.equals("CHILLERS_REGISTER") ? "冷水机组" : "计量设备", data);
// // log.info("{}数据解析入库:{}", registerKey.equals("CHILLERS_REGISTER") ? "冷水机组" : "计量设备", data);
if (registerKey.equals("CHILLERS_REGISTER")) {
databaseMapper.createChillerTable();
} else {
@ -151,6 +151,11 @@ public class DataProcessServiceImpl implements DataProcessService {
}
String timeString = data.getTs();
String formattedTime = "";
// 判断是否存在TimeZone
if (!timeString.contains("T")) {
formattedTime = timeString;
} else {
OffsetDateTime utcDateTime;
try {
// 尝试多种常见的时间格式
@ -173,9 +178,11 @@ public class DataProcessServiceImpl implements DataProcessService {
);
// 3. 格式化为目标字符串
String formattedTime = chinaDateTime.format(
formattedTime = chinaDateTime.format(
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
);
}
String dString = data.getD().toString();
// 替换掉inf
if (dString.contains("inf")) {
@ -186,7 +193,8 @@ public class DataProcessServiceImpl implements DataProcessService {
for (AdvantechDatas advantechDatas : list) {
String tag = advantechDatas.getTag();
String value = String.valueOf(advantechDatas.getValue());
// log.info("时间: {},tag标签: {},value值: {}", formattedTime, tag, value);
String quality = String.valueOf(advantechDatas.getQuality());
// log.info("时间: {},tag标签: {},value值: {}, 质量:{}", formattedTime, tag, value, quality);
try {
if (StringUtils.isBlank(tag)) {
continue;
@ -197,6 +205,7 @@ public class DataProcessServiceImpl implements DataProcessService {
collectionParamsManage = entity;
try {
collectionParamsManage.setCurValue(new BigDecimal(value));
collectionParamsManage.setQuality(quality);
} catch (NumberFormatException e) {
log.error("数值格式解析异常", e);
continue;
@ -223,7 +232,7 @@ public class DataProcessServiceImpl implements DataProcessService {
@Override
public void insertOtherData(AdvantechReceiver data) {
log.info("其他设备数据解析入库:{}", data);
// log.info("其他设备数据解析入库:{}", data);
}
@Override
@ -261,7 +270,7 @@ public class DataProcessServiceImpl implements DataProcessService {
@Override
public void insertDatabase(List<DeviceReport> dataMinList) {
// log.info("插入data_min数据,数据大小==>{}", dataMinList.size());
// // log.info("插入data_min数据,数据大小==>{}", dataMinList.size());
Calendar calendar = Calendar.getInstance();
//时间格式化0和5结尾的时间
int batchSize = 10;
@ -435,7 +444,7 @@ public class DataProcessServiceImpl implements DataProcessService {
tableName = tableName + DateUtils.dateToString(data.getCurTime(), "yyyy");
num = dataProcessMapper.selectDataByHH(tableName, data.getCurTime(), data.getDeviceNum());
if (num == 0) {
log.info("插入小时数据:{}", data.toString());
// log.info("插入小时数据:{}", data.toString());
}
break;
}

2
mh-framework/src/main/java/com/mh/framework/manager/factory/AsyncFactory.java

@ -116,7 +116,7 @@ public class AsyncFactory
public void run()
{
// 远程查询操作地点
log.info("mqtt开启日志记录");
// log.info("mqtt开启日志记录");
}
};
}

4
mh-framework/src/main/java/com/mh/framework/mqtt/handler/InboundMessageRouter.java

@ -44,10 +44,10 @@ public class InboundMessageRouter extends AbstractMessageRouter {
MessageHeaders headers = message.getHeaders();
String topic = Objects.requireNonNull(headers.get(MqttHeaders.RECEIVED_TOPIC)).toString();
// byte[] payload = (byte[]) message.getPayload();
// log.info("从当前主题 topic: {}, 接收到的消息:{}", topic, new String(payload));
// // log.info("从当前主题 topic: {}, 接收到的消息:{}", topic, new String(payload));
// 判断当前主题是否是当前项目的,温湿度目前写死的
if (!topic.startsWith(mHConfig.getName()) && !topic.contains("/temp")) {
// log.info("当前主题 topic: {} 不是当前项目的,直接丢弃", topic);
// // log.info("当前主题 topic: {} 不是当前项目的,直接丢弃", topic);
return Collections.singleton(SpringUtils.getBean(ChannelName.DEFAULT_BOUND));
}
// 找到对应的主题消息通道

8
mh-framework/src/main/java/com/mh/framework/mqtt/service/impl/EventsServiceImpl.java

@ -64,7 +64,7 @@ public class EventsServiceImpl implements IEventsService {
@Override
public void handleInboundSend(byte[] receiver, MessageHeaders headers) throws IOException {
String sendStr = new String(receiver, CharsetUtil.UTF_8);
log.info("接收到控制指令下发=>{}", sendStr);
// log.info("接收到控制指令下发=>{}", sendStr);
}
private void handleInboundData(byte[] receiver,String topic, String logMessage) {
@ -72,7 +72,7 @@ public class EventsServiceImpl implements IEventsService {
AdvantechReceiver commonTopicReceiver = new AdvantechReceiver();
if (!topic.contains(Constants.TEMP)) {
commonTopicReceiver = mapper.readValue(receiver, AdvantechReceiver.class);
// log.info("主题:{},类型:{}: ,数据:{}", topic, logMessage, commonTopicReceiver.toString());
// // log.info("主题:{},类型:{}: ,数据:{}", topic, logMessage, commonTopicReceiver.toString());
}
// 接入消息队列,利用消息对接进行数据处理
// 判断当前主题属于哪种主动上报数据
@ -88,11 +88,11 @@ public class EventsServiceImpl implements IEventsService {
} else if (topic.contains(Constants.TEMP)) {
// 温湿度数据
OneTwoThreeTempData oneTwoThreeTempData = mapper.readValue(receiver, OneTwoThreeTempData.class);
// log.info("主题:{},类型:{}: ,数据:{}", topic, logMessage, oneTwoThreeTempData.toString());
// // log.info("主题:{},类型:{}: ,数据:{}", topic, logMessage, oneTwoThreeTempData.toString());
sendMsgByTopic.sendToTempMQ(JSONObject.toJSONString(oneTwoThreeTempData));
} else {
// 非本地主题处理
log.info("非本地主题处理: {}", topic);
// log.info("非本地主题处理: {}", topic);
}
} catch (IOException e) {
log.error("处理数据时发生错误: ", e);

4
mh-framework/src/main/java/com/mh/framework/mqtt/service/impl/MqttMsgSenderServiceImpl.java

@ -46,7 +46,7 @@ public class MqttMsgSenderServiceImpl implements IMqttMsgSenderService {
synchronized (this) {//注意:这里一定要同步,否则,在多线程publish的情况下,线程会发生死锁,分析见文章最后补充
try {
mqttGatewayService.publish(topic, pushMessage, 0);
log.info("发送主题:{},消息:{}", topic, pushMessage);
// log.info("发送主题:{},消息:{}", topic, pushMessage);
} catch (Exception e) {
log.error("发送主题异常:{},消息:{}", topic, pushMessage, e);
throw new RuntimeException(e);
@ -62,7 +62,7 @@ public class MqttMsgSenderServiceImpl implements IMqttMsgSenderService {
@Override
public void publish(String topic, int qos, CommonTopicResponse response) {
try {
log.info("发送主题:{},消息:{}", topic, response.toString());
// log.info("发送主题:{},消息:{}", topic, response.toString());
mqttGatewayService.publish(topic, mapper.writeValueAsBytes(response), qos);
} catch (JsonProcessingException e) {
log.error("发送主题:{},消息:{}", topic, response.toString(), e);

6
mh-framework/src/main/java/com/mh/framework/netty/EchoServer.java

@ -34,7 +34,7 @@ public class EchoServer {
// 添加监听器处理绑定结果
channelFuture.addListener(future -> {
if (future.isSuccess()) {
log.info("服务器启动成功,开始监听端口: {}", port);
// log.info("服务器启动成功,开始监听端口: {}", port);
} else {
log.error("服务器启动失败,端口: {}", port, future.cause());
bossGroup.shutdownGracefully(); // 绑定失败立即关闭资源
@ -47,10 +47,10 @@ public class EchoServer {
// 可选:添加 JVM 关闭钩子优雅关闭资源
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
log.info("JVM 正在关闭,准备释放 Netty 资源...");
// log.info("JVM 正在关闭,准备释放 Netty 资源...");
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
log.info("Netty 资源已释放");
// log.info("Netty 资源已释放");
}));
}

39
mh-framework/src/main/java/com/mh/framework/netty/EchoServerHandler.java

@ -59,7 +59,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
*/
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
log.info("Channel active......");
// log.info("Channel active......");
}
/**
@ -72,7 +72,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
if (obj instanceof IdleStateEvent) {
IdleStateEvent event = (IdleStateEvent) obj;
if (IdleState.READER_IDLE.equals(event.state())) { //如果读通道处于空闲状态,说明没有接收到心跳命令
log.info("第{}已经40秒没有接收到客户端的信息了", idleCount);
// log.info("第{}已经40秒没有接收到客户端的信息了", idleCount);
receiveStr = "";
num = num + 1;
if (num > size - 1) {
@ -109,7 +109,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
receiveStr = receiveStr + ExchangeStringUtil.bytesToHexString(bytes);//将接收到的数据转为字符串,此字符串就是客户端发送的字符串
receiveStr = receiveStr.replace("null", ""); //去null
receiveStr = receiveStr.replace(" ", ""); //去空格
//log.info("channelRead接收到的数据:" + receiveStr + ",length:" + receiveStr.length());
//// log.info("channelRead接收到的数据:" + receiveStr + ",length:" + receiveStr.length());
}
} catch (Exception e) {
log.error("channelRead异常", e);
@ -123,11 +123,11 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
//心跳包报文: 24 00 60 95
receiveStr = receiveStr.toUpperCase();//返回值全部变成大写
log.info("channelReadComplete接收到的数据{}, 长度: ===> {}", receiveStr, receiveStr.length());
// log.info("channelReadComplete接收到的数据{}, 长度: ===> {}", receiveStr, receiveStr.length());
//心跳包处理
if ((receiveStr.length() == 8) && receiveStr.startsWith("24")) {
// if ((receiveStr.length() == 8) && receiveStr.startsWith("C0A801FE")) {
log.info("接收到心跳包 ===> {}", receiveStr);
// log.info("接收到心跳包 ===> {}", receiveStr);
// 开始进行会话保存
dealSession(ctx);
idleCount = 1;
@ -144,7 +144,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
deviceCodeParamList = arrayCache.toList(CollectionParamsManage.class);
}
size = deviceCodeParamList.size();
// log.info("deviceCodeParam size ===> {}", size);
// // log.info("deviceCodeParam size ===> {}", size);
// 清空receiveStr
receiveStr = "";
num = 0;
@ -158,17 +158,17 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
ctx.channel().close();
}
} else {
log.info("gateway not find deviceCodeParam!");
// log.info("gateway not find deviceCodeParam!");
}
} else if (receiveStr.length() == 18) {
// 水电表返回数据解析
idleCount = 1;
log.info("水电表、热泵设置接收==>{},长度:{}", receiveStr, receiveStr.length());
// log.info("水电表、热泵设置接收==>{},长度:{}", receiveStr, receiveStr.length());
nextSendOrder(ctx);
} else if (receiveStr.length() == 12 || receiveStr.length() == 14) {
// 热泵返回数据解析
idleCount = 1;
log.info("热泵读取接收===>{},长度:{},是否存在order_send_read: {}", receiveStr, receiveStr.length(), redisCache.hasKey("order_send_read"));
// log.info("热泵读取接收===>{},长度:{},是否存在order_send_read: {}", receiveStr, receiveStr.length(), redisCache.hasKey("order_send_read"));
if (redisCache.hasKey("order_send_read")) {
log.error("order_send_read存在,接收到指令是{}", receiveStr);
if (redisCache.hasKey("order_send_register")) {
@ -284,12 +284,12 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
@Override
public void onBack(Boolean result) {
if(result) {
log.info("设备保存会话: 设备号 = " + session.getSessionId());
// log.info("设备保存会话: 设备号 = " + session.getSessionId());
//ctx.pipeline().remove(LoginRequestHandler.class); //压测需要放开
} else {
log.info("设备刷新会话: 设备号 = " + session.getSessionId());
// log.info("设备刷新会话: 设备号 = " + session.getSessionId());
SessionMap.inst().updateSession(finalDeviceCode ,session, meterNum);
//log.info("设备登录失败: 设备号 = " + session.getSessionId());
//// log.info("设备登录失败: 设备号 = " + session.getSessionId());
//ServerSession.closeSession(ctx);
// 假如说已经在会话中了,直接断开连接
//ctx.close();
@ -298,7 +298,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
//有异常的话,我们进行处理
@Override
public void onException(Throwable t) {
log.info("设备登录异常: 设备号 = " + session.getSessionId());
// log.info("设备登录异常: 设备号 = " + session.getSessionId());
ServerSession.closeSession(ctx);
}
});
@ -324,7 +324,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
Thread.sleep(1000);
// 继续发送下一个采集指令
SendOrderUtils.sendAllOrder(deviceCodeParamList.get(num), ctx, num, size);
log.info("------一轮采集完成,继续下一轮--------");
// log.info("------一轮采集完成,继续下一轮--------");
} else {
// 添加一个状态值,判断是否继续发送指令 update by ljf on 2020-08-07
if (Constants.WEB_FLAG) {
@ -369,12 +369,12 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
// 液位计
analysisData = analysisReceiveOrder485.analysisLiquidOrder485(receiveStr, deviceCodeParamEntity);
default -> {
log.info("设备类型错误");
// log.info("设备类型错误");
return;
}
}
if (analysisData.isEmpty()) {
log.info("解析数据为空");
// log.info("解析数据为空");
return;
}
// 格式化数据,配置成研华网关 AdvantechReceiver
@ -387,6 +387,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
datas.setQuality(0);
advantechDatas.add(datas);
advantechReceiver.setD(advantechDatas);
// log.error("接收到的指令==》{},发送数据到MQTT==》{}", receiveStr, JSONObject.toJSONString(advantechReceiver));
sendMsgByTopic.sendToDeviceMQ(JSONObject.toJSONString(advantechReceiver));
}
@ -394,7 +395,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
cause.getCause().printStackTrace();
log.info("异常捕捉,执行ctx.close" + cause.getCause());
// log.info("异常捕捉,执行ctx.close" + cause.getCause());
ctx.close(); // 关闭该Channel
}
@ -402,7 +403,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
ctx.close();// 关闭流
log.info("客户端断开,执行ctx.close()......");
// log.info("客户端断开,执行ctx.close()......");
}
private boolean action(ServerSession session, String deviceCode, ChannelHandlerContext ctx) {
@ -415,7 +416,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
private boolean checkUser(String deviceCode,ServerSession session) {
//当前用户已经登录
if(SessionMap.inst().hasLogin(deviceCode)) {
log.info("设备已经登录: 设备号 = " + deviceCode);
// log.info("设备已经登录: 设备号 = " + deviceCode);
return false;
}
//一般情况下,我们会将 user存储到 DB中,然后对user的用户名和密码进行校验

6
mh-framework/src/main/java/com/mh/framework/netty/session/ServerSession.java

@ -28,7 +28,7 @@ public class ServerSession {
// serverSession
//session需要被添加到我们的SessionMap中
public void bind(){
log.info("server Session 会话进行绑定 :" + channel.remoteAddress());
// log.info("server Session 会话进行绑定 :" + channel.remoteAddress());
channel.attr(SESSION_KEY).set(this);
SessionMap.inst().addSession(sessionId, this);
this.isLogin = true;
@ -48,13 +48,13 @@ public class ServerSession {
ChannelFuture future = serverSession.channel.close();
future.addListener((ChannelFutureListener) future1 -> {
if(!future1.isSuccess()) {
log.info("Channel close error!");
// log.info("Channel close error!");
}
});
ctx.close();
meterNum = serverSession.sessionId;
SessionMap.inst().removeSession(serverSession.sessionId);
log.info(ctx.channel().remoteAddress()+" "+serverSession.sessionId + "==>移除会话");
// log.info(ctx.channel().remoteAddress()+" "+serverSession.sessionId + "==>移除会话");
}
return meterNum;
}

8
mh-framework/src/main/java/com/mh/framework/netty/session/SessionMap.java

@ -30,7 +30,7 @@ public class SessionMap {
//添加session
public void addSession(String sessionId, ServerSession s) {
map.put(sessionId, s);
log.info("IP地址:"+s.getChannel().remoteAddress()+" "+ sessionId + " 表具上线,总共表具:" + map.size());
// log.info("IP地址:"+s.getChannel().remoteAddress()+" "+ sessionId + " 表具上线,总共表具:" + map.size());
}
//删除session
@ -38,7 +38,7 @@ public class SessionMap {
if(map.containsKey(sessionId)) {
ServerSession s = map.get(sessionId);
map.remove(sessionId);
log.info("设备id下线:{},在线设备:{}", s.getSessionId(), map.size() );
// log.info("设备id下线:{},在线设备:{}", s.getSessionId(), map.size() );
}
return;
}
@ -68,10 +68,10 @@ public class SessionMap {
public void initScene(Boolean status) {
if (sceneThreadLocal == null) {
log.info("======创建ThreadLocal======");
// log.info("======创建ThreadLocal======");
sceneThreadLocal = new ThreadLocal<>();
}
log.info("设置状态==>" + status);
// log.info("设置状态==>" + status);
sceneThreadLocal.set(status);
}

8
mh-framework/src/main/java/com/mh/framework/rabbitmq/consumer/ReceiveHandler.java

@ -56,7 +56,7 @@ public class ReceiveHandler {
try {
//TODO 开启多线程处理主机数据,如果不通过线程池开启线程来处理,
// 设置SimpleRabbitListenerContainerFactory中的setConcurrentConsumers(10)数量也可以实现多线程处理
// log.info("MQ消费者:主机数据采集:{}", msg);
// // log.info("MQ消费者:主机数据采集:{}", msg);
//TODO 数据解析入库操作 msg转成实体类,入库
AdvantechReceiver chillerData = JSONObject.parseObject(msg, AdvantechReceiver.class);
dataProcessService.insertChillerData(chillerData);
@ -89,7 +89,7 @@ public class ReceiveHandler {
public void receiveDeviceData(@Payload String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws InterruptedException, IOException {
try {
//TODO 处理电表等数据
// log.info("MQ消费者:计量设备数据采集:{}", msg);
// // log.info("MQ消费者:计量设备数据采集:{}", msg);
//TODO 数据解析入库操作 msg转成实体类,入库
AdvantechReceiver deviceData = JSONObject.parseObject(msg, AdvantechReceiver.class);
dataProcessService.insertDeviceData(deviceData);
@ -121,7 +121,7 @@ public class ReceiveHandler {
))
public void receiveOtherData(@Payload String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws InterruptedException, IOException {
try {
// log.info("MQ消费者:其他设备采集:{}", msg);
// // log.info("MQ消费者:其他设备采集:{}", msg);
//TODO 数据解析入库操作 msg转成实体类,入库
AdvantechReceiver OtherData = JSONObject.parseObject(msg, AdvantechReceiver.class);
dataProcessService.insertOtherData(OtherData);
@ -152,7 +152,7 @@ public class ReceiveHandler {
))
public void receiveTempData(@Payload String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws InterruptedException, IOException {
try {
// log.info("MQ消费者:温湿度设备采集:{}", msg);
// // log.info("MQ消费者:温湿度设备采集:{}", msg);
//TODO 数据解析入库操作 msg转成实体类,入库
OneTwoThreeTempData oneTwoThreeTempData = JSONObject.parseObject(msg, OneTwoThreeTempData.class);
dataProcessService.insertTempData(oneTwoThreeTempData);

6
mh-framework/src/main/java/com/mh/framework/web/service/UserDetailsServiceImpl.java

@ -37,13 +37,13 @@ public class UserDetailsServiceImpl implements UserDetailsService {
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
SysUser user = userService.selectUserByUserName(username);
if (StringUtils.isNull(user)) {
log.info("登录用户:{} 不存在.", username);
// log.info("登录用户:{} 不存在.", username);
throw new ServiceException(MessageUtils.message("user.not.exists"));
} else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
log.info("登录用户:{} 已被删除.", username);
// log.info("登录用户:{} 已被删除.", username);
throw new ServiceException(MessageUtils.message("user.password.delete"));
} else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
log.info("登录用户:{} 已被停用.", username);
// log.info("登录用户:{} 已被停用.", username);
throw new ServiceException(MessageUtils.message("user.blocked"));
}

2
mh-quartz/src/main/java/com/mh/quartz/task/CreateAlarmTask.java

@ -48,7 +48,7 @@ public class CreateAlarmTask {
}
public void createAlarmTask() {
log.info("创建报警记录");
// log.info("创建报警记录");
// 查询仪表报警规则记录,查看哪些规则启用了
List<AlarmRules> alarmRules = alarmRulesService.selectAlarmRulesListByStatus(0);
// 循环查询报警规则,判断是否满足报警条件

2
mh-quartz/src/main/java/com/mh/quartz/task/DealDataTask.java

@ -272,7 +272,7 @@ public class DealDataTask {
.sorted(Comparator.comparing(temMap -> temMap.keySet().iterator().next()))
.collect(Collectors.toList());
//计算上次值,当前值
// log.info("计算小时表数据:{}", sortedList);
// // log.info("计算小时表数据:{}", sortedList);
hourList = calcListData(hourList, key, "hour", sortedList);
}
//批量插入小时报表

2
mh-quartz/src/main/java/com/mh/quartz/task/DealOnOrOffData.java

@ -22,7 +22,7 @@ public class DealOnOrOffData {
}
public void dealDeviceLedger() {
log.info("处理设备在线状态数据");
// log.info("处理设备在线状态数据");
deviceLedgerService.updateDeviceLedgerStatus();
}

2
mh-quartz/src/main/java/com/mh/quartz/task/HotWaterTask.java

@ -276,7 +276,7 @@ public class HotWaterTask {
specificConsumption = water > 0 ? electricity / water : 0.0;
log.info("楼栋: {}, {}电表总量: {}, 水表总量: {}, 单耗: {}", buildingName, energyType, electricity, water, specificConsumption);
// log.info("楼栋: {}, {}电表总量: {}, 水表总量: {}, 单耗: {}", buildingName, energyType, electricity, water, specificConsumption);
}
energyQueryService.insertOrUpdateEnergyData(
energyType.getCode(), buildingId, buildingName, curDate,

2
mh-quartz/src/main/java/com/mh/quartz/task/PushDataToWechatTask.java

@ -55,7 +55,7 @@ public class PushDataToWechatTask {
// 查询需要推送的微信用户
List<Map<String, Object>> wechatUserList = wechatService.queryWechatUser(0);
if (null == wechatUserList || wechatUserList.isEmpty()) {
log.info("没有查询到微信用户");
// log.info("没有查询到微信用户");
}
// 开始推送数据
for (Map<String, Object> map : wechatUserList) {

2
mh-system/src/main/java/com/mh/system/mapper/energy/HotEnergyQueryMapper.java

@ -84,7 +84,7 @@ public interface HotEnergyQueryMapper {
@Select("<script>" +
"select " +
" fi.id as building_id, " +
" SUBSTRING(fi.floor_name from '(-?\\d+楼)') as building_name, " +
" fi.floor_name as building_name, " +
" cpm.other_name as device_name, " +
" dm.* " +
"from " +

2
mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java

@ -428,7 +428,7 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag
public void updateCollectionParamsManages(ArrayList<CollectionParamsManage> chillersEntities) {
// 批量更新
chillersEntities.forEach(chillerEntity -> {
// log.info("chillerEntity: {}", chillerEntity.toString());
// // log.info("chillerEntity: {}", chillerEntity.toString());
if (chillerEntity.getId() != null && !StringUtils.isEmpty(chillerEntity.getId())) {
collectionParamsManageMapper.updateCurValueById(chillerEntity.getId(), chillerEntity.getCurValue(), chillerEntity.getCurTime());
}

2
mh-system/src/main/java/com/mh/system/service/device/impl/IndoorTempMonitorServiceImpl.java

@ -78,7 +78,7 @@ public class IndoorTempMonitorServiceImpl implements IIndoorTempMonitorService {
Map<String, HouseGroupDTO> groupedMap = dataList.stream()
.collect(Collectors.groupingBy(
data -> {
log.info("Processing data: houseId={}, houseName={}", data.getHouseId(), data.getHouseName());
// log.info("Processing data: houseId={}, houseName={}", data.getHouseId(), data.getHouseName());
return data.getHouseId() + "|" + data.getHouseName();
},
Collectors.collectingAndThen(

10
mh-system/src/main/java/com/mh/system/service/impl/WechatServiceImpl.java

@ -59,7 +59,7 @@ public class WechatServiceImpl implements IWechatService {
return "";
}
String accessToken = jsonObj.get("access_token").toString();
log.info("获取access_token==>{}", accessToken);
// log.info("获取access_token==>{}", accessToken);
redisCache.setCacheObject("accessToken", accessToken , 7000, TimeUnit.SECONDS);
return accessToken;
}
@ -70,10 +70,10 @@ public class WechatServiceImpl implements IWechatService {
// 判断cache中是否存在access_token
String accessToken = "";
if (redisCache.hasKey("accessToken")) {
log.info("ConcurrentHashMap中存在access_token的cache,直接使用");
// log.info("ConcurrentHashMap中存在access_token的cache,直接使用");
// 再次判断是否存在access_token
if (!redisCache.hasKey("accessToken")) {
log.info("cache中不存在access_token,重新获取");
// log.info("cache中不存在access_token,重新获取");
accessToken = getAccessToken();
} else {
accessToken = Objects.requireNonNull(redisCache.getCacheObject("accessToken")).toString();
@ -136,8 +136,8 @@ public class WechatServiceImpl implements IWechatService {
HttpEntity<String> entity = new HttpEntity<>(requestBody, headers);
String requestUrl = wechatMpConfig.getPushMsgUrl(accessToken);
// log.info("请求URL: {}", requestUrl);
// log.info("请求体: {}", requestBody);
// // log.info("请求URL: {}", requestUrl);
// // log.info("请求体: {}", requestBody);
try {
// 使用配置了StringHttpMessageConverter的RestTemplate

Loading…
Cancel
Save