Commit 6a8a5513 authored by zhuangzhuang's avatar zhuangzhuang

修改仓库数据相差八小时的问题;

修改mqtt判断是否重发配置的问题
parent c955318d
...@@ -6,6 +6,14 @@ public class WarehouseTimeAndDataVo { ...@@ -6,6 +6,14 @@ public class WarehouseTimeAndDataVo {
private String value; private String value;
public WarehouseTimeAndDataVo() {
}
public WarehouseTimeAndDataVo(String time, String value) {
this.time = time;
this.value = value;
}
public String getTime() { public String getTime() {
return time; return time;
} }
......
package com.example.tdl.domain.vo;
public class WarehouseVo {
private String offset;
private String warehouseNo;
public String getOffset() {
return offset;
}
public void setOffset(String offset) {
this.offset = offset;
}
public String getWarehouseNo() {
return warehouseNo;
}
public void setWarehouseNo(String warehouseNo) {
this.warehouseNo = warehouseNo;
}
}
...@@ -244,9 +244,9 @@ public class MqttListener implements MqttCallback { ...@@ -244,9 +244,9 @@ public class MqttListener implements MqttCallback {
return 3;//重发 return 3;//重发
} }
if (compare(configCMDVo.getDevList(),checkInVo.getDevList()) if (compare(configCMDVo.getDevList(),checkInVo.getDevList())
&& checkInVo.getGprsPeriod()==configCMDVo.getGprsPeriod() && checkInVo.getGprsPeriod().equals(configCMDVo.getGprsPeriod())
&& checkInVo.getGpsPeriod()==configCMDVo.getGpsPeriod() && checkInVo.getGpsPeriod().equals(configCMDVo.getGpsPeriod())
&& checkInVo.getMode()==configCMDVo.getMode() && checkInVo.getMode().equals(configCMDVo.getMode())
&& compare(configCMDVo.getTempL(),checkInVo.getTempL()) && compare(configCMDVo.getTempL(),checkInVo.getTempL())
&& compare(configCMDVo.getTempH(),checkInVo.getTempH()) && compare(configCMDVo.getTempH(),checkInVo.getTempH())
&& compare(configCMDVo.getHumiL(),checkInVo.getHumiL()) && compare(configCMDVo.getHumiL(),checkInVo.getHumiL())
......
...@@ -988,19 +988,17 @@ public class WarehouseController { ...@@ -988,19 +988,17 @@ public class WarehouseController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"), @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
}) })
@PostMapping("/getWarehouseData") @PostMapping("/getWarehouseData")
public Object getWarehouseData(@RequestBody String warehouseNo,HttpServletRequest request){ public Object getWarehouseData(@RequestBody WarehouseVo warehouseVo,HttpServletRequest request){
String token = request.getHeader("Account_token"); String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token); String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class); UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
JSONObject jsonObject=JSON.parseObject(warehouseNo); if(warehouseService.getWarehouseNo(warehouseVo.getWarehouseNo(),user.getCompanyNo()) ==0){
warehouseNo=(String) jsonObject.get("warehouseNo");
if(warehouseService.getWarehouseNo(warehouseNo,user.getCompanyNo()) ==0){
fb.setCode(0); fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"Nonexistent")); fb.setMessage(i18n.getMessage(request,"Nonexistent"));
return gson.toJson(fb); return gson.toJson(fb);
} }
List<WarehouseGatewayDateVo> warehouseGatewayDateVoList=new ArrayList<>(); List<WarehouseGatewayDateVo> warehouseGatewayDateVoList=new ArrayList<>();
List<GatewayOnLineVo> gatewayOnLineVos=gatewayService.getByWarehouseNo(warehouseNo); List<GatewayOnLineVo> gatewayOnLineVos=gatewayService.getByWarehouseNo(warehouseVo.getWarehouseNo());
for (int a=0;a<gatewayOnLineVos.size();a++){ for (int a=0;a<gatewayOnLineVos.size();a++){
if(gatewayOnLineVos.get(a) == null){ if(gatewayOnLineVos.get(a) == null){
continue; continue;
...@@ -1035,15 +1033,13 @@ public class WarehouseController { ...@@ -1035,15 +1033,13 @@ public class WarehouseController {
List<WarehouseDataVo> warehouseDataVos=new ArrayList<>(); List<WarehouseDataVo> warehouseDataVos=new ArrayList<>();
for (int b=0;b<tdls.size();b++){ for (int b=0;b<tdls.size();b++){
List<WarehouseTDLDetailVo> warehouseTDLDetailVos=new ArrayList<>(); List<WarehouseTDLDetailVo> warehouseTDLDetailVos=new ArrayList<>();
List<WarehouseTimeAndDataVo> warehouseTimeAndDataVos = new ArrayList<>();
List<WarehouseTimeAndDataVo> warehouseTimeAndDataVos1 = new ArrayList<>();
WarehouseDataVo warehouseDataVo=new WarehouseDataVo(); WarehouseDataVo warehouseDataVo=new WarehouseDataVo();
warehouseDataVo.setTDLSN(tdls.get(b).replace("TDL-","").trim()); warehouseDataVo.setTDLSN(tdls.get(b).replace("TDL-","").trim());
String sqls ="SELECT \"tdl\",\"b\",\"T\",\"h\" FROM \"tdl_policy\".\""+device+"\" WHERE \"tdl\" = '"+tdls.get(b)+"' AND time >="+ gatewayOnLineVos.get(a).getStartTime()*1000000l+" ORDER BY time desc limit 1 "; String sqls ="SELECT \"tdl\",\"b\",\"T\",\"h\" FROM \"tdl_policy\".\""+device+"\" WHERE \"tdl\" = '"+tdls.get(b)+"' AND time >="+ gatewayOnLineVos.get(a).getStartTime()*1000000l+" ORDER BY time desc limit 1 ";
QueryResult queryResults = influxDBTemplate.query(new Query(sqls, database)); QueryResult queryResults = influxDBTemplate.query(new Query(sqls, database));
ResultAlarmVo resultAlarmVo=alarmService.getAlarmByWarehouseNo(warehouseNo,gatewayOnLineVos.get(a).getgSN(),tdls.get(b).replace("TDL-","").trim()); ResultAlarmVo resultAlarmVo=alarmService.getAlarmByWarehouseNo(warehouseVo.getWarehouseNo(),gatewayOnLineVos.get(a).getgSN(),tdls.get(b).replace("TDL-","").trim());
if (queryResults.getResults().get(0).getSeries() != null) { if (queryResults.getResults().get(0).getSeries() != null) {
warehouseDataVo.setTime(parseTime(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(0).toString())); warehouseDataVo.setTime(UTCToCST(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(0).toString(),warehouseVo.getOffset()==null ? "+8" : warehouseVo.getOffset()));
warehouseDataVo.setBatteryVoltage(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(2).toString()); warehouseDataVo.setBatteryVoltage(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(2).toString());
warehouseDataVo.setTemperature(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(3).toString()); warehouseDataVo.setTemperature(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(3).toString());
warehouseDataVo.setHumidity(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(4).toString()); warehouseDataVo.setHumidity(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(4).toString());
...@@ -1053,25 +1049,27 @@ public class WarehouseController { ...@@ -1053,25 +1049,27 @@ public class WarehouseController {
warehouseDataVo.setTemperature("NA"); warehouseDataVo.setTemperature("NA");
warehouseDataVo.setHumidity("NA"); warehouseDataVo.setHumidity("NA");
} }
String sql3 ="SELECT \"tdl\",\"b\",\"T\",\"h\" FROM \"tdl_policy\".\""+device+"\" WHERE \"tdl\" = '"+tdls.get(b)+"' AND time >="+ gatewayOnLineVos.get(a).getStartTime()*1000000l+" ORDER BY time "; String sql3 ="SELECT \"tdl\",\"T\",\"h\" FROM \"tdl_policy\".\""+device+"\" WHERE \"tdl\" = '"+tdls.get(b)+"' AND time >="+ gatewayOnLineVos.get(a).getStartTime()*1000000l+" ORDER BY time ";
QueryResult queryResult3 = influxDBTemplate.query(new Query(sql3, database)); QueryResult queryResult3 = influxDBTemplate.query(new Query(sql3, database));
if(queryResult3.getResults().get(0).getSeries() != null){ if(queryResult3.getResults().get(0).getSeries() != null){
warehouseTDLDetailVos = getWarehouseData(queryResult3,warehouseVo.getOffset()==null ? "+8" : warehouseVo.getOffset(),resultAlarmVo,warehouseDataVo);
//解析数据 //解析数据
WarehouseTDLDetailVo warehouseTDLDetailVo=new WarehouseTDLDetailVo(); // WarehouseTDLDetailVo warehouseTDLDetailVo=new WarehouseTDLDetailVo();
warehouseTimeAndDataVos = getData(queryResult3); // warehouseTimeAndDataVos = getData(queryResult3,warehouseVo.getOffset()==null ? "+8" : warehouseVo.getOffset());
warehouseTDLDetailVo.setDescription("temperature"); // warehouseTDLDetailVo.setDescription("temperature");
warehouseTDLDetailVo.setTimeAndValuesVos(warehouseTimeAndDataVos); // warehouseTDLDetailVo.setTimeAndValuesVos(warehouseTimeAndDataVos);
warehouseTDLDetailVo.setMax(resultAlarmVo.getTemMax()); // warehouseTDLDetailVo.setMax(resultAlarmVo.getTemMax());
warehouseTDLDetailVo.setMin(resultAlarmVo.getTemMin()); // warehouseTDLDetailVo.setMin(resultAlarmVo.getTemMin());
warehouseTDLDetailVos.add(warehouseTDLDetailVo); // warehouseTDLDetailVos.add(warehouseTDLDetailVo);
//
WarehouseTDLDetailVo warehouseTDLDetailVo1=new WarehouseTDLDetailVo(); // WarehouseTDLDetailVo warehouseTDLDetailVo1=new WarehouseTDLDetailVo();
warehouseTimeAndDataVos1 = getDatas(queryResult3); // warehouseTimeAndDataVos1 = getDatas(queryResult3,warehouseVo.getOffset()==null ? "+8" : warehouseVo.getOffset());
warehouseTDLDetailVo1.setDescription("humidity"); // warehouseTDLDetailVo1.setDescription("humidity");
warehouseTDLDetailVo1.setTimeAndValuesVos(warehouseTimeAndDataVos1); // warehouseTDLDetailVo1.setTimeAndValuesVos(warehouseTimeAndDataVos1);
warehouseTDLDetailVo1.setMax(resultAlarmVo.getHumidityMax()); // warehouseTDLDetailVo1.setMax(resultAlarmVo.getHumidityMax());
warehouseTDLDetailVo1.setMin(resultAlarmVo.getHumidityMin()); // warehouseTDLDetailVo1.setMin(resultAlarmVo.getHumidityMin());
warehouseTDLDetailVos.add(warehouseTDLDetailVo1); // warehouseTDLDetailVos.add(warehouseTDLDetailVo1);
} }
warehouseDataVo.setWarehouseTDLDetailVos(warehouseTDLDetailVos); warehouseDataVo.setWarehouseTDLDetailVos(warehouseTDLDetailVos);
warehouseDataVos.add(warehouseDataVo); warehouseDataVos.add(warehouseDataVo);
...@@ -1200,13 +1198,50 @@ public class WarehouseController { ...@@ -1200,13 +1198,50 @@ public class WarehouseController {
return warehouseNo; return warehouseNo;
} }
public List<WarehouseTDLDetailVo> getWarehouseData(QueryResult queryResult,String offset,ResultAlarmVo resultAlarmVo,WarehouseDataVo warehouseDataVo){
List<WarehouseTDLDetailVo> warehouseTDLDetailVoList=new ArrayList<>();
List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
List<WarehouseTimeAndDataVo> historyDataLists = new ArrayList<>();
for(List<Object> value:values){
String time = UTCToCST(value.get(0).toString(),offset);
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(time);
warehouseTimeAndDataVo.setValue(value.get(3)==null ? "" :value.get(3).toString());
historyDataList.add(warehouseTimeAndDataVo);
WarehouseTimeAndDataVo warehouseTimeAndDataVos = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVos.setTime(time);
warehouseTimeAndDataVos.setValue(value.get(2)==null ? "" :value.get(3).toString());
historyDataLists.add(warehouseTimeAndDataVos);
}
if(!warehouseDataVo.getTemperature().equals("NA")){
historyDataLists.add(new WarehouseTimeAndDataVo(warehouseDataVo.getTime(),warehouseDataVo.getTemperature()));
historyDataList.add(new WarehouseTimeAndDataVo(warehouseDataVo.getTime(),warehouseDataVo.getHumidity()));
}
WarehouseTDLDetailVo warehouseTDLDetailVo=new WarehouseTDLDetailVo();
warehouseTDLDetailVo.setDescription("temperature");
warehouseTDLDetailVo.setTimeAndValuesVos(historyDataList);
warehouseTDLDetailVo.setMax(resultAlarmVo.getTemMax());
warehouseTDLDetailVo.setMin(resultAlarmVo.getTemMin());
warehouseTDLDetailVoList.add(warehouseTDLDetailVo);
WarehouseTDLDetailVo warehouseTDLDetailVos=new WarehouseTDLDetailVo();
warehouseTDLDetailVos.setDescription("humidity");
warehouseTDLDetailVos.setTimeAndValuesVos(historyDataList);
warehouseTDLDetailVos.setMax(resultAlarmVo.getTemMax());
warehouseTDLDetailVos.setMin(resultAlarmVo.getTemMin());
warehouseTDLDetailVoList.add(warehouseTDLDetailVos);
return warehouseTDLDetailVoList;
}
public List<WarehouseTimeAndDataVo> getData(QueryResult queryResult){
public List<WarehouseTimeAndDataVo> getData(QueryResult queryResult,String offset){
List<List<Object>> values = getValues(queryResult); List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>(); List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){ for(List<Object> value:values){
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo(); WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(parseTime(value.get(0).toString())); warehouseTimeAndDataVo.setTime(UTCToCST(value.get(0).toString(),offset));
warehouseTimeAndDataVo.setValue(value.get(3)==null ? "" :value.get(3).toString()); warehouseTimeAndDataVo.setValue(value.get(3)==null ? "" :value.get(3).toString());
historyDataList.add(warehouseTimeAndDataVo); historyDataList.add(warehouseTimeAndDataVo);
} }
...@@ -1215,12 +1250,12 @@ public class WarehouseController { ...@@ -1215,12 +1250,12 @@ public class WarehouseController {
public List<WarehouseTimeAndDataVo> getDatas(QueryResult queryResult){ public List<WarehouseTimeAndDataVo> getDatas(QueryResult queryResult,String offset){
List<List<Object>> values = getValues(queryResult); List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>(); List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){ for(List<Object> value:values){
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo(); WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(parseTime(value.get(0).toString())); warehouseTimeAndDataVo.setTime(UTCToCST(value.get(0).toString(),offset));
warehouseTimeAndDataVo.setValue(value.get(4)==null ? "" :value.get(4).toString()); warehouseTimeAndDataVo.setValue(value.get(4)==null ? "" :value.get(4).toString());
historyDataList.add(warehouseTimeAndDataVo); historyDataList.add(warehouseTimeAndDataVo);
} }
...@@ -1273,6 +1308,25 @@ public class WarehouseController { ...@@ -1273,6 +1308,25 @@ public class WarehouseController {
return String.valueOf(date.getTime()); return String.valueOf(date.getTime());
} }
public static String UTCToCST(String UTCStr,String offset) {
Date date = null;
try {
if (UTCStr.length() != 20) {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(UTCStr);
} else {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(UTCStr);
}
} catch (Exception e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR, calendar.get(Calendar.HOUR) +Integer.valueOf(offset));
//calendar.getTime() 返回的是Date类型,也可以使用calendar.getTimeInMillis()获取时间戳
//format的格式可以任意
return String.valueOf(calendar.getTimeInMillis());
}
public SimpleWarehouseVo dataData(QueryResult queryResult){ public SimpleWarehouseVo dataData(QueryResult queryResult){
......
...@@ -41,7 +41,7 @@ logging.config=classpath:logback.xml ...@@ -41,7 +41,7 @@ logging.config=classpath:logback.xml
# Mqtt # Mqtt
tdl.mqtt.url = ssl://172.16.1.11 tdl.mqtt.url = ssl://172.16.1.24
tdl.mqtt.port = 8883 tdl.mqtt.port = 8883
tdl.mqtt.username = ugen tdl.mqtt.username = ugen
tdl.mqtt.password = ugen tdl.mqtt.password = ugen
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment