From b3814333d786324bb81cca7d1bcf5ac8f2f1a7cf Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期三, 23 七月 2025 08:35:33 +0800 Subject: [PATCH] 保存一个版本 --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java | 52 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 45 insertions(+), 7 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java index de96d29..8f4bd5e 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java @@ -1,13 +1,22 @@ package com.zy.acs.manager.core.service; +import com.zy.acs.common.domain.protocol.AGV_04_UP; +import com.zy.acs.common.enums.error.AgvErrorType; +import com.zy.acs.common.utils.GsonUtils; +import com.zy.acs.framework.common.Cools; +import com.zy.acs.framework.common.RadixTools; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.manager.core.domain.VehicleFaultDto; import com.zy.acs.manager.manager.entity.VehFaultRec; +import com.zy.acs.manager.manager.service.AgvDetailService; +import com.zy.acs.manager.manager.service.AgvService; import com.zy.acs.manager.manager.service.VehFaultRecService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; + +import java.util.Date; /** * Created by vincent on 8/19/2024 @@ -20,23 +29,52 @@ private VehFaultRecService vehFaultRecService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private AgvService agvService; + @Autowired + private AgvDetailService agvDetailService; @Async - public void execute(VehicleFaultDto dto) { + public void execute(VehicleFaultDto<AGV_04_UP> dto) { try { + String vehicle = dto.getVehicle(); + AGV_04_UP agv_04_up = dto.getT(); + Date errorTime = new Date(dto.getTimestamp()); - VehFaultRec vehFaultRec = new VehFaultRec(); - vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); -// vehFaultRec.setFaultHex(); + AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId()); + Long agvId = agvService.getAgvId(vehicle); + VehFaultRec vehFaultRec = vehFaultRecService.getTopVehFaultRec(agvId, String.valueOf(agv_04_up.getFaultId())); + if (null == vehFaultRec) { + vehFaultRec = new VehFaultRec(); + vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); + vehFaultRec.setAgvId(agvId); + vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId())); + vehFaultRec.setFaultHex(agv_04_up.getHexFaultId()); + vehFaultRec.setFaultName(null != errorType ? errorType.desc : "undefined"); + vehFaultRec.setFaultLev(agv_04_up.getFaultLevel()); + vehFaultRec.setFaultData(GsonUtils.toJson(Cools.add("data1", agv_04_up.getData1()).add("data2", agv_04_up.getData2()))); + vehFaultRec.setHappenTime(new Date()); + vehFaultRec.setProtocol(RadixTools.bytesToHexStr(agv_04_up.writeToBytes())); - if (!vehFaultRecService.save(vehFaultRec)) { - log.error("{}鍙疯溅杈嗘晠闅滐紒璁板綍鏁呴殰淇℃伅澶辫触......", dto.getVehicle()); + if (!vehFaultRecService.save(vehFaultRec)) { + log.error("{}鍙疯溅杈嗘晠闅滐紒璁板綍鏁呴殰淇℃伅澶辫触......", dto.getVehicle()); + } + } else { + vehFaultRec.setUpdateTime(new Date()); + if (!vehFaultRecService.updateById(vehFaultRec)) { + log.error("{}鍙疯溅杈嗘晠闅滐紒鏇存柊鏁呴殰淇℃伅澶辫触......", dto.getVehicle()); + } } - } catch (Exception e) { log.error("FaultProcessor", e); } } + @Async + public void reset(Long agvId) { + vehFaultRecService.resetError(agvId); + } + + } -- Gitblit v1.9.1