From 4227b39d7a4fc6bc3ba012a09b59f653ab92ab23 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期一, 15 十二月 2025 16:40:54 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/ai/utils/AiUtils.java |  129 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 129 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
index 8be437b..a7cdeb9 100644
--- a/src/main/java/com/zy/ai/utils/AiUtils.java
+++ b/src/main/java/com/zy/ai/utils/AiUtils.java
@@ -1,5 +1,6 @@
 package com.zy.ai.utils;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.ai.entity.DeviceConfigsData;
 import com.zy.ai.entity.DeviceRealTimeData;
@@ -11,6 +12,7 @@
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.StationObjModel;
@@ -18,6 +20,8 @@
 import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.thread.CrnThread;
 import com.zy.core.thread.StationThread;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -34,6 +38,10 @@
     private BasCrnpService basCrnpService;
     @Autowired
     private BasDevpService basDevpService;
+    @Autowired
+    private ConfigService configService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     public WcsDiagnosisRequest makeAiRequest(int logLimit, String alarmMessage) {
         WcsDiagnosisRequest request = new WcsDiagnosisRequest();
@@ -124,6 +132,9 @@
                 deviceRealTimeDataList.add(stationData);
             }
 
+            //鍓旈櫎鍏ㄩ儴杈撻�佺珯鐐逛俊鎭紝浠ュ厤鏁版嵁閲忚繃澶э紝鍚庢湡鐪嬪疄闄呮儏鍐垫槸鍚︽墦寮�
+            basDevp.setStationList(null);
+
             DeviceConfigsData deviceConfigsData = new DeviceConfigsData();
             deviceConfigsData.setDeviceNo(basDevp.getDevpNo());
             deviceConfigsData.setDeviceType(String.valueOf(SlaveType.Devp));
@@ -133,7 +144,125 @@
 
         request.setDeviceRealtimeData(deviceRealTimeDataList);
         request.setDeviceConfigs(deviceConfigsDataList);
+
+        List<Config> systemConfigList = configService.selectList(new EntityWrapper<Config>().notIn("dingdingReportUrl"));
+        request.setSystemConfigs(systemConfigList);
+
         return request;
     }
 
+    public String buildDiagnosisUserContent(WcsDiagnosisRequest request) {
+        StringBuilder sb = new StringBuilder();
+
+        if (request.getAlarmMessage() != null && !request.getAlarmMessage().isEmpty()) {
+            sb.append("銆愰棶棰樻弿杩般�慭n");
+            sb.append(request.getAlarmMessage()).append("\n\n");
+        }
+
+        sb.append("銆愯澶囦俊鎭�慭n");
+        sb.append("鍏虫敞璁惧锛堝鏋滄湁鎸囧畾锛�: ")
+                .append(request.getCraneNo() != null ? request.getCraneNo() : "鏈寚瀹氾紝闇�鏁翠綋鍒嗘瀽")
+                .append("\n\n");
+
+        Object pseudo = redisUtil.get(com.zy.core.enums.RedisKeyType.MAIN_PROCESS_PSEUDOCODE.key);
+        if (pseudo != null) {
+            sb.append("銆愪富娴佺▼浼唬鐮� mainProcessPseudo銆慭n");
+            sb.append(String.valueOf(pseudo)).append("\n\n");
+        }
+
+        if (request.getExtraContext() != null && !request.getExtraContext().isEmpty()) {
+            sb.append("銆愰澶栦笂涓嬫枃 extraContext銆慭n");
+            sb.append(JSON.toJSONString(request.getExtraContext(), true)).append("\n\n");
+        }
+
+        if (request.getTasks() != null && !request.getTasks().isEmpty()) {
+            sb.append("銆愪换鍔′俊鎭� tasks銆慭n");
+            sb.append("涓嬮潰鏄綋鍓嶇浉鍏充换鍔″垪琛ㄧ殑 JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getTasks(), true)).append("\n\n");
+        } else {
+            sb.append("銆愪换鍔′俊鎭� tasks銆慭n");
+            sb.append("褰撳墠鏈彁渚涗换鍔′俊鎭�俓n\n");
+        }
+
+        if (request.getDeviceRealtimeData() != null && !request.getDeviceRealtimeData().isEmpty()) {
+            sb.append("銆愯澶囧疄鏃舵暟鎹� deviceRealtimeData銆慭n");
+            sb.append("涓嬮潰鏄悇璁惧褰撳墠瀹炴椂鐘舵�佺殑 JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getDeviceRealtimeData(), true)).append("\n\n");
+        } else {
+            sb.append("銆愯澶囧疄鏃舵暟鎹� deviceRealtimeData銆慭n");
+            sb.append("褰撳墠鏈彁渚涜澶囧疄鏃舵暟鎹�俓n\n");
+        }
+
+        if (request.getDeviceConfigs() != null && !request.getDeviceConfigs().isEmpty()) {
+            sb.append("銆愯澶囬厤缃俊鎭� deviceConfigs銆慭n");
+            sb.append("涓嬮潰鏄悇璁惧閰嶇疆鐨� JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getDeviceConfigs(), true)).append("\n\n");
+        } else {
+            sb.append("銆愯澶囬厤缃俊鎭� deviceConfigs銆慭n");
+            sb.append("褰撳墠鏈彁渚涜澶囬厤缃俊鎭�俓n\n");
+        }
+
+        if (request.getLogs() != null && !request.getLogs().isEmpty()) {
+            sb.append("銆愮郴缁熸棩蹇� logs锛堟寜鏃堕棿椤哄簭锛夈�慭n");
+            for (String logLine : request.getLogs()) {
+                sb.append(logLine).append("\n");
+            }
+        } else {
+            sb.append("銆愮郴缁熸棩蹇� logs锛堟寜鏃堕棿椤哄簭锛夈�慭n");
+            sb.append("褰撳墠鏈彁渚涙棩蹇椾俊鎭�俓n");
+        }
+
+        if (request.getSystemConfigs() != null && !request.getSystemConfigs().isEmpty()) {
+            sb.append("銆愮郴缁熼厤缃� sys_config銆慭n");
+            sb.append("涓嬮潰鏄悇绯荤粺閰嶇疆鐨� JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getSystemConfigs(), true)).append("\n\n");
+        }
+
+        sb.append("\n璇锋牴鎹互涓婃墍鏈変俊鎭紝缁撳悎浣犵殑缁忛獙杩涜鍒嗘瀽璇婃柇銆�");
+
+        return sb.toString();
+    }
+
+    public String buildAskUserContent(WcsDiagnosisRequest request) {
+        StringBuilder sb = new StringBuilder();
+
+        if (request.getExtraContext() != null && !request.getExtraContext().isEmpty()) {
+            sb.append("銆愰澶栦笂涓嬫枃 extraContext銆慭n");
+            sb.append(JSON.toJSONString(request.getExtraContext(), true)).append("\n\n");
+        }
+
+        if (request.getTasks() != null && !request.getTasks().isEmpty()) {
+            sb.append("銆愪换鍔′俊鎭� tasks銆慭n");
+            sb.append("涓嬮潰鏄綋鍓嶇浉鍏充换鍔″垪琛ㄧ殑 JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getTasks(), true)).append("\n\n");
+        }
+
+        if (request.getDeviceRealtimeData() != null && !request.getDeviceRealtimeData().isEmpty()) {
+            sb.append("銆愯澶囧疄鏃舵暟鎹� deviceRealtimeData銆慭n");
+            sb.append("涓嬮潰鏄悇璁惧褰撳墠瀹炴椂鐘舵�佺殑 JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getDeviceRealtimeData(), true)).append("\n\n");
+        }
+
+        if (request.getDeviceConfigs() != null && !request.getDeviceConfigs().isEmpty()) {
+            sb.append("銆愯澶囬厤缃俊鎭� deviceConfigs銆慭n");
+            sb.append("涓嬮潰鏄悇璁惧閰嶇疆鐨� JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getDeviceConfigs(), true)).append("\n\n");
+        }
+
+        if (request.getLogs() != null && !request.getLogs().isEmpty()) {
+            sb.append("銆愮郴缁熸棩蹇� logs锛堟寜鏃堕棿椤哄簭锛夈�慭n");
+            for (String logLine : request.getLogs()) {
+                sb.append(logLine).append("\n");
+            }
+        }
+
+        if (request.getSystemConfigs() != null && !request.getSystemConfigs().isEmpty()) {
+            sb.append("銆愮郴缁熼厤缃� sys_config銆慭n");
+            sb.append("涓嬮潰鏄悇绯荤粺閰嶇疆鐨� JSON 鏁版嵁锛歕n");
+            sb.append(JSON.toJSONString(request.getSystemConfigs(), true)).append("\n\n");
+        }
+
+        return sb.toString();
+    }
+
 }

--
Gitblit v1.9.1