소스 검색

1、修改创建任务之后,下发任务;2、执行任务时,调用执行航线任务接口;

tags/v1.3.1
wanjing 1 년 전
부모
커밋
e4ffb68ccd
8개의 변경된 파일133개의 추가작업 그리고 35개의 파일을 삭제
  1. +60
    -9
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspection/add/AddInspectionService.java
  2. +12
    -14
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/third/airport/execute/ExecuteTaskService.java
  3. +13
    -8
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/tzhl/constant/TZHLConstant.java
  4. +44
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/tzhl/service/task/FlightTaskService.java
  5. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-dev.yml
  6. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-local.yml
  7. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-prod.yml
  8. +1
    -1
      tuoheng-service/tuoheng-admin/src/main/resources/application-test.yml

+ 60
- 9
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspection/add/AddInspectionService.java 파일 보기

package com.tuoheng.admin.service.inspection.add; package com.tuoheng.admin.service.inspection.add;


import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.tuoheng.admin.conver.InspectionConverMapper; import com.tuoheng.admin.conver.InspectionConverMapper;
import com.tuoheng.admin.entity.*; import com.tuoheng.admin.entity.*;
import com.tuoheng.admin.mapper.*; import com.tuoheng.admin.mapper.*;
import com.tuoheng.admin.request.inspection.AddInspectionRequest; import com.tuoheng.admin.request.inspection.AddInspectionRequest;
import com.tuoheng.admin.service.third.pilot.PilotService; import com.tuoheng.admin.service.third.pilot.PilotService;
import com.tuoheng.admin.tzhl.response.TZHLAirportLineResponse;
import com.tuoheng.admin.tzhl.service.airportline.TZHLGetAirportLineListService;
import com.tuoheng.admin.tzhl.service.task.ShelterTaskService;
import com.tuoheng.admin.utils.CurrentUserUtil; import com.tuoheng.admin.utils.CurrentUserUtil;
import com.tuoheng.admin.utils.GaodeUtil; import com.tuoheng.admin.utils.GaodeUtil;
import com.tuoheng.common.core.constant.CommonConstants; import com.tuoheng.common.core.constant.CommonConstants;
@Autowired @Autowired
private InspectionMapper inspectionMapper; private InspectionMapper inspectionMapper;


@Autowired
private InspectionHistoryMapper inspectionHistoryMapper;

@Autowired @Autowired
private TenantMapper tenantMapper; private TenantMapper tenantMapper;


@Autowired @Autowired
private DspServiceInstMapper dspServiceInstMapper; private DspServiceInstMapper dspServiceInstMapper;


@Autowired
private ShelterTaskService shelterTaskService;

@Autowired
private TZHLGetAirportLineListService tzhlGetAirportLineListService;

/** /**
* 添加任务 * 添加任务
* *
Inspection inspection = this.buildInspection(user, tenantId, addInspectionRequest); Inspection inspection = this.buildInspection(user, tenantId, addInspectionRequest);


// 调用第三方平台 // 调用第三方平台
result = this.callThirdPlatform(user, tenantId, inspection);
result = this.callThirdPlatform(user, inspection);
if (0 != result.getCode()) { if (0 != result.getCode()) {
log.info("添加任务业务:对接第三方平台失败:{}", result.getMsg()); log.info("添加任务业务:对接第三方平台失败:{}", result.getMsg());
return result; return result;
} }

if (InspectionTypeEnum.AIRPORT.getCode() == inspection.getInspectionType()) {
Long recordId = (Long) result.getData();
inspection.setRecordId(recordId);
}

Integer rowId = inspectionMapper.insert(inspection); Integer rowId = inspectionMapper.insert(inspection);
log.info("添加任务, 返回结果: deptId={}", rowId); log.info("添加任务, 返回结果: deptId={}", rowId);
if (rowId <= 0) { if (rowId <= 0) {
} }


/** /**
* 与第三方平台(飞手、高德)对接
* 与第三方平台(天翼、飞手、高德)对接
* *
* @param user * @param user
* @param tenantId
* @param inspection * @param inspection
* @return * @return
*/ */
private JsonResult callThirdPlatform(User user, String tenantId, Inspection inspection) {
private JsonResult callThirdPlatform(User user, Inspection inspection) {
// 对接高德地图 // 对接高德地图
JsonResult result = this.callGaode(inspection); JsonResult result = this.callGaode(inspection);
if (0 != result.getCode()) { if (0 != result.getCode()) {
return result; return result;
} }
if (InspectionTypeEnum.MABNNEDFLIGHT.getCode() == inspection.getInspectionType()) {
if (InspectionTypeEnum.AIRPORT.getCode() == inspection.getInspectionType()) {
// 对接天翼平台
return this.callTianYi(inspection);
} else if (InspectionTypeEnum.MABNNEDFLIGHT.getCode() == inspection.getInspectionType()) {
// 对接飞手平台 // 对接飞手平台
result = pilotService.addTask(user, inspection);
if (0 != result.getCode()) {
return result;
}
return pilotService.addTask(user, inspection);
} }
return JsonResult.success(); return JsonResult.success();
} }
return JsonResult.success(); return JsonResult.success();
} }


