#
Junjie
2025-04-30 4d16b2b9acece51729f7aa4fb5aaabe30659eb60
#
4个文件已修改
1个文件已添加
53 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/DeviceDataLogService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java 18 ●●●● 补丁 | 查看 | 原始文档 | 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());