Quellcode durchsuchen

Merge branch 'release' of gitadmin/tuoheng_air_monitor into master

tags/v1.0.2
wanjing vor 1 Jahr
Ursprung
Commit
2124966b41
10 geänderte Dateien mit 225 neuen und 28 gelöschten Zeilen
  1. +9
    -9
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/constant/SystemConstant.java
  2. +121
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/entity/vo/AirPortVo.java
  3. +2
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/mqtt/MqttProviderConfig.java
  4. +20
    -13
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/airportline/add/AddAirportLineService.java
  5. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspection/query/QueryVideoService.java
  6. +68
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/third/airport/GetAirportListService.java
  7. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-dev.yml
  8. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-local.yml
  9. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-prod.yml
  10. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-test.yml

+ 9
- 9
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/constant/SystemConstant.java Datei anzeigen

/** /**
* 机场平台:获取机场列表接口 * 机场平台:获取机场列表接口
*/ */
String API_AIRPORT_LIST = "/api/airportInterface/airportList";
String API_AIRPORT_LIST = "/airportInterface/airportList";


/** /**
* 机场平台:获取机场路线列表接口 * 机场平台:获取机场路线列表接口
*/ */
String API_AIRPORT_LINE_LIST = "/api/airportInterface/taskByDroneId";
String API_AIRPORT_LINE_LIST = "/airportInterface/taskByDroneId";


/** /**
* 机场平台:执行接口 * 机场平台:执行接口
*/ */
String API_AIRPORT_EXECUTE_TASK = "/api/airportInterface/executeTaskAnsy";
String API_AIRPORT_EXECUTE_TASK = "/airportInterface/executeTaskAnsy";


/** /**
* 机场平台:获取天气 * 机场平台:获取天气
*/ */
String API_AIRPORT_GET_WEATHER = "/api/airportInterface/getWeather";
String API_AIRPORT_GET_WEATHER = "/airportInterface/getWeather";


/** /**
* 机场平台:控制无人机 * 机场平台:控制无人机
*/ */
String API_AIRPORT_DRONE_CONTROL = "/api/airportInterface/droneCommand";
String API_AIRPORT_DRONE_CONTROL = "/airportInterface/droneCommand";


/** /**
* 机场平台:定点飞行 * 机场平台:定点飞行
*/ */
String API_AIRPORT_POINT_FLIGH = "/api/airportInterface/createPointLine";
String API_AIRPORT_POINT_FLIGH = "/airportInterface/createPointLine";


// 飞手平台不同接口url // 飞手平台不同接口url
/** /**
/** /**
* 机场平台:获取机场状态 * 机场平台:获取机场状态
*/ */
String API_AIRPORT_STATUS_BY_AIRPORT_ID = "/api/airportInterface/getAirportStatusByAirportId";
String API_AIRPORT_STATUS_BY_AIRPORT_ID = "/airportInterface/getAirportStatusByAirportId";


/** /**
* 机场平台:获取航点文件坐标 * 机场平台:获取航点文件坐标
*/ */
String API_AIRPORT_LOCATION = "/api/airportInterface/getLocationById";
String API_AIRPORT_LOCATION = "/airportInterface/getLocationById";


/** /**
* 机场平台:自动规划航线 * 机场平台:自动规划航线
*/ */
String API_AIRPORT_DRONE_LINE = "/api/airportInterface/createDroneLine";
String API_AIRPORT_DRONE_LINE = "/airportInterface/createDroneLine";


} }

+ 121
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/entity/vo/AirPortVo.java Datei anzeigen

package com.tuoheng.admin.entity.vo;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
* 机场视图Vo
*
* @author wanjing
* @team tuoheng
* @date 2022-11-23
*/
@Data
@NoArgsConstructor
public class AirPortVo implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 机场id
*/
private String id;

/**
* 机场代码
*/
private String code;

/**
* 机场名称
*/
private String name;

/**
* 机场图片
*/
private String image;

/**
* 机场外部监控地址
*/
private String externalMonitorUrl;

/**
* 机场外部监控FLV地址
*/
private String flvExternalMonitorUrl;

/**
* 机场内部监控地址
*/
private String internalMonitorUrl;

/**
* 覆盖范围(km)
*/
private String coverage;

/**
* 排序
*/
private String sort;

/**
* 经度
*/
private String longitude;

/**
* 纬度
*/
private String latitude;

/**
* 无人机id
*/
private String droneId;

/**
* 无人机名称
*/
private String droneName;

/**
* 设备id
*/
private String edgeId;

/**
* 创建人
*/
private String createUser;

/**
* 创建时间
*/
private String createTime;

/**
* 修改人
*/
private String updateUser;

/**
* 修改时间
*/
private String updateTime;

/**
* 状态: 1:空闲 2:飞行中
*/
private String status;

/**
* 是否在线:true:在线 false:离线
*/
private String online;
}

+ 2
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/mqtt/MqttProviderConfig.java Datei anzeigen

client.connect(options); client.connect(options);


//String topic = "$share/airmonitor/298dd766/environment/message"; //String topic = "$share/airmonitor/298dd766/environment/message";
String topic = "/v1/298dd766/environment/message";
String topic = "/v1/+/environment/message";
//String topic = "#";
client.subscribe(topic, 0); client.subscribe(topic, 0);
} catch (MqttException e) { } catch (MqttException e) {
e.printStackTrace(); e.printStackTrace();

+ 20
- 13
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/airportline/add/AddAirportLineService.java Datei anzeigen

import com.tuoheng.admin.entity.domain.User; import com.tuoheng.admin.entity.domain.User;
import com.tuoheng.admin.entity.dto.AirportRouteDto; import com.tuoheng.admin.entity.dto.AirportRouteDto;
import com.tuoheng.admin.entity.request.inspection.AirportLineRequest; import com.tuoheng.admin.entity.request.inspection.AirportLineRequest;
import com.tuoheng.admin.entity.vo.AirPortVo;
import com.tuoheng.admin.enums.AirportLineEnum; import com.tuoheng.admin.enums.AirportLineEnum;
import com.tuoheng.admin.enums.MarkEnum; import com.tuoheng.admin.enums.MarkEnum;
import com.tuoheng.admin.mapper.AirportLineMapper; import com.tuoheng.admin.mapper.AirportLineMapper;
import com.tuoheng.admin.mapper.TenantMapper; import com.tuoheng.admin.mapper.TenantMapper;
import com.tuoheng.admin.service.third.airport.GetAirportListService;
import com.tuoheng.admin.utils.AliyunOSSUtil; import com.tuoheng.admin.utils.AliyunOSSUtil;
import com.tuoheng.admin.utils.CurrentUserUtil; import com.tuoheng.admin.utils.CurrentUserUtil;
import com.tuoheng.common.core.config.common.CommonConfig; import com.tuoheng.common.core.config.common.CommonConfig;
@Autowired @Autowired
private TenantMapper tenantMapper; private TenantMapper tenantMapper;



@Autowired
private GetAirportListService getAirportListService;


public JsonResult add(AirportLineRequest request) { public JsonResult add(AirportLineRequest request) {
log.info("进入添加航线接口"); log.info("进入添加航线接口");
log.info("添加航线数据校验失败:{}",jsonResult.getMsg()); log.info("添加航线数据校验失败:{}",jsonResult.getMsg());
return jsonResult; return jsonResult;
} }
String ossUrl = this.createPointLineForOss(request.getAirportRouteDtoList());

List<AirPortVo> airPortVoList = getAirportListService.getAirportListByTenantId(tenantId);
if (CollectionUtils.isEmpty(airPortVoList)) {
log.info("添加航线数据,获取机场信息为空");
return jsonResult;
}
AirPortVo airPortVo = airPortVoList.get(0);
String ossUrl = this.createPointLineForOss(airPortVo, request.getAirportRouteDtoList());
String airportLineName = request.getAirportLineName(); String airportLineName = request.getAirportLineName();
Integer airportId = request.getAirportId(); Integer airportId = request.getAirportId();
//回调机场平台接口 生成航线id //回调机场平台接口 生成航线id
return JsonResult.success(); return JsonResult.success();
} }