private JsonResult callTianYi(Inspection inspection) {
TZHLAirportLineResponse tzhlAirportLineResponse = tzhlGetAirportLineListService.getAirportLineById(inspection.getInspectionLine());
if (ObjectUtil.isEmpty(tzhlAirportLineResponse)) {
this.insertInspectionHistory(inspection, "创建任务,下发任务,航线不存在");
return JsonResult.error("创建任务,下发任务,航线不存在");
}
Long recordId = shelterTaskService.distributeTask(inspection, tzhlAirportLineResponse);
if (ObjectUtil.isEmpty(recordId)) {
log.info("创建任务,下发任务失败,status={}", inspection.getStatus());

inspection.setStatus(InspectionStatusEnum.FLIGHT_FAILED.getCode());

this.insertInspectionHistory(inspection, "创建任务,下发任务失败");

return JsonResult.error("创建任务,下发任务失败");
}
return JsonResult.success(recordId);
}

/**
* 更新任务失败记录
*
* @param inspection
*/
private void insertInspectionHistory(Inspection inspection, String msg) {
InspectionHistory inspectionHistory = new InspectionHistory();
inspectionHistory.setTenantId(inspection.getTenantId());
inspectionHistory.setInspectionId(inspection.getId());
inspectionHistory.setHistoryName(msg);
inspectionHistory.setCreateUser("");
inspectionHistory.setCreateTime(DateUtils.now());
inspectionHistoryMapper.insert(inspectionHistory);
}
} }

+ 12
- 14
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/third/airport/execute/ExecuteTaskService.java 파일 보기

import com.tuoheng.admin.tzhl.service.airport.TZHLGetAirportListService; import com.tuoheng.admin.tzhl.service.airport.TZHLGetAirportListService;
import com.tuoheng.admin.tzhl.service.airportline.TZHLGetAirportLineListService; import com.tuoheng.admin.tzhl.service.airportline.TZHLGetAirportLineListService;
import com.tuoheng.admin.tzhl.service.fly.onlineuav.OnlineUavService; import com.tuoheng.admin.tzhl.service.fly.onlineuav.OnlineUavService;
import com.tuoheng.admin.tzhl.service.task.FlightTaskService;
import com.tuoheng.admin.tzhl.service.task.ShelterTaskService; import com.tuoheng.admin.tzhl.service.task.ShelterTaskService;
import com.tuoheng.common.core.exception.ServiceException; import com.tuoheng.common.core.exception.ServiceException;
import com.tuoheng.common.core.utils.DateUtils; import com.tuoheng.common.core.utils.DateUtils;
private TZHLGetAirportLineListService tzhlGetAirportLineListService; private TZHLGetAirportLineListService tzhlGetAirportLineListService;


@Autowired @Autowired
private ShelterTaskService shelterTaskService;
private FlightTaskService flightTaskService;


