Commit bf136da7 authored by zhuangzhuang's avatar zhuangzhuang

6.13--优化数据查询,修改车辆bug,优化线路查询,增加首页仓库位置返回

parent 5c662b43
package com.example.tdl.domain.vo;
public class AddCarVo {
private String carNo;
private String type;
private String img;
private String companyNo;
private String remark;
public String getCarNo() {
return carNo;
}
public void setCarNo(String carNo) {
this.carNo = carNo;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getCompanyNo() {
return companyNo;
}
public void setCompanyNo(String companyNo) {
this.companyNo = companyNo;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
......@@ -19,6 +19,8 @@ public class HomePageDataVo {
private List<CircuitVo> circuitList;
private List<ResultWarehouseVo> warehouseVoList;
private List<HistogramData> histogramDataList;
public Integer getSum() {
......@@ -77,6 +79,14 @@ public class HomePageDataVo {
this.circuitList = circuitList;
}
public List<ResultWarehouseVo> getWarehouseVoList() {
return warehouseVoList;
}
public void setWarehouseVoList(List<ResultWarehouseVo> warehouseVoList) {
this.warehouseVoList = warehouseVoList;
}
public List<HistogramData> getHistogramDataList() {
return histogramDataList;
}
......
package com.example.tdl.domain.vo;
public class TruckNo {
private String carNo;
public String getCarNo() {
return carNo;
}
public void setCarNo(String carNo) {
this.carNo = carNo;
}
}
......@@ -3,6 +3,9 @@ package com.example.tdl.domain.vo;
import java.util.List;
public class WarehouseDetailVo {
private String img;
private String warehouseNo;
private String warehouseName;
......@@ -27,6 +30,14 @@ public class WarehouseDetailVo {
private List<GatewayOnLineVo> gatewayOnLineVos;
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public List<GatewayOnLineVo> getGatewayOnLineVos() {
return gatewayOnLineVos;
}
......
......@@ -9,13 +9,13 @@ import java.util.List;
@Mapper
public interface CarMapper {
List<ResultCarVo> getAll(String companyName);
List<ResultCarVo> getAll(String companyNo);
ResultCarVo getByCarNo(@Param("companyName") String companyName, @Param("carNo") String carNo);
ResultCarVo getByCarNo(@Param("companyNo") String companyNo, @Param("carNo") String carNo);
List<ResultCarVo> getByCarNoForLike(@Param("companyName") String companyName, @Param("carNo") String carNo);
List<ResultCarVo> getByCarNoForLike(@Param("companyNo") String companyNo, @Param("carNo") String carNo);
int addCar(ResultCarVo resultCarVo);
int addCar(AddCarVo resultCarVo);
int updateCar(UpdateCarVo updateAlarmVo);
......@@ -23,4 +23,6 @@ public interface CarMapper {
int updateImg(@Param("img") String img,@Param("carNo") String carNo);
List<TruckNo> getTruckNo(@Param("companyNo") String companyNo, @Param("carNo") String carNo);
}
......@@ -15,19 +15,19 @@ public class CarService {
@Autowired
private CarMapper carMapper;
public List<ResultCarVo> getAll(String companyName){
return carMapper.getAll(companyName);
public List<ResultCarVo> getAll(String companyNo){
return carMapper.getAll(companyNo);
}
public ResultCarVo getByCarNo(String companyName,String carNo){
return carMapper.getByCarNo(companyName,carNo);
public ResultCarVo getByCarNo(String companyNo,String carNo){
return carMapper.getByCarNo(companyNo,carNo);
}
public List<ResultCarVo> getByCarNoForLike(String companyName,String carNo){
return carMapper.getByCarNoForLike(companyName,carNo);
public List<ResultCarVo> getByCarNoForLike(String companyNo,String carNo){
return carMapper.getByCarNoForLike(companyNo,carNo);
}
public int addCar(ResultCarVo resultCarVo){
public int addCar(AddCarVo resultCarVo){
return carMapper.addCar(resultCarVo);
}
......@@ -43,5 +43,9 @@ public class CarService {
return carMapper.updateImg(img,carNo);
}
public List<TruckNo> getTruckNo(String companyNo,String carNo){
return carMapper.getTruckNo(companyNo,carNo);
}
}
package com.example.tdl.util;
import com.example.tdl.domain.dto.CommFeedback;
import com.example.tdl.domain.vo.*;
import com.example.tdl.service.CircuitService;
import com.example.tdl.service.InfluxDBService;
import com.example.tdl.service.TDLLogService;
import com.example.tdl.web.I18nController;
import com.google.gson.Gson;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.influxdb.InfluxDBTemplate;
import retrofit2.http.POST;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class DataUtil {
private static Logger logger = LoggerFactory.getLogger(DataUtil.class);
private static Gson gson = new Gson();
private static CommFeedback fb = new CommFeedback();
public static String getData(String transportationNo, HttpServletRequest request,I18nController i18n,String companyNo,CircuitService circuitService,TDLLogService tdlLogService,InfluxDBTemplate influxDBTemplate,String database,String field){
Long t1 = System.currentTimeMillis();
logger.info(t1+"---------t1");
ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo, companyNo);
if (resultCircuitVo == null) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
if (resultCircuitVo.getStartTime() == null || resultCircuitVo.getStartTime() == 0) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "notStarted"));
return gson.toJson(fb);
}
Long startTime = resultCircuitVo.getStartTime() * 1000000l;
TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
if (gatewayVo == null) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
String device = gatewayVo.getgType() + "_" + gatewayVo.getgSN();
//获取tdl信息
List<String> devList = tdlLogService.getTdlSN(transportationNo);
if (devList.size() == 0) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
Long t2 = System.currentTimeMillis();
List<HistoryDataVo> historyDataVoList = new ArrayList<>();
for (int i = 0; i < devList.size(); i++) {
HistoryDataVo historyDataVo = new HistoryDataVo();
String TDLSN = devList.get(i).replace("TDL-", "").trim();
historyDataVo.setTDLSN(TDLSN);
if("\"T\"".equals(field) || "\"h\"".equals(field)){
ResultAlarmVo resultAlarmVo = tdlLogService.getByTdl(transportationNo, TDLSN);
//根据tdl货物报警信息
historyDataVo.setMax(resultAlarmVo.getTemMax().toString());
historyDataVo.setMin(resultAlarmVo.getTemMin().toString());
}
List<HistoryData> historyData = new ArrayList<>();
String sqls = "";
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sqls = "SELECT count("+field+") FROM \"tdl_policy\".\"" + device + "\" WHERE \"tdl\"='" + devList.get(i) + "' and time>=" + startTime + " and time <=" + resultCircuitVo.getEndTime() * 1000000l;
} else {
sqls = "SELECT count("+field+") FROM \"tdl_policy\".\"" + device + "\" WHERE \"tdl\"='" + devList.get(i) + "' and time>=" + startTime + " and time <=" + System.currentTimeMillis() * 1000000l;
}
QueryResult queryResults = influxDBTemplate.query(new Query(sqls, database));
Integer count;
if (queryResults.getResults().get(0).getSeries() != null) {
count = Double.valueOf(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).intValue();
} else {
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
continue;
}
logger.info(count+"------");
String sql = "";
if (count > 500) {
long times = ( resultCircuitVo.getEndTime() * 1000000l - startTime) / 500;
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sql = getSQL( field, device, devList.get(i), startTime, resultCircuitVo.getEndTime() * 1000000l);
} else {
sql = getSQL( field, device, devList.get(i), startTime, System.currentTimeMillis() * 1000000l);
}
QueryResult queryResult = influxDBTemplate.query(new Query(sql, database,false));
if (queryResult.getResults() != null) {
historyData = getHistoryDatas(queryResult, field);
}
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
} else {
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sql = "SELECT "+field+" FROM \"tdl_policy\".\"" + device + "\" where \"data_type\" = 'data' AND \"tdl\"='" + devList.get(i) + "' and time >=" + startTime + " and time<=" + resultCircuitVo.getEndTime() * 1000000l + " ORDER BY time ";
} else {
sql = "SELECT "+field+" FROM \"tdl_policy\".\"" + device + "\" where \"data_type\" = 'data' AND \"tdl\"='" + devList.get(i) + "' and time >=" + startTime + " ORDER BY time";
}
QueryResult queryResult = influxDBTemplate.query(new Query(sql, database, true));
if (queryResult.getResults().get(0).getSeries() != null) {
//解析数据
historyData = getHistoryData(queryResult, field);
}
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
}
}
logger.info(System.currentTimeMillis()-t1+"_______");
return gson.toJson(historyDataVoList);
}
public static String getHistoryData(String transportationNo, HttpServletRequest request, I18nController i18n, String companyNo, CircuitService circuitService, TDLLogService tdlLogService, InfluxDBService influxDBService, String field){
Long t1 = System.currentTimeMillis();
logger.info(t1+"---------t1");
ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo, companyNo);
if (resultCircuitVo == null) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
if (resultCircuitVo.getStartTime() == null || resultCircuitVo.getStartTime() == 0) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "notStarted"));
return gson.toJson(fb);
}
Long startTime = resultCircuitVo.getStartTime() * 1000000l;
TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
if (gatewayVo == null) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
String device = gatewayVo.getgType() + "_" + gatewayVo.getgSN();
//获取tdl信息
List<String> devList = tdlLogService.getTdlSN(transportationNo);
if (devList.size() == 0) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
Long t2 = System.currentTimeMillis();
logger.info(t2-t1+"--------------t2-t1");
List<HistoryDataVo> historyDataVoList = new ArrayList<>();
for (int i = 0; i < devList.size(); i++) {
HistoryDataVo historyDataVo = new HistoryDataVo();
String TDLSN = devList.get(i).replace("TDL-", "").trim();
historyDataVo.setTDLSN(TDLSN);
if("\"T\"".equals(field) || "\"h\"".equals(field)){
ResultAlarmVo resultAlarmVo = tdlLogService.getByTdl(transportationNo, TDLSN);
//根据tdl货物报警信息
historyDataVo.setMax(resultAlarmVo.getTemMax().toString());
historyDataVo.setMin(resultAlarmVo.getTemMin().toString());
}
List<HistoryData> historyData = new ArrayList<>();
String sqls = "";
Long t3 = System.currentTimeMillis();
logger.info(t3-t2+"------t3");
QueryResult queryResults = null;
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
queryResults = influxDBService.getData(device,devList.get(i),field,startTime,resultCircuitVo.getEndTime() * 1000000l);
} else {
queryResults = influxDBService.getData(device,devList.get(i),field,startTime,System.currentTimeMillis() * 1000000l);
}
Long t4 = System.currentTimeMillis();
logger.info(t4-t3+"------t4");
Integer count;
if (queryResults.getResults().get(0).getSeries() != null) {
count = Double.valueOf(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).intValue();
} else {
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
continue;
}
Long t5 = System.currentTimeMillis();
logger.info(t5-t4+"------t5-----"+ count);
String sql = "";
if (count > 500) {
Long t6 = System.currentTimeMillis();
logger.info(t6 - t5 + "------t6");
QueryResult queryResult = null;
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
queryResult = influxDBService.getHistoryData(device, devList.get(i), field, startTime, resultCircuitVo.getEndTime() * 1000000l);
} else {
queryResult = influxDBService.getHistoryData(device, devList.get(i), field, startTime, resultCircuitVo.getEndTime() * 1000000l);
}
Long t7 = System.currentTimeMillis();
logger.info(t7 - t6 + "------t7-------" + t7);
if (queryResult.getResults() != null) {
historyData = getHistoryDatas(queryResult, field);
}
Long t8 = System.currentTimeMillis();
logger.info(t8 - t7 + "------t8-------" + t8);
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
logger.info(System.currentTimeMillis() + "");
}
// } else {
// if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
// sql = "SELECT "+field+" FROM \"tdl_policy\".\"" + device + "\" where \"tdl\"='" + devList.get(i) + "' and time >=" + startTime + " and time<=" + resultCircuitVo.getEndTime() * 1000000l + " ORDER BY time ";
// } else {
// sql = "SELECT "+field+" FROM \"tdl_policy\".\"" + device + "\" where \"tdl\"='" + devList.get(i) + "' and time >=" + startTime + " ORDER BY time";
// }
// QueryResult queryResult = influxDBTemplate.query(new Query(sql, database));
// if (queryResult.getResults().get(0).getSeries() != null) {
// //解析数据
// historyData = getHistoryData(queryResult, field);
// }
// historyDataVo.setDataList(historyData);
// historyDataVoList.add(historyDataVo);
// }
}
logger.info(System.currentTimeMillis()-t1+"____________");
return gson.toJson(historyDataVoList);
}
public static String getSQL(String field, String device, String tdl, Long startTime, Long endTime) {
String sql = "";
long times = (endTime - startTime) / 500;
for (int i = 0; i < 499; i++) {
Long maxTime = startTime + times;
sql = sql + "Select " + field + " From \"tdl_policy\".\"" + device + "\" where \"tdl\"='" + tdl + "' AND \"topic\" = 'Data' AND \"data_type\" = 'data' AND \"topic\" = 'Data' AND \"event\" = 'Regular measurement' AND \"data_id\" = '2' and time >= "+startTime +" and time <= " + maxTime + " order by time limit 1;";
startTime = maxTime;
}
sql = sql + "Select " + field + " From \"tdl_policy\".\"" + device + "\" where \"tdl\"='" + tdl + "' AND \"topic\" = 'Data' AND \"data_type\" = 'data' AND \"topic\" = 'Data' AND \"event\" = 'Regular measurement' AND \"data_id\" = '2' and time >="+startTime+" and time <= " + endTime + " order by time desc limit 1;";
return sql;
}
public static List<HistoryData> getHistoryData(QueryResult queryResult, String alias) {
List<List<Object>> values = getValues(queryResult);
List<HistoryData> historyDataList = new ArrayList<>();
for (List<Object> value : values) {
HistoryData historyData = new HistoryData();
historyData.setTime(parseTime(value.get(0).toString()));
if (alias.contains("a0")) {
if (value.get(1) != null && Double.valueOf(value.get(1).toString()) > 0 && Double.valueOf(value.get(1).toString()) < 588897) {
historyData.setValue(value.get(1) == null ? "" : value.get(1).toString());
} else {
continue;
}
} else {
historyData.setValue(value.get(1) == null ? "" : value.get(1).toString());
}
historyDataList.add(historyData);
}
return historyDataList;
}
public static 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 static String parseTime(String time) {
String dateResult = null;
try {
dateResult = dateToStamp(time);
} catch (ParseException e) {
e.printStackTrace();
fb.setCode(0);
fb.setMessage("解析时间异常");
}
return dateResult;
}
public static String dateToStamp(String s) throws ParseException {
Date date = null;
if (s.length() != 20) {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(s);
} else {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(s);
}
return String.valueOf(date.getTime());
}
public static List<HistoryData> getHistoryDatas(QueryResult queryResult, String alias) {
String dateResult = null;
List<List<Object>> value = new ArrayList<>();
Long t0 = System.currentTimeMillis();
logger.info(t0 +"-------t0");
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;
}
}
Long tm = System.currentTimeMillis();
logger.info(System.currentTimeMillis()-t0 +"-------tm");
List<HistoryData> historyDataList = new ArrayList<>();
for (int i = 0; i < value.size(); i++) {
HistoryData historyData = new HistoryData();
historyData.setTime(parseTime(value.get(i).get(0).toString()));
historyData.setValue(value.get(i).get(1).toString());
historyDataList.add(historyData);
}
logger.info(System.currentTimeMillis()-tm +"-------tn");
return historyDataList;
}
}
......@@ -151,7 +151,6 @@ public class AlarmLogController {
}
//新增报警消息
@ApiOperation(value = "增加报警",notes = "增加报警")
@RequestMapping(value = "/addAlarmLog",method = RequestMethod.POST)
......@@ -198,7 +197,7 @@ public class AlarmLogController {
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("h")){
desp = "湿度" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
classify = "2";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a0")){
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("a1")){
desp = "震动" +map.get(addAlarmLogVo.getAlarm().get(i).getAlarmno());
classify = "3";
} else if(addAlarmLogVo.getAlarm().get(i).getAlias().contains("ta")) {
......@@ -252,7 +251,9 @@ public class AlarmLogController {
return gson.toJson(fb);
}
if(StringUtils.isEmpty(alarmMessageVo.getTDLSN())){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"TDL"));
return gson.toJson(fb);
}
if(alarmMessageVo.getAlarmTime() == null){
fb.setCode(0);
......@@ -394,7 +395,6 @@ public class AlarmLogController {
}
public static String dateToStamp(String s) throws ParseException {
Date date =null ;
if(s.length() !=20 ) {
......
......@@ -59,7 +59,7 @@ public class CarController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
return carService.getAll(user.getCompanyName());
return carService.getAll(user.getCompanyNo());
}
//根据车牌号模糊查询
......@@ -77,9 +77,14 @@ public class CarController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(StringUtils.isEmpty(carNo)){
fb.setMessage(i18n.getMessage(request,"carNo"));
fb.setCode(0);
return gson.toJson(fb);
}
JSONObject jsonObject= JSON.parseObject(carNo);
carNo=(String)jsonObject.get("carNo");
return carService.getByCarNoForLike(user.getCompanyName(),carNo);
return carService.getByCarNoForLike(user.getCompanyNo(),carNo);
}
//添加车辆信息
......@@ -93,7 +98,7 @@ public class CarController {
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/addCar",method = RequestMethod.POST)
public Object addCar(@RequestBody ResultCarVo resultCarVo, HttpServletRequest request){
public Object addCar(@RequestBody AddCarVo resultCarVo, HttpServletRequest request){
String port =request.getHeader("AccountLanguage");
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
......@@ -108,12 +113,12 @@ public class CarController {
fb.setMessage(i18n.getMessage(request,"type"));
return gson.toJson(fb);
}
if (carService.getByCarNo(user.getCompanyName(),resultCarVo.getCarNo())!=null){
if (carService.getByCarNo(user.getCompanyNo(),resultCarVo.getCarNo())!=null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"repetitionCarNo"));
return gson.toJson(fb);
}
resultCarVo.setCompanyName(user.getCompanyName());
resultCarVo.setCompanyNo(user.getCompanyNo());
int a=carService.addCar(resultCarVo);
if (a>0){
fb.setCode(1);
......@@ -194,4 +199,27 @@ public class CarController {
return gson.toJson(fb);
}
//获取所有的车牌号
@ApiOperation(value = "获取所有的车牌号",notes = "获取所有的车牌号,需要传递参数:" +
" carNo:车牌号")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
@RequestMapping(value="/getTruckNo",method = RequestMethod.POST)
public Object getTruckNo(@RequestBody String carNo,HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(StringUtils.isEmpty(carNo)){
fb.setMessage(i18n.getMessage(request,"carNo"));
fb.setCode(0);
return gson.toJson(fb);
}
JSONObject jsonObject= JSON.parseObject(carNo);
carNo=(String)jsonObject.get("carNo");
return carService.getTruckNo(user.getCompanyNo(),carNo);
}
}
......@@ -888,7 +888,7 @@ public class CircuitController {
return gson.toJson(fb);
}
//判断当前车牌是否已存在
if(carService.getByCarNo(user.getCompanyName(),addCircuitVo.getCargoNo()) == null){
if(carService.getByCarNo(user.getCompanyNo(),addCircuitVo.getPlateNo()) == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"nonexistentTruck"));
return gson.toJson(fb);
......
......@@ -10,6 +10,7 @@ import com.example.tdl.service.redis.InfoRedisService;
import com.example.tdl.service.redis.RealRedisService;
import com.example.tdl.service.redis.TokenRedisService;
import com.example.tdl.util.DataUtil;
import com.google.gson.Gson;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -67,11 +68,14 @@ public class DataController {
private ProbesService probesService;
@Autowired
private I18nController i18n;
private InfluxDBService influxDBService;
private final static String database ="original";
@Autowired
private I18nController i18n;
private final static String database = "original";
private List<String> list = new ArrayList<String>(){{
private List<String> list = new ArrayList<String>() {{
add("\"T\"");
add("\"h\"");
add("\"p\"");
......@@ -80,116 +84,116 @@ public class DataController {
}};
//获取坐标数据数据
@ApiOperation(value = "获取坐标数据数据",notes = "获取坐标数据数据:" +
@ApiOperation(value = "获取坐标数据数据", notes = "获取坐标数据数据:" +
" time:时间," +
" lng:经度," +
" lat: 纬度.")
@PostMapping("/getLocation")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType = "header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
public Object getLocation(@RequestBody SearchLocationVo searchLocationVo,HttpServletRequest request){
public Object getLocation(@RequestBody SearchLocationVo searchLocationVo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(StringUtils.isEmpty(searchLocationVo.getTransportationNo())){
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(searchLocationVo.getTransportationNo())) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
//根据运输编号获取线路信息
ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(searchLocationVo.getTransportationNo(),user.getCompanyNo());
List<LocationDataVo> locationDataVoList =new ArrayList<>();
if(resultCircuitVo == null){
ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(searchLocationVo.getTransportationNo(), user.getCompanyNo());
List<LocationDataVo> locationDataVoList = new ArrayList<>();
if (resultCircuitVo == null) {
return gson.toJson(locationDataVoList);
}
if(resultCircuitVo.getStartTime() == null || resultCircuitVo.getStartTime() == 0){
if (resultCircuitVo.getStartTime() == null || resultCircuitVo.getStartTime() == 0) {
return gson.toJson(locationDataVoList);
}
Long startTime = resultCircuitVo.getStartTime() *1000000l;
Long startTime = resultCircuitVo.getStartTime() * 1000000l;
// if(resultCircuitVo.getEndTime() !=null && infoRedisService.hasHashKey("TransportConfig",searchLocationVo.getTransportationNo())){
// Object ret = infoRedisService.getHash("TransportConfig",searchLocationVo.getTransportationNo());
// return ret;
// }
//获取gateway的信息
TDLLogVo tdlLogVo = tdlLogService.getByTransportationNo(searchLocationVo.getTransportationNo());
if(tdlLogVo==null){
TDLLogVo tdlLogVo = tdlLogService.getByTransportationNo(searchLocationVo.getTransportationNo());
if (tdlLogVo == null) {
return gson.toJson(locationDataVoList);
}
String device = tdlLogVo.getgType() +"_" +tdlLogVo.getgSN();
String sql ="";
if(resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0){
Long time = resultCircuitVo.getEndTime()*1000000l;
if("baidu".equals(searchLocationVo.getType())){
sql = "SELECT \"bdlng\",\"bdlat\" FROM \"tdl_policy\".\""+device+"\"where time >= "+startTime +" and time<= "+time+" ORDER BY time ";
}else{
sql = "SELECT \"lng\",\"lat\" FROM \"tdl_policy\".\""+device+"\"where time >= "+startTime +" and time<= "+time+" ORDER BY time ";
String device = tdlLogVo.getgType() + "_" + tdlLogVo.getgSN();
String sql = "";
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
Long time = resultCircuitVo.getEndTime() * 1000000l;
if ("baidu".equals(searchLocationVo.getType())) {
sql = "SELECT \"bdlng\",\"bdlat\" FROM \"tdl_policy\".\"" + device + "\"where time >= " + startTime + " and time<= " + time + " ORDER BY time ";
} else {
sql = "SELECT \"lng\",\"lat\" FROM \"tdl_policy\".\"" + device + "\"where time >= " + startTime + " and time<= " + time + " ORDER BY time ";
}
}else{
if("baidu".equals(searchLocationVo.getType())){
} else {
if ("baidu".equals(searchLocationVo.getType())) {
sql = "SELECT \"bdlng\",\"bdlat\" FROM \"tdl_policy\".\"" + device + "\"where time >= " + startTime + " ORDER BY time ";
}else {
} else {
sql = "SELECT \"lng\",\"lat\" FROM \"tdl_policy\".\"" + device + "\"where time >= " + startTime + " ORDER BY time ";
}
}
//获取tdl信息
QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
QueryResult queryResult = influxDBTemplate.query(new Query(sql, database));
//解析经纬度数据
List<LocationDataVo> locationDataVos = new ArrayList<>();
if(queryResult.getResults().get(0).getSeries() != null){
locationDataVos=getLocation(queryResult);
List<LocationDataVo> locationDataVos = new ArrayList<>();
if (queryResult.getResults().get(0).getSeries() != null) {
locationDataVos = getLocation(queryResult);
}
//获取震动的数据
String sql2 ="";
if(resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0){
Long time = resultCircuitVo.getEndTime()*1000000l;
sql2 = "SELECT \"a0\" FROM \"tdl_policy\".\""+device+"\"where time >= "+startTime +" and time<=" +time+ " ORDER BY time";
}else{
sql2 = "SELECT \"a0\" FROM \"tdl_policy\".\""+device+"\"where time >= "+startTime +" ORDER BY time";
String sql2 = "";
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
Long time = resultCircuitVo.getEndTime() * 1000000l;
sql2 = "SELECT \"a0\" FROM \"tdl_policy\".\"" + device + "\"where time >= " + startTime + " and time<=" + time + " ORDER BY time";
} else {
sql2 = "SELECT \"a0\" FROM \"tdl_policy\".\"" + device + "\"where time >= " + startTime + " ORDER BY time";
}
QueryResult queryResult2 = influxDBTemplate.query(new Query(sql2,database));
QueryResult queryResult2 = influxDBTemplate.query(new Query(sql2, database));
List<String> timeList = new ArrayList<>();
if(queryResult2.getResults().get(0).getSeries() != null){
if (queryResult2.getResults().get(0).getSeries() != null) {
//获取震动的时间戳
timeList = getTime(queryResult2);
timeList = getTime(queryResult2);
}
if(timeList.size()>0){
if (timeList.size() > 0) {
//获取震动数据的坐标
String sql3 ="";
for(String time : timeList){
Long t = Long.valueOf(time) *1000000l;
if("baidu".equals(searchLocationVo.getType())){
sql3 = "SELECT \"bdlng\",\"bdlat\" FROM \"tdl_policy\".\""+device+"\" where time >= "+startTime +" and time<="+ t +" ORDER BY time desc limit 1;" +sql3;
}else{
sql3 = "SELECT \"lng\",\"lat\" FROM \"tdl_policy\".\""+device+"\" where time >= "+startTime +" and time<="+ t +" ORDER BY time desc limit 1;" +sql3;
String sql3 = "";
for (String time : timeList) {
Long t = Long.valueOf(time) * 1000000l;
if ("baidu".equals(searchLocationVo.getType())) {
sql3 = "SELECT \"bdlng\",\"bdlat\" FROM \"tdl_policy\".\"" + device + "\" where time >= " + startTime + " and time<=" + t + " ORDER BY time desc limit 1;" + sql3;
} else {
sql3 = "SELECT \"lng\",\"lat\" FROM \"tdl_policy\".\"" + device + "\" where time >= " + startTime + " and time<=" + t + " ORDER BY time desc limit 1;" + sql3;
}
}
QueryResult queryResult3 = influxDBTemplate.query(new Query(sql3,database));
List<String> time= new ArrayList<>();
if(queryResult3.getResults() !=null){
QueryResult queryResult3 = influxDBTemplate.query(new Query(sql3, database));
List<String> time = new ArrayList<>();
if (queryResult3.getResults() != null) {
time = getShockLocation(queryResult3);
}
for(LocationDataVo locationDataVo :locationDataVos){
if(time.contains(locationDataVo.getTime())){
for (LocationDataVo locationDataVo : locationDataVos) {
if (time.contains(locationDataVo.getTime())) {
locationDataVo.setError(1);
locationDataVoList.add(locationDataVo);
}else{
} else {
locationDataVo.setError(0);
locationDataVoList.add(locationDataVo);
}
}
//如果是已经完结保存到redis中
if(resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0){
Map<Object,Object> map=new HashMap<>();
map.put(searchLocationVo.getTransportationNo(),locationDataVoList.toString());
infoRedisService.setHash("TransportConfig",map,System.currentTimeMillis());
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
Map<Object, Object> map = new HashMap<>();
map.put(searchLocationVo.getTransportationNo(), locationDataVoList.toString());
infoRedisService.setHash("TransportConfig", map, System.currentTimeMillis());
}
return gson.toJson(locationDataVoList);
}else{
} else {
// //如果是已经完结保存到redis中
// if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
// Map<Object, Object> map = new HashMap<>();
......@@ -202,258 +206,293 @@ public class DataController {
//获取历史数据
@ApiOperation(value = "获取历史数据",notes = "获取历史数据:")
@ApiOperation(value = "获取历史数据", notes = "获取历史数据:")
@PostMapping("/getHistoryData")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType="header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
@ApiImplicitParam(paramType = "header", name = "AccountLanguage", value = "language", required = false, dataType = "String"),
})
public Object getHistoryData(@RequestBody String transportationNo,HttpServletRequest request){
public Object getHistoryData(@RequestBody String transportationNo, HttpServletRequest request) {
long time = System.currentTimeMillis();
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
String port = request.getHeader("AccountLanguage");
JSONObject jsonObject= JSON.parseObject(transportationNo);
transportationNo=jsonObject.getString("transportationNo");
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
List<DataVo> dataVoList = new ArrayList<>();
if(StringUtils.isEmpty(transportationNo)){
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"transportationNo"));
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo,user.getCompanyNo());
if(resultCircuitVo ==null){
ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo, user.getCompanyNo());
if (resultCircuitVo == null) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
if(resultCircuitVo.getStartTime() == null || resultCircuitVo.getStartTime() == 0){
if (resultCircuitVo.getStartTime() == null || resultCircuitVo.getStartTime() == 0) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"notStarted"));
fb.setMessage(i18n.getMessage(request, "notStarted"));
return gson.toJson(fb);
}
Long startTime = resultCircuitVo.getStartTime() *1000000l;
TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
if(gatewayVo == null){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
String device = gatewayVo.getgType() +"_" +gatewayVo.getgSN();
//获取tdl信息
List<String> devList= tdlLogService.getTdlSN(transportationNo);
if(devList.size() == 0){
fb.setCode(0);
fb.setMessage(i18n.getMessage(request,"noCircuit"));
return gson.toJson(fb);
}
Map<String,String> map = new HashMap<>();
map.put("\"T\"","temp");
map.put("\"h\"","humidity");
map.put("\"p\"","pressure");
map.put("\"a0\"","shockEnergy");
map.put("\"a1\"","shock");
map.put("\"ta\"","tilt");
for(int j = 0;j< list.size();j++){
DataVo dataVo = new DataVo();
dataVo.setDescription(map.get(list.get(j)));
List<HistoryDataVo> historyDataVoList = new ArrayList<>();
for( int i =0;i<devList.size();i++){
HistoryDataVo historyDataVo = new HistoryDataVo();
String TDLSN=devList.get(i).replace("TDL-","").trim();
historyDataVo.setTDLSN(TDLSN);
ResultAlarmVo resultAlarmVo = tdlLogService.getByTdl(transportationNo,TDLSN);
if(list.get(j).equals("\"T\"") ){
//根据tdl货物报警信息
historyDataVo.setMax(resultAlarmVo.getTemMax().toString());
historyDataVo.setMin(resultAlarmVo.getTemMin().toString());
}else if(list.get(j).equals("\"h\"")){
historyDataVo.setMax(resultAlarmVo.getHumidityMax().toString());
historyDataVo.setMin(resultAlarmVo.getHumidityMin().toString());
Long startTime = resultCircuitVo.getStartTime() * 1000000l;
TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
if (gatewayVo == null) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
String device = gatewayVo.getgType() + "_" + gatewayVo.getgSN();
//获取tdl信息
List<String> devList = tdlLogService.getTdlSN(transportationNo);
if (devList.size() == 0) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "noCircuit"));
return gson.toJson(fb);
}
Map<String, String> map = new HashMap<>();
map.put("\"T\"", "temp");
map.put("\"h\"", "humidity");
map.put("\"p\"", "pressure");
map.put("\"a0\"", "shockEnergy");
map.put("\"a1\"", "shock");
map.put("\"ta\"", "tilt");
for (int j = 0; j < list.size(); j++) {
DataVo dataVo = new DataVo();
dataVo.setDescription(map.get(list.get(j)));
List<HistoryDataVo> historyDataVoList = new ArrayList<>();
for (int i = 0; i < devList.size(); i++) {
HistoryDataVo historyDataVo = new HistoryDataVo();
String TDLSN = devList.get(i).replace("TDL-", "").trim();
historyDataVo.setTDLSN(TDLSN);
ResultAlarmVo resultAlarmVo = tdlLogService.getByTdl(transportationNo, TDLSN);
if (list.get(j).equals("\"T\"")) {
//根据tdl货物报警信息
historyDataVo.setMax(resultAlarmVo.getTemMax().toString());
historyDataVo.setMin(resultAlarmVo.getTemMin().toString());
} else if (list.get(j).equals("\"h\"")) {
historyDataVo.setMax(resultAlarmVo.getHumidityMax().toString());
historyDataVo.setMin(resultAlarmVo.getHumidityMin().toString());
}
List<HistoryData> historyData = new ArrayList<>();
String sqls = "";
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sqls = "SELECT count(" + list.get(j) + ") FROM \"tdl_policy\".\"" + device + "\" WHERE \"tdl\"='" + devList.get(i) + "' and time>=" + startTime + " and time <=" + resultCircuitVo.getEndTime() * 1000000l;
} else {
sqls = "SELECT count(" + list.get(j) + ") FROM \"tdl_policy\".\"" + device + "\" WHERE \"tdl\"='" + devList.get(i) + "' and time>=" + startTime + " and time <=" + System.currentTimeMillis() * 1000000l;
}
QueryResult queryResults = influxDBTemplate.query(new Query(sqls, database));
Integer count;
if (queryResults.getResults().get(0).getSeries() != null) {
count = Double.valueOf(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).intValue();
} else {
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
continue;
}
String sql = "";
if (count > 500) {
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sql = DataUtil.getSQL(list.get(j), device, devList.get(i), startTime, resultCircuitVo.getEndTime() * 1000000l);
// sql = "SELECT "+list.get(j)+" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"='"+devList.get(i)+"' and time >="+startTime + " and time<="+resultCircuitVo.getEndTime() *1000000l+" ORDER BY time ";
} else {
sql = DataUtil.getSQL(list.get(j), device, devList.get(i), startTime, System.currentTimeMillis() * 1000000l);
// sql = "SELECT "+list.get(j)+" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"='"+devList.get(i)+"' and time >="+startTime + " ORDER BY time";
}
List<HistoryData> historyData = new ArrayList<>();
String sqls = "";
if(resultCircuitVo.getEndTime() !=null && resultCircuitVo.getEndTime() !=0){
sqls = "SELECT count(" + list.get(j) + ") FROM \"tdl_policy\".\"" + device + "\" WHERE \"tdl\"='" + devList.get(i) + "' and time>=" + startTime + " and time <=" + resultCircuitVo.getEndTime() * 1000000l;
}else {
sqls = "SELECT count(" + list.get(j) + ") FROM \"tdl_policy\".\"" + device + "\" WHERE \"tdl\"='" + devList.get(i) + "' and time>=" + startTime + " and time <=" + System.currentTimeMillis() * 1000000l;
QueryResult queryResult = influxDBTemplate.query(new Query(sql, database));
if (queryResult.getResults() != null) {
historyData =DataUtil.getHistoryDatas(queryResult, list.get(j));
}
QueryResult queryResults = influxDBTemplate.query(new Query(sqls,database));
Integer count;
if(queryResults.getResults().get(0).getSeries() != null){
count = Double.valueOf(queryResults.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).intValue();
}else{
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
continue;
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
} else {
if (resultCircuitVo.getEndTime() != null && resultCircuitVo.getEndTime() != 0) {
sql = "SELECT " + list.get(j) + " FROM \"tdl_policy\".\"" + device + "\" where \"tdl\"='" + devList.get(i) + "' and time >=" + startTime + " and time<=" + resultCircuitVo.getEndTime() * 1000000l + " ORDER BY time ";
} else {
sql = "SELECT " + list.get(j) + " FROM \"tdl_policy\".\"" + device + "\" where \"tdl\"='" + devList.get(i) + "' and time >=" + startTime + " ORDER BY time";
}
String sql="";
if(count >500){
if(resultCircuitVo.getEndTime() !=null && resultCircuitVo.getEndTime() !=0){
sql = getSQL(list.get(j),device,devList.get(i),startTime,resultCircuitVo.getEndTime() *1000000l);
// sql = "SELECT "+list.get(j)+" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"='"+devList.get(i)+"' and time >="+startTime + " and time<="+resultCircuitVo.getEndTime() *1000000l+" ORDER BY time ";
}else{
sql = getSQL(list.get(j),device,devList.get(i),startTime,System.currentTimeMillis()*1000000l);
// sql = "SELECT "+list.get(j)+" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"='"+devList.get(i)+"' and time >="+startTime + " ORDER BY time";
}
QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
if(queryResult.getResults()!=null){
historyData = getHistoryDatas(queryResult,list.get(j));
}
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
}else{
if(resultCircuitVo.getEndTime() !=null && resultCircuitVo.getEndTime() !=0){
sql = "SELECT "+list.get(j)+" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"='"+devList.get(i)+"' and time >="+startTime + " and time<="+resultCircuitVo.getEndTime() *1000000l+" ORDER BY time ";
}else{
sql = "SELECT "+list.get(j)+" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"='"+devList.get(i)+"' and time >="+startTime + " ORDER BY time";
}
QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
if(queryResult.getResults().get(0).getSeries() != null){
//解析数据
historyData = getHistoryData(queryResult,list.get(j));
}
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
QueryResult queryResult = influxDBTemplate.query(new Query(sql, database));
if (queryResult.getResults().get(0).getSeries() != null) {
//解析数据
historyData = DataUtil.getHistoryData(queryResult, list.get(j));
}
historyDataVo.setDataList(historyData);
historyDataVoList.add(historyDataVo);
}
dataVo.setDataList(historyDataVoList);
dataVoList.add(dataVo);
}
dataVo.setDataList(historyDataVoList);
dataVoList.add(dataVo);
}
// if(resultCircuitVo.getEndTime()!=null && resultCircuitVo.getEndTime()!=0){
// Map<Object,Object> m = new HashMap<>();
// map.put(transportationNo,dataVoList.toString());
// infoRedisService.setHash("HistoryData",m,System.currentTimeMillis());
// }
return gson.toJson(dataVoList);
logger.info(System.currentTimeMillis()-time+"-----time");
return gson.toJson(dataVoList);
}
public List<HistoryData> getHistoryDatas(QueryResult queryResult,String alias){
String dateResult =null;
List<Object> values = new ArrayList<>();
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){
values = series.getValues().get(0);
value.add(values);
}else{
continue;
}
}
}else{
continue;
}
}
List<HistoryData> historyDataList = new ArrayList<>();
for(int i =0;i<value.size(); i++){
HistoryData historyData = new HistoryData();
historyData.setTime(parseTime(value.get(i).get(0).toString()));
historyData.setValue(value.get(i).get(1).toString());
historyDataList.add(historyData);
@ApiOperation(value = "获取温度数据", notes = "获取温度数据:" +
" TDLSN:tdl编号," +
" temperatureDataVos:," +
" time:时间," +
" value:温度数据.")
@PostMapping("/getTemperature")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
public Object getTemperature(@RequestBody String transportationNo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
return historyDataList;
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
return DataUtil.getData(transportationNo,request,i18n,user.getCompanyNo(),circuitService,tdlLogService,influxDBTemplate,database,"\"T\"");
}
//解析数据
public List<LocationDataVo> getLocation(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<LocationDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
LocationDataVo historyData = new LocationDataVo();
if(value.get(1).toString().equals("0.0")){
continue;
}else{
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setLng(Double.parseDouble(value.get(1).toString()));
historyData.setLat(Double.parseDouble(value.get(2).toString()));
historyData.setError(0);
}
historyDataList.add(historyData);
@ApiOperation(value = "获取温度数据", notes = "获取温度数据:" +
" TDLSN:tdl编号," +
" temperatureDataVos:," +
" time:时间," +
" value:温度数据.")
@PostMapping("/getHumidity")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
public Object getHumidity(@RequestBody String transportationNo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
return historyDataList;
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
return DataUtil.getData(transportationNo,request,i18n,user.getCompanyNo(),circuitService,tdlLogService,influxDBTemplate,database,"\"h\"");
}
public List<HistoryData> getHistoryData(QueryResult queryResult,String alias){
List<List<Object>> values = getValues(queryResult);
List<HistoryData> historyDataList = new ArrayList<>();
for(List<Object> value:values){
HistoryData historyData = new HistoryData();
historyData.setTime(parseTime(value.get(0).toString()));
if(alias.contains("a0")){
if(value.get(1)!=null && Double.valueOf(value.get(1).toString()) >0 && Double.valueOf(value.get(1).toString())<588897){
historyData.setValue(value.get(1)==null ? "" :value.get(1).toString());
}else{
continue;
}
}else{
historyData.setValue(value.get(1)==null ? "" :value.get(1).toString());
}
historyDataList.add(historyData);
//获取倾斜度数据
@ApiOperation(value = "获取倾斜度数据", notes = "获取倾斜度数据")
@PostMapping("/getTiltAngle")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
public Object getTiltAngle(@RequestBody String transportationNo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
return historyDataList;
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
return DataUtil.getData(transportationNo,request,i18n,user.getCompanyNo(),circuitService,tdlLogService,influxDBTemplate,database,"\"ta\"");
}
public List<TemperatureDataVo> getTemperature(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<TemperatureDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
TemperatureDataVo historyData = new TemperatureDataVo();
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setValue(value.get(1)==null ? "" :value.get(1).toString());
historyDataList.add(historyData);
//获取震动能量
@ApiOperation(value = "获取震动能量", notes = "获取震动能量")
@PostMapping("/getShockEnergy")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
public Object getShockEnergy(@RequestBody String transportationNo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
return historyDataList;
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
return DataUtil.getData(transportationNo,request,i18n,user.getCompanyNo(),circuitService,tdlLogService,influxDBTemplate,database,"\"a0\"");
}
public List<TiltAngleVo> getTiltAngle(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<TiltAngleVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
TiltAngleVo historyData = new TiltAngleVo();
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setValue(value.get(1)==null ? "" :value.get(1).toString());
historyDataList.add(historyData);
@ApiOperation(value = "获取震动能量", notes = "获取震动能量")
@PostMapping("/getShock")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
public Object getShock(@RequestBody String transportationNo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
return historyDataList;
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
return DataUtil.getData(transportationNo,request,i18n,user.getCompanyNo(),circuitService,tdlLogService,influxDBTemplate,database,"\"a1\"");
}
public List<ShockEnergyVo> getShockEnergy(QueryResult queryResult){
List<List<Object>> values = getValues(queryResult);
List<ShockEnergyVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
ShockEnergyVo historyData = new ShockEnergyVo();
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setValue(value.get(1)==null ? "" :value.get(1).toString());
historyDataList.add(historyData);
@ApiOperation(value = "获取震动能量", notes = "获取震动能量")
@PostMapping("/getPressure")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
public Object getPressure(@RequestBody String transportationNo, HttpServletRequest request) {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" + token);
UserRedisVo user = gson.fromJson(datum, UserRedisVo.class);
if (StringUtils.isEmpty(transportationNo)) {
fb.setCode(0);
fb.setMessage(i18n.getMessage(request, "transportationNo"));
return gson.toJson(fb);
}
return historyDataList;
JSONObject jsonObject = JSON.parseObject(transportationNo);
transportationNo = jsonObject.getString("transportationNo");
return DataUtil.getData(transportationNo,request,i18n,user.getCompanyNo(),circuitService,tdlLogService,influxDBTemplate,database,"\"p\"");
}
public List<HumidityDataVo> getHumidity(QueryResult queryResult){
//解析数据
public List<LocationDataVo> getLocation(QueryResult queryResult) {
List<List<Object>> values = getValues(queryResult);
List<HumidityDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
HumidityDataVo historyData = new HumidityDataVo();
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setValue(value.get(1)==null ? "" :value.get(1).toString());
List<LocationDataVo> historyDataList = new ArrayList<>();
for (List<Object> value : values) {
LocationDataVo historyData = new LocationDataVo();
if (value.get(1).toString().equals("0.0")) {
continue;
} else {
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setLng(Double.parseDouble(value.get(1).toString()));
historyData.setLat(Double.parseDouble(value.get(2).toString()));
historyData.setError(0);
}
historyDataList.add(historyData);
}
return historyDataList;
}
//解析数据格式
public List<List<Object>> getValues( QueryResult queryResult){
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.Result result : queryResult.getResults()) {
if (result.getSeries() != null) {
for (QueryResult.Series series : result.getSeries()) {
if(series !=null){
values= series.getValues();
if (series != null) {
values = series.getValues();
}
}
}
......@@ -463,18 +502,18 @@ public class DataController {
//将utc时间转换成时间戳
public static String dateToStamp(String s) throws ParseException {
Date date =null ;
if(s.length() !=20 ) {
Date date = null;
if (s.length() != 20) {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(s);
}else{
} else {
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(s);
}
return String.valueOf(date.getTime());
}
//解析时间
public String parseTime(String time){
String dateResult =null;
public String parseTime(String time) {
String dateResult = null;
try {
dateResult = dateToStamp(time);
} catch (ParseException e) {
......@@ -491,37 +530,37 @@ public class DataController {
//获取当前时区,将时间戳转化成日期时间格式
Date t1 = new Date(time1);
Date t2 = new Date(time2);
int days = differentDays(t1,t2);
if(days>0){
return days +"天";
}else{
return "a little minute";
int days = differentDays(t1, t2);
if (days > 0) {
return days + "天";
} else {
return "a little minute";
}
}
public static int differentDays(Date date1,Date date2) {
public static int differentDays(Date date1, Date date2) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
int day1= cal1.get(Calendar.DAY_OF_YEAR);
int day1 = cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if(year1 != year2) { //不同年
int timeDistance = 0 ;
for(int i = year1 ; i < year2 ; i ++) {
if(i%4==0 && i%100!=0 || i%400==0) { //闰年
if (year1 != year2) { //不同年
int timeDistance = 0;
for (int i = year1; i < year2; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { //闰年
timeDistance += 366;
} else{ //不是闰年
} else { //不是闰年
timeDistance += 365;
}
}
return timeDistance + (day2-day1) ;
} else{
return day2-day1;
return timeDistance + (day2 - day1);
} else {
return day2 - day1;
}
}
......@@ -532,13 +571,13 @@ public class DataController {
}
//解析震动时间
public List<String> getTime(QueryResult queryResult){
public List<String> getTime(QueryResult queryResult) {
List<List<Object>> values = getValues(queryResult);
List<String> time = new ArrayList<>();
for(List<Object> value:values){
for (List<Object> value : values) {
try {
time.add(UTCToCST(value.get(0).toString()));
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
logger.info(e.toString());
}
......@@ -546,15 +585,16 @@ public class DataController {
return time;
}
public String UTCToCST(String UTCStr) {
Date date =null ;
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){
} catch (Exception e) {
e.printStackTrace();
logger.info(e.toString());
}
......@@ -566,246 +606,45 @@ public class DataController {
return String.valueOf(calendar.getTimeInMillis());
}
public List<String> getShockLocation(QueryResult queryResult){
public List<String> getShockLocation(QueryResult queryResult) {
List<List<Object>> values = new ArrayList<>();
for(QueryResult.Result result : queryResult.getResults()){
if(result.getSeries() !=null){
for (QueryResult.Result result : queryResult.getResults()) {
if (result.getSeries() != null) {
for (QueryResult.Series series : result.getSeries()) {
if(series !=null){
if (series != null) {
values.add(series.getValues().get(0));
}
}
}
}
List<String> timeList = new ArrayList<>();
for(List<Object> value:values){
for (List<Object> value : values) {
timeList.add(parseTime(value.get(0).toString()));
}
return timeList;
}
public List<DeviceDataVo> getDeviceData(QueryResult queryResult){
public List<DeviceDataVo> getDeviceData(QueryResult queryResult) {
List<List<Object>> values = getValues(queryResult);
List<DeviceDataVo> historyDataList = new ArrayList<>();
for(List<Object> value:values){
for (List<Object> value : values) {
DeviceDataVo historyData = new DeviceDataVo();
historyData.setTime(parseTime(value.get(0).toString()));
historyData.setTemperature(value.get(1)==null ? "" :value.get(1).toString());
historyData.setHumidity(value.get(2)==null ? "" :value.get(2).toString());
historyData.setPressure(value.get(3)==null ? "" :value.get(3).toString());
historyData.setShockEnergy(value.get(4)==null ? "" :value.get(4).toString());
historyData.setTiltAngle(value.get(5)==null ? "" :value.get(5).toString());
historyData.setTemperature(value.get(1) == null ? "" : value.get(1).toString());
historyData.setHumidity(value.get(2) == null ? "" : value.get(2).toString());
historyData.setPressure(value.get(3) == null ? "" : value.get(3).toString());
historyData.setShockEnergy(value.get(4) == null ? "" : value.get(4).toString());
historyData.setTiltAngle(value.get(5) == null ? "" : value.get(5).toString());
historyDataList.add(historyData);
}
return historyDataList;
}
public String getSQL(String field,String device,String tdl,Long startTime,Long endTime){
String sql="";
long times = (endTime - startTime) / 500;
for (int i = 0;i<500;i++){
Long maxTime = startTime + times;
sql = sql +String.format("Select %s From \"tdl_policy\".\"%s\" where \"tdl\"='%s' and time >= %d and time <= %d order by time limit 1;", field, device,tdl, startTime, maxTime);
startTime = maxTime;
}
sql = sql +"";
return sql;
}
//获取温度数据
// @ApiOperation(value = "获取温度数据",notes = "获取温度数据:" +
// " TDLSN:tdl编号," +
// " temperatureDataVos:," +
// " time:时间," +
// " value:温度数据.")
// @PostMapping("/getTemperature")
// @ApiImplicitParams({
// @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
// })
// public Object getTemperature(@RequestBody String transportationNo,HttpServletRequest request){
// String token = request.getHeader("Account_token");
// String datum = tokenRedisService.get("TOKEN_" +token);
// UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
// JSONObject jsonObject= JSON.parseObject(transportationNo);
// transportationNo=jsonObject.getString("transportationNo");
// ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo,user.getCompanyName());
// TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
// if(gatewayVo == null){
// fb.setCode(0);
// fb.setMessage("该线路未绑定gateway和tdl");
// return gson.toJson(fb);
// }
// String device = gatewayVo.getgType() +"_" +gatewayVo.getgSN();
// //获取tdl信息
// List<String> devList = tdlLogService.getTdlSN(transportationNo);
// Long startTime = resultCircuitVo.getStartTime() *1000000l;
// //SELECT "h" FROM "tdl_policy"."WTD93LG_20180314" WHERE "tdl" = 'tdl-0A0B0C0D0F' ORDER BY time DESC
// if(devList.size() == 0){
// fb.setCode(0);
// fb.setMessage("该线路未绑定gateway和tdl");
// return gson.toJson(fb);
// }
// List<Temperature> temperatures = new ArrayList<>();
// for( int i =0;i<devList.size();i++){
// Temperature temperature = new Temperature();
// temperature.setTDLSN(devList.get(i));
// String sql = "SELECT \"T\" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"=\'"+devList.get(i)+"\' and time >="+startTime+" ORDER BY time ";
// QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
// List<TemperatureDataVo> temperatureDataVos = new ArrayList<>();
// if(queryResult.getResults().get(0).getSeries() != null){
// //解析数据
// temperatureDataVos = getTemperature(queryResult);
// }
// temperature.setTemperatureDataVos(temperatureDataVos);
// temperatures.add(temperature);
// }
// return gson.toJson(temperatures);
// }
//
//
// //获取湿度数据
// @ApiOperation(value = "获取湿度数据",notes = "获取湿度数据:")
// @PostMapping("/getHumidity")
// @ApiImplicitParams({
// @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
// })
// public Object getHumidity(@RequestBody String transportationNo,HttpServletRequest request){
// String token = request.getHeader("Account_token");
// String datum = tokenRedisService.get("TOKEN_" +token);
// UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
// JSONObject jsonObject= JSON.parseObject(transportationNo);
// transportationNo=jsonObject.getString("transportationNo");
// ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo,user.getCompanyName());
// TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
// if(gatewayVo == null){
// fb.setCode(0);
// fb.setMessage("该线路未绑定gateway和tdl");
// return gson.toJson(fb);
// }
// String device = gatewayVo.getgType() +"_" +gatewayVo.getgSN();
// //获取tdl信息
// List<String> devList = tdlLogService.getTdlSN(transportationNo);
// //获取tdl信息
// if(devList.size() == 0){
// fb.setCode(0);
// fb.setMessage("没有数据");
// return gson.toJson(fb);
// }
// Long startTime = resultCircuitVo.getStartTime() *1000000l;
// List<Humidity> humidities = new ArrayList<>();
// for( int i =0;i<devList.size();i++){
// Humidity humidity = new Humidity();
// humidity.setTDLSN(devList.get(i));
// String sql = "SELECT \"h\" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"=\'"+devList.get(i)+"\' and time >="+startTime+" ORDER BY time ";
// QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
// List<HumidityDataVo> humidityDataVos = new ArrayList<>();
// if(queryResult.getResults().get(0).getSeries() != null){
// //解析数据
// humidityDataVos = getHumidity(queryResult);
// }
// humidity.setHumidityDataVoList(humidityDataVos);
// humidities.add(humidity);
// }
// return gson.toJson(humidities);
// }
//
//
// //获取倾斜度数据
// @ApiOperation(value = "获取倾斜度数据",notes = "获取倾斜度数据")
// @PostMapping("/getTiltAngle")
// @ApiImplicitParams({
// @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
// })
// public Object getTiltAngle(@RequestBody String transportationNo,HttpServletRequest request){
// String token = request.getHeader("Account_token");
// String datum = tokenRedisService.get("TOKEN_" +token);
// UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
// JSONObject jsonObject= JSON.parseObject(transportationNo);
// transportationNo=jsonObject.getString("transportationNo");
// ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo,user.getCompanyName());
// Long startTime = resultCircuitVo.getStartTime() *1000000l;
// TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
// if(gatewayVo == null){
// fb.setCode(0);
// fb.setMessage("该线路未绑定gateway和tdl");
// return gson.toJson(fb);
// }
// String device = gatewayVo.getgType() +"_" +gatewayVo.getgSN();
// //获取tdl信息
// List<String> devList = tdlLogService.getTdlSN(transportationNo);
// if(devList.size() == 0){
// fb.setCode(0);
// fb.setMessage("没有数据");
// return gson.toJson(fb);
// }
// List<TiltAngle> tiltAngles = new ArrayList<>();
// for( int i =0;i<devList.size();i++){
// TiltAngle tiltAngle = new TiltAngle();
// tiltAngle.setTDLSN(devList.get(i));
// String sql = "SELECT \"ta\" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"=\'"+devList.get(i)+"\' and time >="+startTime+" ORDER BY time ";
// QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
// List<TiltAngleVo> tiltAngleVos = new ArrayList<>();
// if(queryResult.getResults().get(0).getSeries() != null){
// //解析数据
// tiltAngleVos = getTiltAngle(queryResult);
// }
// tiltAngle.setShockEnergyVoList(tiltAngleVos);
// tiltAngles.add(tiltAngle);
// }
// return gson.toJson(tiltAngles);
// }
//
//
//
// //获取震动能量
// @ApiOperation(value = "获取震动能量",notes = "获取震动能量")
// @PostMapping("/getShockEnergy")
// @ApiImplicitParams({
// @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
// })
// public Object getShockEnergy(@RequestBody String transportationNo,HttpServletRequest request){
// String token = request.getHeader("Account_token");
// String datum = tokenRedisService.get("TOKEN_" +token);
// UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
// JSONObject jsonObject= JSON.parseObject(transportationNo);
// transportationNo=jsonObject.getString("transportationNo");
// ResultCircuitVo resultCircuitVo = circuitService.getByTransportationNo(transportationNo,user.getCompanyName());
// TDLLogVo gatewayVo = tdlLogService.getByTransportationNo(transportationNo);
// if(gatewayVo == null){
// fb.setCode(0);
// fb.setMessage("该线路未绑定gateway和tdl");
// return gson.toJson(fb);
// }
// String device = gatewayVo.getgType() +"_" +gatewayVo.getgSN();
// //获取tdl信息
// List<String> devList = tdlLogService.getTdlSN(transportationNo);
// Long startTime = resultCircuitVo.getStartTime() *1000000l;
// //获取tdl信息
// if(devList.size() == 0){
// fb.setCode(0);
// fb.setMessage("没有数据");
// return gson.toJson(fb);
// }
// List<ShockEnergy> shockEnergies = new ArrayList<>();
// for( int i =0;i<devList.size();i++){
// ShockEnergy shockEnergy = new ShockEnergy();
// shockEnergy.setTDLSN(devList.get(i));
// String sql = "SELECT \"a0\" FROM \"tdl_policy\".\""+device+"\" where \"tdl\"=\'"+devList.get(i)+"\' and time >="+startTime+" ORDER BY time ";
// QueryResult queryResult = influxDBTemplate.query(new Query(sql,database));
// List<ShockEnergyVo> shockEnergyVos = new ArrayList<>();
// if(queryResult.getResults().get(0).getSeries() != null){
// //解析数据
// shockEnergyVos = getShockEnergy(queryResult);
// }
// shockEnergy.setShockEnergyVoList(shockEnergyVos);
// shockEnergies.add(shockEnergy);
// }
// return gson.toJson(shockEnergies);
// }
}
//获取历史数据
// 获取历史数据
// @ApiOperation(value = "获取历史数据",notes = "获取历史数据:")
// @PostMapping("/getHistoryData")
// @ApiImplicitParams({
......@@ -989,9 +828,9 @@ public class DataController {
// resultCircuit.setCircuitState(resultCircuitVo.getCircuitState());
// return gson.toJson(resultCircuit);
// }
//
//
//// 根据时间获取经纬度信息
// 根据时间获取经纬度信息
// @ApiOperation(value = "根据时间获取经纬度信息",notes = "根据时间获取经纬度信息" +
// "transportationNo:运输编号" +
// "TDLSN:tdl编号" +
......@@ -1086,7 +925,9 @@ public class DataController {
// }
// return gson.toJson(deviceDataVos);
// }
//// 获取实时数据
//
//
// // 获取实时数据
// @ApiOperation(value = "获取实时数据",notes = "获取实时数据")
// @ApiImplicitParams({
// @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
......@@ -1138,4 +979,4 @@ public class DataController {
// }
// return gson.toJson(liveDataVos);
// }
}
\ No newline at end of file
//}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import com.example.tdl.service.AlarmLogService;
import com.example.tdl.service.CircuitService;
import com.example.tdl.service.TDLLogService;
import com.example.tdl.service.WarehouseService;
import com.example.tdl.service.redis.InfoRedisService;
import com.example.tdl.service.redis.TokenRedisService;
import com.google.gson.Gson;
......@@ -56,6 +57,9 @@ public class HomePageController {
@Autowired
private InfoRedisService infoRedisService;
@Autowired
private WarehouseService warehouseService;
private final static String database ="original";
@Autowired
......@@ -110,8 +114,10 @@ public class HomePageController {
dataVo.setDelay(delay);//延误数量
dataVo.setAlarmed( alarmLogServcie.getCount(time,user.getCompanyNo()));//报警数量
dataVo.setBump(alarmLogServcie.getBumpCount(time,user.getCompanyNo())); //获取颠簸数量
dataVo.setAlarmLogVoList(alarmLogServcie.getAlarmLog(time,user.getCompanyNo()));//报警列表
// dataVo.setAlarmLogVoList(alarmLogServcie.getAlarmLog(time,user.getCompanyNo()));//报警列表
dataVo.setWarehouseVoList(warehouseService.getAll(user.getCompanyNo()));
List<HistogramData> list = alarmLogServcie.getByCount(time,user.getCompanyNo());//获取报警柱状图
//获取所有的仓库数据
for(int j = 0,length = list.size();j<length;j++){
if(list.get(j).getClassify().equals("5")){
Integer count = list.get(j).getCount() +delay;
......
......@@ -74,34 +74,34 @@ public class PicUploadController {
return gson.toJson(fb);
}else{
if("truck".equals(imageType)){
if(sourceImg.getHeight()>90){
if(sourceImg.getWidth()>90){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
if(sourceImg.getWidth()>60){
if(sourceImg.getHeight()>60){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
}else if("warehouse".equals(imageType)){
if(sourceImg.getHeight()>150){
if(sourceImg.getWidth()>150){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
if(sourceImg.getWidth()>120){
if(sourceImg.getHeight()>120){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
}else if("company".equals(imageType)){
if(sourceImg.getHeight()>24){
if(sourceImg.getWidth()>24){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
if(sourceImg.getWidth()>24){
if(sourceImg.getHeight()>24){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
......@@ -186,34 +186,34 @@ public class PicUploadController {
return gson.toJson(fb);
}
if("truck".equals(imageType)){
if(sourceImg.getHeight()>90){
if(sourceImg.getWidth()>90){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
if(sourceImg.getWidth()>60){
if(sourceImg.getHeight()>60){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
}else if("warehouse".equals(imageType)){
if(sourceImg.getHeight()>150){
if(sourceImg.getWidth()>150){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
if(sourceImg.getWidth()>120){
if(sourceImg.getHeight()>120){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
}else if("company".equals(imageType)){
if(sourceImg.getHeight()>24){
if(sourceImg.getWidth()>24){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
}
if(sourceImg.getWidth()>24){
if(sourceImg.getHeight()>24){
fb.setCode(0);
fb.setMessage("上传图片尺寸不正确");
return gson.toJson(fb);
......@@ -279,5 +279,4 @@ public class PicUploadController {
return gson.toJson(fb);
}
}
......@@ -162,10 +162,6 @@ resetPasswordSuccess = \u91CD\u7F6E\u5BC6\u7801\u6210\u529F
resetPasswordFailure = \u91CD\u7F6E\u5BC6\u7801\u5931\u8D25
modifiedPasswordSuccess = \u4FEE\u6539\u5BC6\u7801\u6210\u529F
modifiedPasswordFailure = \u4FEE\u6539\u5BC6\u7801\u5931\u8D25
systemManage = \u7CFB\u7EDF\u7BA1\u7406\u5458
superManage = \u8D85\u7EA7\u7BA1\u7406\u5458
warehouse = \u4ED3\u5E93\u7BA1\u7406\u5458
transportManage = \u8FD0\u8F93\u7BA1\u7406\u5458
null = \u53D1\u751F\u7A7A\u6307\u9488\u5F02\u5E38
illegal = \u8BF7\u6C42\u53C2\u6570\u7C7B\u578B\u4E0D\u5339\u914D
sql = \u6570\u636E\u5E93\u8BBF\u95EE\u5F02\u5E38
......@@ -259,3 +255,5 @@ deleteFailure=\u5220\u9664\u89D2\u8272\u5931\u8D25
#\u4ED3\u5E93\u6570\u636E\u4E0B\u8F7D
downloadStartTime=\u67E5\u8BE2\u5F00\u59CB\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A
downloadEndTime=\u67E5\u8BE2\u7ED3\u675F\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A
#\u4F20\u611F\u5668
TDL =\u4F20\u611F\u5668\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A
......@@ -5,14 +5,14 @@
<select id="getAll" resultType="com.example.tdl.domain.vo.ResultCarVo" parameterType="String">
SELECT carNo,type,a.img,companyName,remark
from car a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyName=#{companyName,jdbcType=VARCHAR}
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
</select>
<!--根据车牌号查询-->
<select id="getByCarNo" resultType="com.example.tdl.domain.vo.ResultCarVo" parameterType="String">
SELECT carNo,type,a.img,companyName,remark
from car a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyName=#{companyName,jdbcType=VARCHAR}
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
AND carNo=#{carNo,jdbcType=VARCHAR}
</select>
......@@ -20,18 +20,18 @@
<select id="getByCarNoForLike" resultType="com.example.tdl.domain.vo.ResultCarVo" parameterType="String">
SELECT carNo,type,a.img,companyName,remark
from car a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyName=#{companyName,jdbcType=VARCHAR}
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
AND carNo LIKE CONCAT(CONCAT('%',#{carNo,jdbcType=VARCHAR}), '%')
</select>
<!--添加车辆信息-->
<insert id="addCar" parameterType="com.example.tdl.domain.vo.ResultCarVo">
<insert id="addCar" parameterType="com.example.tdl.domain.vo.AddCarVo">
INSERT INTO car VALUES (
NULL ,
#{carNo,jdbcType=VARCHAR},
#{type,jdbcType=VARCHAR},
#{img,jdbcType=VARCHAR},
(SELECT id from company where companyName=#{companyName,jdbcType=VARCHAR}),
(SELECT id from company where companyNo=#{companyNo,jdbcType=VARCHAR}),
#{remark,jdbcType=VARCHAR}
)
</insert>
......@@ -54,4 +54,11 @@
update car set img=#{img,jdbcType=VARCHAR} WHERE carNo=#{carNo,jdbcType=VARCHAR}
</update>
<select id="getTruckNo" resultType="com.example.tdl.domain.vo.TruckNo" parameterType="String">
SELECT carNo
from car a INNER JOIN company c ON a.company_id=c.id
WHERE c.companyNo=#{companyNo,jdbcType=VARCHAR}
AND carNo LIKE CONCAT(CONCAT('%',#{carNo,jdbcType=VARCHAR}), '%')
</select>
</mapper>
\ No newline at end of file
......@@ -89,8 +89,8 @@
</update>
<select id="getTransportationNo" parameterType="String" resultType="String">
select transportationNo from circuit
where id = (select circuit_id from tdldevice
select DISTINCT transportationNo from circuit
where id in (select circuit_id from tdldevice
where gateway_id =(SELECT id from gateway where SN=#{SN,jdbcType=VARCHAR}
AND type=#{type,jdbcType=VARCHAR}))
</select>
......
......@@ -243,7 +243,7 @@
</select>
<select id="getWarehouseDetailByNo" parameterType="String" resultType="com.example.tdl.domain.vo.WarehouseDetailVo">
SELECT warehouseNo,warehouseName,c.country,c.city,addressDetail,(SELECT COUNT(DISTINCT gatewaySN) from tdl_gateway_log WHERE warehouseNo=w.warehouseNo and ISNULL(endTime)) gatewayCounts,
SELECT img,warehouseNo,warehouseName,c.country,c.city,addressDetail,(SELECT COUNT(DISTINCT gatewaySN) from tdl_gateway_log WHERE warehouseNo=w.warehouseNo and ISNULL(endTime)) gatewayCounts,
(SELECT COUNT(TDLSN) from tdl_gateway_log WHERE warehouseNo=w.warehouseNo and ISNULL(endTime)) tdlCounts,property,type,hardwareLevel,areaPlanIndoor
from warehouse w INNER JOIN city c ON w.city_id=c.id
where warehouseNo=#{warehouseNo,jdbcType=VARCHAR}
......
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