From 9dcde5b27b70a4b0c0885347af5405eb2d1ef089 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 12 十二月 2025 17:00:54 +0800
Subject: [PATCH] 修改前端状态显示变更,保持前端实时更新
---
mes-processes/mes-plcSend/src/main/java/com/mes/task/service/TaskExecutionEngine.java | 42 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 41 insertions(+), 1 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/task/service/TaskExecutionEngine.java b/mes-processes/mes-plcSend/src/main/java/com/mes/task/service/TaskExecutionEngine.java
index 6d9c433..bd81ac1 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/task/service/TaskExecutionEngine.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/task/service/TaskExecutionEngine.java
@@ -992,6 +992,25 @@
log.debug("鍑虹墖澶ц溅璁惧瀹氭椂鍣ㄦ娴嬪埌宸插鐞嗙殑鐜荤拑淇℃伅: taskId={}, deviceId={}, glassCount={}",
task.getTaskId(), device.getId(), processedGlassIds.size());
+
+ // 闇�绛夊緟澶х悊鐗囩瀹屾垚鍏ㄩ儴鐜荤拑鐨勫鐞嗗悗鍐嶅嚭鐗�
+ @SuppressWarnings("unchecked")
+ List<String> initialGlassIds = (List<String>) context.getSharedData().get("initialGlassIds");
+ if (!CollectionUtils.isEmpty(initialGlassIds)
+ && !processedGlassIds.containsAll(initialGlassIds)) {
+ // 閮ㄥ垎鐜荤拑灏氭湭鐢卞ぇ鐞嗙墖绗煎鐞嗗畬鎴愶紝淇濇寔绛夊緟
+ deviceCoordinationService.syncDeviceStatus(device,
+ DeviceCoordinationService.DeviceStatus.WAITING, context);
+ if (!TaskStepDetail.Status.PENDING.name().equals(step.getStatus())) {
+ step.setStatus(TaskStepDetail.Status.PENDING.name());
+ step.setSuccessMessage("绛夊緟澶х悊鐗囩澶勭悊鍏ㄩ儴鐜荤拑鍚庡啀鍑虹墖");
+ taskStepDetailMapper.updateById(step);
+ notificationService.notifyStepUpdate(task.getTaskId(), step);
+ }
+ log.debug("鍑虹墖澶ц溅绛夊緟澶х悊鐗囩瀹屾垚鍏ㄩ儴鐜荤拑: taskId={}, deviceId={}, processed={}, initial={}",
+ task.getTaskId(), device.getId(), processedGlassIds.size(), initialGlassIds.size());
+ return;
+ }
// 鎵ц鍑虹墖鎿嶄綔
Map<String, Object> checkParams = new HashMap<>();
@@ -1189,7 +1208,17 @@
Long processStartTime = getProcessStartTime(context);
if (processStartTime == null) {
// 绗竴娆℃娴嬪埌鐜荤拑锛岃褰曞紑濮嬪鐞嗘椂闂�
- setProcessStartTime(context, System.currentTimeMillis());
+ long now = System.currentTimeMillis();
+ setProcessStartTime(context, now);
+ // 琛ラ綈姝ラ鐨勫紑濮嬫椂闂翠笌鐘舵�侊紝纭繚鍓嶇鑰楁椂姝e父鏄剧ず
+ if (!TaskStepDetail.Status.RUNNING.name().equals(step.getStatus())) {
+ step.setStatus(TaskStepDetail.Status.RUNNING.name());
+ }
+ if (step.getStartTime() == null) {
+ step.setStartTime(new Date(now));
+ }
+ taskStepDetailMapper.updateById(step);
+ notificationService.notifyStepUpdate(task.getTaskId(), step);
log.debug("澶х悊鐗囩璁惧寮�濮嬪鐞�: taskId={}, deviceId={}, glassCount={}, processTime={}s",
task.getTaskId(), device.getId(), loadedGlassIds.size(), processTimeSeconds);
return;
@@ -1215,6 +1244,17 @@
// 鏇存柊姝ラ鐘舵��
step.setStatus(TaskStepDetail.Status.COMPLETED.name());
step.setErrorMessage(null);
+ // 璁板綍缁撴潫鏃堕棿涓庤�楁椂
+ if (step.getEndTime() == null) {
+ step.setEndTime(new Date());
+ }
+ if (step.getStartTime() == null) {
+ // 濡傛灉寮�濮嬫椂闂寸己澶憋紝鐢ㄥ鐞嗗紑濮嬫椂闂存垨缁撴潫鏃堕棿鍏滃簳
+ step.setStartTime(new Date(processStartTime));
+ }
+ if (step.getStartTime() != null && step.getEndTime() != null) {
+ step.setDurationMs(step.getEndTime().getTime() - step.getStartTime().getTime());
+ }
step.setOutputData(toJson(Collections.singletonMap("glassIds", loadedGlassIds)));
taskStepDetailMapper.updateById(step);
// 澶х悊鐗囩瀹屾垚鍚庡皾璇曡嚜鍔ㄦ敹灏炬暣涓换鍔�
--
Gitblit v1.8.0