| | |
| | | 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 |
| | |
| | | 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()); |
| | | |
| | | AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId()); |
| | | |
| | | Long agvId = agvService.getAgvId(vehicle); |
| | | |
| | | VehFaultRec vehFaultRec = new VehFaultRec(); |
| | | vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); |
| | | // vehFaultRec.setFaultHex(); |
| | | |
| | | 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()); |