/** /**
* 生成指点航线 * 生成指点航线
* *
* @param airportRouteList * @param airportRouteList
* @return * @return
*/ */
public String createPointLineForOss(List<AirportRouteDto> airportRouteList) {
public String createPointLineForOss(AirPortVo airPortVo, List<AirportRouteDto> airportRouteList) {
String fileUrl = ""; String fileUrl = "";
try { try {
String s = "QGC WPL 110\n"; String s = "QGC WPL 110\n";
String tmp = "\t0.00000000\t0.00000000\t0.00000000\t0.00000000\t"; String tmp = "\t0.00000000\t0.00000000\t0.00000000\t0.00000000\t";
String tmp16 = "\t0\t3\t16" + tmp;
String tmpFirst16 = "\t1\t0\t16" + tmp;
String tmpEnd16 = "\t0\t3\t16" + tmp;
String tmp22 = "\t0\t3\t22" + tmp; String tmp22 = "\t0\t3\t22" + tmp;
String tmp20 = "\t0\t3\t20" + tmp;
String tmp20 = "\t0\t0\t20" + tmp;
String end = ".000000\t1\n"; String end = ".000000\t1\n";
AirportRouteDto airportRoute; AirportRouteDto airportRoute;
s += 0 + tmpFirst16 + airPortVo.getLatitude() + "\t" + airPortVo.getLongitude() + "\t" + "100" + end;
s += 1 + tmp22 + airPortVo.getLatitude() + "\t" + airPortVo.getLongitude() + "\t" + "100" + end;
for (int i = 1; i <= airportRouteList.size(); i++) { for (int i = 1; i <= airportRouteList.size(); i++) {
airportRoute = airportRouteList.get(i - 1); airportRoute = airportRouteList.get(i - 1);
if (1 == i) {
s += i + tmp22;
} else if (airportRouteList.size() == i) {
s += i + tmp20;
} else {
s += i + tmp16;
}
s += (i + 1) + tmpEnd16;
s += airportRoute.getLat() + "\t" + airportRoute.getLng() + "\t" + airportRoute.getAltitude() + end; s += airportRoute.getLat() + "\t" + airportRoute.getLng() + "\t" + airportRoute.getAltitude() + end;
} }
s += 2 + airportRouteList.size() + tmp20 + airPortVo.getLatitude() + "\t" + airPortVo.getLongitude() + "\t" + "100" + ".000000\t1";
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write(s.getBytes()); out.write(s.getBytes());
// 将outputstream转成inputstream // 将outputstream转成inputstream

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspection/query/QueryVideoService.java Datei anzeigen

log.info("获取的数据,dataObject={}", dataObject.toJSONString()); log.info("获取的数据,dataObject={}", dataObject.toJSONString());
String records = dataObject.get("records").toString(); String records = dataObject.get("records").toString();
List<Airport> airportList = JSONObject.parseArray(records, Airport.class); List<Airport> airportList = JSONObject.parseArray(records, Airport.class);
log.info("获取records中的数据为:airportList={}", airportList);
//log.info("获取records中的数据为:airportList={}", airportList);
if(CollectionUtil.isNotEmpty(airportList) || airportList.size() != 0){ if(CollectionUtil.isNotEmpty(airportList) || airportList.size() != 0){
Airport airport = airportList.get(0); Airport airport = airportList.get(0);
if(ObjectUtil.isNotNull(airport)){ if(ObjectUtil.isNotNull(airport)){

+ 68
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/third/airport/GetAirportListService.java Datei anzeigen

import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.tuoheng.admin.constant.SystemConstant; import com.tuoheng.admin.constant.SystemConstant;
import com.tuoheng.admin.entity.domain.Tenant; import com.tuoheng.admin.entity.domain.Tenant;
import com.tuoheng.admin.entity.vo.AirPortVo;
import com.tuoheng.admin.enums.code.AriportCodeEnum; import com.tuoheng.admin.enums.code.AriportCodeEnum;
import com.tuoheng.admin.mapper.TenantMapper; import com.tuoheng.admin.mapper.TenantMapper;
import com.tuoheng.admin.utils.CurrentUserUtil; import com.tuoheng.admin.utils.CurrentUserUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Slf4j @Slf4j
@Service @Service
public class GetAirportListService { public class GetAirportListService {
return jsonResult; return jsonResult;
} }


public List<AirPortVo> getAirportListByTenantId(String tenantId) {
List<AirPortVo> airPortVoList = new ArrayList<>();
//读取不同租户的机场平台url
Tenant tenant = tenantMapper.selectById(tenantId);
if (ObjectUtil.isEmpty(tenant)) {
log.info("获取机场信息, 租户为空,tenantId={}", tenantId);
return null;
}
String url = CommonConfig.airportURL + SystemConstant.API_AIRPORT_LIST;
String param = "page=1&limit=100&tenantCode=" + tenant.getCode();
String airPortStr = HttpUtils.sendGet(url, param);
JsonResult jsonResult = JacksonUtil.json2pojo(airPortStr, JsonResult.class);
if (ObjectUtil.isEmpty(jsonResult) || (!ObjectUtil.isEmpty(jsonResult.getData()) && jsonResult.getCode() != 0)) {
log.info("获取机场信息失败, jsonResult={}", jsonResult);
return null;
}
Map<String, Object> map = (Map<String, Object>) jsonResult.getData();
List<Object> list = (List<Object>) map.get("records");
AirPortVo airPortVo;
Map<String, Object> airPortVoMap;
for (Object obj : list) {
airPortVoMap = new HashMap<>();
for (Object entry : ((Map) obj).entrySet()) {
String key = ((Map.Entry) entry).getKey().toString();
String value = "";
if (ObjectUtil.isNotEmpty(((Map.Entry) entry).getValue())) {
value = ((Map.Entry) entry).getValue().toString();
}
airPortVoMap.put(key, value);
}
airPortVo = (AirPortVo) this.copyObject(airPortVoMap);
if (ObjectUtil.isNotEmpty(airPortVo)) {
airPortVoList.add(airPortVo);
}
}
return airPortVoList;
}

public static <T> Object copyObject(Map<String, Object> field_Val) {
Object o;
try {
Class clz = AirPortVo.class;
o = clz.newInstance();
for (Field tf : clz.getDeclaredFields()) {
String fieldName = tf.getName();
Object targetV = field_Val.get(fieldName);
if (targetV == null) {
continue;
}
tf.setAccessible(true);
tf.set(o, targetV);
}
} catch (InstantiationException e) {
log.info("获取机场信息,InstantiationException:{}", e);
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
log.info("获取机场信息,IllegalAccessException:{}", e);
throw new RuntimeException(e);
}
return o;
}
} }

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-dev.yml Datei anzeigen

pilot-url: http://192.168.11.11:7011/pilot/web/ pilot-url: http://192.168.11.11:7011/pilot/web/
#airport配置地址 #airport配置地址
#airport-url: https://airport-test.t-aaron.com #airport-url: https://airport-test.t-aaron.com
airport-url: http://192.168.11.22:9060
airport-url: http://192.168.11.11:7011/airport/admin
# 文件配置 # 文件配置
uploads: uploads:
#上传的服务器上的映射文件夹 #上传的服务器上的映射文件夹

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-local.yml Datei anzeigen

#飞手平台地址 #飞手平台地址
pilot-url: http://192.168.11.241:7011/pilot/web/ pilot-url: http://192.168.11.241:7011/pilot/web/
#airport配置地址 #airport配置地址
airport-url: https://airport-test.t-aaron.com
airport-url: https://airport-test.t-aaron.com/airport/admin
# 文件配置 # 文件配置
uploads: uploads:
#上传的服务器上的映射文件夹 #上传的服务器上的映射文件夹

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-prod.yml Datei anzeigen

#飞手平台地址 #飞手平台地址
pilot-url: https://pilot.t-aaron.com/pilot/web/ pilot-url: https://pilot.t-aaron.com/pilot/web/
#airport配置地址 #airport配置地址
airport-url: https://airport.t-aaron.com
airport-url: https://airport.t-aaron.com/airport/admin
# 文件配置 # 文件配置
uploads: uploads:
#上传的服务器上的映射文件夹 #上传的服务器上的映射文件夹

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-test.yml Datei anzeigen

#飞手平台地址 #飞手平台地址
pilot-url: http://172.15.1.11:7011/pilot/web/ pilot-url: http://172.15.1.11:7011/pilot/web/
#airport配置地址 #airport配置地址
airport-url: https://airport-test.t-aaron.com
airport-url: https://airport-test.t-aaron.com/airport/admin
# 文件配置 # 文件配置
uploads: uploads:
#上传的服务器上的映射文件夹 #上传的服务器上的映射文件夹

Laden…
Abbrechen
Speichern