Commit 03384116 authored by zhuangzhuang's avatar zhuangzhuang

5.29--仓库详细数据

parent d89c8b6a
package com.example.tdl.domain.vo;
public class AlarmContactsVo {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
...@@ -6,14 +6,16 @@ public class DeviceVo { ...@@ -6,14 +6,16 @@ public class DeviceVo {
private String tdl; private String tdl;
private String tdlSN;
private String SN; private String SN;
private String type; private String type;
private String device; private String device;
private Long startTime;
private Long endTime;
public String getWarehouseNo() { public String getWarehouseNo() {
return warehouseNo; return warehouseNo;
} }
...@@ -31,14 +33,6 @@ public class DeviceVo { ...@@ -31,14 +33,6 @@ public class DeviceVo {
this.tdl = tdl; this.tdl = tdl;
} }
public String getTdlSN() {
return tdlSN;
}
public void setTdlSN(String tdlSN) {
this.tdlSN = tdlSN;
}
public String getSN() { public String getSN() {
return SN; return SN;
} }
...@@ -62,4 +56,20 @@ public class DeviceVo { ...@@ -62,4 +56,20 @@ public class DeviceVo {
public void setDevice(String device) { public void setDevice(String device) {
this.device = device; this.device = device;
} }
public Long getStartTime() {
return startTime;
}
public void setStartTime(Long startTime) {
this.startTime = startTime;
}
public Long getEndTime() {
return endTime;
}
public void setEndTime(Long endTime) {
this.endTime = endTime;
}
} }
package com.example.tdl.domain.vo;
import java.util.List;
public class GraphicDataVo {
private String descption;
private String max;
private String min;
private List<HistoryData> historyDataList;
public String getDescption() {
return descption;
}
public void setDescption(String descption) {
this.descption = descption;
}
public String getMax() {
return max;
}
public void setMax(String max) {
this.max = max;
}
public String getMin() {
return min;
}
public void setMin(String min) {
this.min = min;
}
public List<HistoryData> getHistoryDataList() {
return historyDataList;
}
public void setHistoryDataList(List<HistoryData> historyDataList) {
this.historyDataList = historyDataList;
}
}
package com.example.tdl.domain.vo;
public class SearchTdlVo {
private String warehouseNo;
private String gatewaySN;
private String tdlSN;
public String getWarehouseNo() {
return warehouseNo;
}
public void setWarehouseNo(String warehouseNo) {
this.warehouseNo = warehouseNo;
}
public String getGatewaySN() {
return gatewaySN;
}
public void setGatewaySN(String gatewaySN) {
this.gatewaySN = gatewaySN;
}
public String getTdlSN() {
return tdlSN;
}
public void setTdlSN(String tdlSN) {
this.tdlSN = tdlSN;
}
}
...@@ -4,14 +4,28 @@ public class SimpleWarehouseVo { ...@@ -4,14 +4,28 @@ public class SimpleWarehouseVo {
private String warehouseNo; private String warehouseNo;
private String img;
private String warehouseName; private String warehouseName;
private String regions; private String regions;
private String country;
private String city;
private Integer count; private Integer count;
private String property;//属性
private String type;//类型
private String hardwareLevel;//硬件等级
private Double areaPlanIndoor;//实际室内总面积
private String temp;
private String humidity;
public String getWarehouseNo() { public String getWarehouseNo() {
return warehouseNo; return warehouseNo;
} }
...@@ -20,13 +34,6 @@ public class SimpleWarehouseVo { ...@@ -20,13 +34,6 @@ public class SimpleWarehouseVo {
this.warehouseNo = warehouseNo; this.warehouseNo = warehouseNo;
} }
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getWarehouseName() { public String getWarehouseName() {
return warehouseName; return warehouseName;
...@@ -44,6 +51,22 @@ public class SimpleWarehouseVo { ...@@ -44,6 +51,22 @@ public class SimpleWarehouseVo {
this.regions = regions; this.regions = regions;
} }
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Integer getCount() { public Integer getCount() {
return count; return count;
} }
...@@ -51,4 +74,52 @@ public class SimpleWarehouseVo { ...@@ -51,4 +74,52 @@ public class SimpleWarehouseVo {
public void setCount(Integer count) { public void setCount(Integer count) {
this.count = count; this.count = count;
} }
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getHardwareLevel() {
return hardwareLevel;
}
public void setHardwareLevel(String hardwareLevel) {
this.hardwareLevel = hardwareLevel;
}
public Double getAreaPlanIndoor() {
return areaPlanIndoor;
}
public void setAreaPlanIndoor(Double areaPlanIndoor) {
this.areaPlanIndoor = areaPlanIndoor;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getHumidity() {
return humidity;
}
public void setHumidity(String humidity) {
this.humidity = humidity;
}
} }
package com.example.tdl.domain.vo;
import java.util.List;
public class TdlDataVo {
private String gSN;
private String tdl;
private String warehouseName;
private String temp;
private String humidity;
private List<HistoryDataVo> historyDataList;
private List<GraphicDataVo> graphicDataList;
public static class HistoryDataVo{
private Long time;
private String temp;
private String humidity;
public Long getTime() {
return time;
}
public void setTime(Long time) {
this.time = time;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getHumidity() {
return humidity;
}
public void setHumidity(String humidity) {
this.humidity = humidity;
}
}
public String getgSN() {
return gSN;
}
public void setgSN(String gSN) {
this.gSN = gSN;
}
public String getTdl() {
return tdl;
}
public void setTdl(String tdl) {
this.tdl = tdl;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getHumidity() {
return humidity;
}
public void setHumidity(String humidity) {
this.humidity = humidity;
}
public List<HistoryDataVo> getHistoryDataList() {
return historyDataList;
}
public void setHistoryDataList(List<HistoryDataVo> historyDataList) {
this.historyDataList = historyDataList;
}
public List<GraphicDataVo> getGraphicDataList() {
return graphicDataList;
}
public void setGraphicDataList(List<GraphicDataVo> graphicDataList) {
this.graphicDataList = graphicDataList;
}
}
...@@ -8,7 +8,7 @@ public class WareHouseByTermVo { ...@@ -8,7 +8,7 @@ public class WareHouseByTermVo {
private String city; private String city;
private String alarm; private String gSN;
private String companyName; private String companyName;
...@@ -36,12 +36,12 @@ public class WareHouseByTermVo { ...@@ -36,12 +36,12 @@ public class WareHouseByTermVo {
this.city = city; this.city = city;
} }
public String getAlarm() { public String getgSN() {
return alarm; return gSN;
} }
public void setAlarm(String alarm) { public void setgSN(String gSN) {
this.alarm = alarm; this.gSN = gSN;
} }
public String getCompanyName() { public String getCompanyName() {
......
...@@ -17,6 +17,14 @@ public class WarehouseDetailVo { ...@@ -17,6 +17,14 @@ public class WarehouseDetailVo {
private Integer tdlCounts; private Integer tdlCounts;
private String property;//属性
private String type;//类型
private String hardwareLevel;//硬件等级
private Double areaPlanIndoor;//实际室内总面积
private List<GatewayOnLineVo> gatewayOnLineVos; private List<GatewayOnLineVo> gatewayOnLineVos;
public List<GatewayOnLineVo> getGatewayOnLineVos() { public List<GatewayOnLineVo> getGatewayOnLineVos() {
...@@ -82,4 +90,36 @@ public class WarehouseDetailVo { ...@@ -82,4 +90,36 @@ public class WarehouseDetailVo {
public void setTdlCounts(Integer tdlCounts) { public void setTdlCounts(Integer tdlCounts) {
this.tdlCounts = tdlCounts; this.tdlCounts = tdlCounts;
} }
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getHardwareLevel() {
return hardwareLevel;
}
public void setHardwareLevel(String hardwareLevel) {
this.hardwareLevel = hardwareLevel;
}
public Double getAreaPlanIndoor() {
return areaPlanIndoor;
}
public void setAreaPlanIndoor(Double areaPlanIndoor) {
this.areaPlanIndoor = areaPlanIndoor;
}
} }
...@@ -6,7 +6,19 @@ public class WarehouseUserVo { ...@@ -6,7 +6,19 @@ public class WarehouseUserVo {
private String warehouseNo; private String warehouseNo;
private List<String> userNameList; private List<UserVo> userNameList;
public static class UserVo{
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
public String getWarehouseNo() { public String getWarehouseNo() {
return warehouseNo; return warehouseNo;
...@@ -16,11 +28,11 @@ public class WarehouseUserVo { ...@@ -16,11 +28,11 @@ public class WarehouseUserVo {
this.warehouseNo = warehouseNo; this.warehouseNo = warehouseNo;
} }
public List<String> getUserNameList() { public List<UserVo> getUserNameList() {
return userNameList; return userNameList;
} }
public void setUserNameList(List<String> userNameList) { public void setUserNameList(List<UserVo> userNameList) {
this.userNameList = userNameList; this.userNameList = userNameList;
} }
} }
...@@ -37,6 +37,8 @@ public interface WarehouseMapper { ...@@ -37,6 +37,8 @@ public interface WarehouseMapper {
int addUser(Map<Object,Object> map); int addUser(Map<Object,Object> map);
List<AlarmContactsVo> getAlarmContacts(String warehouseNo);
ResultWarehouseVo getByWarehouseName(@Param("warehouseName") String warehouseName, @Param("companyName") String companyName); ResultWarehouseVo getByWarehouseName(@Param("warehouseName") String warehouseName, @Param("companyName") String companyName);
List<ResultWarehouseVo> getByAlarm(DelAlarmVo delAlarmVo); List<ResultWarehouseVo> getByAlarm(DelAlarmVo delAlarmVo);
......
...@@ -64,6 +64,10 @@ public class WarehouseService { ...@@ -64,6 +64,10 @@ public class WarehouseService {
return warehouseMapper.addUser(map); return warehouseMapper.addUser(map);
} }
public List<AlarmContactsVo> getAlarmContacts(String warehouseNo){
return warehouseMapper.getAlarmContacts(warehouseNo);
}
public ResultWarehouseVo getByWarehouseName(String warehouseName,String companyName){ public ResultWarehouseVo getByWarehouseName(String warehouseName,String companyName){
return warehouseMapper.getByWarehouseName(warehouseName,companyName); return warehouseMapper.getByWarehouseName(warehouseName,companyName);
} }
......
...@@ -122,7 +122,7 @@ public class EquipmentBindingController { ...@@ -122,7 +122,7 @@ public class EquipmentBindingController {
} }
//判断当前tdl是否有网关在使用 //判断当前tdl是否有网关在使用
ResultTDLDeviceVo resultTDLDeviceVo = tdlDeviceService.getByTDLSN(bindingVo.getTDLSN()); ResultTDLDeviceVo resultTDLDeviceVo = tdlDeviceService.getByTDLSN(bindingVo.getTDLSN());
if(!StringUtils.isEmpty(resultTDLDeviceVo.getGatewaySN())){ if(resultTDLDeviceVo != null &&!StringUtils.isEmpty(resultTDLDeviceVo.getGatewaySN())){
fb.setCode(0); fb.setCode(0);
fb.setMessage("该TDL已经被使用"); fb.setMessage("该TDL已经被使用");
return gson.toJson(fb); return gson.toJson(fb);
...@@ -137,6 +137,18 @@ public class EquipmentBindingController { ...@@ -137,6 +137,18 @@ public class EquipmentBindingController {
//获取gateway下的所有tdl的编号 //获取gateway下的所有tdl的编号
List<String> devList = tdlDeviceService.getByGatewaySN(bindingVo.getSN(),bindingVo.getType()); List<String> devList = tdlDeviceService.getByGatewaySN(bindingVo.getSN(),bindingVo.getType());
devList.add("TDL-"+bindingVo.getTDLSN()); devList.add("TDL-"+bindingVo.getTDLSN());
String alarmScene = "";
Integer gpsPeriod = null;
Integer gprsPeriod = null;
if(bindingVo.getMode() == 2){
alarmScene="仓库";
gpsPeriod = 43200;
gprsPeriod= 60;
}else{
alarmScene="运输";
gpsPeriod=5;
gprsPeriod=15;
}
ConfigCMDVo configCMDVo = new ConfigCMDVo("config",5,15,devList,bindingVo.getMode(),System.currentTimeMillis()/1000l); ConfigCMDVo configCMDVo = new ConfigCMDVo("config",5,15,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());
...@@ -157,10 +169,9 @@ public class EquipmentBindingController { ...@@ -157,10 +169,9 @@ public class EquipmentBindingController {
Map<Object,Object> msg=new HashMap<>(); Map<Object,Object> msg=new HashMap<>();
msg.put("msg",map.get("msg")); msg.put("msg",map.get("msg"));
if (msg.get("msg").equals("配置网关成功")){ if (msg.get("msg").equals("配置网关成功")){
fb.setCode(1);
fb.setMessage("配置网关成功");
//根据报警类型货报警信息 //根据报警类型货报警信息
ResultAlarmVo alarmVo = alarmService.getByTypeAndScene(bindingVo.getAlarmType(),"运输",user.getCompanyName());
ResultAlarmVo alarmVo = alarmService.getByTypeAndScene(bindingVo.getAlarmType(),alarmScene,user.getCompanyName());
for(String alias :list){ for(String alias :list){
List<AlarmRuleVo> alarmRuleVos = new ArrayList<>(); List<AlarmRuleVo> alarmRuleVos = new ArrayList<>();
AlarmRuleVo alarmRuleVo = new AlarmRuleVo(); AlarmRuleVo alarmRuleVo = new AlarmRuleVo();
...@@ -186,6 +197,8 @@ public class EquipmentBindingController { ...@@ -186,6 +197,8 @@ public class EquipmentBindingController {
alarmRuleVos.add(alarmRuleVo); alarmRuleVos.add(alarmRuleVo);
//向redis中写入报警信息 //向redis中写入报警信息
alarmRedisService.hmSet("TDL/"+bindingVo.getType()+"/" +bindingVo.getSN()+"/Data","TDL-" +bindingVo.getTDLSN()+"_" +alias,gson.toJson(alarmRuleVos)); alarmRedisService.hmSet("TDL/"+bindingVo.getType()+"/" +bindingVo.getSN()+"/Data","TDL-" +bindingVo.getTDLSN()+"_" +alias,gson.toJson(alarmRuleVos));
fb.setCode(1);
fb.setMessage("配置网关成功");
} }
}else{ }else{
fb.setCode(0); fb.setCode(0);
...@@ -196,8 +209,7 @@ public class EquipmentBindingController { ...@@ -196,8 +209,7 @@ public class EquipmentBindingController {
@ApiOperation(value = "解绑tdl",notes = "解绑tdl")
@ApiOperation(value = "重置tdl",notes = "重置tdl")
@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"),
}) })
......
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; ...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.example.tdl.domain.dto.CommFeedback; import com.example.tdl.domain.dto.CommFeedback;
import com.example.tdl.domain.vo.*; import com.example.tdl.domain.vo.*;
import com.example.tdl.entity.Gateway;
import com.example.tdl.service.*; import com.example.tdl.service.*;
import com.example.tdl.service.redis.InfoRedisService; import com.example.tdl.service.redis.InfoRedisService;
import com.example.tdl.service.redis.TokenRedisService; import com.example.tdl.service.redis.TokenRedisService;
...@@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -21,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.influxdb.InfluxDBTemplate; import org.springframework.data.influxdb.InfluxDBTemplate;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.print.attribute.standard.RequestingUserName;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -101,6 +103,7 @@ public class WarehouseController { ...@@ -101,6 +103,7 @@ public class WarehouseController {
return warehouseService.getAll(userRedisVo.getCompanyName()); return warehouseService.getAll(userRedisVo.getCompanyName());
} }
//根据条件查询仓库信息 //根据条件查询仓库信息
@ApiOperation(value = "根据条件查询仓库信息",notes = "根据条件查询仓库信息,传值说明:" + @ApiOperation(value = "根据条件查询仓库信息",notes = "根据条件查询仓库信息,传值说明:" +
" warehouseName:仓库名," + " warehouseName:仓库名," +
...@@ -172,23 +175,50 @@ public class WarehouseController { ...@@ -172,23 +175,50 @@ public class WarehouseController {
for( int i = 0,length= simpleWarehouseVos.size();i<length;i++ ){ for( int i = 0,length= simpleWarehouseVos.size();i<length;i++ ){
//判断是否已经绑定设备 //判断是否已经绑定设备
if(simpleWarehouseVos.get(i).getCount() == 0){ if(simpleWarehouseVos.get(i).getCount() == 0){
simpleWarehouseVos.get(i).setTemp("~");
simpleWarehouseVos.get(i).setTemp("~");
continue; continue;
} }
List<DeviceVo> list = warehouseService.getDevice(simpleWarehouseVos.get(i).getWarehouseNo()); List<DeviceVo> list = warehouseService.getDevice(simpleWarehouseVos.get(i).getWarehouseNo());
if(list.size() == 0){ if(list.size() == 0){
simpleWarehouseVos.get(i).setTemp("~");
simpleWarehouseVos.get(i).setTemp("~");
continue; continue;
} }
String sql = ""; String sql = "";
for(int j = 0,len=list.size();j<len;j++){ for(int j = 0,len=list.size();j<len;j++){
if( StringUtils.isEmpty(list.get(i).getTdlSN())){ if( StringUtils.isEmpty(list.get(i).getTdl())){
simpleWarehouseVos.get(i).setTemp("~");
simpleWarehouseVos.get(i).setTemp("~");
continue; continue;
} }
Long time = (System.currentTimeMillis()-10*60*1000)*1000000l;
String tdl = list.get(i).getTdl();
String t = tdl.replace(",","\' or \"tdl\" = \'");
// sql = "SELECT \"T\",\"h\" FROM \"tdl_policy\".\"WTD93LG_17110194\" where \"tdl\" = \'TDL-1706190193608\' or \"tdl\" = \'TDL-1701110082608\' GROUP BY \"tdl\" order by time desc limit 1";
sql = "SELECT \"T\",\"h\" FROM \"tdl_policy\".\""+list.get(i).getDevice()+"\" where \"tdl\" = \'"+ t +"\' GROUP BY \"tdl\" order by time desc limit 1";
}
if(StringUtils.isEmpty(sql)){
simpleWarehouseVos.get(i).setTemp("~");
simpleWarehouseVos.get(i).setTemp("~");
continue;
} }
QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
if(queryResult.getResults().get(0).getSeries()== null){
simpleWarehouseVos.get(i).setTemp("~");
simpleWarehouseVos.get(i).setTemp("~");
continue;
} }
//解析温湿度数据
SimpleWarehouseVo simpleWarehouseVo = dataData(queryResult);
simpleWarehouseVos.get(i).setHumidity(simpleWarehouseVo.getHumidity());
simpleWarehouseVos.get(i).setTemp(simpleWarehouseVo.getTemp());
return gson.toJson(simpleWarehouseVos);
} }
return simpleWarehouseVos;
}
//根据仓库编号获取仓库信息 //根据仓库编号获取仓库信息
@ApiOperation(value = "根据仓库编号获取仓库信息",notes = "根据仓库编号获取仓库信息,传值说明:") @ApiOperation(value = "根据仓库编号获取仓库信息",notes = "根据仓库编号获取仓库信息,传值说明:")
...@@ -250,6 +280,8 @@ public class WarehouseController { ...@@ -250,6 +280,8 @@ public class WarehouseController {
return warehouseDetailVo; return warehouseDetailVo;
} }
//获取某个仓库的网关 //获取某个仓库的网关
@ApiOperation(value="添加网关",notes = "添加网关,传值:" + @ApiOperation(value="添加网关",notes = "添加网关,传值:" +
"warehouseNo:仓库编号" + "warehouseNo:仓库编号" +
...@@ -474,6 +506,8 @@ public class WarehouseController { ...@@ -474,6 +506,8 @@ public class WarehouseController {
} }
//根据仓库编号修改仓库信息 //根据仓库编号修改仓库信息
@ApiOperation(value = "根据仓库编号修改仓库信息",notes = "根据仓库编号修改仓库信息,updatTime不用传,传值说明:" + @ApiOperation(value = "根据仓库编号修改仓库信息",notes = "根据仓库编号修改仓库信息,updatTime不用传,传值说明:" +
" warehouseNo:需要修改的仓库编号," + " warehouseNo:需要修改的仓库编号," +
...@@ -706,7 +740,8 @@ public class WarehouseController { ...@@ -706,7 +740,8 @@ public class WarehouseController {
return gson.toJson(fb); return gson.toJson(fb);
} }
//添加网关
@ApiOperation(value="添加网关",notes = "添加网关,传值:" + @ApiOperation(value="添加网关",notes = "添加网关,传值:" +
"warehouseNo:仓库编号" + "warehouseNo:仓库编号" +
"SN:网关编号") "SN:网关编号")
...@@ -786,12 +821,12 @@ public class WarehouseController { ...@@ -786,12 +821,12 @@ public class WarehouseController {
} }
String userNameVar = ""; String userNameVar = "";
for(int i = 0,length=warehouseUserVo.getUserNameList().size();i<length;i++){ for(int i = 0,length=warehouseUserVo.getUserNameList().size();i<length;i++){
if(userService.getByUserName(warehouseUserVo.getUserNameList().get(i)) == null){ if(userService.getByUserName(warehouseUserVo.getUserNameList().get(i).getUserName()) == null){
fb.setCode(0); fb.setCode(0);
fb.setMessage("用户名不存在"); fb.setMessage("用户名不存在");
return gson.toJson(fb); return gson.toJson(fb);
} }
userNameVar = userNameVar +warehouseUserVo.getUserNameList().get(i) +"&"; userNameVar = userNameVar +warehouseUserVo.getUserNameList().get(i).getUserName() +" ";
} }
Map<Object,Object> map=new HashMap<>(); Map<Object,Object> map=new HashMap<>();
map.put("warehouseNo",warehouseUserVo.getWarehouseNo()); map.put("warehouseNo",warehouseUserVo.getWarehouseNo());
...@@ -810,15 +845,6 @@ public class WarehouseController { ...@@ -810,15 +845,6 @@ public class WarehouseController {
return gson.toJson(fb); return gson.toJson(fb);
} }
// String tdl="";
// for (int i=0;i<tdls.size();i++){
// if (i!=tdls.size()-1){
// tdl=tdl+tdls.get(i)+"' or \"tdl\"='";
// }else{
// tdl=tdl+tdls.get(i);
// }
// }
//根据仓库编号获取仓库实时数据 //根据仓库编号获取仓库实时数据
@ApiOperation(value = "根据仓库编号获取仓库信息",notes = "根据仓库编号获取仓库信息,传值说明:") @ApiOperation(value = "根据仓库编号获取仓库信息",notes = "根据仓库编号获取仓库信息,传值说明:")
...@@ -913,6 +939,83 @@ public class WarehouseController { ...@@ -913,6 +939,83 @@ public class WarehouseController {
return values; return values;
} }
//货物仓库某一tdl的温湿度
@ApiOperation(value="绑定报警联系人",notes = "绑定报警联系人,传值:" +
"warehouseNo:仓库编号" +
"userNameList:用户名的集合")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@PostMapping("/getTdlData")
public Object getTdlData(@RequestBody SearchTdlVo searchTdlVo ,HttpServletRequest request){
if (StringUtils.isEmpty(searchTdlVo.getWarehouseNo())){
fb.setCode(0);
fb.setMessage("仓库编号不能为空");
return gson.toJson(fb);
}
if(warehouseService.getWarehouseNo(searchTdlVo.getWarehouseNo()) ==0){
fb.setCode(0);
fb.setMessage("仓库编号不存在");
return gson.toJson(fb);
}
//判断网关和tdl是否存在
if (StringUtils.isEmpty(searchTdlVo.getGatewaySN())) {
fb.setCode(0);
fb.setMessage("网关编号不能为空");
return gson.toJson(fb);
}
if(StringUtils.isEmpty(searchTdlVo.getTdlSN())) {
fb.setCode(0);
fb.setMessage("传感器编号不能为空");
return gson.toJson(fb);
}
//获取tdl的信息
TdlDataVo tdlDataVo = new TdlDataVo();
List<GraphicDataVo> graphicDataList = new ArrayList<>();
List<TdlDataVo.HistoryDataVo> historyDataList = new ArrayList<>();
//获取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\".\"WTD93LG_17110194\" where \"tdl\" = \'TDL-1706190193608\' order by time ";
QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
if(queryResult.getResults().get(0).getSeries()== null){
tdlDataVo.setGraphicDataList(graphicDataList);
tdlDataVo.setHistoryDataList(historyDataList);
}
tdlDataVo = parseData(queryResult);
return tdlDataVo;
}
//根据仓库获取用户
@ApiOperation(value="获取报警联系人",notes = "获取报警联系人,传值:仓库编号")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@PostMapping("/getAlarmContacts")
public Object getAlarmContacts(@RequestBody String warehouseNo ,HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if (StringUtils.isEmpty(warehouseNo)){
fb.setCode(0);
fb.setMessage("仓库编号不能为空");
return gson.toJson(fb);
}
JSONObject jsonObject= JSON.parseObject(warehouseNo);
warehouseNo=(String)jsonObject.get("warehouseNo");
if(warehouseService.getWarehouseNo(warehouseNo) ==0){
fb.setCode(0);
fb.setMessage("仓库编号不存在");
return gson.toJson(fb);
}
return warehouseService.getAlarmContacts(warehouseNo);
}
//生成仓库编号 //生成仓库编号
public String getWarehouseNo(){ public String getWarehouseNo(){
String warehouseNo = "WH" +System.currentTimeMillis() ; String warehouseNo = "WH" +System.currentTimeMillis() ;
...@@ -949,4 +1052,129 @@ public class WarehouseController { ...@@ -949,4 +1052,129 @@ public class WarehouseController {
} }
return String.valueOf(date.getTime()); return String.valueOf(date.getTime());
} }
public SimpleWarehouseVo dataData(QueryResult queryResult){
SimpleWarehouseVo simpleWarehouseVo = new SimpleWarehouseVo();
List<List<Object>> value = new ArrayList<>();
for(QueryResult.Result result : queryResult.getResults()){
if(result.getSeries() !=null){
for (QueryResult.Series series : result.getSeries()) {
if(series !=null){
value.add(series.getValues().get(0));
}else{
continue;
}
}
}else{
continue;
}
}
List<Double> tempList = new ArrayList<>();
List<Double> humList = new ArrayList<>();
for(int i = 0,length = value.size();i<length;i++){
tempList.add(value.get(i).get(1)==null ? 0 :Double.valueOf(value.get(i).get(1).toString()));
humList.add(value.get(i).get(2)==null ? 0 :Double.valueOf(value.get(i).get(2).toString()));
}
//设置数据
simpleWarehouseVo.setTemp(getValue(tempList));
simpleWarehouseVo.setHumidity(getValue(humList));
return simpleWarehouseVo;
}
public String getValue(List<Double> data){
String s = "";
Collections.sort(data);
if(data.size() == 1){
if(data.get(0) == 0){
return "~";
}
return data.get(0) +"~" +data.get(0);
}else{
if(data.get(0)!=0 && data.get(data.size()-1)!=0){
return data.get(0) +"~" +data.get(data.size()-1);
}else{
for(int i=0;i<data.size();i++){
if(data.get(0)==0){
continue;
}else{
s=data.get(i).toString();
}
}
if(StringUtils.isEmpty(s)){
return "~";
}
return s+"~"+data.get(data.size()-1);
}
}
}
public TdlDataVo parseData(QueryResult queryResult){
TdlDataVo tdlDataVo = new TdlDataVo();
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();
}else{
continue;
}
}
}else{
continue;
}
}
List<GraphicDataVo> graphicDataList = new ArrayList<>();
GraphicDataVo temp = new GraphicDataVo();
temp.setDescption("temp");
List<HistoryData> tempData = new ArrayList<>();
GraphicDataVo hum = new GraphicDataVo();
hum.setDescption("humidity");
List<HistoryData> humpData = new ArrayList<>();
List<TdlDataVo.HistoryDataVo> historyDataList = new ArrayList<>();
for (int i =0,length = values.size();i<length;i++){
TdlDataVo.HistoryDataVo historyDataVo = new TdlDataVo.HistoryDataVo();
historyDataVo.setHumidity(values.get(i).get(2)==null ?"" :values.get(i).get(2).toString() );
historyDataVo.setTemp(values.get(i).get(1)==null ?"" :values.get(i).get(1).toString() );
String time =UTCToCST(values.get(i).get(0).toString());
historyDataVo.setTime(Long.valueOf(time));
historyDataList.add(historyDataVo);
HistoryData tem = new HistoryData();
tem.setTime(time);
tem.setValue(values.get(i).get(1)==null ?"" :values.get(i).get(1).toString());
tempData.add(tem);
HistoryData hump = new HistoryData();
hump.setTime(time);
hump.setValue(values.get(i).get(2)==null ?"" :values.get(i).get(2).toString());
humpData.add(hump);
}
temp.setHistoryDataList(tempData);
hum.setHistoryDataList(humpData);
graphicDataList.add(temp);
graphicDataList.add(hum);
tdlDataVo.setHistoryDataList(historyDataList);
tdlDataVo.setGraphicDataList(graphicDataList);
return tdlDataVo;
}
public String UTCToCST(String UTCStr) {
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();
logger.info(e.toString());
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR, calendar.get(Calendar.HOUR) + 8);
//calendar.getTime() 返回的是Date类型,也可以使用calendar.getTimeInMillis()获取时间戳
//format的格式可以任意
return String.valueOf(calendar.getTimeInMillis());
}
} }
spring.datasource.url=jdbc:mysql://192.168.1.53:3306/tdlCloud?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://192.168.1.16:3306/cy?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=root spring.datasource.password=37774020
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.jdbc.Driver
threadpool.corepoolsize = 30 threadpool.corepoolsize = 30
threadpool.maxpoolsize = 50 threadpool.maxpoolsize = 50
server.port=8092 server.port=8090
management.security.enabled=false management.security.enabled=false
......
...@@ -211,7 +211,7 @@ ...@@ -211,7 +211,7 @@
</select> </select>
<select id="getByWarehouse" parameterType="com.example.tdl.domain.vo.WareHouseByTermVo" resultType="com.example.tdl.domain.vo.SimpleWarehouseVo"> <select id="getByWarehouse" parameterType="com.example.tdl.domain.vo.WareHouseByTermVo" resultType="com.example.tdl.domain.vo.SimpleWarehouseVo">
select warehouseNo, w.img,warehouseName,CONCAT_WS("-",c.country,c.city) regions, (select count(id) from tdldevice t where t.warehouse_id = w.id ) count select warehouseNo, warehouseName,CONCAT_WS("-",c.country,c.city) regions,c.country,c.city, (select count(id) from tdldevice t where t.warehouse_id = w.id ) count,property,type,hardwareLevel,areaPlanIndoor
from warehouse w ,company c ,city ct from warehouse w ,company c ,city ct
where c.id=w.company_id where c.id=w.company_id
and ct.id = w.city_id and ct.id = w.city_id
...@@ -225,24 +225,17 @@ ...@@ -225,24 +225,17 @@
<if test="city!=null"> <if test="city!=null">
AND ct.city like CONCAT(CONCAT('%',#{city,jdbcType=VARCHAR}), '%') AND ct.city like CONCAT(CONCAT('%',#{city,jdbcType=VARCHAR}), '%')
</if> </if>
<if test="property!=null">
AND property=#{property,jdbcType=VARCHAR}
</if>
<if test="type!=null">
AND type=#{type,jdbcType=VARCHAR}
</if>
<if test="hardwareLevel!=null">
AND hardwareLevel=#{hardwareLevel,jdbcType=VARCHAR}
</if>
</select> </select>
<select id="getDevice" parameterType="String" resultType="com.example.tdl.domain.vo.DeviceVo"> <select id="getDevice" parameterType="String" resultType="com.example.tdl.domain.vo.DeviceVo">
select w.warehouseNo,CONCAT("TDL-",t.TDLSN) tdl,t.TDLSN,g.SN,g.type,CONCAT(g.type,"_",g.SN) device select w.warehouseNo,GROUP_CONCAT(CONCAT("TDL-",t.TDLSN)) tdl,t.TDLSN,g.SN,g.type,CONCAT(g.type,"_",g.SN) device,startTime,endTime
from gateway_warehouse gw,gateway g,tdldevice t,warehouse w, from gateway_warehouse gw,gateway g,tdldevice t,warehouse w,use_warehouse_log u
where gw.warehouse_id = w.id where gw.warehouse_id = w.id
and gw.gateway_id = g.id and gw.gateway_id = g.id
and t.warehouse_id = w.id and t.warehouse_id = w.id
and t.gateway_id = g.id and t.gateway_id = g.id
and u.warehouseNo = w.warehouseNo
and w.warehouseNo= #{warehouseNo,jdbcType=VARCHAR} and w.warehouseNo= #{warehouseNo,jdbcType=VARCHAR}
</select> </select>
...@@ -251,9 +244,17 @@ ...@@ -251,9 +244,17 @@
where warehouseNo= #{warehouseNo,jdbcType=VARCHAR} where warehouseNo= #{warehouseNo,jdbcType=VARCHAR}
</update> </update>
<select id="getAlarmContacts" parameterType="String" resultType="com.example.tdl.domain.vo.AlarmContactsVo">
select DISTINCT userName
from warehouse w,warehouse_and_user wu,`user` u
where w.id = wu.warehouse_id
and u.id = wu.user_id
and w.warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
</select>
<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 (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>
......
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