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