version/db/new.sql
@@ -108,3 +108,7 @@ alter table sys_user_login change system system_name varchar(255) null comment '登录系统'; ALTER TABLE `rcs_ctu_stable`.`man_veh_fault_rec` ADD COLUMN `code` varchar(255) NULL COMMENT '地码' AFTER `fault_data`; zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvDataService.java
@@ -143,6 +143,7 @@ assert detail.getErrorTime() != null; if (DateUtils.diffToSeconds(detail.getErrorTime(), now) > 10) { detail.setError(MapDataConstant.EMPTY_OF_ERROR); faultProcessor.reset(agvId); } } if (!agvDetailService.updateById(detail)) { zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/FaultProcessor.java
@@ -47,20 +47,29 @@ Long agvId = agvService.getAgvId(vehicle); 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())); vehFaultRec.setState(VehFaultRecStateType.PENDING.name()); 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())); vehFaultRec.setState(VehFaultRecStateType.PENDING.name()); vehFaultRec.setCode(agv_04_up.getQrCode()); if (!vehFaultRecService.save(vehFaultRec)) { News.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) { @@ -68,4 +77,10 @@ } } @Async public void reset(Long agvId) { vehFaultRecService.resetError(agvId); } } zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/VehFaultRec.java
@@ -78,6 +78,11 @@ */ @ApiModelProperty(value= "故障类型") private String type; /** * 地面码 */ @ApiModelProperty(value= "地面码") private String code; /** * 原始报文 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/VehFaultRecMapper.java
@@ -5,4 +5,8 @@ public interface VehFaultRecMapper extends BaseMapper<VehFaultRec> { VehFaultRec getTopVehFaultRec(Long agvId, String faultNo); int resetError(Long agvId); } zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/VehFaultRecService.java
@@ -5,4 +5,9 @@ public interface VehFaultRecService extends IService<VehFaultRec> { VehFaultRec getTopVehFaultRec(Long agvId, String faultNo); int resetError(Long agvId); } zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/VehFaultRecServiceImpl.java
@@ -9,4 +9,16 @@ @Service("vehFaultRecService") public class VehFaultRecServiceImpl extends ServiceImpl<VehFaultRecMapper, VehFaultRec> implements VehFaultRecService { @Override public VehFaultRec getTopVehFaultRec(Long agvId, String faultNo) { return baseMapper.getTopVehFaultRec(agvId, faultNo); } @Override public int resetError(Long agvId) { return baseMapper.resetError(agvId); } } zy-acs-manager/src/main/resources/mapper/manager/VehFaultRecMapper.xml
@@ -23,4 +23,23 @@ </where> </sql> <update id="resetError"> UPDATE man_veh_fault_rec SET reset_time = now(), duration = (UNIX_TIMESTAMP(reset_time) - UNIX_TIMESTAMP(happen_time)) WHERE agv_id = #{agvId} and reset_time is null </update> <select id="getTopVehFaultRec" resultType="com.zy.acs.manager.manager.entity.VehFaultRec"> SELECT * FROM man_veh_fault_rec WHERE agv_id = #{agvId} and fault_no = #{faultNo} and reset_time is null ORDER BY happen_time DESC LIMIT 1 </select> </mapper>