package com.mes.task.model; import com.mes.task.dto.TaskParameters; import lombok.Getter; import lombok.Setter; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * 多设备任务执行上下文 */ @Getter public class TaskExecutionContext { private final TaskParameters parameters; @Setter private List loadedGlassIds; @Setter private List processedGlassIds; private final Map sharedData = new ConcurrentHashMap<>(); public TaskExecutionContext(TaskParameters parameters) { if (parameters == null) { this.parameters = new TaskParameters(); } else { this.parameters = parameters; } if (CollectionUtils.isEmpty(this.parameters.getGlassIds())) { this.parameters.setGlassIds(new ArrayList<>()); } this.sharedData.put("initialGlassIds", new ArrayList<>(this.parameters.getGlassIds())); } public Map getSharedData() { return sharedData; } public List getSafeLoadedGlassIds() { return loadedGlassIds == null ? Collections.emptyList() : loadedGlassIds; } public List getSafeProcessedGlassIds() { return processedGlassIds == null ? Collections.emptyList() : processedGlassIds; } }