Kaynağa Gözat

feat: 总任务初步搞定

WANGKANG 3 ay önce
ebeveyn
işleme
3027ea68dc

+ 24 - 12
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/AlgorithmTaskTrackServiceImpl.java

@@ -40,10 +40,11 @@ import static com.taais.biz.domain.table.AlgorithmTaskTrackTableDef.ALGORITHM_TA
  * 可辨识性分析总任务Service业务层处理
  *
  * @author wangkang
- * 2025-01-06
+ *         2025-01-06
  */
 @Service
-public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTaskTrackMapper, AlgorithmTaskTrack> implements IAlgorithmTaskTrackService {
+public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTaskTrackMapper, AlgorithmTaskTrack>
+        implements IAlgorithmTaskTrackService {
     @Autowired
     private AlgorithmConfigTrackServiceImpl algorithmConfigTrackService;
     @Autowired
@@ -57,7 +58,6 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
     @Autowired
     private TrackSequenceServiceImpl trackSequenceService;
 
-
     @Resource
     private AlgorithmTaskTrackMapper algorithmTaskTrackMapper;
 
@@ -120,6 +120,9 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
     }
 
     public Long parseLong(Object obj) {
+        if (obj == null) {
+            return null;
+        }
         if (obj instanceof Long) {
             return (Long) obj;
         } else {
@@ -156,12 +159,12 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
 
         trackSequenceBo.setAlgorithmModelId(parseLong(params.get("trackSequenceModelId")));
         trackSequenceBo.setAlgorithmId(parseLong(params.get("trackSequenceAlgorithmId")));
+        trackSequenceBo.setAlgorithmModelTargetDetectionId(parseLong(params.get("TD_modelId")));
 
         Map<String, Object> otherParams = (Map<String, Object>) params.get("trackSequenceAlgorithmParams");
         if (ObjectUtil.isNull(otherParams)) {
             otherParams = new HashMap<>();
         }
-        otherParams.put("algorithmModelTargetDetectionId", params.get("TD_modelId"));
         trackSequenceBo.setOtherParams(otherParams);
 
         return trackSequenceBo;
@@ -174,16 +177,17 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
         trackSequenceBo.setRemarks((String) params.get("remarks"));
         trackSequenceBo.setParentTaskId(parseLong(params.get("parentTaskId")));
 
-//        trackSequenceBo.setAlgorithmModelId((Long) params.get("trackSequenceEvaluateModelId"));
+        // trackSequenceBo.setAlgorithmModelId((Long)
+        // params.get("trackSequenceEvaluateModelId"));
         trackSequenceBo.setAlgorithmId(parseLong(params.get("trackSequenceEvaluateAlgorithmId")));
+        trackSequenceBo.setAlgorithmModelTargetDetectionId(parseLong(params.get("TD_modelId")));
+        trackSequenceBo.setPredictTaskId(parseLong(params.get("trackSequencePredictTaskId")));
+        trackSequenceBo.setInputLabelOssId(parseLong(params.get("inputEvaluateLabelOssId")));
 
         Map<String, Object> otherParams = (Map<String, Object>) params.get("trackSequenceEvaluateAlgorithmParams");
         if (ObjectUtil.isNull(otherParams)) {
             otherParams = new HashMap<>();
         }
-        otherParams.put("algorithmModelTargetDetectionId", params.get("TD_modelId"));
-        otherParams.put("trackSequencePredictTaskId", params.get("trackSequencePredictTaskId"));
-        otherParams.put("inputLabelOssId", params.get("inputEvaluateLabelOssId"));
         trackSequenceBo.setOtherParams(otherParams);
 
         return trackSequenceBo;
@@ -217,20 +221,27 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
             ToInfrared toInfraredTask = toInfraredService.insert2(toInfraredBo);
 
             // 需要更新一下inputDatasetOssId,以便于创建trackSequencePredictTask任务
-            Long inputDatasetOssId_new = getNewOssId(toInfraredTask.getOutputPath());
+            // todo 这里有一个很恶心的地方,就是可见光转红外预测任务的输出是输出目录的/images文件夹,乌鱼子,,,
+            String outPath = toInfraredTask.getOutputPath();
+            if (outPath.endsWith("/images")) {
+                outPath = outPath.substring(0, outPath.length() - 7);
+            }
+            Long inputDatasetOssId_new = getNewOssId(outPath);
             params.put("inputDatasetOssId", inputDatasetOssId_new);
         }
 
         // 创建可辨识性预测任务
         TrackSequenceBo trackSequencePredictBo = createTrackSequencePredictBo(params);
         trackSequencePredictBo.setParentTaskId(algorithmTaskTrack.getId());
-        TrackSequence trackSequencePredictTask = trackSequenceService.insert2(trackSequencePredictBo);
+        CommonResult result__ = trackSequenceService.insert(trackSequencePredictBo);
+        TrackSequence trackSequencePredictTask = (TrackSequence) result__.getData();
         // 创建可辨识性分析评估任务
         if (params.containsKey("ifEvaluate") && params.get("ifEvaluate").equals(true)) {
             params.put("trackSequencePredictTaskId", trackSequencePredictTask.getId());
             TrackSequenceBo trackSequenceEvaluateBo = createTrackSequenceEvaluateBo(params);
             trackSequenceEvaluateBo.setParentTaskId(algorithmTaskTrack.getId());
-            TrackSequence trackSequenceEvaluateTask = trackSequenceService.insert2(trackSequenceEvaluateBo);
+            CommonResult result____ = trackSequenceService.insert(trackSequenceEvaluateBo);
+            TrackSequence trackSequenceEvaluateTask = (TrackSequence) result____.getData();
         }
 
         return true;
@@ -319,7 +330,8 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
             for (TrackSequence trackSequence : trackSequenceList) {
                 AlgorithmSubTaskTrackVo subTaskVo = new AlgorithmSubTaskTrackVo();
                 BeanUtils.copyProperties(trackSequence, subTaskVo);
-                subTaskVo = setSubTaskVo(trackSequence.getAlgorithmModelId(), trackSequence.getAlgorithmId(), subTaskVo);
+                subTaskVo = setSubTaskVo(trackSequence.getAlgorithmModelId(), trackSequence.getAlgorithmId(),
+                        subTaskVo);
                 subTaskVoList.add(subTaskVo);
             }
         }

+ 6 - 3
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/ToInfraredServiceImpl.java

@@ -286,11 +286,14 @@ public class ToInfraredServiceImpl extends BaseServiceImpl<ToInfraredMapper, ToI
             }
         }
         // 步骤 3. 然后根据前端传入的参数,覆盖默认参数
