Browse Source

智能故障诊断

Gaokun Wang 1 tuần trước cách đây
mục cha
commit
99d02d5ff8

+ 12 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AlgorithmController.java

@@ -71,6 +71,18 @@ public class AlgorithmController {
         return CommonResult.success();
     }
 
+    /**
+     * 执行故障诊断
+     *
+     * @param algorithmBo 入参
+     * @return org.eco.common.core.core.domain.CommonResult<java.lang.String> 结果
+     **/
+    @PostMapping("/execute/faultIntell")
+    public CommonResult<String> executeFaultIntell(@Validated @RequestBody AlgorithmBo algorithmBo) {
+        String data = algorithmService.executeFaultIntell(algorithmBo);
+        return CommonResult.success(data,"");
+    }
+
     /**
      * 退化评估
      *

+ 1 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/IAlgorithmService.java

@@ -19,6 +19,7 @@ public interface IAlgorithmService {
     void executeFalseAlarm(AlgorithmBo algorithmBo);
 
     void executeFault(AlgorithmBo algorithmBo);
+    String executeFaultIntell(AlgorithmBo algorithmBo);
     String executeEvaluation(AlgorithmBo algorithmBo);
 
     String batchExecute(TaskBo taskBo);

+ 59 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/service/impl/AlgorithmService.java

@@ -271,6 +271,65 @@ public class AlgorithmService implements IAlgorithmService {
         dataImportService.updateById(dataImport);
     }
 
+    @Override
+    public String executeFaultIntell(AlgorithmBo algorithmBo) {
+        DataImportVo dataImportVo = dataImportService.selectById(algorithmBo.getDataId());
+        DataImport dataImport = new DataImport();
+        dataImport.setId(dataImportVo.getId());
+        dataImport.setVersion(dataImportVo.getVersion());
+        dataImport.setStatus("2");
+        ModelBo modelBo = new ModelBo();
+        modelBo.setType("7");
+        List<ModelVo> list = modelService.selectList(modelBo);
+        if (CollUtil.isEmpty(list)) {
+            throw new BusinessException("模型信息为空,请检查!");
+        }
+        ModelVo modelVo = list.getFirst();
+        algorithmBo.setColumnData(modelVo.getColumnData().split(","));
+        SysOssVo sysOss = ossService.getById(algorithmBo.getOssId());
+        if (ObjectUtil.isNull(sysOss)) {
+            throw new BusinessException("文件数据不存在!");
+        }
+        FaultDiagnosisBo diagnosisBo = FaultDiagnosisBo.builder()
+            .ossId(sysOss.getOssId())
+            .aircraftId(algorithmBo.getAircraftId())
+            .modelType(modelVo.getType())
+            .sortieNo(algorithmBo.getSortieNo())
+            .param(algorithmBo.getPartId())
+            .status("0")
+            .columnData(Arrays.toString(algorithmBo.getColumnData()))
+            .build();
+        FaultDiagnosis faultDiagnosis = faultDiagnosisService.insert(diagnosisBo);
+        // 参数
+        Map<String, Object> map = StrUtil.isBlank(algorithmBo.getParam()) ? new HashMap<>() : new HashMap<>(JSONUtil.parseObj(algorithmBo.getParam()));
+        map.put("url", sysOss.getUrl());
+        // 请求
+        ModelHttpVo httpVo = sendHttp(modelVo, map);
+        if (httpVo != null && httpVo.getStatus() == 200) {
+            diagnosisBo.setId(faultDiagnosis.getId());
+            diagnosisBo.setVersion(faultDiagnosis.getVersion());
+            diagnosisBo.setStatus("1");
+            diagnosisBo.setResultContent(httpVo.getData());
+            faultDiagnosisService.update(diagnosisBo);
+            FaultDiagnosisResultBo resultBo = FaultDiagnosisResultBo.builder()
+                .diagnosisId(dataImport.getId())
+                .aircraftId(diagnosisBo.getAircraftId())
+                .resultContent(httpVo.getData())
+                .sortieNo(diagnosisBo.getSortieNo())
+                .param(modelVo.getPartId())
+                .modelType(modelVo.getName())
+                .columnData(modelVo.getColumnData())
+                .remarks(modelVo.getParamType())
+                .build();
+            faultDiagnosisResultService.insert(resultBo);
+        } else {
+            dataImport.setStatus("3");
+            throw new BusinessException("算法服务异常");
+        }
+        dataImportService.updateById(dataImport);
+        return httpVo.getData();
+    }
+
     @Override
     @Transactional
     public String executeEvaluation(AlgorithmBo algorithmBo) {