| | |
| | | Long processStartTime = getProcessStartTime(context); |
| | | if (processStartTime == null) { |
| | | // 第一次检测到玻璃,记录开始处理时间 |
| | | setProcessStartTime(context, System.currentTimeMillis()); |
| | | long now = System.currentTimeMillis(); |
| | | setProcessStartTime(context, now); |
| | | // 补齐步骤的开始时间与状态,确保前端耗时正常显示 |
| | | 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; |
| | |
| | | // 更新步骤状态 |
| | | 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); |
| | | // 大理片笼完成后尝试自动收尾整个任务 |