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<String> loadedGlassIds;
|
|
@Setter
|
private List<String> processedGlassIds;
|
|
private final Map<String, Object> 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<String, Object> getSharedData() {
|
return sharedData;
|
}
|
|
public List<String> getSafeLoadedGlassIds() {
|
return loadedGlassIds == null ? Collections.emptyList() : loadedGlassIds;
|
}
|
|
public List<String> getSafeProcessedGlassIds() {
|
return processedGlassIds == null ? Collections.emptyList() : processedGlassIds;
|
}
|
}
|