diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 097422c2..22d7cdb9 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -18,6 +18,7 @@ + @@ -47,6 +48,7 @@ + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index a3acbe97..4a5f8201 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -9,6 +9,7 @@ + diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index 8e7105f4..56bc9fb6 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -14,6 +14,7 @@ import com.sdm.common.common.ResultCode; import com.sdm.common.common.SdmResponse; import com.sdm.common.common.ThreadLocalContext; import com.sdm.common.entity.ExportExcelFormat; +import com.sdm.common.entity.bo.DataDictionary; import com.sdm.common.entity.constants.TagConstant; import com.sdm.common.entity.enums.*; import com.sdm.common.entity.req.data.*; @@ -2219,6 +2220,14 @@ public class NodeServiceImpl extends ServiceImpl> dictionaryData = sysConfigFeignClient.getDictionaryData("有限元仿真"); + if (dictionaryData.isSuccess()) { + List dataDictionaryList = dictionaryData.getData(); + Set dictValueSet = dataDictionaryList.stream().map(DataDictionary::getDictValue).collect(Collectors.toSet()); + context.setDictValueSet(dictValueSet); + } + // 根据 syncToTask 字段决定是否同步任务扩展属性 if (Boolean.TRUE.equals(req.getSyncToTask())) { log.info("[batchUpdateWorkspaceExtra] 开启任务扩展属性同步功能"); @@ -2382,6 +2391,9 @@ public class NodeServiceImpl extends ServiceImpl updateList = new ArrayList<>(); private final List insertList = new ArrayList<>(); + // task的学科符合字典值集合的才需要刷新 + Set dictValueSet; + public BatchUpdateContext(List workspaceExtrasList, List workspaceUuids, Map> existingExtrasMap, @@ -2422,6 +2434,7 @@ public class NodeServiceImpl extends ServiceImpl allTasks = simulationTaskService.lambdaQuery() .in(SimulationTask::getNodeId, context.getWorkspaceUuids()) + .in(CollectionUtils.isNotEmpty(context.getDictValueSet()), SimulationTask::getDiscipline, context.getDictValueSet()) .list(); if (CollectionUtils.isEmpty(allTasks)) { log.info("[syncTaskExtras] 未找到任务,跳过同步");