From 4d16b2b9acece51729f7aa4fb5aaabe30659eb60 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期三, 30 四月 2025 17:36:52 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java | 24 ++++++++++++++++++++++++ src/main/java/com/zy/core/thread/SiemensCrnThread.java | 18 +++++++++++++++--- src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java | 4 ++++ src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java | 5 +++++ src/main/java/com/zy/asrs/service/DeviceDataLogService.java | 2 ++ 5 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java b/src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java index 286d049..a37d99d 100644 --- a/src/main/java/com/zy/asrs/mapper/DeviceDataLogMapper.java +++ b/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(); + } diff --git a/src/main/java/com/zy/asrs/service/DeviceDataLogService.java b/src/main/java/com/zy/asrs/service/DeviceDataLogService.java index ef6215d..d45758f 100644 --- a/src/main/java/com/zy/asrs/service/DeviceDataLogService.java +++ b/src/main/java/com/zy/asrs/service/DeviceDataLogService.java @@ -5,4 +5,6 @@ public interface DeviceDataLogService extends IService<DeviceDataLog> { + int clearLog();//娓呯悊瓒呰繃24灏忔椂鏃ュ織鏁版嵁 + } diff --git a/src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java index ea9d19d..f3cb611 100644 --- a/src/main/java/com/zy/asrs/service/impl/DeviceDataLogServiceImpl.java +++ b/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(); + } + } diff --git a/src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java b/src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java new file mode 100644 index 0000000..c609fd7 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/ClearDeviceDataLogScheduler.java @@ -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(); + } + +} diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 32ca91b..962a319 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/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()); -- Gitblit v1.9.1