diff --git a/logistics/src/main/java/com/ccsens/logistics/Netty/NettyClient.java b/logistics/src/main/java/com/ccsens/logistics/Netty/NettyClient.java index 35a2685b..a3c7a8b1 100644 --- a/logistics/src/main/java/com/ccsens/logistics/Netty/NettyClient.java +++ b/logistics/src/main/java/com/ccsens/logistics/Netty/NettyClient.java @@ -73,6 +73,7 @@ public class NettyClient { .newSingleThreadScheduledExecutor(); // 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间 service.scheduleAtFixedRate(runnable, 2, 5, TimeUnit.SECONDS); + // 创建并执行在给定延迟后启用的 ScheduledFuture。 // 参数: // callable - 要执行的功能 diff --git a/logistics/src/main/java/com/ccsens/logistics/Netty/SimpleClientHandler.java b/logistics/src/main/java/com/ccsens/logistics/Netty/SimpleClientHandler.java index ef9a7e25..08cb5751 100644 --- a/logistics/src/main/java/com/ccsens/logistics/Netty/SimpleClientHandler.java +++ b/logistics/src/main/java/com/ccsens/logistics/Netty/SimpleClientHandler.java @@ -24,7 +24,7 @@ public class SimpleClientHandler extends ChannelInboundHandlerAdapter{ public void channelRead(ChannelHandlerContext ctx, Object msg) { if (msg instanceof ByteBuf) { String value = ((ByteBuf) msg).toString(Charset.defaultCharset()); - System.out.println("服务器端返回的数据:" + value); + System.out.println("服务器端返回的数据:" + value.substring(value.length()-3,value.length())); if(StrUtil.isNotEmpty(value) && value.lastIndexOf("not online") == -1) { thermalImageryService.disposeMessage(value); } diff --git a/logistics/src/main/java/com/ccsens/logistics/service/HttpService.java b/logistics/src/main/java/com/ccsens/logistics/service/HttpService.java index 17a4d3af..3d4af274 100644 --- a/logistics/src/main/java/com/ccsens/logistics/service/HttpService.java +++ b/logistics/src/main/java/com/ccsens/logistics/service/HttpService.java @@ -1,5 +1,6 @@ package com.ccsens.logistics.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -35,8 +36,8 @@ import java.util.List; */ @Slf4j @Service -@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) -public class HttpService implements IHttpService{ +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class HttpService implements IHttpService { @Resource private LogisticsEnvironmentRecordDao environmentRecordDao; @@ -68,53 +69,53 @@ public class HttpService implements IHttpService{ JSONObject jsonObject = JSONObject.parseObject(environmentOfData); JSONArray dataArray = jsonObject.getJSONArray("data"); - for (int i = 0; i < dataArray.size(); i++) { - LogisticsEnvironmentRecord environmentRecord = new LogisticsEnvironmentRecord(); - JSONObject oneObject = dataArray.getJSONObject(i); - //获取设备运行状态 0未运行,1离线,2在线 - Integer deviceStatus = oneObject.getInteger("deviceStatus"); - //如果设备为在线状态 将数据存入到数据库 - if (2 == deviceStatus){ - environmentRecord.setEquipmentNum(oneObject.getString("deviceAddr")); - environmentRecord.setRecordTime(System.currentTimeMillis()); - - JSONArray realTimeData = oneObject.getJSONArray("realTimeData"); - for (int j = 0; j < realTimeData.size(); j++) { - JSONObject realData = realTimeData.getJSONObject(j); - switch (realData.getString("dataName")){ - case Constant.TEMP : - environmentRecord.setId(snowflake.nextId()); - environmentRecord.setNumType((byte)1); - environmentRecord.setNumValue(new BigDecimal(realData.getString("dataValue"))); - environmentRecord.setIsAlarm(realData.getBoolean("isAlarm") ? (byte) 1 : (byte) 0); - break; - case Constant.HUMIDITY: - environmentRecord.setId(snowflake.nextId()); - environmentRecord.setNumType((byte)0); - environmentRecord.setNumValue(new BigDecimal(realData.getString("dataValue"))); - environmentRecord.setIsAlarm(realData.getBoolean("isAlarm") ? (byte) 1 : (byte) 0); - break; - case Constant.WATER_OUT: - environmentRecord.setId(snowflake.nextId()); - environmentRecord.setNumType((byte)2); - if(Constant.HAVE_WATER.equals(realData.getString("dataValue"))){ - environmentRecord.setNumValue(new BigDecimal(100)); - environmentRecord.setIsAlarm((byte)1); - }else{ - environmentRecord.setNumValue(new BigDecimal(0)); - environmentRecord.setIsAlarm((byte)0); - } - break; - default: - break; + if (CollectionUtil.isNotEmpty(dataArray)) { + for (int i = 0; i < dataArray.size(); i++) { + LogisticsEnvironmentRecord environmentRecord = new LogisticsEnvironmentRecord(); + JSONObject oneObject = dataArray.getJSONObject(i); + //获取设备运行状态 0未运行,1离线,2在线 + Integer deviceStatus = oneObject.getInteger("deviceStatus"); + //如果设备为在线状态 将数据存入到数据库 + if (2 == deviceStatus) { + environmentRecord.setEquipmentNum(oneObject.getString("deviceAddr")); + environmentRecord.setRecordTime(System.currentTimeMillis()); + + JSONArray realTimeData = oneObject.getJSONArray("realTimeData"); + for (int j = 0; j < realTimeData.size(); j++) { + JSONObject realData = realTimeData.getJSONObject(j); + switch (realData.getString("dataName")) { + case Constant.TEMP: + environmentRecord.setId(snowflake.nextId()); + environmentRecord.setNumType((byte) 1); + environmentRecord.setNumValue(new BigDecimal(realData.getString("dataValue"))); + environmentRecord.setIsAlarm(realData.getBoolean("isAlarm") ? (byte) 1 : (byte) 0); + break; + case Constant.HUMIDITY: + environmentRecord.setId(snowflake.nextId()); + environmentRecord.setNumType((byte) 0); + environmentRecord.setNumValue(new BigDecimal(realData.getString("dataValue"))); + environmentRecord.setIsAlarm(realData.getBoolean("isAlarm") ? (byte) 1 : (byte) 0); + break; + case Constant.WATER_OUT: + environmentRecord.setId(snowflake.nextId()); + environmentRecord.setNumType((byte) 2); + if (Constant.HAVE_WATER.equals(realData.getString("dataValue"))) { + environmentRecord.setNumValue(new BigDecimal(100)); + environmentRecord.setIsAlarm((byte) 1); + } else { + environmentRecord.setNumValue(new BigDecimal(0)); + environmentRecord.setIsAlarm((byte) 0); + } + break; + default: + break; + } + environmentRecordDao.insertSelective(environmentRecord); } - environmentRecordDao.insertSelective(environmentRecord); } } - } - - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } @@ -122,10 +123,11 @@ public class HttpService implements IHttpService{ /** * 温湿度登录接口 获取设备的userId 调用其他接口 + * * @param login 账号密码 * @return userId */ - public String getUserId(HttpDto.Login login){ + public String getUserId(HttpDto.Login login) { String requestUrl = Constant.LOGIN_URL; String s = RestTemplateUtil.postBody(requestUrl, login); JsonResponse a = JSONObject.parseObject(s, JsonResponse.class); @@ -135,10 +137,10 @@ public class HttpService implements IHttpService{ //get请求 - public static String getBody(String url,String userId){ + public static String getBody(String url, String userId) { try { HttpGet get = new HttpGet(url); - get.setHeader("userId",userId); + get.setHeader("userId", userId); HttpClient httpClient = HttpClients.createDefault(); HttpResponse response = httpClient.execute(get); return getResult(response); @@ -166,5 +168,4 @@ public class HttpService implements IHttpService{ } - }