*/ | */ | ||||
String HL_TOKEN_KEY = "HL_TOKEN"; | String HL_TOKEN_KEY = "HL_TOKEN"; | ||||
/** | |||||
* reids:fly log key | |||||
*/ | |||||
String HL_FLY_LOG = "HL_FLY_LOG_"; | |||||
/** | /** | ||||
* 天翼星云机场平台:票据登录 | * 天翼星云机场平台:票据登录 | ||||
*/ | */ |
*/ | */ | ||||
private String content; | private String content; | ||||
private String searchValue; | |||||
private String createBy; | |||||
private String createTime; | |||||
private String createTimeFrom; | |||||
private String createTimeTo; | |||||
private String updateBy; | |||||
private String updateTime; | |||||
private String remark; | |||||
} | } |
import com.tuoheng.admin.mapper.InspectionMapper; | import com.tuoheng.admin.mapper.InspectionMapper; | ||||
import com.tuoheng.admin.service.third.dsp.IDspService; | import com.tuoheng.admin.service.third.dsp.IDspService; | ||||
import com.tuoheng.admin.tzhl.response.TZHLFlyLogResponse; | import com.tuoheng.admin.tzhl.response.TZHLFlyLogResponse; | ||||
import com.tuoheng.admin.tzhl.service.fly.data.FlyDataService; | |||||
import com.tuoheng.common.core.utils.DateUtils; | import com.tuoheng.common.core.utils.DateUtils; | ||||
import com.tuoheng.common.core.utils.StringUtils; | import com.tuoheng.common.core.utils.StringUtils; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@Autowired | @Autowired | ||||
private IDspService dspService; | private IDspService dspService; | ||||
@Autowired | |||||
private FlyDataService flyDataService; | |||||
public void getFlyLog(Inspection inspection, TZHLFlyLogResponse flyLogResponse) { | public void getFlyLog(Inspection inspection, TZHLFlyLogResponse flyLogResponse) { | ||||
log.info("获取飞行日志,status=error,title={}", flyLogResponse.getTitle()); | log.info("获取飞行日志,status=error,title={}", flyLogResponse.getTitle()); | ||||
this.updateInspection(inspection); | this.updateInspection(inspection); | ||||
// 拉取飞行数据 | |||||
flyDataService.getFlyData(inspection); | |||||
dspService.stopAI(inspection.getId()); | dspService.stopAI(inspection.getId()); | ||||
} | } | ||||
package com.tuoheng.admin.tzhl.service.fly.log; | package com.tuoheng.admin.tzhl.service.fly.log; | ||||
import cn.hutool.core.util.ObjectUtil; | |||||
import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||
import com.tuoheng.admin.entity.Inspection; | import com.tuoheng.admin.entity.Inspection; | ||||
import com.tuoheng.admin.tzhl.constant.TZHLConstant; | import com.tuoheng.admin.tzhl.constant.TZHLConstant; | ||||
import com.tuoheng.admin.tzhl.request.TZHLFlyLogRequest; | import com.tuoheng.admin.tzhl.request.TZHLFlyLogRequest; | ||||
import com.tuoheng.admin.tzhl.response.TZHLFlyDataResponse; | import com.tuoheng.admin.tzhl.response.TZHLFlyDataResponse; | ||||
import com.tuoheng.admin.tzhl.response.TZHLFlyLogResponse; | import com.tuoheng.admin.tzhl.response.TZHLFlyLogResponse; | ||||
import com.tuoheng.admin.tzhl.response.TZHLTokenResponse; | |||||
import com.tuoheng.admin.tzhl.service.CallTianYiPlatformService; | import com.tuoheng.admin.tzhl.service.CallTianYiPlatformService; | ||||
import com.tuoheng.common.core.utils.RedisUtils; | import com.tuoheng.common.core.utils.RedisUtils; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@Service | @Service | ||||
public class FlyLogService { | public class FlyLogService { | ||||
@Autowired | |||||
private RedisUtils redisUtils; | |||||
@Autowired | @Autowired | ||||
private CallTianYiPlatformService callTianYiPlatformService; | private CallTianYiPlatformService callTianYiPlatformService; | ||||
String apiPath = TZHLConstant.TIAN_YI_API_FLIGHT_LOG; | String apiPath = TZHLConstant.TIAN_YI_API_FLIGHT_LOG; | ||||
TZHLFlyLogRequest request = new TZHLFlyLogRequest(); | TZHLFlyLogRequest request = new TZHLFlyLogRequest(); | ||||
request.setRecordId(inspection.getRecordId()); | request.setRecordId(inspection.getRecordId()); | ||||
request.setCreateTime(null); | |||||
HttpHeaders headers = new HttpHeaders(); | |||||
headers.setContentType(MediaType.APPLICATION_JSON); | |||||
String dataJson = callTianYiPlatformService.callGet(apiPath, null); | |||||
TZHLFlyLogResponse flyLogResponseOld = (TZHLFlyLogResponse) redisUtils.get(TZHLConstant.HL_FLY_LOG + inspection.getId()); | |||||
if (ObjectUtil.isNotEmpty(flyLogResponseOld)) { | |||||
String createTime = flyLogResponseOld.getCreateTime(); | |||||
request.setCreateTime(createTime); | |||||
} | |||||
String dataJson = callTianYiPlatformService.callPost(apiPath, request); | |||||
TZHLFlyLogResponse flyLogResponse = JSON.parseObject(dataJson, TZHLFlyLogResponse.class); | TZHLFlyLogResponse flyLogResponse = JSON.parseObject(dataJson, TZHLFlyLogResponse.class); | ||||
redisUtils.set(TZHLConstant.HL_FLY_LOG + inspection.getId(), flyLogResponse); | |||||
log.info("获取飞行日志,flyLogResponse={}", flyLogResponse); | log.info("获取飞行日志,flyLogResponse={}", flyLogResponse); | ||||
if ("success".equals(flyLogResponse.getStatus())) { | if ("success".equals(flyLogResponse.getStatus())) { | ||||
flyLogBySuccessService.getFlyLog(inspection, flyLogResponse); | flyLogBySuccessService.getFlyLog(inspection, flyLogResponse); | ||||
} else if ("success".equals(flyLogResponse.getStatus())) { | |||||
} else if ("error".equals(flyLogResponse.getStatus())) { | |||||
flyLogByErrorService.getFlyLog(inspection, flyLogResponse); | flyLogByErrorService.getFlyLog(inspection, flyLogResponse); | ||||
} else if ("success".equals(flyLogResponse.getStatus())) { | |||||
} else if ("normal".equals(flyLogResponse.getStatus())) { | |||||
flyLogByNormalService.getFlyLog(inspection, flyLogResponse); | flyLogByNormalService.getFlyLog(inspection, flyLogResponse); | ||||
} else { | } else { | ||||
log.info("status类型不匹配"); | log.info("status类型不匹配"); | ||||
} | } | ||||
} | } | ||||
} | } |
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.tuoheng.admin.entity.Inspection; | import com.tuoheng.admin.entity.Inspection; | ||||
import com.tuoheng.admin.enums.InspectionFileStatusEnum; | |||||
import com.tuoheng.admin.enums.InspectionStatusEnum; | import com.tuoheng.admin.enums.InspectionStatusEnum; | ||||
import com.tuoheng.admin.enums.InspectionTypeEnum; | import com.tuoheng.admin.enums.InspectionTypeEnum; | ||||
import com.tuoheng.admin.enums.MarkEnum; | import com.tuoheng.admin.enums.MarkEnum; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.ArrayList; | |||||
import java.util.Date; | import java.util.Date; | ||||
import java.util.List; | import java.util.List; | ||||
@XxlJob("telecomumaleFlyLogTaskHandler") | @XxlJob("telecomumaleFlyLogTaskHandler") | ||||
public void airportTaskHandler() { | public void airportTaskHandler() { | ||||
// 查询当前时间正负1分钟的时间跨度,xxljob执行频率为1分钟1次 | |||||
long start = new Date().getTime() - 1 * 60000L; | |||||
long end = new Date().getTime() + 1 * 60000L; | |||||
Date startTime = new Date(start); | |||||
Date endTime = new Date(end); | |||||
log.info("执行定时执行飞行任务:" + LocalDateTime.now()); | |||||
log.info("执行定时,获取飞行日志:" + LocalDateTime.now()); | |||||
List<Integer> statusList = new ArrayList<>(); | |||||
statusList.add(InspectionStatusEnum.PREPARING.getCode()); | |||||
statusList.add(InspectionStatusEnum.IN_FLIGHT.getCode()); | |||||
List<Inspection> inspectionList = inspectionMapper.selectList(new LambdaQueryWrapper<Inspection>() | List<Inspection> inspectionList = inspectionMapper.selectList(new LambdaQueryWrapper<Inspection>() | ||||
.eq(Inspection::getMark, MarkEnum.VALID.getCode()) | .eq(Inspection::getMark, MarkEnum.VALID.getCode()) | ||||
.between(Inspection::getInspectionTime, startTime, endTime) | |||||
//查询巡检方式为机场的任务 | |||||
.eq(Inspection::getInspectionType, InspectionTypeEnum.AIRPORT.getCode()) | .eq(Inspection::getInspectionType, InspectionTypeEnum.AIRPORT.getCode()) | ||||
//查询未执行任务 | |||||
.eq(Inspection::getExecutionStatus, 1) | |||||
//任务待飞行 | |||||
.eq(Inspection::getStatus, InspectionStatusEnum.PREPARING.getCode())); | |||||
.in(Inspection::getStatus,statusList)); | |||||
log.info("执行定时执行飞行任务:机场任务数" + inspectionList.size()); | log.info("执行定时执行飞行任务:机场任务数" + inspectionList.size()); | ||||
if (StringUtils.isEmpty(inspectionList)) { | if (StringUtils.isEmpty(inspectionList)) { | ||||
return; | return; |