Pārlūkot izejas kodu

fix: 任务管理

wanggaokun 10 mēneši atpakaļ
vecāks
revīzija
f3881224f6

+ 21 - 1
als-modules/agile-assurance/src/main/java/org/eco/als/controller/AlgorithmController.java

@@ -29,6 +29,11 @@ public class AlgorithmController {
     @Resource
     private IAlgorithmService algorithmService;
 
+    /**
+     * 执行预处理
+     * @param algorithmBo 入参
+     * @return org.eco.common.core.core.domain.CommonResult<java.lang.String> 结果
+     **/
     @SaCheckPermission("als:algorithm:execute")
     @Log(title = "执行预处理算法", businessType = BusinessType.EXECUTE)
     @PostMapping("/execute/pro")
@@ -36,6 +41,11 @@ public class AlgorithmController {
         return StrUtil.isBlank(algorithmService.executePro(algorithmBo)) ? CommonResult.fail() : CommonResult.success();
     }
 
+    /**
+     * 执行虚警抑制
+     * @param algorithmBo 入参
+     * @return org.eco.common.core.core.domain.CommonResult<java.lang.String> 结果
+     **/
     @SaCheckPermission("als:algorithm:execute")
     @Log(title = "执行虚警抑制算法", businessType = BusinessType.EXECUTE)
     @PostMapping("/execute/falseAlarm")
@@ -43,13 +53,23 @@ public class AlgorithmController {
         return StrUtil.isBlank(algorithmService.executeFalseAlarm(algorithmBo)) ? CommonResult.fail() : CommonResult.success();
     }
 
+    /**
+     * 执行古战诊断
+     * @param algorithmBo 入参
+     * @return org.eco.common.core.core.domain.CommonResult<java.lang.String> 结果
+     **/
     @SaCheckPermission("als:algorithm:execute")
     @Log(title = "执行故障诊断算法", businessType = BusinessType.EXECUTE)
     @PostMapping("/execute/fault")
     public CommonResult<String> executeFault(@Validated @RequestBody AlgorithmBo algorithmBo) {
-        return StrUtil.isBlank(algorithmService.executeFalseAlarm(algorithmBo)) ? CommonResult.fail() : CommonResult.success();
+        return StrUtil.isBlank(algorithmService.executeFault(algorithmBo)) ? CommonResult.fail() : CommonResult.success();
     }
 
+    /**
+     * 执行任务管理
+     * @param taskBo 入参
+     * @return org.eco.common.core.core.domain.CommonResult<java.lang.String> 结果
+     **/
     @SaCheckPermission("als:algorithm:execute")
     @Log(title = "执行任务", businessType = BusinessType.EXECUTE)
     @PostMapping("/execute/task")

+ 25 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/FaultDiagnosis.java

@@ -38,6 +38,31 @@ public class FaultDiagnosis extends BaseEntity {
      */
     private Long aircraftId;
 
+    /**
+     * 模型类型
+     */
+    private String modelType;
+
+    /**
+     * 参数
+     */
+    private String param;
+
+    /**
+     * 数据列
+     */
+    private String columnData;
+
+    /**
+     * 结果
+     */
+    private String resultContent;
+
+    /**
+     * 文件Id
+     */
+    private Long ossId;
+
     /**
      * 状态(1正常)
      */

+ 28 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/bo/FaultDiagnosisBo.java

@@ -37,6 +37,34 @@ public class FaultDiagnosisBo extends BaseEntity {
     @NotNull(message = "机号不能为空")
     private Long aircraftId;
 
+    /**
+     * 模型类型
+     */
+    @NotBlank(message = "模型类型不能为空")
+    private String modelType;
+
+    /**
+     * 参数
+     */
+    @NotBlank(message = "参数不能为空")
+    private String param;
+
+    /**
+     * 数据列
+     */
+    @NotBlank(message = "数据列不能为空")
+    private String columnData;
+
+    /**
+     * 结果
+     */
+    private String resultContent;
+
+    /**
+     * 文件Id
+     */
+    private Long ossId;
+
     /**
      * 状态(1正常)
      */

+ 32 - 0
als-modules/agile-assurance/src/main/java/org/eco/als/domain/vo/FaultDiagnosisVo.java

@@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.eco.als.domain.FaultDiagnosis;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
 import org.eco.common.orm.core.domain.BaseEntity;
 
 import java.io.Serial;
@@ -44,6 +46,36 @@ public class FaultDiagnosisVo extends BaseEntity implements Serializable {
      * 机号
      */
     private Long aircraftId;
+    /**
+     * 文件Id
+     */
+    @ExcelProperty(value = "文件Id")
+    private Long ossId;
+
+    /**
+     * 模型类型
+     */
+    @ExcelProperty(value = "模型类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "common_type")
+    private String modelType;
+
+    /**
+     * 参数
+     */
+    @ExcelProperty(value = "参数")
+    private String param;
+
+    /**
+     * 数据列
+     */
+    @ExcelProperty(value = "数据列")
+    private String columnData;
+
+    /**
+     * 结果
+     */
+    @ExcelProperty(value = "结果")
+    private String resultContent;
 
     /**
      * 机号

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

@@ -9,9 +9,9 @@ import org.eco.als.domain.Warning;
 import org.eco.als.domain.bo.AlgorithmBo;
 import org.eco.als.domain.bo.FalseAlarmBo;
 import org.eco.als.domain.bo.FalseAlarmResultBo;
+import org.eco.als.domain.bo.FaultDiagnosisBo;
 import org.eco.als.domain.bo.PreProcessingBo;
 import org.eco.als.domain.bo.TaskBo;
-import org.eco.als.domain.vo.DataImportVo;
 import org.eco.als.domain.vo.ModelHttpVo;
 import org.eco.als.domain.vo.ModelVo;
 import org.eco.als.service.IAlgorithmService;
@@ -100,16 +100,10 @@ public class AlgorithmService implements IAlgorithmService {
             throw new BusinessException("模型信息为空,请检查!");
         }
 
-        File file = null;
-        try (InputStream inputStream = ossService.getFileStream(algorithmBo.getOssId())) {
-            file = CsvUtils.excelToFileCsvByColumns(inputStream, algorithmBo.getColumnData());
-        } catch (Exception e) {
-            log.error("文件转换异常:{}", e.getMessage());
-        }
-        if (ObjectUtil.isNull(file)) {
+        SysOssVo sysOssVo = getSysOssVo(algorithmBo);
+        if (sysOssVo == null) {
             return null;
         }
-        SysOssVo sysOssVo = ossService.upload(file);
         PreProcessingBo processingBo =
                 PreProcessingBo.builder()
                         .ossId(sysOssVo.getOssId())
@@ -153,16 +147,10 @@ public class AlgorithmService implements IAlgorithmService {
         if (ObjectUtil.isNull(modelVo)) {
             throw new BusinessException("模型信息为空,请检查!");
         }
-        File file = null;
-        try (InputStream inputStream = ossService.getFileStream(algorithmBo.getOssId())) {
-            file = CsvUtils.excelToFileCsvByColumns(inputStream, algorithmBo.getColumnData());
-        } catch (Exception e) {
-            log.error("文件转换异常:{}", e.getMessage());
-        }
-        if (ObjectUtil.isNull(file)) {
+        SysOssVo sysOssVo = getSysOssVo(algorithmBo);
+        if (sysOssVo == null) {
             return null;
         }
-        SysOssVo sysOssVo = ossService.upload(file);
         FalseAlarmBo falseAlarmBo = FalseAlarmBo.builder()
                 .ossId(sysOssVo.getOssId())
                 .aircraftId(algorithmBo.getAircraftId())
@@ -214,32 +202,46 @@ public class AlgorithmService implements IAlgorithmService {
         if (ObjectUtil.isNull(modelVo)) {
             throw new BusinessException("模型信息为空,请检查!");
         }
-        File file = null;
-        try (InputStream inputStream = ossService.getFileStream(algorithmBo.getOssId())) {
-            file = CsvUtils.excelToFileCsvByColumns(inputStream, algorithmBo.getColumnData());
-        } catch (Exception e) {
-            log.error("文件转换异常:{}", e.getMessage());
-        }
-        if (ObjectUtil.isNull(file)) {
+        SysOssVo sysOssVo = getSysOssVo(algorithmBo);
+        if (sysOssVo == null) {
             return null;
         }
-        SysOssVo sysOssVo = ossService.upload(file);
-
-        // 警告列表
-        List<Warning> warnings = warningService.listByIds(Arrays.asList(algorithmBo.getWarningIds()));
-        Warning warning = warnings.getFirst();
-        warnings.forEach(el -> {
-        });
+        FaultDiagnosisBo diagnosisBo = FaultDiagnosisBo.builder()
+                .ossId(sysOssVo.getOssId())
+                .aircraftId(algorithmBo.getAircraftId())
+                .modelType(modelVo.getType())
+                .sortieNo(algorithmBo.getSortieNo())
+                .param(algorithmBo.getParam())
+                .status("0")
+                .columnData(Arrays.toString(algorithmBo.getColumnData()))
+                .build();
+        faultDiagnosisService.insert(diagnosisBo);
         // 参数
         Map<String, Object> map = new HashMap<>(JSONUtil.parseObj(algorithmBo.getParam()));
         map.put("url", sysOssVo.getUrl());
         // 请求
         ModelHttpVo httpVo = sendHttp(modelVo, map);
         if (httpVo != null && httpVo.getStatus() == 200) {
+            diagnosisBo.setStatus("1");
+            diagnosisBo.setResultContent(httpVo.getData());
+            faultDiagnosisService.update(diagnosisBo);
         }
         return httpVo != null ? httpVo.getData() : null;
     }
 
+    private SysOssVo getSysOssVo(AlgorithmBo algorithmBo) {
+        File file = null;
+        try (InputStream inputStream = ossService.getFileStream(algorithmBo.getOssId())) {
+            file = CsvUtils.excelToFileCsvByColumns(inputStream, algorithmBo.getColumnData());
+        } catch (Exception e) {
+            log.error("文件转换异常:{}", e.getMessage());
+        }
+        if (ObjectUtil.isNull(file)) {
+            return null;
+        }
+        return ossService.upload(file);
+    }
+
     @Override
     public String batchExecute(TaskBo taskBo) {
         // 数据编号
@@ -255,29 +257,9 @@ public class AlgorithmService implements IAlgorithmService {
         List<AlgorithmBo> algorithmList = taskBo.getAlgorithmList();
         // 批量执行
         algorithmList.forEach(el -> {
-            // 模型相关信息
-            ModelVo modelVo = modelService.selectById(el.getModelId());
-            // 数据相关信息
-            DataImportVo dataVo = dataImportService.selectById(el.getDataId());
-            // 参数
-            Map<String, Object> map = new HashMap<>(JSONUtil.parseObj(el.getParam()));
-            try (InputStream inputStream = ossService.getFileStream(dataVo.getOssId())) {
-                File file = CsvUtils.excelToFileCsvByColumns(inputStream, el.getColumnData());
-                SysOssVo sysOssVo = ossService.upload(file);
-                // 请求
-                map.put("url", sysOssVo.getUrl());
-                ModelHttpVo httpVo = sendHttp(modelVo, map);
-                if (httpVo != null && httpVo.getStatus() == 200) {
-                    File resultFile = CsvUtils.jsonToFileCsv(httpVo.getData(), CsvUtils.extractFilename("model_result"
-                    ));
-                    SysOssVo sysOssVo2 = ossService.upload(resultFile);
-                }
-                if (taskBo.getStepNumber() == 1) {
-                    // TODO 对应结果
-                }
-            } catch (Exception e) {
-                log.error(e.getMessage());
-            }
+            executePro(el);
+            executeFalseAlarm(el);
+            executeFault(el);
         });
         taskService.insert(taskBo);
         return null;