|
@@ -8,11 +8,10 @@ import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import jakarta.annotation.Resource;
|
|
import jakarta.annotation.Resource;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
-import org.eco.als.domain.FalseAlarm;
|
|
|
|
-import org.eco.als.domain.FaultDiagnosis;
|
|
|
|
-import org.eco.als.domain.PreProcessing;
|
|
|
|
-import org.eco.als.domain.Warning;
|
|
|
|
|
|
+import org.eco.als.domain.*;
|
|
import org.eco.als.domain.bo.*;
|
|
import org.eco.als.domain.bo.*;
|
|
|
|
+import org.eco.als.domain.vo.AirConfigurationVo;
|
|
|
|
+import org.eco.als.domain.vo.DataImportVo;
|
|
import org.eco.als.domain.vo.ModelHttpVo;
|
|
import org.eco.als.domain.vo.ModelHttpVo;
|
|
import org.eco.als.domain.vo.ModelVo;
|
|
import org.eco.als.domain.vo.ModelVo;
|
|
import org.eco.als.service.*;
|
|
import org.eco.als.service.*;
|
|
@@ -25,14 +24,12 @@ import org.eco.common.core.utils.StringUtils;
|
|
import org.eco.common.core.utils.file.FileUtils;
|
|
import org.eco.common.core.utils.file.FileUtils;
|
|
import org.eco.system.domain.vo.SysOssVo;
|
|
import org.eco.system.domain.vo.SysOssVo;
|
|
import org.eco.system.service.ISysOssService;
|
|
import org.eco.system.service.ISysOssService;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: AlgorithmService
|
|
* @Description: AlgorithmService
|
|
@@ -64,9 +61,20 @@ public class AlgorithmService implements IAlgorithmService {
|
|
private IFaultDiagnosisService faultDiagnosisService;
|
|
private IFaultDiagnosisService faultDiagnosisService;
|
|
@Resource
|
|
@Resource
|
|
private IFaultDiagnosisResultService faultDiagnosisResultService;
|
|
private IFaultDiagnosisResultService faultDiagnosisResultService;
|
|
|
|
+ @Resource
|
|
|
|
+ private IDataImportService dataImportService;
|
|
|
|
+ @Resource
|
|
|
|
+ private IAirConfigurationService airConfigurationService;
|
|
|
|
+ @Resource
|
|
|
|
+ private ILifePredictionService lifePredictionService;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private ITaskService taskService;
|
|
private ITaskService taskService;
|
|
|
|
+ @Resource
|
|
|
|
+ private IQaHistoryService qaHistoryService;
|
|
|
|
+
|
|
|
|
+ @Value("${kgqa.ask-url}")
|
|
|
|
+ private String askUrl;
|
|
|
|
|
|
private static ModelHttpVo sendHttp(ModelVo modelVo, Map<String, Object> map) {
|
|
private static ModelHttpVo sendHttp(ModelVo modelVo, Map<String, Object> map) {
|
|
try {
|
|
try {
|
|
@@ -202,10 +210,11 @@ public class AlgorithmService implements IAlgorithmService {
|
|
@Transactional
|
|
@Transactional
|
|
public String executeFault(AlgorithmBo algorithmBo) {
|
|
public String executeFault(AlgorithmBo algorithmBo) {
|
|
// 模型相关信息
|
|
// 模型相关信息
|
|
- ModelVo modelVo = modelService.selectById(algorithmBo.getModelId());
|
|
|
|
|
|
+ ModelVo modelVo = modelService.selectByPartId(algorithmBo.getPartId());
|
|
if (ObjectUtil.isNull(modelVo)) {
|
|
if (ObjectUtil.isNull(modelVo)) {
|
|
throw new BusinessException("模型信息为空,请检查!");
|
|
throw new BusinessException("模型信息为空,请检查!");
|
|
}
|
|
}
|
|
|
|
+ algorithmBo.setColumnData(modelVo.getColumnData().split(","));
|
|
SysOssVo sysOssVo = getSysOssVo(algorithmBo);
|
|
SysOssVo sysOssVo = getSysOssVo(algorithmBo);
|
|
if (sysOssVo == null) {
|
|
if (sysOssVo == null) {
|
|
return null;
|
|
return null;
|
|
@@ -215,7 +224,7 @@ public class AlgorithmService implements IAlgorithmService {
|
|
.aircraftId(algorithmBo.getAircraftId())
|
|
.aircraftId(algorithmBo.getAircraftId())
|
|
.modelType(modelVo.getType())
|
|
.modelType(modelVo.getType())
|
|
.sortieNo(algorithmBo.getSortieNo())
|
|
.sortieNo(algorithmBo.getSortieNo())
|
|
- .param(algorithmBo.getParam())
|
|
|
|
|
|
+ .param(algorithmBo.getPartId())
|
|
.status("0")
|
|
.status("0")
|
|
.columnData(Arrays.toString(algorithmBo.getColumnData()))
|
|
.columnData(Arrays.toString(algorithmBo.getColumnData()))
|
|
.build();
|
|
.build();
|
|
@@ -232,6 +241,7 @@ public class AlgorithmService implements IAlgorithmService {
|
|
diagnosisBo.setResultContent(httpVo.getData());
|
|
diagnosisBo.setResultContent(httpVo.getData());
|
|
faultDiagnosisService.update(diagnosisBo);
|
|
faultDiagnosisService.update(diagnosisBo);
|
|
FaultDiagnosisResultBo resultBo = FaultDiagnosisResultBo.builder()
|
|
FaultDiagnosisResultBo resultBo = FaultDiagnosisResultBo.builder()
|
|
|
|
+ .diagnosisId(diagnosisBo.getId())
|
|
.aircraftId(diagnosisBo.getAircraftId())
|
|
.aircraftId(diagnosisBo.getAircraftId())
|
|
.diagnosisId(diagnosisBo.getId())
|
|
.diagnosisId(diagnosisBo.getId())
|
|
.resultContent(httpVo.getData())
|
|
.resultContent(httpVo.getData())
|
|
@@ -242,6 +252,57 @@ public class AlgorithmService implements IAlgorithmService {
|
|
return httpVo != null ? httpVo.getData() : null;
|
|
return httpVo != null ? httpVo.getData() : null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public String executeEvaluation(AlgorithmBo algorithmBo) {
|
|
|
|
+ AirConfigurationVo airConfigurationVo = airConfigurationService.selectById(Long.valueOf(algorithmBo.getPartId()));
|
|
|
|
+ DataImportBo dataImportBo = new DataImportBo();
|
|
|
|
+ dataImportBo.setAircraftId(algorithmBo.getAircraftId());
|
|
|
|
+ List<DataImportVo> dataImportVos = dataImportService.selectList(dataImportBo);
|
|
|
|
+ // 模型相关信息
|
|
|
|
+ ModelVo modelVo = modelService.selectByPartId(algorithmBo.getPartId());
|
|
|
|
+ if (ObjectUtil.isNull(modelVo)) {
|
|
|
|
+ throw new BusinessException("模型信息为空,请检查!");
|
|
|
|
+ }
|
|
|
|
+ if (StrUtil.isBlank(modelVo.getColumnData())) {
|
|
|
|
+ throw new BusinessException("参数列不能为空,请检查!");
|
|
|
|
+ }
|
|
|
|
+ algorithmBo.setColumnData(modelVo.getColumnData().split(","));
|
|
|
|
+ List<String> urls = new ArrayList<>();
|
|
|
|
+ dataImportVos.forEach(el -> {
|
|
|
|
+ algorithmBo.setOssId(el.getOssId());
|
|
|
|
+ SysOssVo sysOssVo = getSysOssVo(algorithmBo);
|
|
|
|
+ if (ObjectUtil.isNotNull(sysOssVo)) {
|
|
|
|
+ urls.add(sysOssVo.getUrl());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ // 插入退化评估记录
|
|
|
|
+ LifePredictionBo lifePredictionBo = LifePredictionBo.builder()
|
|
|
|
+ .name(airConfigurationVo.getName())
|
|
|
|
+ .model(airConfigurationVo.getSpecsModel())
|
|
|
|
+ .aircraftId(algorithmBo.getAircraftId())
|
|
|
|
+ .aircraftType(airConfigurationVo.getAircraftType())
|
|
|
|
+ .code(airConfigurationVo.getConCode())
|
|
|
|
+ .status("0")
|
|
|
|
+ .build();
|
|
|
|
+ LifePrediction lifePrediction = lifePredictionService.insert(lifePredictionBo);
|
|
|
|
+
|
|
|
|
+ // 参数
|
|
|
|
+ Map<String, Object> map = StrUtil.isBlank(algorithmBo.getParam()) ? new HashMap<>() : new HashMap<>(JSONUtil.parseObj(algorithmBo.getParam()));
|
|
|
|
+ map.put("url", urls.getFirst());
|
|
|
|
+ // 请求
|
|
|
|
+ ModelHttpVo httpVo = sendHttp(modelVo, map);
|
|
|
|
+ if (httpVo != null && httpVo.getStatus() == 200) {
|
|
|
|
+ // 更新退化评估状态
|
|
|
|
+ lifePredictionBo.setId(lifePrediction.getId());
|
|
|
|
+ lifePredictionBo.setStatus("1");
|
|
|
|
+ lifePredictionBo.setVersion(lifePrediction.getVersion());
|
|
|
|
+ lifePredictionBo.setResultContent(httpVo.getData());
|
|
|
|
+ lifePredictionService.update(lifePredictionBo);
|
|
|
|
+ }
|
|
|
|
+ return httpVo != null ? httpVo.getData() : null;
|
|
|
|
+ }
|
|
|
|
+
|
|
private SysOssVo getSysOssVo(AlgorithmBo algorithmBo) {
|
|
private SysOssVo getSysOssVo(AlgorithmBo algorithmBo) {
|
|
SysOssVo sysOss = ossService.getById(algorithmBo.getOssId());
|
|
SysOssVo sysOss = ossService.getById(algorithmBo.getOssId());
|
|
if (ObjectUtil.isNull(sysOss)) {
|
|
if (ObjectUtil.isNull(sysOss)) {
|
|
@@ -301,11 +362,30 @@ public class AlgorithmService implements IAlgorithmService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public String executeQa(QaBo qaBo) {
|
|
public String executeQa(QaBo qaBo) {
|
|
- String url = "http://192.168.0.102:8000/ask/";
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("user_id", qaBo.getUserId());
|
|
map.put("user_id", qaBo.getUserId());
|
|
map.put("question", qaBo.getQuestion());
|
|
map.put("question", qaBo.getQuestion());
|
|
- String result = HttpUtils.postJson(url, map);
|
|
|
|
- return result;
|
|
|
|
|
|
+ String result = HttpUtils.postJson(askUrl, map);
|
|
|
|
+ JSONObject jsonObject = JSONUtil.parseObj(result);
|
|
|
|
+ String data = jsonObject.getStr("data");
|
|
|
|
+ String code = jsonObject.getStr("code");
|
|
|
|
+ String msg = jsonObject.getStr("msg");
|
|
|
|
+ if (StrUtil.isBlank(code)) {
|
|
|
|
+ throw new BusinessException(msg);
|
|
|
|
+ }
|
|
|
|
+ JSONObject answerJson = JSONUtil.parseObj(data);
|
|
|
|
+ String ossId = answerJson.getStr("ossID");
|
|
|
|
+ String userId = answerJson.getStr("user_id");
|
|
|
|
+ String fileName = answerJson.getStr("file_name");
|
|
|
|
+ String graph = answerJson.getStr("graph");
|
|
|
|
+ String answer = answerJson.getStr("answer");
|
|
|
|
+ QaHistoryBo qaHistoryBo = new QaHistoryBo();
|
|
|
|
+ qaHistoryBo.setAnswer(answer);
|
|
|
|
+ qaHistoryBo.setOssId(Long.valueOf(ossId));
|
|
|
|
+ qaHistoryBo.setUserId(userId);
|
|
|
|
+ qaHistoryBo.setFileName(fileName);
|
|
|
|
+ qaHistoryBo.setGraph(graph);
|
|
|
|
+ qaHistoryService.insert(qaHistoryBo);
|
|
|
|
+ return data;
|
|
}
|
|
}
|
|
}
|
|
}
|