From b147c191aed991adef0b380f4f7e14252fcc8e72 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 12 十二月 2025 14:30:23 +0800
Subject: [PATCH] #AI
---
src/main/java/com/zy/ai/utils/AiUtils.java | 139 +++++++++++++++++++++++
src/main/java/com/zy/ai/controller/WcsDiagnosisController.java | 196 -------------------------------
2 files changed, 144 insertions(+), 191 deletions(-)
diff --git a/src/main/java/com/zy/ai/controller/WcsDiagnosisController.java b/src/main/java/com/zy/ai/controller/WcsDiagnosisController.java
index 07eff9f..ce1ea4c 100644
--- a/src/main/java/com/zy/ai/controller/WcsDiagnosisController.java
+++ b/src/main/java/com/zy/ai/controller/WcsDiagnosisController.java
@@ -1,34 +1,16 @@
package com.zy.ai.controller;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.zy.ai.entity.DeviceConfigsData;
-import com.zy.ai.entity.DeviceRealTimeData;
import com.zy.ai.entity.ChatCompletionRequest;
import com.zy.ai.entity.WcsDiagnosisRequest;
import com.zy.ai.entity.WcsDiagnosisResponse;
-import com.zy.ai.log.AiLogAppender;
import com.zy.ai.service.WcsDiagnosisService;
-import com.core.annotations.ManagerAuth;
+import com.zy.ai.utils.AiUtils;
import com.zy.common.web.BaseController;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpService;
-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 lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
-
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -41,69 +23,11 @@
@Autowired
private WcsDiagnosisService wcsDiagnosisService;
@Autowired
- private WrkMastService wrkMastService;
- @Autowired
- private BasCrnpService basCrnpService;
+ private AiUtils aiUtils;
@GetMapping("/runAi")
public WcsDiagnosisResponse runAi() {
- WcsDiagnosisRequest request = new WcsDiagnosisRequest();
-
- request.setAlarmMessage("绯荤粺涓嶆墽琛屼换鍔�");
-
- List<String> logs = AiLogAppender.getRecentLogs(100);
- 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);
- }
-
- request.setDeviceRealtimeData(deviceRealTimeDataList);
- request.setDeviceConfigs(deviceConfigsDataList);
+ WcsDiagnosisRequest request = aiUtils.makeAiRequest(1000, "绯荤粺褰撳墠涓嶆墽琛屼换鍔★紝浣嗗叿浣撳師鍥犱笉鏄庯紝璇锋牴鎹互涓嬩俊鎭府鍔╁垽鏂�俓n\n");
WcsDiagnosisResponse response = diagnose(request);
return response;
}
@@ -114,63 +38,7 @@
new Thread(() -> {
try {
- WcsDiagnosisRequest request = new WcsDiagnosisRequest();
- request.setAlarmMessage("绯荤粺涓嶆墽琛屼换鍔�");
-
- List<String> logs = AiLogAppender.getRecentLogs(100);
- 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);
- }
-
- request.setDeviceRealtimeData(deviceRealTimeDataList);
- request.setDeviceConfigs(deviceConfigsDataList);
-
+ WcsDiagnosisRequest request = aiUtils.makeAiRequest(1000, "绯荤粺褰撳墠涓嶆墽琛屼换鍔★紝浣嗗叿浣撳師鍥犱笉鏄庯紝璇锋牴鎹互涓嬩俊鎭府鍔╁垽鏂�俓n\n");
wcsDiagnosisService.diagnoseStream(request, emitter);
} catch (Exception e) {
emitter.completeWithError(e);
@@ -187,61 +55,7 @@
SseEmitter emitter = new SseEmitter(0L);
new Thread(() -> {
try {
- WcsDiagnosisRequest request = new WcsDiagnosisRequest();
-
- List<String> logs = AiLogAppender.getRecentLogs(100);
- 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);
- }
-
- request.setDeviceRealtimeData(deviceRealTimeDataList);
- request.setDeviceConfigs(deviceConfigsDataList);
-
+ WcsDiagnosisRequest request = aiUtils.makeAiRequest(100, null);
wcsDiagnosisService.askStream(request, prompt, chatId, reset, emitter);
} catch (Exception e) {
emitter.completeWithError(e);
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