-        for (String key : algorithmParameters.keySet()) {
-            if (otherParams.containsKey(key) && ObjectUtil.isNotEmpty(otherParams.get(key))) {
-                algorithmParameters.put(key, strToTargetType(otherParams.get(key)));
+        if (ObjectUtil.isNotEmpty(otherParams)) {
+            for (String key : algorithmParameters.keySet()) {
+                if (otherParams.containsKey(key) && ObjectUtil.isNotEmpty(otherParams.get(key))) {
+                    algorithmParameters.put(key, strToTargetType(otherParams.get(key)));
+                }
             }
         }
+
         return algorithmParameters;
     }
 

+ 11 - 31
taais-modules/taais-biz/src/main/java/com/taais/biz/service/impl/TrackSequenceServiceImpl.java

@@ -269,36 +269,6 @@ public class TrackSequenceServiceImpl extends BaseServiceImpl<TrackSequenceMappe
         return CommonResult.success(entity);
     }
 
-    @Transactional
-    public TrackSequence insert2(TrackSequenceBo entityBo) { // 后面估计会优化掉此方法
-        // 检查input_oss_id是否存在
-        if (ObjectUtil.isNull(entityBo.getInputOssId())) {
-            throw new RuntimeException("oss文件不存在");
-        }
-
-        SysOssVo ossEntity = ossService.getById(entityBo.getInputOssId());
-        if (ObjectUtil.isNull(ossEntity)) {
-            throw new RuntimeException("oss文件不存在");
-        }
-
-        TrackSequence entity = packageTrackSequence(entityBo, ossEntity);
-        boolean flag = this.save(entity);
-
-        if (!flag) {
-            throw new RuntimeException("新增注释轨迹序列任务失败");
-        }
-
-        entity = updateEntity(entity, entityBo, ossEntity);
-
-        // 步骤 6. 保存算法参数到数据库
-        boolean __ = this.updateById(entity);// 使用全局配置的雪花算法主键生成器生成ID值
-        if (!__) {
-            throw new RuntimeException("新增注释轨迹序列任务失败");
-        }
-
-        return entity;
-    }
-
     private TrackSequence updateEntity(TrackSequence entity, TrackSequenceBo entityBo, SysOssVo ossEntity) {
         // 从这里开始,配置任务的algorithm_parameters参数
         // 步骤 1. 首先根据算法id获取算法配置
@@ -396,7 +366,17 @@ public class TrackSequenceServiceImpl extends BaseServiceImpl<TrackSequenceMappe
     public boolean update(TrackSequenceBo trackSequenceBo) {
         TrackSequence entity = MapstructUtils.convert(trackSequenceBo, TrackSequence.class);
 
-        SysOssVo ossEntity = ossService.getById(trackSequenceBo.getInputOssId());
+        Long ossId = trackSequenceBo.getInputOssId();
+        if (ObjectUtil.isNotEmpty(trackSequenceBo.getPredictTaskId())) { // 如果存在预测任务id,则使用label ossId
+            ossId = trackSequenceBo.getInputLabelOssId();
+        }
+
+        // 检查input_oss_id是否存在
+        if (ObjectUtil.isNull(ossId)) {
+            throw new RuntimeException("oss文件不存在");
+        }
+
+        SysOssVo ossEntity = ossService.getById(ossId);
         if (ObjectUtil.isNull(ossEntity)) {
             throw new RuntimeException("oss文件不存在");
         }