Commit 81fcb38d authored by zhuangzhuang's avatar zhuangzhuang

5.29--修改网关tdl绑定的配置逻辑

parent d179b08a
...@@ -237,14 +237,17 @@ public class GWConfigWorker implements Callable<String>, MqttCallback { ...@@ -237,14 +237,17 @@ public class GWConfigWorker implements Callable<String>, MqttCallback {
mqttAsyncClient.publish(ConfigTopic,msg); mqttAsyncClient.publish(ConfigTopic,msg);
} }
public void GCConfigClose(){ public boolean GCConfigClose(){
try { try {
if(mqttAsyncClient.isConnected()){ if(mqttAsyncClient.isConnected()){
mqttAsyncClient.disconnect(); mqttAsyncClient.disconnect();
return true;
} }
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
return false;
} }
return true;
} }
......
package com.example.tdl.domain.vo;
public class DeviceMessageVo {
private String TDLName;
private String TDLSN;
private String SN;
private String type;
private String warehouseName;
private String addressDetail;
private String regionName;
private String alarmType;
private String temMax;
private String temMin;
private String humidityMax;
private String humidityMin;
public String getTDLName() {
return TDLName;
}
public void setTDLName(String TDLName) {
this.TDLName = TDLName;
}
public String getTDLSN() {
return TDLSN;
}
public void setTDLSN(String TDLSN) {
this.TDLSN = TDLSN;
}
public String getSN() {
return SN;
}
public void setSN(String SN) {
this.SN = SN;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getAddressDetail() {
return addressDetail;
}
public void setAddressDetail(String addressDetail) {
this.addressDetail = addressDetail;
}
public String getRegionName() {
return regionName;
}
public void setRegionName(String regionName) {
this.regionName = regionName;
}
public String getAlarmType() {
return alarmType;
}
public void setAlarmType(String alarmType) {
this.alarmType = alarmType;
}
public String getTemMax() {
return temMax;
}
public void setTemMax(String temMax) {
this.temMax = temMax;
}
public String getTemMin() {
return temMin;
}
public void setTemMin(String temMin) {
this.temMin = temMin;
}
public String getHumidityMax() {
return humidityMax;
}
public void setHumidityMax(String humidityMax) {
this.humidityMax = humidityMax;
}
public String getHumidityMin() {
return humidityMin;
}
public void setHumidityMin(String humidityMin) {
this.humidityMin = humidityMin;
}
}
...@@ -4,9 +4,9 @@ public class SearchTdlVo { ...@@ -4,9 +4,9 @@ public class SearchTdlVo {
private String warehouseNo; private String warehouseNo;
private String gatewaySN; private String SN;
private String tdlSN; private String TDLSN;
public String getWarehouseNo() { public String getWarehouseNo() {
return warehouseNo; return warehouseNo;
...@@ -16,19 +16,19 @@ public class SearchTdlVo { ...@@ -16,19 +16,19 @@ public class SearchTdlVo {
this.warehouseNo = warehouseNo; this.warehouseNo = warehouseNo;
} }
public String getGatewaySN() { public String getSN() {
return gatewaySN; return SN;
} }
public void setGatewaySN(String gatewaySN) { public void setSN(String SN) {
this.gatewaySN = gatewaySN; this.SN = SN;
} }
public String getTdlSN() { public String getTDLSN() {
return tdlSN; return TDLSN;
} }
public void setTdlSN(String tdlSN) { public void setTDLSN(String TDLSN) {
this.tdlSN = tdlSN; this.TDLSN = TDLSN;
} }
} }
...@@ -34,4 +34,5 @@ public interface GatewayMapper { ...@@ -34,4 +34,5 @@ public interface GatewayMapper {
int updateCompany(UpdateGatewayCompanyVo updateGatewayCompanyVo); int updateCompany(UpdateGatewayCompanyVo updateGatewayCompanyVo);
List<GatewayOnLineVo> getByWarehouseNo(@Param("warehouseNo") String warehouseNo); List<GatewayOnLineVo> getByWarehouseNo(@Param("warehouseNo") String warehouseNo);
} }
...@@ -48,4 +48,6 @@ public interface WarehouseMapper { ...@@ -48,4 +48,6 @@ public interface WarehouseMapper {
Integer updateImg(@Param("warehouseNo")String warehouseNo,@Param("img")String img,@Param("updateTime") Long updateTime); Integer updateImg(@Param("warehouseNo")String warehouseNo,@Param("img")String img,@Param("updateTime") Long updateTime);
WarehouseDetailVo getWarehouseDetailByNo(@Param("warehouseNo") String warehouseNo); WarehouseDetailVo getWarehouseDetailByNo(@Param("warehouseNo") String warehouseNo);
DeviceMessageVo getDeviceMessage(SearchTdlVo searchTdlVo);
} }
...@@ -131,11 +131,9 @@ public class MqttListener implements MqttCallback { ...@@ -131,11 +131,9 @@ public class MqttListener implements MqttCallback {
Long tskey = Long.valueOf(tmparray[2]); Long tskey = Long.valueOf(tmparray[2]);
if(ts - tskey > 60*1000){ if(ts - tskey > 60*1000){
GWConfigWorker tmpgwconfigworker = gwconfigworkerMap.get(key); GWConfigWorker tmpgwconfigworker = gwconfigworkerMap.get(key);
tmpgwconfigworker.GCConfigClose(); Boolean boo = tmpgwconfigworker.GCConfigClose();
// Future<String> result = futureMap.get(key); if(boo)
// result.cancel(true); gwconfigworkerMap.remove(key);
// if(result.isCancelled())
// futureMap.remove(key);
} }
} }
}catch (Exception e){ }catch (Exception e){
......
...@@ -66,4 +66,6 @@ public class GatewayService { ...@@ -66,4 +66,6 @@ public class GatewayService {
public List<GatewayOnLineVo> getByWarehouseNo(String warehouseNo){ public List<GatewayOnLineVo> getByWarehouseNo(String warehouseNo){
return gatewayMapper.getByWarehouseNo(warehouseNo); return gatewayMapper.getByWarehouseNo(warehouseNo);
} }
} }
...@@ -87,4 +87,8 @@ public class WarehouseService { ...@@ -87,4 +87,8 @@ public class WarehouseService {
public WarehouseDetailVo getWarehouseDetailByNo(String warehouseNo){ public WarehouseDetailVo getWarehouseDetailByNo(String warehouseNo){
return warehouseMapper.getWarehouseDetailByNo(warehouseNo); return warehouseMapper.getWarehouseDetailByNo(warehouseNo);
} }
public DeviceMessageVo getDeviceMessage(SearchTdlVo searchTdlVo){
return warehouseMapper.getDeviceMessage(searchTdlVo);
}
} }
...@@ -149,7 +149,7 @@ public class EquipmentBindingController { ...@@ -149,7 +149,7 @@ public class EquipmentBindingController {
gpsPeriod=5; gpsPeriod=5;
gprsPeriod=15; gprsPeriod=15;
} }
ConfigCMDVo configCMDVo = new ConfigCMDVo("config",5,15,devList,bindingVo.getMode(),System.currentTimeMillis()/1000l); ConfigCMDVo configCMDVo = new ConfigCMDVo("config",gpsPeriod,gprsPeriod,devList,bindingVo.getMode(),System.currentTimeMillis()/1000l);
Map<Object,Object> map=new HashMap<>(); Map<Object,Object> map=new HashMap<>();
map.put("companyName",user.getCompanyName()); map.put("companyName",user.getCompanyName());
map.put("transportationNo",bindingVo.getTransportationNo()); map.put("transportationNo",bindingVo.getTransportationNo());
...@@ -257,6 +257,7 @@ public class EquipmentBindingController { ...@@ -257,6 +257,7 @@ public class EquipmentBindingController {
} }
@ApiOperation(value = "解绑网关",notes = "解绑网关") @ApiOperation(value = "解绑网关",notes = "解绑网关")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"), @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
......
...@@ -781,6 +781,7 @@ public class WarehouseController { ...@@ -781,6 +781,7 @@ public class WarehouseController {
return gson.toJson(fb); return gson.toJson(fb);
} }
//绑定报警联系人 //绑定报警联系人
@ApiOperation(value="绑定报警联系人",notes = "绑定报警联系人,传值:" + @ApiOperation(value="绑定报警联系人",notes = "绑定报警联系人,传值:" +
"warehouseNo:仓库编号" + "warehouseNo:仓库编号" +
...@@ -856,8 +857,7 @@ public class WarehouseController { ...@@ -856,8 +857,7 @@ public class WarehouseController {
List<String> tdls=tdlDeviceService.getByGatewaySN(gatewayOnLineVos.get(a).getSN(),gatewayOnLineVos.get(a).getType()); List<String> tdls=tdlDeviceService.getByGatewaySN(gatewayOnLineVos.get(a).getSN(),gatewayOnLineVos.get(a).getType());
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++){
// String sqls ="SELECT \"tdl\",\"T\", \"h\" FROM \"tdl_policy\".\""+device+"\" WHERE (\"tdl\" = '"+tdls.get(b)+"') ORDER BY time DESC "; String sqls ="SELECT \"tdl\",\"T\", \"h\" FROM \"tdl_policy\".\""+device+"\" WHERE (\"tdl\" = '"+tdls.get(b)+"') ORDER BY time DESC ";
String sqls ="SELECT \"tdl\",\"T\", \"h\" FROM \"tdl_policy\".\"WTD93LG_17110194\" WHERE (\"tdl\" = 'TDL-1701110082608') ORDER BY time DESC ";
QueryResult queryResults = influxDBTemplate.query(new Query(sqls, database)); QueryResult queryResults = influxDBTemplate.query(new Query(sqls, database));
WarehouseDataVo warehouseDataVo=new WarehouseDataVo(); WarehouseDataVo warehouseDataVo=new WarehouseDataVo();
...@@ -894,44 +894,6 @@ public class WarehouseController { ...@@ -894,44 +894,6 @@ public class WarehouseController {
} }
public List<WarehouseTimeAndDataVo> getData(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(parseTime(value.get(0).toString()));
warehouseTimeAndDataVo.setValue(value.get(2)==null ? "" :value.get(2).toString());
historyDataList.add(warehouseTimeAndDataVo);
}
return historyDataList;
}
public List<WarehouseTimeAndDataVo> getDatas(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(parseTime(value.get(0).toString()));
warehouseTimeAndDataVo.setValue(value.get(3)==null ? "" :value.get(3).toString());
historyDataList.add(warehouseTimeAndDataVo);
}
return historyDataList;
}
//解析数据格式
public List<List<Object>> getValues( QueryResult queryResult){
List<List<Object>> values = new ArrayList<>();
for(QueryResult.Result result : queryResult.getResults()){
if(result.getSeries() !=null){
for (QueryResult.Series series : result.getSeries()) {
if(series !=null){
values= series.getValues();
}
}
}
}
return values;
}
//货物仓库某一tdl的温湿度 //货物仓库某一tdl的温湿度
@ApiOperation(value="绑定报警联系人",notes = "绑定报警联系人,传值:" + @ApiOperation(value="绑定报警联系人",notes = "绑定报警联系人,传值:" +
...@@ -953,30 +915,36 @@ public class WarehouseController { ...@@ -953,30 +915,36 @@ public class WarehouseController {
return gson.toJson(fb); return gson.toJson(fb);
} }
//判断网关和tdl是否存在 //判断网关和tdl是否存在
if (StringUtils.isEmpty(searchTdlVo.getGatewaySN())) { if (StringUtils.isEmpty(searchTdlVo.getSN())) {
fb.setCode(0); fb.setCode(0);
fb.setMessage("网关编号不能为空"); fb.setMessage("网关编号不能为空");
return gson.toJson(fb); return gson.toJson(fb);
} }
if(StringUtils.isEmpty(searchTdlVo.getTdlSN())) { if(StringUtils.isEmpty(searchTdlVo.getTDLSN())) {
fb.setCode(0); fb.setCode(0);
fb.setMessage("传感器编号不能为空"); fb.setMessage("传感器编号不能为空");
return gson.toJson(fb); return gson.toJson(fb);
} }
//获取tdl的信息 //获取tdl的信息
DeviceMessageVo deviceMessageVo = warehouseService.getDeviceMessage(searchTdlVo);
TdlDataVo tdlDataVo = new TdlDataVo(); TdlDataVo tdlDataVo = new TdlDataVo();
if(deviceMessageVo == null){
return tdlDataVo;
}
tdlDataVo.setgSN(deviceMessageVo.getSN());
tdlDataVo.setTdl(deviceMessageVo.getTDLName());
tdlDataVo.setWarehouseName(deviceMessageVo.getWarehouseName());
List<GraphicDataVo> graphicDataList = new ArrayList<>(); List<GraphicDataVo> graphicDataList = new ArrayList<>();
List<TdlDataVo.HistoryDataVo> historyDataList = new ArrayList<>(); List<TdlDataVo.HistoryDataVo> historyDataList = new ArrayList<>();
//获取TDL数据 //获取TDL数据
// String sql = "SELECT \"T\",\"h\" FROM \"tdl_policy\".\"WTD93LG_17110194\" where \"tdl\" = \'TDL-"+searchTdlVo.getTdlSN()+"\' order by time "; // String sql = "SELECT \"T\",\"h\" FROM \"tdl_policy\".\""+deviceMessageVo.getType()+"_"+deviceMessageVo.getSN()+"\" where \"tdl\" = \'TDL-"+searchTdlVo.getTdlSN()+"\' order by time ";
String sql = "SELECT \"T\",\"h\" FROM \"tdl_policy\".\"WTD93LG_17110194\" where \"tdl\" = \'TDL-1706190193608\' order by time "; String sql = "SELECT \"T\",\"h\" FROM \"tdl_policy\".\"WTD93LG_17110194\" where \"tdl\" = \'TDL-1706190193608\' order by time ";
QueryResult queryResult = influxDBTemplate.query(new Query(sql,database)); QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
if(queryResult.getResults().get(0).getSeries()== null){ if(queryResult.getResults().get(0).getSeries()== null){
tdlDataVo.setGraphicDataList(graphicDataList); tdlDataVo.setGraphicDataList(graphicDataList);
tdlDataVo.setHistoryDataList(historyDataList); tdlDataVo.setHistoryDataList(historyDataList);
} }
tdlDataVo = parseData(queryResult); tdlDataVo = parseData(queryResult,deviceMessageVo.getHumidityMax(),deviceMessageVo.getHumidityMin(),deviceMessageVo.getTemMax(),deviceMessageVo.getTemMin());
return tdlDataVo; return tdlDataVo;
} }
...@@ -1009,7 +977,6 @@ public class WarehouseController { ...@@ -1009,7 +977,6 @@ public class WarehouseController {
//生成仓库编号 //生成仓库编号
public String getWarehouseNo(){ public String getWarehouseNo(){
String warehouseNo = "WH" +System.currentTimeMillis() ; String warehouseNo = "WH" +System.currentTimeMillis() ;
...@@ -1022,6 +989,46 @@ public class WarehouseController { ...@@ -1022,6 +989,46 @@ public class WarehouseController {
return warehouseNo; return warehouseNo;
} }
public List<WarehouseTimeAndDataVo> getData(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(parseTime(value.get(0).toString()));
warehouseTimeAndDataVo.setValue(value.get(2)==null ? "" :value.get(2).toString());
historyDataList.add(warehouseTimeAndDataVo);
}
return historyDataList;
}
public List<WarehouseTimeAndDataVo> getDatas(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<WarehouseTimeAndDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
WarehouseTimeAndDataVo warehouseTimeAndDataVo = new WarehouseTimeAndDataVo();
warehouseTimeAndDataVo.setTime(parseTime(value.get(0).toString()));
warehouseTimeAndDataVo.setValue(value.get(3)==null ? "" :value.get(3).toString());
historyDataList.add(warehouseTimeAndDataVo);
}
return historyDataList;
}
//解析数据格式
public List<List<Object>> getValues( QueryResult queryResult){
List<List<Object>> values = new ArrayList<>();
for(QueryResult.Result result : queryResult.getResults()){
if(result.getSeries() !=null){
for (QueryResult.Series series : result.getSeries()) {
if(series !=null){
values= series.getValues();
}
}
}
}
return values;
}
//解析时间 //解析时间
public String parseTime(String time){ public String parseTime(String time){
String dateResult =null; String dateResult =null;
...@@ -1102,8 +1109,7 @@ public class WarehouseController { ...@@ -1102,8 +1109,7 @@ public class WarehouseController {
} }
} }
public TdlDataVo parseData(QueryResult queryResult,String humidityMax,String humidityMin,String tempMax,String tempMin){
public TdlDataVo parseData(QueryResult queryResult){
TdlDataVo tdlDataVo = new TdlDataVo(); TdlDataVo tdlDataVo = new TdlDataVo();
List<List<Object>> values = new ArrayList<>(); List<List<Object>> values = new ArrayList<>();
for(QueryResult.Result result : queryResult.getResults()){ for(QueryResult.Result result : queryResult.getResults()){
...@@ -1122,9 +1128,13 @@ public class WarehouseController { ...@@ -1122,9 +1128,13 @@ public class WarehouseController {
List<GraphicDataVo> graphicDataList = new ArrayList<>(); List<GraphicDataVo> graphicDataList = new ArrayList<>();
GraphicDataVo temp = new GraphicDataVo(); GraphicDataVo temp = new GraphicDataVo();
temp.setDescption("temp"); temp.setDescption("temp");
temp.setMax(tempMax);
temp.setMin(tempMin);
List<HistoryData> tempData = new ArrayList<>(); List<HistoryData> tempData = new ArrayList<>();
GraphicDataVo hum = new GraphicDataVo(); GraphicDataVo hum = new GraphicDataVo();
hum.setDescption("humidity"); hum.setDescption("humidity");
hum.setMin(humidityMin);
hum.setMax(humidityMax);
List<HistoryData> humpData = new ArrayList<>(); List<HistoryData> humpData = new ArrayList<>();
List<TdlDataVo.HistoryDataVo> historyDataList = new ArrayList<>(); List<TdlDataVo.HistoryDataVo> historyDataList = new ArrayList<>();
for (int i =0,length = values.size();i<length;i++){ for (int i =0,length = values.size();i<length;i++){
...@@ -1142,6 +1152,10 @@ public class WarehouseController { ...@@ -1142,6 +1152,10 @@ public class WarehouseController {
hump.setTime(time); hump.setTime(time);
hump.setValue(values.get(i).get(2)==null ?"" :values.get(i).get(2).toString()); hump.setValue(values.get(i).get(2)==null ?"" :values.get(i).get(2).toString());
humpData.add(hump); humpData.add(hump);
if( i == length-1){
tdlDataVo.setHumidity(values.get(i).get(2)==null ?"" :values.get(i).get(2).toString());
tdlDataVo.setTemp(values.get(i).get(1)==null ?"" :values.get(i).get(1).toString());
}
} }
temp.setHistoryDataList(tempData); temp.setHistoryDataList(tempData);
hum.setHistoryDataList(humpData); hum.setHistoryDataList(humpData);
......
...@@ -217,3 +217,5 @@ deleteTDLSuccess=\u5220\u9664\u7F51\u5173\u6210\u529F ...@@ -217,3 +217,5 @@ deleteTDLSuccess=\u5220\u9664\u7F51\u5173\u6210\u529F
deleteTDLFailure=\u5220\u9664\u7F51\u5173\u5931\u8D25 deleteTDLFailure=\u5220\u9664\u7F51\u5173\u5931\u8D25
updateTDLCompanySuccess=\u7F51\u5173\u5206\u914D\u516C\u53F8\u6210\u529F updateTDLCompanySuccess=\u7F51\u5173\u5206\u914D\u516C\u53F8\u6210\u529F
updateTDLCompanyFailure=\u7F51\u5173\u5206\u914D\u516C\u53F8\u5931\u8D25 updateTDLCompanyFailure=\u7F51\u5173\u5206\u914D\u516C\u53F8\u5931\u8D25
#\u4ED3\u5E93
...@@ -254,13 +254,22 @@ ...@@ -254,13 +254,22 @@
<select id="getWarehouseDetailByNo" parameterType="String" resultType="com.example.tdl.domain.vo.WarehouseDetailVo"> <select id="getWarehouseDetailByNo" parameterType="String" resultType="com.example.tdl.domain.vo.WarehouseDetailVo">
SELECT warehouseNo,warehouseName,c.country,c.city,addressDetail,(SELECT COUNT(id) from gateway_warehouse WHERE warehouse_id=w.id) gatewayCounts, SELECT warehouseNo,warehouseName,c.country,c.city,addressDetail,(SELECT COUNT(id) from gateway_warehouse WHERE warehouse_id=w.id) gatewayCounts,
(SELECT COUNT(id) FROM tdldevice WHERE warehouse_id=w.id) tdlCounts,property,type,hardwareLevel,areaPlanIndoor (SELECT COUNT(id) FROM tdldevice WHERE warehouse_id=w.id) tdlCounts,,property,type,hardwareLevel,areaPlanIndoor
from warehouse w INNER JOIN city c ON w.city_id=c.id from warehouse w INNER JOIN city c ON w.city_id=c.id
where warehouseNo=#{warehouseNo,jdbcType=VARCHAR} where warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
</select> </select>
<select id="getDeviceMessage" parameterType="com.example.tdl.domain.vo.SearchTdlVo" resultType="com.example.tdl.domain.vo.DeviceMessageVo">
SELECT t.TDLName,g.SN,g.type,w.warehouseName,w.addressDetail,(SELECT regionName from region where w.region_id=id) regionName,
a.alarmType,a.temMax,a.temMin,a.humidityMax,a.humidityMin
from gateway_warehouse gw INNER JOIN warehouse w ON gw.warehouse_id=w.id,gateway g,tdldevice t,alarm a
where t.gateway_id=g.id
AND gw.gateway_id=g.id
AND w.alarm_id=a.id
AND warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
AND g.SN=#{SN,jdbcType=VARCHAR}
AND t.TDLSN=#{TDLSN,jdbcType=VARCHAR}
</select>
</mapper> </mapper>
\ No newline at end of file
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