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] 未找到任务,跳过同步");