public JsonResult executeTask(String userId, Inspection inspection) { public JsonResult executeTask(String userId, Inspection inspection) {
log.info("进入泰州海陵区城管,执行任务,inspectionId={}", inspection.getId()); log.info("进入泰州海陵区城管,执行任务,inspectionId={}", inspection.getId());

JsonResult result = this.check(inspection); JsonResult result = this.check(inspection);
TZHLAirportLineResponse tzhlAirportLineResponse = tzhlGetAirportLineListService.getAirportLineById(inspection.getInspectionLine());
if (0 != result.getCode()) { if (0 != result.getCode()) {
this.insertInspectionHistory(inspection, result.getMsg()); this.insertInspectionHistory(inspection, result.getMsg());
return JsonResult.error(result.getMsg()); return JsonResult.error(result.getMsg());
} }


Long recordId = shelterTaskService.distributeTask(inspection, tzhlAirportLineResponse);
if (ObjectUtil.isEmpty(recordId)) {
log.info("泰州海陵区城管,执行任务,下发任务失败,status={}", inspection.getStatus());

result = flightTaskService.flightTask(inspection);
if (0 != result.getCode()) {
inspection.setStatus(InspectionStatusEnum.FLIGHT_FAILED.getCode()); inspection.setStatus(InspectionStatusEnum.FLIGHT_FAILED.getCode());
this.updateInspection(userId, inspection, recordId);
this.updateInspection(userId, inspection);

log.info("执行任务失败,修改任务状态,status={}", inspection.getStatus());


this.insertInspectionHistory(inspection, "下发任务失败");
this.insertInspectionHistory(inspection, "执行任务失败");


return JsonResult.success("泰州海陵区城管,执行任务,下发任务失败");
return JsonResult.success("执行任务失败");
} }


inspection.setStatus(InspectionStatusEnum.PREPARING.getCode()); inspection.setStatus(InspectionStatusEnum.PREPARING.getCode());
this.updateInspection(userId, inspection, recordId);
this.updateInspection(userId, inspection);


log.info("任务下发成功,修改任务状态,status={}", inspection.getStatus());
log.info("执行任务成功,修改任务状态,status={}", inspection.getStatus());


return JsonResult.success(); return JsonResult.success();
} }
* @param userId * @param userId
* @param inspection * @param inspection
*/ */
private void updateInspection(String userId, Inspection inspection, Long recordId) {
private void updateInspection(String userId, Inspection inspection) {
inspection.setExecutionStatus(2); // 修改任务执行状态,防止手动执行和定时重复 inspection.setExecutionStatus(2); // 修改任务执行状态,防止手动执行和定时重复
inspection.setStatus(inspection.getStatus()); inspection.setStatus(inspection.getStatus());
inspection.setUpdateUser(userId); inspection.setUpdateUser(userId);
inspection.setUpdateTime(DateUtils.now()); inspection.setUpdateTime(DateUtils.now());
inspection.setRecordId(recordId);
inspectionMapper.update(inspection); inspectionMapper.update(inspection);
} }



+ 13
- 8
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/tzhl/constant/TZHLConstant.java 파일 보기

/** /**
* 天翼星云机场平台:票据登录 * 天翼星云机场平台:票据登录
*/ */
String TIAN_YI_API_TICKET_LOGIN = "/prod-api/auth/ticketLogin";
String TIAN_YI_API_TICKET_LOGIN = "/auth/ticketLogin";


/** /**
* 天翼星云机场平台:获取机场列表 * 天翼星云机场平台:获取机场列表
*/ */
String TIAN_YI_API_AIRPORT_LIST = "/prod-api/ctuav/openapi/ctuav/v4/shelter/list";
String TIAN_YI_API_AIRPORT_LIST = "/ctuav/openapi/ctuav/v4/shelter/list";


/** /**
* 天翼星云机场平台:航线列表(跟据方舱序列号查询待开发) * 天翼星云机场平台:航线列表(跟据方舱序列号查询待开发)
*/ */
String TIAN_YI_API_FLY_LINE_LIST = "/prod-api/ctuav/openapi/ctuav/v4/flyline/list";
String TIAN_YI_API_FLY_LINE_LIST = "/ctuav/openapi/ctuav/v4/flyline/list";


/** /**
* 天翼星云机场平台:下发任务 * 天翼星云机场平台:下发任务
*/ */
String TIAN_YI_API_SHELTER_TASKS = "/prod-api/shelter/task";
String TIAN_YI_API_SHELTER_TASKS = "/shelter/task";

/**
* 天翼星云机场平台:执行航线任务
*/
String TIAN_YI_API_WAYLINE_FLIGHT_TASKS = "/shelter/wayline/v1.4/flight-tasks";


