Commit ecfe8236 authored by Tong Li's avatar Tong Li

Merge remote-tracking branch 'origin/master'

parents 30836c06 98e50a68
...@@ -8,7 +8,6 @@ import com.aps.entity.basic.*; ...@@ -8,7 +8,6 @@ import com.aps.entity.basic.*;
import com.aps.service.plan.MachineSchedulerService; import com.aps.service.plan.MachineSchedulerService;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.sun.org.apache.xpath.internal.objects.XBoolean;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
......
...@@ -51,6 +51,8 @@ import java.util.stream.IntStream; ...@@ -51,6 +51,8 @@ import java.util.stream.IntStream;
@Service @Service
public class PlanResultService { public class PlanResultService {
private static final int PREVIEW_DATA_CACHE_SIZE = 32; private static final int PREVIEW_DATA_CACHE_SIZE = 32;
private static final DateTimeFormatter API_TIMESTAMP_FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
private final JsonFactory previewJsonFactory = new JsonFactory(); private final JsonFactory previewJsonFactory = new JsonFactory();
private final Map<String, SceneVersionPreviewData> previewDataCache = Collections.synchronizedMap( private final Map<String, SceneVersionPreviewData> previewDataCache = Collections.synchronizedMap(
new LinkedHashMap<String, SceneVersionPreviewData>(16, 0.75F, true) { new LinkedHashMap<String, SceneVersionPreviewData>(16, 0.75F, true) {
...@@ -3756,7 +3758,7 @@ if(job.getGeneDetails()!=null) ...@@ -3756,7 +3758,7 @@ if(job.getGeneDetails()!=null)
Map<String, Object> versionData = getSceneVersion(sceneId); Map<String, Object> versionData = getSceneVersion(sceneId);
SceneVersionPreviewData previewData = collectSceneVersionPreviewData(sceneId); SceneVersionPreviewData previewData = collectSceneVersionPreviewData(sceneId);
if (previewData == null) { if (previewData == null) {
throw new RuntimeException("未找到对应的场景文件"); throw new RuntimeException("未找到对应的场景文件: " + getCurrentChromosomeFileName(sceneId));
} }
int previewWidth = getPositiveIntegerParam(params, "previewWidth", 100); int previewWidth = getPositiveIntegerParam(params, "previewWidth", 100);
...@@ -3770,8 +3772,8 @@ if(job.getGeneDetails()!=null) ...@@ -3770,8 +3772,8 @@ if(job.getGeneDetails()!=null)
int previewHeight) { int previewHeight) {
Map<String, Object> result = new LinkedHashMap<>(); Map<String, Object> result = new LinkedHashMap<>();
result.put("index", versionData == null ? -1 : versionData.get("index")); result.put("index", versionData == null ? -1 : versionData.get("index"));
result.put("start", previewData.minStart == null ? null : previewData.minStart.toLocalDate().toString()); result.put("start", formatApiTimestamp(previewData.minStart));
result.put("end", previewData.maxEnd == null ? null : previewData.maxEnd.toLocalDate().toString()); result.put("end", formatApiTimestamp(previewData.maxEnd));
result.put("taskCount", previewData.taskCount); result.put("taskCount", previewData.taskCount);
result.put("planCount", previewData.planCount); result.put("planCount", previewData.planCount);
result.put("equipCount", previewData.equipCount); result.put("equipCount", previewData.equipCount);
...@@ -3785,9 +3787,24 @@ if(job.getGeneDetails()!=null) ...@@ -3785,9 +3787,24 @@ if(job.getGeneDetails()!=null)
return result; return result;
} }
private String formatApiTimestamp(LocalDateTime time) {
return time == null ? null : time.format(API_TIMESTAMP_FORMATTER);
}
private String getCurrentChromosomeFileName(String sceneId) {
try {
File file = _sceneService.getCurrentChromosomeFile(sceneId);
return file == null ? sceneId : file.getName();
} catch (RuntimeException ex) {
log.warn("获取场景文件名失败,sceneId={}", sceneId, ex);
return sceneId;
}
}
private SceneVersionPreviewData collectSceneVersionPreviewData(String sceneId) { private SceneVersionPreviewData collectSceneVersionPreviewData(String sceneId) {
File file = _sceneService.getCurrentChromosomeFile(sceneId); File file = _sceneService.getCurrentChromosomeFile(sceneId);
if (file == null || !file.exists() || file.length() == 0L) { if (file == null || !file.exists() || file.length() == 0L) {
log.warn("场景缩略图文件不存在或为空: {}", file == null ? sceneId : file.getAbsolutePath());
return null; return null;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment