src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/DeviceDataLogService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java
@@ -2,6 +2,7 @@ import com.zy.asrs.entity.DeviceDataLog; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -9,4 +10,7 @@ @Repository public interface DeviceDataLogMapper extends BaseMapper<DeviceDataLog> { @Delete("delete from wcs_device_data_log where create_time < FROM_UNIXTIME(UNIX_TIMESTAMP() - (3 * 24 * 60 * 60))") int clearLog(); } src/main/java/com/zy/asrs/service/DeviceDataLogService.java
@@ -5,4 +5,6 @@ public interface DeviceDataLogService extends IService<DeviceDataLog> { int clearLog();//清理超过24小时日志数据 } src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java
@@ -9,4 +9,9 @@ @Service("deviceDataLogService") public class DeviceDataLogServiceImpl extends ServiceImpl<DeviceDataLogMapper, DeviceDataLog> implements DeviceDataLogService { @Override public int clearLog() { return this.baseMapper.clearLog(); } } src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java
New file @@ -0,0 +1,24 @@ package com.zy.asrs.task; import com.zy.asrs.service.DeviceDataLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component @Slf4j public class ClearDeviceDataLogScheduler { @Autowired private DeviceDataLogService deviceDataLogService; /** * 每分钟清理72小时之前的日志 */ @Scheduled(cron = "1 * * * * ? ") public void clear() { deviceDataLogService.clearLog(); } } src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -144,6 +144,7 @@ private void readStatus(){ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56); OperateResultExOne<byte[]> result2 = siemensNet.Read("DB25.0", (short) 20); if (result.IsSuccess) { this.originDeviceData = result.Content; if (null == crnProtocol) { @@ -171,8 +172,6 @@ crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48)); crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52)); OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); // 复位信号 @@ -186,6 +185,14 @@ } } List<boolean[]> errorPointList = new ArrayList<>(); if (result2.IsSuccess) { for (int i = 0; i < result2.Content.length; i++) { boolean[] valList = siemensNet.getByteTransform().TransBool(result2.Content, i, 1); errorPointList.add(valList); } } if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 1000 * 5) { if (this.originDeviceData != null) { //采集时间超过5s,保存一次数据记录 @@ -194,8 +201,13 @@ if (deviceDataLogService == null) { return; } HashMap<String, Object> originData = new HashMap<>(); originData.put("readStatus", this.originDeviceData); originData.put("errorPoints", errorPointList); DeviceDataLog deviceDataLog = new DeviceDataLog(); deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData)); deviceDataLog.setOriginData(JSON.toJSONString(originData)); deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol)); deviceDataLog.setType(String.valueOf(SlaveType.Crn)); deviceDataLog.setDeviceNo(slave.getId());