*/ | */ | ||||
private String email; | private String email; | ||||
/** | |||||
* 机场调用邮箱 | |||||
*/ | |||||
private String airportUrl; | |||||
/** | /** | ||||
* 省份编号 | * 省份编号 | ||||
*/ | */ |
import cn.hutool.core.util.ObjectUtil; | import cn.hutool.core.util.ObjectUtil; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.tuoheng.admin.conver.InspectionConverMapper; | import com.tuoheng.admin.conver.InspectionConverMapper; | ||||
import com.tuoheng.admin.entity.domain.Tenant; | |||||
import com.tuoheng.admin.entity.domain.ThInspection; | import com.tuoheng.admin.entity.domain.ThInspection; | ||||
import com.tuoheng.admin.entity.domain.ThMission; | import com.tuoheng.admin.entity.domain.ThMission; | ||||
import com.tuoheng.admin.entity.vo.index.DroneDataVo; | import com.tuoheng.admin.entity.vo.index.DroneDataVo; | ||||
throw new ServiceException("机场ID为空"); | throw new ServiceException("机场ID为空"); | ||||
} | } | ||||
} | } | ||||
/** | |||||
* 获取租户 | |||||
* | |||||
* @param tenantId | |||||
* @return | |||||
*/ | |||||
private Tenant getTenant(Integer tenantId) { | |||||
Tenant tenant = tenantMapper.selectById(tenantId); | |||||
if (ObjectUtil.isEmpty(tenant)) { | |||||
log.info("调用机场平台,操作无人机: 租户不存在"); | |||||
throw new ServiceException("租户不存在"); | |||||
} | |||||
if (StringUtils.isEmpty(tenant.getAirportUrl())) { | |||||
log.info("调用机场平台,操作无人机: 机场平台URL为空"); | |||||
throw new ServiceException("机场平台URL为空"); | |||||
} | |||||
return tenant; | |||||
} | |||||
} | } |
@Override | @Override | ||||
public JsonResult getAirportDetail(Integer airportId){ | public JsonResult getAirportDetail(Integer airportId){ | ||||
Tenant tenant = tenantMapper.selectById(ShiroUtils.getTenantId()); | |||||
String url = tenant.getAirportUrl() +"/api/airportInterface/getAirportStatus"; | |||||
String url = CommonConfig.airportURL +"/api/airportInterface/getAirportStatus"; | |||||
String param = "airportId=" + airportId; | String param = "airportId=" + airportId; | ||||
String result = HttpUtils.sendGet(url, param); | String result = HttpUtils.sendGet(url, param); | ||||
JsonResult jsonResult = JacksonUtil.json2pojo(result, JsonResult.class); | JsonResult jsonResult = JacksonUtil.json2pojo(result, JsonResult.class); |
import com.tuoheng.admin.service.IMissionService; | import com.tuoheng.admin.service.IMissionService; | ||||
import com.tuoheng.admin.service.IThInspectionService; | import com.tuoheng.admin.service.IThInspectionService; | ||||
import com.tuoheng.common.common.BaseServiceImpl; | import com.tuoheng.common.common.BaseServiceImpl; | ||||
import com.tuoheng.common.config.CommonConfig; | |||||
import com.tuoheng.common.exception.ServiceException; | import com.tuoheng.common.exception.ServiceException; | ||||
import com.tuoheng.common.utils.*; | import com.tuoheng.common.utils.*; | ||||
import com.tuoheng.system.entity.User; | import com.tuoheng.system.entity.User; | ||||
@Override | @Override | ||||
public List<AirPortVO> airport() throws ServiceException, UnsupportedEncodingException { | public List<AirPortVO> airport() throws ServiceException, UnsupportedEncodingException { | ||||
//这边需要配置到yml文件里面 | |||||
Tenant tenant = tenantMapper.selectById(ShiroUtils.getTenantId()); | Tenant tenant = tenantMapper.selectById(ShiroUtils.getTenantId()); | ||||
String url = tenant.getAirportUrl() + "/api/airportInterface/airportList"; | |||||
String url = CommonConfig.airportURL + "/api/airportInterface/airportList"; | |||||
String param = "page=1&limit=1000&tenantCode=" + tenant.getCode(); | String param = "page=1&limit=1000&tenantCode=" + tenant.getCode(); | ||||
log.info("****** airportList param tenantCode:{}", tenant.getCode()); | log.info("****** airportList param tenantCode:{}", tenant.getCode()); | ||||
String airPortStr = HttpUtils.sendGet(url, param); | String airPortStr = HttpUtils.sendGet(url, param); | ||||
@Override | @Override | ||||
public List<AirLineVO> airLine(Integer droneId) throws ServiceException { | public List<AirLineVO> airLine(Integer droneId) throws ServiceException { | ||||
Tenant tenant = tenantMapper.selectById(ShiroUtils.getTenantId()); | |||||
//这边需要配置到yml文件里面 | |||||
String url = tenant.getAirportUrl() + "/api/airportInterface/taskByDroneId"; | |||||
String url = CommonConfig.airportURL + "/api/airportInterface/taskByDroneId"; | |||||
String param = "page=1&limit=100&droneId=" + droneId; | String param = "page=1&limit=100&droneId=" + droneId; | ||||
String airPortStr = HttpUtils.sendGet(url, param); | String airPortStr = HttpUtils.sendGet(url, param); | ||||
JsonResult<AirLineVO> jsonResult = JacksonUtil.json2pojo(airPortStr, JsonResult.class); | JsonResult<AirLineVO> jsonResult = JacksonUtil.json2pojo(airPortStr, JsonResult.class); | ||||
Tenant tenant = tenantMapper.selectById(user.getTenantId()); | Tenant tenant = tenantMapper.selectById(user.getTenantId()); | ||||
log.info("tenant查询完成"); | log.info("tenant查询完成"); | ||||
//这边需要配置到yml文件里面 | |||||
log.info("executeTask准备入参"); | log.info("executeTask准备入参"); | ||||
String url = tenant.getAirportUrl() + "/api/airportInterface/executeTaskAnsy"; | |||||
String url = CommonConfig.airportURL + "/api/airportInterface/executeTaskAnsy"; | |||||
JSONObject jsonObject = new JSONObject(); | JSONObject jsonObject = new JSONObject(); | ||||
jsonObject.put("code", "lc"); | jsonObject.put("code", "lc"); | ||||
jsonObject.put("tenantCode", tenant.getCode()); | jsonObject.put("tenantCode", tenant.getCode()); | ||||
@Override | @Override | ||||
public AirWeatherVO getWeather(Integer airportId) throws ServiceException { | public AirWeatherVO getWeather(Integer airportId) throws ServiceException { | ||||
log.info("获取天气信息"); | |||||
log.info("获取天气信息11111"); | |||||
log.info("获取天气信息, tenantId={}", ShiroUtils.getTenantId()); | |||||
log.info("获取天气信息22222"); | |||||
Tenant tenant = tenantMapper.selectById(ShiroUtils.getTenantId()); | |||||
log.info("获取天气信息, tenant={}", tenant); | |||||
log.info("获取天气信息, airportUrl={}", tenant.getAirportUrl()); | |||||
//这边需要配置到yml文件里面 | |||||
String url = tenant.getAirportUrl() + "/api/airportInterface/getWeather"; | |||||
String url = CommonConfig.airportURL + "/api/airportInterface/getWeather"; | |||||
String param = "airportId=" + airportId; | String param = "airportId=" + airportId; | ||||
log.info("获取天气信息,调用机场接口"); | |||||
log.info("获取天气信息,url={}", url); | |||||
log.info("获取天气信息,param={}", param); | |||||
String weatherStr = HttpUtils.sendGet(url, param); | String weatherStr = HttpUtils.sendGet(url, param); | ||||
log.info("获取天气信息,调用机场接口结束,weatherStr={}", weatherStr); | |||||
JsonResult jsonResult; | JsonResult jsonResult; | ||||
try { | try { | ||||
jsonResult = JacksonUtil.json2pojo(weatherStr, JsonResult.class); | jsonResult = JacksonUtil.json2pojo(weatherStr, JsonResult.class); | ||||
@Override | @Override | ||||
public JsonResult lineTrack(Integer missionId) { | public JsonResult lineTrack(Integer missionId) { | ||||
Tenant tenant = tenantMapper.selectById(ShiroUtils.getTenantId()); | |||||
ThMission thMission = missionMapper.selectById(missionId); | ThMission thMission = missionMapper.selectById(missionId); | ||||
Assert.notNull(thMission, "任务不能为空!"); | Assert.notNull(thMission, "任务不能为空!"); | ||||
Integer taskId = thMission.getInspectionLine(); | Integer taskId = thMission.getInspectionLine(); | ||||
//解析标准srt文件里面的坐标,调用硬件接口,返回数据 | //解析标准srt文件里面的坐标,调用硬件接口,返回数据 | ||||
String url = tenant.getAirportUrl() + "/api/airportInterface/getLocationById"; | |||||
String url = CommonConfig.airportURL + "/api/airportInterface/getLocationById"; | |||||
String param = "id=" + taskId; | String param = "id=" + taskId; | ||||
String airportLine = HttpUtils.sendGet(url, param); | String airportLine = HttpUtils.sendGet(url, param); | ||||
JsonResult jsonResult = JacksonUtil.json2pojo(airportLine, JsonResult.class); | JsonResult jsonResult = JacksonUtil.json2pojo(airportLine, JsonResult.class); | ||||
} | } | ||||
//根据任务id查询对应的遥测数据 | //根据任务id查询对应的遥测数据 | ||||
List<ThInspection> listData = inspectionMapper.selectListByMissionId(id, ShiroUtils.getTenantId());//xz | List<ThInspection> listData = inspectionMapper.selectListByMissionId(id, ShiroUtils.getTenantId());//xz | ||||
return JsonResult.success(listData); | return JsonResult.success(listData); | ||||
} | } | ||||
} | } |
package com.tuoheng.admin.service.third.airport; | package com.tuoheng.admin.service.third.airport; | ||||
import cn.hutool.core.util.ObjectUtil; | |||||
import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
import com.tuoheng.admin.config.SystemConstant; | import com.tuoheng.admin.config.SystemConstant; | ||||
import com.tuoheng.admin.entity.domain.Tenant; | |||||
import com.tuoheng.admin.entity.request.airport.DroneControlRequest; | import com.tuoheng.admin.entity.request.airport.DroneControlRequest; | ||||
import com.tuoheng.admin.entity.request.airport.PointFlightRequest; | |||||
import com.tuoheng.admin.mapper.TenantMapper; | import com.tuoheng.admin.mapper.TenantMapper; | ||||
import com.tuoheng.common.config.CommonConfig; | |||||
import com.tuoheng.common.exception.ServiceException; | import com.tuoheng.common.exception.ServiceException; | ||||
import com.tuoheng.common.utils.HttpUtils; | import com.tuoheng.common.utils.HttpUtils; | ||||
import com.tuoheng.common.utils.JsonResult; | import com.tuoheng.common.utils.JsonResult; | ||||
import com.tuoheng.common.utils.StringUtils; | import com.tuoheng.common.utils.StringUtils; | ||||
import com.tuoheng.system.entity.User; | |||||
import com.tuoheng.system.utils.ShiroUtils; | |||||
import io.swagger.models.auth.In; | |||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
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.util.ArrayList; | |||||
import java.util.HashMap; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
@Slf4j | @Slf4j | ||||
@Service | @Service | ||||
public class DroneControlService { | public class DroneControlService { | ||||
public JsonResult execute(DroneControlRequest request) { | public JsonResult execute(DroneControlRequest request) { | ||||
log.info("进入调用机场平台,操作无人机"); | log.info("进入调用机场平台,操作无人机"); | ||||
this.check(request); | this.check(request); | ||||
// 读取不同租户的机场平台url | |||||
User user = ShiroUtils.getUserInfo(); | |||||
Integer tenantId = user.getTenantId(); | |||||
Tenant tenant = this.getTenant(tenantId); | |||||
String url = tenant.getAirportUrl() + SystemConstant.API_AIRPORT_POINT_FLIGH; | |||||
String url = CommonConfig.airportURL + SystemConstant.API_AIRPORT_POINT_FLIGH; | |||||
JSONObject jsonObject = new JSONObject().parseObject(request.getValue()); | JSONObject jsonObject = new JSONObject().parseObject(request.getValue()); | ||||
log.info("调用机场平台,操作无人机: url:{}", url); | log.info("调用机场平台,操作无人机: url:{}", url); | ||||
} | } | ||||
} | } | ||||
/** | |||||
* 获取租户 | |||||
* | |||||
* @param tenantId | |||||
* @return | |||||
*/ | |||||
private Tenant getTenant(Integer tenantId) { | |||||
Tenant tenant = tenantMapper.selectById(tenantId); | |||||
if (ObjectUtil.isEmpty(tenant)) { | |||||
log.info("调用机场平台,操作无人机: 租户不存在"); | |||||
throw new ServiceException("租户不存在"); | |||||
} | |||||
if (StringUtils.isEmpty(tenant.getAirportUrl())) { | |||||
log.info("调用机场平台,操作无人机: 机场平台URL为空"); | |||||
throw new ServiceException("机场平台URL为空"); | |||||
} | |||||
return tenant; | |||||
} | |||||
} | } |
import com.tuoheng.admin.mapper.WarningMapper; | import com.tuoheng.admin.mapper.WarningMapper; | ||||
import com.tuoheng.admin.mapper.WarningRecordMapper; | import com.tuoheng.admin.mapper.WarningRecordMapper; | ||||
import com.tuoheng.admin.utils.CodeUtil; | import com.tuoheng.admin.utils.CodeUtil; | ||||
import com.tuoheng.common.config.CommonConfig; | |||||
import com.tuoheng.common.exception.ServiceException; | import com.tuoheng.common.exception.ServiceException; | ||||
import com.tuoheng.common.utils.DateUtils; | import com.tuoheng.common.utils.DateUtils; | ||||
import com.tuoheng.common.utils.HttpUtils; | import com.tuoheng.common.utils.HttpUtils; | ||||
ThMission oldMission = (ThMission) result.getData(); | ThMission oldMission = (ThMission) result.getData(); | ||||
if (oldMission.getAirportId().equals(request.getAirportId())) { | if (oldMission.getAirportId().equals(request.getAirportId())) { | ||||
log.info("原机场执行定点飞行"); | log.info("原机场执行定点飞行"); | ||||
this.callOldAirpor(tenant, request); | |||||
this.callOldAirpor(request); | |||||
} else { | } else { | ||||
log.info("新机场执行定点飞行"); | log.info("新机场执行定点飞行"); | ||||
this.callNewAirpor(tenant, request, mission.getId()); | this.callNewAirpor(tenant, request, mission.getId()); | ||||
log.info("调用机场平台,执行定点飞行: 租户不存在"); | log.info("调用机场平台,执行定点飞行: 租户不存在"); | ||||
throw new ServiceException("租户不存在"); | throw new ServiceException("租户不存在"); | ||||
} | } | ||||
// 读取不同租户的机场平台url | |||||
if (StringUtils.isEmpty(tenant.getAirportUrl())) { | |||||
log.info("调用机场平台,执行定点飞行: 机场平台URL为空"); | |||||
throw new ServiceException("机场平台URL为空"); | |||||
} | |||||
return tenant; | return tenant; | ||||
} | } | ||||
/** | /** | ||||
* 调用老机场平台 | * 调用老机场平台 | ||||
* | * | ||||
* @param tenant | |||||
* @param request | * @param request | ||||
*/ | */ | ||||
private void callOldAirpor(Tenant tenant, PointFlightRequest request) { | |||||
String url = tenant.getAirportUrl() + SystemConstant.API_AIRPORT_DRONE_CONTROL; | |||||
private void callOldAirpor(PointFlightRequest request) { | |||||
String url = CommonConfig.airportURL + SystemConstant.API_AIRPORT_DRONE_CONTROL; | |||||
JSONObject jsonObject = new JSONObject(); | JSONObject jsonObject = new JSONObject(); | ||||
jsonObject.put("taskId", request.getMissionId()); | jsonObject.put("taskId", request.getMissionId()); | ||||
jsonObject.put("airportId", request.getAirportId()); | jsonObject.put("airportId", request.getAirportId()); | ||||
* @param request | * @param request | ||||
*/ | */ | ||||
private void callNewAirpor(Tenant tenant, PointFlightRequest request, Integer emergencyMissionId) { | private void callNewAirpor(Tenant tenant, PointFlightRequest request, Integer emergencyMissionId) { | ||||
String url = tenant.getAirportUrl() + SystemConstant.API_AIRPORT_POINT_FLIGH; | |||||
String url = CommonConfig.airportURL + SystemConstant.API_AIRPORT_POINT_FLIGH; | |||||
JSONObject jsonObject = new JSONObject(); | JSONObject jsonObject = new JSONObject(); | ||||
jsonObject.put("airportId", request.getAirportId()); | jsonObject.put("airportId", request.getAirportId()); | ||||
jsonObject.put("requestId", emergencyMissionId); | jsonObject.put("requestId", emergencyMissionId); |
import com.tuoheng.admin.entity.domain.Question; | import com.tuoheng.admin.entity.domain.Question; | ||||
import com.tuoheng.admin.entity.domain.ThMission; | import com.tuoheng.admin.entity.domain.ThMission; | ||||
import com.tuoheng.admin.entity.domain.Warning; | import com.tuoheng.admin.entity.domain.Warning; | ||||
import com.tuoheng.admin.entity.vo.warning.WarningListVo; | |||||
import com.tuoheng.admin.entity.vo.warning.WarningVo; | import com.tuoheng.admin.entity.vo.warning.WarningVo; | ||||
import com.tuoheng.admin.enums.MarkEnum; | import com.tuoheng.admin.enums.MarkEnum; | ||||
import com.tuoheng.admin.mapper.QuestionMapper; | import com.tuoheng.admin.mapper.QuestionMapper; | ||||
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.util.List; | |||||
import java.util.Map; | |||||
/** | /** | ||||
* 根据Id查询预警信息业务层处理 | * 根据Id查询预警信息业务层处理 | ||||
* | * |
*/ | */ | ||||
public static String gaodeKey; | public static String gaodeKey; | ||||
/** | |||||
* 机场地址 | |||||
*/ | |||||
public static String airportURL; | |||||
/** | /** | ||||
* 图片域名赋值 | * 图片域名赋值 | ||||
* | * | ||||
gaodeKey = key; | gaodeKey = key; | ||||
} | } | ||||
/** | |||||
* 机场url | |||||
* @param url | |||||
*/ | |||||
@Value("${tuoheng.airport-url}") | |||||
public void airportURL(String url) { | |||||
airportURL = url; | |||||
} | |||||
} | } |