/** /**
* 天翼星云机场平台:飞行日志回调 * 天翼星云机场平台:飞行日志回调
*/ */
String TIAN_YI_API_FLIGHT_LOG = "/prod-api/ctuav/mapper/fly/log/listAll";
String TIAN_YI_API_FLIGHT_LOG = "/ctuav/mapper/fly/log/listAll";


/** /**
* 天翼星云机场平台:飞行画面 * 天翼星云机场平台:飞行画面
*/ */
String TIAN_YI_API_FLIGHT_SCREEN = "/prod-api/ctuav/openapi/ctuav/v4/onlineuav/list";
String TIAN_YI_API_FLIGHT_SCREEN = "/ctuav/openapi/ctuav/v4/onlineuav/list";


/** /**
* 天翼星云机场平台:飞行数据 * 天翼星云机场平台:飞行数据
*/ */
String TIAN_YI_API_FLIGHT_DATA = "/prod-api/ctuav/openapi/ctuav/v4/flydata/list";
String TIAN_YI_API_FLIGHT_DATA = "/ctuav/openapi/ctuav/v4/flydata/list";


/** /**
* 天翼星云机场信息:气象数据接口 * 天翼星云机场信息:气象数据接口
*/ */
String TIAN_YI_API_AIRPORT_MSG = "/prod-api/ctuav/openapi/ctuav/v4/shelter/info";
String TIAN_YI_API_AIRPORT_MSG = "/ctuav/openapi/ctuav/v4/shelter/info";




} }

+ 44
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/tzhl/service/task/FlightTaskService.java 파일 보기

package com.tuoheng.admin.tzhl.service.task;

import com.alibaba.fastjson.JSONObject;
import com.tuoheng.admin.entity.Inspection;
import com.tuoheng.admin.tzhl.constant.TZHLConstant;
import com.tuoheng.admin.tzhl.response.TZHLAirportLineResponse;
import com.tuoheng.admin.tzhl.service.CallTianYiPlatformService;
import com.tuoheng.common.core.utils.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Service
public class FlightTaskService {

@Autowired
@Qualifier("restTemplate")
private RestTemplate restTemplate;

@Autowired
private CallTianYiPlatformService callTianYiPlatformService;

public JsonResult flightTask(Inspection inspection) {
String apiPath = TZHLConstant.TIAN_YI_API_WAYLINE_FLIGHT_TASKS;
JSONObject jsonObject = this.buildJSONObject(inspection);
String dataJson = callTianYiPlatformService.callPost(apiPath, jsonObject);
return JsonResult.success(dataJson);
}

private JSONObject buildJSONObject(Inspection inspection) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("method", "flighttask_prepare"); // 默认值 flighttask_prepare
jsonObject.put("sn", inspection.getSn()); // 机库序列号
jsonObject.put("recordId", inspection.getRecordId()); // 飞行计划Id
return jsonObject;
}

}

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-dev.yml 파일 보기



# 泰州海陵区城管 # 泰州海陵区城管
tzhl: tzhl:
url: http://221.230.150.241:8889
url: http://221.230.150.241:8889/prod-api
ticket: b6hd+ymZb5bY//0wNMJZsA== ticket: b6hd+ymZb5bY//0wNMJZsA==

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-local.yml 파일 보기



# 泰州海陵区城管 # 泰州海陵区城管
tzhl: tzhl:
url: http://221.230.150.241:8889
url: http://221.230.150.241:8889/prod-api
ticket: b6hd+ymZb5bY//0wNMJZsA== ticket: b6hd+ymZb5bY//0wNMJZsA==

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-prod.yml 파일 보기



# 泰州海陵区城管 # 泰州海陵区城管
tzhl: tzhl:
url: http://221.230.150.241:8889
url: http://221.230.150.241:8889/prod-api
ticket: b6hd+ymZb5bY//0wNMJZsA== ticket: b6hd+ymZb5bY//0wNMJZsA==

+ 1
- 1
tuoheng-service/tuoheng-admin/src/main/resources/application-test.yml 파일 보기



# 泰州海陵区城管 # 泰州海陵区城管
tzhl: tzhl:
url: http://221.230.150.241:8889
url: http://221.230.150.241:8889/prod-api
ticket: b6hd+ymZb5bY//0wNMJZsA== ticket: b6hd+ymZb5bY//0wNMJZsA==

Loading…
취소
저장