| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | 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(); |
| | |
| | | deviceRealTimeDataList.add(stationData); |
| | | } |
| | | |
| | | //剔除全部输送站点信息,以免数据量过大,后期看实际情况是否打开 |
| | | basDevp.setStationList(null); |
| | | |
| | | DeviceConfigsData deviceConfigsData = new DeviceConfigsData(); |
| | | deviceConfigsData.setDeviceNo(basDevp.getDevpNo()); |
| | | deviceConfigsData.setDeviceType(String.valueOf(SlaveType.Devp)); |
| | |
| | | |
| | | 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(); |
| | | } |
| | | |
| | | } |