zhang
2025-07-23 b3814333d786324bb81cca7d1bcf5ac8f2f1a7cf
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
@@ -1,12 +1,12 @@
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.Agv;
import com.zy.acs.manager.manager.entity.VehFaultRec;
import com.zy.acs.manager.manager.service.AgvDetailService;
import com.zy.acs.manager.manager.service.AgvService;
@@ -41,34 +41,40 @@
            AGV_04_UP agv_04_up = dto.getT();
            Date errorTime = new Date(dto.getTimestamp());
            Agv agv = agvService.selectByUuid(vehicle);
            AgvErrorType errorType = AgvErrorType.query(agv_04_up.getHexFaultId());
            VehFaultRec vehFaultRec = new VehFaultRec();
            vehFaultRec.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
            vehFaultRec.setAgvId(agv.getId());
            vehFaultRec.setFaultNo(String.valueOf(agv_04_up.getFaultId()));
            vehFaultRec.setFaultHex(agv_04_up.getHexFaultId());
            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(errorTime);
            vehFaultRec.setProtocol(RadixTools.bytesToHexStr(agv_04_up.writeToBytes()));
            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);
        }
    }
    public static void main(String[] args) {
        short ss = 8193; // 2001
        byte[] bytes = RadixTools.shortToByte(ss);
//        byte[] reverse = Utils.reverse(bytes);
        System.out.println(RadixTools.bytesToHexStr(bytes));
    @Async
    public void reset(Long agvId) {
        vehFaultRecService.resetError(agvId);
    }
}