package com.zy.acs.manager.core.service;
|
|
import com.zy.acs.common.domain.protocol.AGV_04_UP;
|
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;
|
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
|
*/
|
@Slf4j
|
@Service
|
public class FaultProcessor {
|
|
@Autowired
|
private VehFaultRecService vehFaultRecService;
|
@Autowired
|
private SnowflakeIdWorker snowflakeIdWorker;
|
@Autowired
|
private AgvService agvService;
|
@Autowired
|
private AgvDetailService agvDetailService;
|
|
@Async
|
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());
|
|
Agv agv = agvService.selectByUuid(vehicle);
|
|
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()));
|
|
if (!vehFaultRecService.save(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));
|
|
|
}
|
|
}
|