|
@@ -1,24 +1,36 @@
|
|
|
package com.taais.biz.service.impl;
|
|
|
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.mybatisflex.core.paginate.Page;
|
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
|
+import com.taais.biz.domain.AlgorithmTaskTrack;
|
|
|
+import com.taais.biz.domain.ToInfrared;
|
|
|
+import com.taais.biz.domain.TrackSequence;
|
|
|
+import com.taais.biz.domain.bo.AlgorithmTaskTrackBo;
|
|
|
+import com.taais.biz.domain.bo.ToInfraredBo;
|
|
|
+import com.taais.biz.domain.bo.TrackSequenceBo;
|
|
|
+import com.taais.biz.domain.vo.AlgorithmTaskTrackVo;
|
|
|
+import com.taais.biz.mapper.AlgorithmTaskTrackMapper;
|
|
|
+import com.taais.biz.service.IAlgorithmTaskTrackService;
|
|
|
+import com.taais.common.core.config.TaaisConfig;
|
|
|
+import com.taais.common.core.constant.Constants;
|
|
|
+import com.taais.common.core.core.page.PageResult;
|
|
|
import com.taais.common.core.utils.MapstructUtils;
|
|
|
-import com.taais.common.core.utils.StringUtils;
|
|
|
import com.taais.common.orm.core.page.PageQuery;
|
|
|
-import com.taais.common.core.core.page.PageResult;
|
|
|
import com.taais.common.orm.core.service.impl.BaseServiceImpl;
|
|
|
+import com.taais.system.domain.SysOss;
|
|
|
+import com.taais.system.service.impl.SysOssServiceImpl;
|
|
|
import jakarta.annotation.Resource;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import com.taais.biz.mapper.AlgorithmTaskTrackMapper;
|
|
|
-import com.taais.biz.domain.AlgorithmTaskTrack;
|
|
|
-import com.taais.biz.domain.bo.AlgorithmTaskTrackBo;
|
|
|
-import com.taais.biz.domain.vo.AlgorithmTaskTrackVo;
|
|
|
-import com.taais.biz.service.IAlgorithmTaskTrackService;
|
|
|
+
|
|
|
+import java.nio.file.Path;
|
|
|
+import java.nio.file.Paths;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
import static com.taais.biz.domain.table.AlgorithmTaskTrackTableDef.ALGORITHM_TASK_TRACK;
|
|
|
|
|
|
/**
|
|
@@ -29,6 +41,20 @@ import static com.taais.biz.domain.table.AlgorithmTaskTrackTableDef.ALGORITHM_TA
|
|
|
*/
|
|
|
@Service
|
|
|
public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTaskTrackMapper, AlgorithmTaskTrack> implements IAlgorithmTaskTrackService {
|
|
|
+ @Autowired
|
|
|
+ private AlgorithmConfigTrackServiceImpl algorithmConfigTrackService;
|
|
|
+ @Autowired
|
|
|
+ private AlgorithmModelTrackServiceImpl algorithmModelTrackService;
|
|
|
+ @Autowired
|
|
|
+ private SysOssServiceImpl ossService;
|
|
|
+ @Autowired
|
|
|
+ private ToInfraredServiceImpl toInfraredService;
|
|
|
+ @Autowired
|
|
|
+ private TargetDetectionServiceImpl targetDetectionService;
|
|
|
+ @Autowired
|
|
|
+ private TrackSequenceServiceImpl trackSequenceService;
|
|
|
+
|
|
|
+
|
|
|
@Resource
|
|
|
private AlgorithmTaskTrackMapper algorithmTaskTrackMapper;
|
|
|
|
|
@@ -39,22 +65,16 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
|
|
|
|
|
|
private QueryWrapper buildQueryWrapper(AlgorithmTaskTrackBo algorithmTaskTrackBo) {
|
|
|
QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.NAME.like
|
|
|
- (algorithmTaskTrackBo.getName()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.STATUS.eq
|
|
|
- (algorithmTaskTrackBo.getStatus()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.START_TIME.eq
|
|
|
- (algorithmTaskTrackBo.getStartTime()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.END_TIME.eq
|
|
|
- (algorithmTaskTrackBo.getEndTime()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.COST_SECOND.eq
|
|
|
- (algorithmTaskTrackBo.getCostSecond()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.LOG.eq
|
|
|
- (algorithmTaskTrackBo.getLog()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.REMARKS.eq
|
|
|
- (algorithmTaskTrackBo.getRemarks()));
|
|
|
- queryWrapper.and(ALGORITHM_TASK_TRACK.SYSTEM.eq
|
|
|
- (algorithmTaskTrackBo.getSystem()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.NAME.like(algorithmTaskTrackBo.getName()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.STATUS.eq(algorithmTaskTrackBo.getStatus()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.START_TIME.eq(algorithmTaskTrackBo.getStartTime()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.END_TIME.eq(algorithmTaskTrackBo.getEndTime()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.COST_SECOND.eq(algorithmTaskTrackBo.getCostSecond()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.LOG.eq(algorithmTaskTrackBo.getLog()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.REMARKS.eq(algorithmTaskTrackBo.getRemarks()));
|
|
|
+ queryWrapper.and(ALGORITHM_TASK_TRACK.SYSTEM.eq(algorithmTaskTrackBo.getSystem()));
|
|
|
+
|
|
|
+ queryWrapper.orderBy(ALGORITHM_TASK_TRACK.CREATE_TIME.desc());
|
|
|
|
|
|
return queryWrapper;
|
|
|
}
|
|
@@ -67,7 +87,7 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
|
|
|
*/
|
|
|
@Override
|
|
|
public AlgorithmTaskTrackVo selectById(Long id) {
|
|
|
- return this.getOneAs(query().where(ALGORITHM_TASK_TRACK.ID.eq(id)), AlgorithmTaskTrackVo.class);
|
|
|
+ return this.getOneAs(query().where(ALGORITHM_TASK_TRACK.ID.eq(id)), AlgorithmTaskTrackVo.class);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -80,7 +100,7 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
|
|
|
@Override
|
|
|
public List<AlgorithmTaskTrackVo> selectList(AlgorithmTaskTrackBo algorithmTaskTrackBo) {
|
|
|
QueryWrapper queryWrapper = buildQueryWrapper(algorithmTaskTrackBo);
|
|
|
- return this.listAs(queryWrapper, AlgorithmTaskTrackVo.class);
|
|
|
+ return this.listAs(queryWrapper, AlgorithmTaskTrackVo.class);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -92,10 +112,61 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
|
|
|
@Override
|
|
|
public PageResult<AlgorithmTaskTrackVo> selectPage(AlgorithmTaskTrackBo algorithmTaskTrackBo) {
|
|
|
QueryWrapper queryWrapper = buildQueryWrapper(algorithmTaskTrackBo);
|
|
|
- Page<AlgorithmTaskTrackVo> page = this.pageAs(PageQuery.build(), queryWrapper, AlgorithmTaskTrackVo.class);
|
|
|
+ Page<AlgorithmTaskTrackVo> page = this.pageAs(PageQuery.build(), queryWrapper, AlgorithmTaskTrackVo.class);
|
|
|
return PageResult.build(page);
|
|
|
}
|
|
|
|
|
|
+ public ToInfraredBo cteateToInfraredTaskBo(Map<String, Object> params) {
|
|
|
+ ToInfraredBo toInfraredBo = new ToInfraredBo();
|
|
|
+ toInfraredBo.setName("ToInfrared_" + (String) params.get("name"));
|
|
|
+ toInfraredBo.setInputOssId((Long) params.get("inputDatasetOssId"));
|
|
|
+ toInfraredBo.setRemarks((String) params.get("remarks"));
|
|
|
+ toInfraredBo.setParentTaskId((Long) params.get("parentTaskId"));
|
|
|
+
|
|
|
+ toInfraredBo.setAlgorithmModelId((Long) params.get("toInfraredModelId"));
|
|
|
+ toInfraredBo.setAlgorithmId((Long) params.get("toInfraredAlgorithmId"));
|
|
|
+
|
|
|
+ toInfraredBo.setOtherParams((Map<String, Object>) params.get("toInfraredAlgorithmParams"));
|
|
|
+
|
|
|
+ return toInfraredBo;
|
|
|
+ }
|
|
|
+
|
|
|
+ public TrackSequenceBo createTrackSequencePredictBo(Map<String, Object> params) {
|
|
|
+ TrackSequenceBo trackSequenceBo = new TrackSequenceBo();
|
|
|
+ trackSequenceBo.setName("TrackSequence_predict_" + (String) params.get("name"));
|
|
|
+ trackSequenceBo.setInputOssId((Long) params.get("inputDatasetOssId"));
|
|
|
+ trackSequenceBo.setRemarks((String) params.get("remarks"));
|
|
|
+ trackSequenceBo.setParentTaskId((Long) params.get("parentTaskId"));
|
|
|
+
|
|
|
+ trackSequenceBo.setAlgorithmModelId((Long) params.get("trackSequenceModelId"));
|
|
|
+ trackSequenceBo.setAlgorithmId((Long) params.get("trackSequenceAlgorithmId"));
|
|
|
+
|
|
|
+ Map<String, Object> otherParams = (Map<String, Object>) params.get("trackSequenceAlgorithmParams");
|
|
|
+ otherParams.put("algorithmModelTargetDetectionId", (Long) params.get("TD_modelId"));
|
|
|
+ trackSequenceBo.setOtherParams(otherParams);
|
|
|
+
|
|
|
+ return trackSequenceBo;
|
|
|
+ }
|
|
|
+
|
|
|
+ public TrackSequenceBo createTrackSequenceEvaluateBo(Map<String, Object> params) {
|
|
|
+ TrackSequenceBo trackSequenceBo = new TrackSequenceBo();
|
|
|
+ trackSequenceBo.setName("TrackSequence_evaluate_" + (String) params.get("name"));
|
|
|
+ trackSequenceBo.setInputOssId((Long) params.get("inputDatasetOssId"));
|
|
|
+ trackSequenceBo.setRemarks((String) params.get("remarks"));
|
|
|
+ trackSequenceBo.setParentTaskId((Long) params.get("parentTaskId"));
|
|
|
+
|
|
|
+// trackSequenceBo.setAlgorithmModelId((Long) params.get("trackSequenceEvaluateModelId"));
|
|
|
+ trackSequenceBo.setAlgorithmId((Long) params.get("trackSequenceEvaluateAlgorithmId"));
|
|
|
+
|
|
|
+ Map<String, Object> otherParams = (Map<String, Object>) params.get("trackSequenceEvaluateAlgorithmParams");
|
|
|
+ otherParams.put("algorithmModelTargetDetectionId", (Long) params.get("TD_modelId"));
|
|
|
+ otherParams.put("trackSequencePredictTaskId", (Long) params.get("trackSequencePredictTaskId"));
|
|
|
+ otherParams.put("inputLabelOssId", (Long) params.get("inputEvaluateLabelOssId"));
|
|
|
+ trackSequenceBo.setOtherParams(otherParams);
|
|
|
+
|
|
|
+ return trackSequenceBo;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 新增可辨识性分析总任务
|
|
|
*
|
|
@@ -103,12 +174,65 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
|
|
|
* @return 结果:true 操作成功,false 操作失败
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public boolean insert(AlgorithmTaskTrackBo algorithmTaskTrackBo) {
|
|
|
- AlgorithmTaskTrack algorithmTaskTrack =MapstructUtils.convert(algorithmTaskTrackBo, AlgorithmTaskTrack. class);
|
|
|
+ // 这里估计还是得用save手动构造entity了,如果用entityBo太麻烦了
|
|
|
+ AlgorithmTaskTrack algorithmTaskTrack = MapstructUtils.convert(algorithmTaskTrackBo, AlgorithmTaskTrack.class);
|
|
|
+ boolean flag = this.save(algorithmTaskTrack);
|
|
|
+ if (!flag) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // 步骤
|
|
|
+ // 创建可见光转红外预测任务
|
|
|
+ Map<String, Object> params = algorithmTaskTrackBo.getOtherParams();
|
|
|
+ params.put("name", algorithmTaskTrackBo.getName());
|
|
|
+ params.put("remarks", algorithmTaskTrackBo.getRemarks());
|
|
|
+ params.put("parentTaskId", algorithmTaskTrack.getId());
|
|
|
+
|
|
|
+ if (params.containsKey("ifToInfrared") && params.get("ifToInfrared").equals(true)) {
|
|
|
+ ToInfraredBo toInfraredBo = cteateToInfraredTaskBo(params);
|
|
|
+ ToInfrared toInfraredTask = toInfraredService.insert2(toInfraredBo);
|
|
|
+
|
|
|
+ // 需要更新一下inputDatasetOssId,以便于创建trackSequencePredictTask任务
|
|
|
+ Long inputDatasetOssId_new = getNewOssId(toInfraredTask);
|
|
|
+ params.put("inputDatasetOssId", inputDatasetOssId_new);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建可辨识性预测任务
|
|
|
+ TrackSequenceBo trackSequencePredictBo = createTrackSequencePredictBo(params);
|
|
|
+ TrackSequence trackSequencePredictTask = trackSequenceService.insert2(trackSequencePredictBo);
|
|
|
+ // 创建可辨识性分析评估任务
|
|
|
+ if (params.containsKey("ifEvaluate") && params.get("ifEvaluate").equals(true)) {
|
|
|
+ params.put("trackSequencePredictTaskId", trackSequencePredictTask.getId());
|
|
|
+ TrackSequenceBo trackSequenceEvaluateBo = createTrackSequenceEvaluateBo(params);
|
|
|
+ TrackSequence trackSequenceEvaluateTask = trackSequenceService.insert2(trackSequenceEvaluateBo);
|
|
|
+ }
|
|
|
|
|
|
return this.save(algorithmTaskTrack);//使用全局配置的雪花算法主键生成器生成ID值
|
|
|
}
|
|
|
|
|
|
+ private Long getNewOssId(ToInfrared toInfraredTask) {
|
|
|
+ String outputPath = toInfraredTask.getOutputPath();
|
|
|
+ Path path = Paths.get(outputPath);
|
|
|
+ String dirName = path.getFileName().toString();
|
|
|
+ String fileName = Constants.RESOURCE_PREFIX + outputPath.substring(TaaisConfig.getProfile().length());
|
|
|
+
|
|
|
+ SysOss oss = new SysOss();
|
|
|
+ oss.setUrl("no url");
|
|
|
+ oss.setFileSuffix("no suffix");
|
|
|
+ oss.setFileName(fileName);
|
|
|
+ oss.setOriginalName(dirName);
|
|
|
+ oss.setService("Local");
|
|
|
+ boolean flag = ossService.save(oss);
|
|
|
+
|
|
|
+ if(flag) {
|
|
|
+ return oss.getOssId();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ throw new RuntimeException("save oss failed");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 修改可辨识性分析总任务
|
|
|
*
|
|
@@ -117,10 +241,10 @@ public class AlgorithmTaskTrackServiceImpl extends BaseServiceImpl<AlgorithmTask
|
|
|
*/
|
|
|
@Override
|
|
|
public boolean update(AlgorithmTaskTrackBo algorithmTaskTrackBo) {
|
|
|
- AlgorithmTaskTrack algorithmTaskTrack =MapstructUtils.convert(algorithmTaskTrackBo, AlgorithmTaskTrack. class);
|
|
|
- if (ObjectUtil.isNotNull(algorithmTaskTrack) && ObjectUtil.isNotNull(algorithmTaskTrack.getId())){
|
|
|
+ AlgorithmTaskTrack algorithmTaskTrack = MapstructUtils.convert(algorithmTaskTrackBo, AlgorithmTaskTrack.class);
|
|
|
+ if (ObjectUtil.isNotNull(algorithmTaskTrack) && ObjectUtil.isNotNull(algorithmTaskTrack.getId())) {
|
|
|
boolean updated = this.updateById(algorithmTaskTrack);
|
|
|
- return updated;
|
|
|
+ return updated;
|
|
|
}
|
|
|
return false;
|
|
|
}
|