From a19b1025890eb0f71b44a9d1bb948cb084d4106a Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 12 十二月 2025 16:50:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/ai/utils/AiUtils.java |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 139 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/ai/utils/AiUtils.java b/src/main/java/com/zy/ai/utils/AiUtils.java
new file mode 100644
index 0000000..8be437b
--- /dev/null
+++ b/src/main/java/com/zy/ai/utils/AiUtils.java
@@ -0,0 +1,139 @@
+package com.zy.ai.utils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.ai.entity.DeviceConfigsData;
+import com.zy.ai.entity.DeviceRealTimeData;
+import com.zy.ai.entity.WcsDiagnosisRequest;
+import com.zy.ai.log.AiLogAppender;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.StationObjModel;
+import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.StationThread;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class AiUtils {
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private BasCrnpService basCrnpService;
+    @Autowired
+    private BasDevpService basDevpService;
+
+    public WcsDiagnosisRequest makeAiRequest(int logLimit, String alarmMessage) {
+        WcsDiagnosisRequest request = new WcsDiagnosisRequest();
+
+        request.setAlarmMessage(alarmMessage);
+
+        List<String> logs = AiLogAppender.getRecentLogs(logLimit);
+        request.setLogs(logs);
+
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>());
+        request.setTasks(wrkMasts);
+
+        List<DeviceRealTimeData> deviceRealTimeDataList = new ArrayList<>();
+        List<DeviceConfigsData> deviceConfigsDataList = new ArrayList<>();
+
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
+        for (BasCrnp basCrnp : basCrnps) {
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+            if (crnThread == null) {
+                continue;
+            }
+
+            CrnProtocol protocol = crnThread.getStatus();
+
+            for (StationObjModel stationObjModel : basCrnp.getInStationList$()) {
+                StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, stationObjModel.getDeviceNo());
+                if (stationThread == null) {
+                    continue;
+                }
+
+                Map<Integer, StationProtocol> map = stationThread.getStatusMap();
+                StationProtocol stationProtocol = map.get(stationObjModel.getStationId());
+                if (stationProtocol == null) {
+                    continue;
+                }
+
+                DeviceRealTimeData stationData = new DeviceRealTimeData();
+                stationData.setDeviceNo(stationObjModel.getDeviceNo());
+                stationData.setDeviceType(String.valueOf(SlaveType.Devp));
+                stationData.setDeviceData(stationProtocol);
+                deviceRealTimeDataList.add(stationData);
+            }
+
+            DeviceRealTimeData deviceRealTimeData = new DeviceRealTimeData();
+            deviceRealTimeData.setDeviceNo(basCrnp.getCrnNo());
+            deviceRealTimeData.setDeviceType(String.valueOf(SlaveType.Crn));
+            deviceRealTimeData.setDeviceData(protocol);
+            deviceRealTimeDataList.add(deviceRealTimeData);
+
+            DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
+            deviceConfigsData.setDeviceNo(basCrnp.getCrnNo());
+            deviceConfigsData.setDeviceType(String.valueOf(SlaveType.Crn));
+            deviceConfigsData.setDeviceData(basCrnp);
+            deviceConfigsDataList.add(deviceConfigsData);
+        }
+
+        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
+        for (BasDevp basDevp : basDevps) {
+            StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, basDevp.getDevpNo());
+            if (stationThread == null) {
+                continue;
+            }
+            Map<Integer, StationProtocol> map = stationThread.getStatusMap();
+
+            for (StationObjModel stationObjModel : basDevp.getInStationList$()) {
+                StationProtocol stationProtocol = map.get(stationObjModel.getStationId());
+                if (stationProtocol == null) {
+                    continue;
+                }
+
+                DeviceRealTimeData stationData = new DeviceRealTimeData();
+                stationData.setDeviceNo(stationObjModel.getDeviceNo());
+                stationData.setDeviceType(String.valueOf(SlaveType.Devp));
+                stationData.setDeviceData(stationProtocol);
+                deviceRealTimeDataList.add(stationData);
+            }
+
+            for (StationObjModel stationObjModel : basDevp.getOutStationList$()) {
+                StationProtocol stationProtocol = map.get(stationObjModel.getStationId());
+                if (stationProtocol == null) {
+                    continue;
+                }
+
+                DeviceRealTimeData stationData = new DeviceRealTimeData();
+                stationData.setDeviceNo(stationObjModel.getDeviceNo());
+                stationData.setDeviceType(String.valueOf(SlaveType.Devp));
+                stationData.setDeviceData(stationProtocol);
+                deviceRealTimeDataList.add(stationData);
+            }
+
+            DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
+            deviceConfigsData.setDeviceNo(basDevp.getDevpNo());
+            deviceConfigsData.setDeviceType(String.valueOf(SlaveType.Devp));
+            deviceConfigsData.setDeviceData(basDevp);
+            deviceConfigsDataList.add(deviceConfigsData);
+        }
+
+        request.setDeviceRealtimeData(deviceRealTimeDataList);
+        request.setDeviceConfigs(deviceConfigsDataList);
+        return request;
+    }
+
+}

--
Gitblit v1.9.1