diff --git a/ALOps_sys_backend/alops-admin/pom.xml b/ALOps_sys_backend/alops-admin/pom.xml index c5e46b6a..5adccf07 100644 --- a/ALOps_sys_backend/alops-admin/pom.xml +++ b/ALOps_sys_backend/alops-admin/pom.xml @@ -11,6 +11,8 @@ 4.0.0 jar alops-admin + + web服务入口 @@ -45,10 +47,11 @@ 1.6.2 - + - mysql - mysql-connector-java + com.mysql + mysql-connector-j + 8.0.33 @@ -76,12 +79,20 @@ alops-generator + org.springframework.boot spring-boot-starter-mail 2.5.15 + + com.alops + alops-chat + 1.0.0 + compile + + diff --git a/ALOps_sys_backend/alops-admin/src/main/java/com/alops/AlopsApplication.java b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/AlopsApplication.java index f07acc88..f09f2d36 100644 --- a/ALOps_sys_backend/alops-admin/src/main/java/com/alops/AlopsApplication.java +++ b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/AlopsApplication.java @@ -11,6 +11,7 @@ import org.springframework.context.annotation.ComponentScan; * @author ruoyi */ @SpringBootApplication (exclude = { DataSourceAutoConfiguration.class }) +@ComponentScan(basePackages = {"com.alops.web", "com.alops.framework", "com.alops.system", "com.alops.quartz", "com.alops.common", "com.alops.generator", "com.alops.chat"}) public class AlopsApplication diff --git a/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/LlmKnowledgeController/KnowLedgeController.java b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/LlmKnowledgeController/KnowLedgeController.java new file mode 100644 index 00000000..7695197d --- /dev/null +++ b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/LlmKnowledgeController/KnowLedgeController.java @@ -0,0 +1,286 @@ +package com.alops.web.controller.LlmKnowledgeController; + +import com.alops.chat.entity.KnowledgeEntity; +import com.alops.chat.entity.UploadedFile; +import com.alops.chat.service.KnowledgeService; +import com.alops.chat.service.UploadedFileService; +import com.alops.common.constant.HttpStatus; +import com.alops.common.core.controller.BaseController; +import com.alops.common.core.domain.AjaxResult; +import com.alops.common.core.page.TableDataInfo; +import com.alops.common.config.RuoYiConfig; +import com.alops.common.utils.file.FileUploadUtils; +import com.alops.common.utils.file.MimeTypeUtils; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * 文件上传控制器 + * 提供文件导入功能,将文本文档转化为知识条目 + */ +@RestController +@RequestMapping("/QandA/knowledge/") +@CrossOrigin(origins = "*") +public class KnowLedgeController extends BaseController { + + @Autowired + private KnowledgeService knowledgeService; + + @Autowired + private UploadedFileService uploadedFileService; + + // 文件存储目录 + private static final String UPLOAD_DIR = "uploads/"; + + /** + * 上传并处理文本文档 + * + * @param file 上传的文件 + * @param source 文件来源描述 + * @return 处理结果 + */ + + @PreAuthorize("@ss.hasPermi('QandA:knowledge:uploadfile')") + @PostMapping("/upload") + @ApiOperation("上传并处理文本文档") + public AjaxResult uploadFile( + @RequestPart("file") + @ApiParam(value = "知识库文件", type = "file") MultipartFile file, + @ModelAttribute("source") String source) { + try { + String content; + + // 判断文件类型并读取内容 + if (file.getOriginalFilename() != null && file.getOriginalFilename().endsWith(".docx")) { + // 处理docx文件 + content = readDocxFile(file); + } else { + // 处理txt文件 + content = readTxtFile(file); + } + + // 使用优化后的文件上传工具保存文件到本地并记录信息到数据库 + // 上传文件并保持原始文件名,只允许 TEXT_EXTENSION 类型的文件 + String filePath = FileUploadUtils.uploadWithOriginalFilename( + RuoYiConfig.getProfile(), + file, + MimeTypeUtils.TEXT_EXTENSION); + + String fileExtension = getFileExtension(file.getOriginalFilename()); + UploadedFile uploadedFile = new UploadedFile(filePath, source, fileExtension, null); + uploadedFile = uploadedFileService.save(uploadedFile); + + // 获取保存后的文件ID + Long fileId = uploadedFile.getId(); + + // 处理文件内容并添加到知识库,将文件ID作为keyfileid参数传递 + List knowledgeIds = knowledgeService.addKnowledgeWithFileId(content, source, fileId); + + // 更新上传文件信息(如果有知识条目被创建) + if (!knowledgeIds.isEmpty()) { + // 可以在这里添加其他需要的更新逻辑 + } + + return AjaxResult.success("文件上传并处理成功"); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("文件处理失败: " + e.getMessage()); + } + } + + /** + * 读取docx文件的内容 + * + * @param file 上传的docx文件 + * @return 文件内容字符串 + * @throws IOException IO异常 + */ + private String readDocxFile(MultipartFile file) throws IOException { + try (XWPFDocument document = new XWPFDocument(file.getInputStream())) { + StringBuilder content = new StringBuilder(); + // 遍历所有段落并提取文本 + for (XWPFParagraph paragraph : document.getParagraphs()) { + content.append(paragraph.getText()).append("\n"); + } + return content.toString(); + } + } + + /** + * 读取txt文件的内容 + * + * @param file 上传的txt文件 + * @return 文件内容字符串 + * @throws IOException IO异常 + */ + private String readTxtFile(MultipartFile file) throws IOException { + StringBuilder content = new StringBuilder(); + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(file.getInputStream(), StandardCharsets.UTF_8))) { + String line; + while ((line = reader.readLine()) != null) { + content.append(line).append("\n"); + } + } + return content.toString(); + } + + + + /** + * 获取文件扩展名 + * + * @param filename 文件名 + * @return 文件扩展名 + */ + private String getFileExtension(String filename) { + if (filename == null || filename.lastIndexOf(".") == -1) { + return ""; + } + return filename.substring(filename.lastIndexOf(".") + 1); + } + + /** + * 添加知识条目接口 + * + * @param content 知识内容 + * @param source 知识来源 + * @return 添加结果 + */ + @PreAuthorize("@ss.hasPermi('QandA:knowledge:upload')") + @PostMapping("/add-knowledge") + @ApiOperation("添加知识条目接口") + public AjaxResult addKnowledge( + @RequestParam String content, + @RequestParam String source) { + try { + knowledgeService.addKnowledge(content, source); + return AjaxResult.success("知识添加成功"); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("知识添加失败: " + e.getMessage()); + } + } + + + /** + * 获取所有正式知识条目(分页) + * + * @return 正式知识条目列表 + */ + @PreAuthorize("@ss.hasPermi('QandA:knowledge:permquery')") + @GetMapping("/permanent-knowledge") + @ApiOperation("获取所有正式知识条目") + public TableDataInfo getPermanentKnowledge() { + startPage(); // 开启分页 + List permanentEntries = knowledgeService.getPermanentEntries(); + return getDataTable(permanentEntries); + } + + /** + * 获取所有上传文件信息(分页) + * + * @return 上传文件信息列表 + */ + @PreAuthorize("@ss.hasPermi('QandA:knowledge:filelist')") + @GetMapping("/uploaded-files") + @ApiOperation("获取所有上传文档") + public TableDataInfo getUploadedFiles() { + startPage(); // 开启分页 + List uploadedFiles = uploadedFileService.findAll(); + return getDataTable(uploadedFiles); + } + + /** + * 更新知识条目接口 + * + * @param id 知识条目ID + * @param content 知识内容 + * @param source 知识来源 + * @return 更新结果 + */ + @PreAuthorize("@ss.hasPermi('QandA:knowledge:update')") + @PutMapping("/update-knowledge") + @ApiOperation("更新知识条目") + public AjaxResult updateKnowledge( + @RequestParam Long id, + @RequestParam String content, + @RequestParam String source) { + try { + boolean updated = knowledgeService.updateKnowledge(id, content, source); + if (updated) { + return AjaxResult.success("知识条目更新成功"); + } else { + return AjaxResult.error(HttpStatus.NOT_FOUND, "未找到指定的知识条目"); + } + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("知识条目更新失败: " + e.getMessage()); + } + } + + /** + * 删除知识条目接口 + * + * @param id 知识条目ID + * @return 删除结果 + */ + @PreAuthorize("@ss.hasPermi('QandA:knowledge:del')") + @DeleteMapping("/knowledge/{id}") + @ApiOperation("删除知识条目接口") + public AjaxResult deleteKnowledge(@PathVariable Long id) { + try { + boolean deleted = knowledgeService.deleteKnowledge(id); + if (deleted) { + return AjaxResult.success("知识条目删除成功");} else { + return AjaxResult.error(HttpStatus.NOT_FOUND, "未找到指定的知识条目"); + } + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("知识条目删除失败: " + e.getMessage()); + } + } + + /** + * 删除上传文件信息接口 + * + * @param id 上传文件ID + * @return 删除结果 + */ + @ApiOperation("删除上传文件信息") + @PreAuthorize("@ss.hasPermi('QandA:knowledge:filedel')") + @DeleteMapping("/uploaded-files/{id}") + public AjaxResult deleteUploadedFile(@PathVariable Long id) { + try { + // 先删除关联的知识条目 + knowledgeService.deleteKnowledgeByFileId(id); + + // 再删除文件信息 + uploadedFileService.deleteById(id); + return AjaxResult.success("上传文件信息删除成功"); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("上传文件信息删除失败: " + e.getMessage()); + } + + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/LlmKnowledgeController/QAController.java b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/LlmKnowledgeController/QAController.java new file mode 100644 index 00000000..6283883a --- /dev/null +++ b/ALOps_sys_backend/alops-admin/src/main/java/com/alops/web/controller/LlmKnowledgeController/QAController.java @@ -0,0 +1,139 @@ +package com.alops.web.controller.LlmKnowledgeController; + +import com.alops.chat.DTO.AnswerResponse; +import com.alops.chat.DTO.QuestionRequest; +import com.alops.chat.entity.KnowledgeEntity; +import com.alops.chat.service.AItokenService; +import com.alops.chat.service.KnowledgeService; +import com.alops.common.core.domain.AjaxResult; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 问答系统控制器 + * 提供基于知识库的问答接口 + */ + +@RestController +@RequestMapping("/QandA/knowledge/") +@CrossOrigin(origins = "*") +public class QAController { + + @Autowired + private KnowledgeService knowledgeService; + + @Autowired + private AItokenService AItokenService; + + // 假数据答案 + @Value("${mock.qa.answer:这是默认的模拟答案}") + private String mockAnswer; + + // 假数据来源 + @Value("${mock.qa.sources:模拟来源1,模拟来源2}") + private String mockSources; + + /** + * POST方式问答接口 + * @param request 包含问题的请求对象 + * @return 答案响应 + */ + @PreAuthorize("@ss.hasPermi('QandA:Aiassistant:ask')") + @PostMapping("/ask") + @ApiOperation("智能问答提问") + public AjaxResult askQuestion(@RequestBody QuestionRequest request) { + try { + // 检查是否使用假数据模式 + if (AItokenService.isMockEnabled()) { + System.out.println("使用假数据模式返回问答结果"); + String[] sources = mockSources.split(","); + AnswerResponse answerResponse = new AnswerResponse(mockAnswer, sources); + return AjaxResult.success("问答成功(假数据模式)", answerResponse); + } + + // 1. 查找相关知识(最相似的8条) + List similarKnowledge = knowledgeService.findSimilarKnowledge(request.getQuestion(), 8); + + // 如果没有找到相关知识,返回提示信息 + if (similarKnowledge.isEmpty()) { + // 创建一个专门的提示信息,说明知识库中未找到相关内容 + String noAnswerPrompt = "知识库中没有找到与您的问题直接相关的内容。您的问题可能是关于 \"" + + request.getQuestion() + "\"。请确认问题表述是否准确,或者尝试重新表述问题。" + + "如果这是一个重要的问题,请联系管理员添加相关知识。"; + + AnswerResponse answerResponse = new AnswerResponse(noAnswerPrompt, new String[0]); + return AjaxResult.success(noAnswerPrompt, answerResponse); + } + + // 2. 生成上下文 + String context = knowledgeService.generateContext(similarKnowledge); + + // 检查上下文是否为空 + if (context == null || context.trim().isEmpty()) { + String errorMessage = "系统未能从知识库中提取有效上下文信息。"; + AnswerResponse errorResponse = new AnswerResponse(errorMessage, new String[0]); + return AjaxResult.error(errorMessage, errorResponse); + } + + // 3. 构造消息列表并调用Qwen3生成答案 + List> messages = new ArrayList<>(); + Map systemMessage = new HashMap<>(); + systemMessage.put("role", "system"); + systemMessage.put("content", "你是一个智能运维助手,根据提供的上下文回答问题。如果上下文中没有相关信息,请说明无法基于提供的上下文回答问题。"); + messages.add(systemMessage); + + Map userMessage = new HashMap<>(); + userMessage.put("role", "user"); + userMessage.put("content", "上下文信息:\n" + context + "\n\n请根据以上上下文信息回答问题:" + request.getQuestion()); + messages.add(userMessage); + + String answer = AItokenService.generateAnswer(messages); + + // 检查生成的答案是否为空或默认加载信息 + if (answer == null || answer.trim().isEmpty()) { + String errorMessage = "系统未能生成有效答案,请稍后再试。"; + AnswerResponse errorResponse = new AnswerResponse(errorMessage, new String[0]); + return AjaxResult.error(errorMessage, errorResponse); + } + + // 检查是否是模型加载信息 + if (answer.contains("模型正在加载中")) { + AnswerResponse answerResponse = new AnswerResponse(answer, new String[0]); + return AjaxResult.error("模型正在加载中", answerResponse); + } + + // 检查是否是连接错误信息 + if (answer.contains("无法连接到Ollama服务")) { + AnswerResponse answerResponse = new AnswerResponse(answer, new String[0]); + return AjaxResult.error("服务连接失败", answerResponse); + } + + // 4. 提取来源信息 + String[] sources = similarKnowledge.stream() + .map(KnowledgeEntity::getSource) + .distinct() + .toArray(String[]::new); + + AnswerResponse answerResponse = new AnswerResponse(answer, sources); + return AjaxResult.success("问答成功", answerResponse); + } catch (Exception e) { + e.printStackTrace(); + AnswerResponse errorResponse = new AnswerResponse( + "系统处理问题时发生错误,请稍后再试。", new String[0]); + return AjaxResult.error("系统处理问题时发生错误,请稍后再试。", errorResponse); + } + } + + + + + +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-admin/src/main/resources/application.yml b/ALOps_sys_backend/alops-admin/src/main/resources/application.yml index fb19c529..795857e4 100644 --- a/ALOps_sys_backend/alops-admin/src/main/resources/application.yml +++ b/ALOps_sys_backend/alops-admin/src/main/resources/application.yml @@ -49,6 +49,9 @@ user: # Spring配置 Spring: + # 允许Bean定义覆盖 + main: + allow-bean-definition-overriding: true # 邮件信息 mail: host: smtp.qq.com @@ -88,7 +91,7 @@ Spring: # 数据库索引 database: 0 # 密码 - password: + password: # 连接超时时间 timeout: 10s lettuce: @@ -101,10 +104,7 @@ Spring: max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms - #邮件信息 - - - + # 邮件信息 # token配置 token: @@ -146,4 +146,13 @@ xss: # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* - +# 添加假数据配置 +mock: + enabled: true + # 问答接口假数据配置 + qa: + answer: "这是一个模拟的答案。在真实环境中,这将是由AI模型生成的答案。" + sources: "模拟来源1,模拟来源2" + # 知识库接口假数据配置 + knowledge: + enabled: true \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/pom.xml b/ALOps_sys_backend/alops-chat/pom.xml new file mode 100644 index 00000000..6312a740 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/pom.xml @@ -0,0 +1,152 @@ + + + + com.alops + alops + 1.0.0 + ../pom.xml + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 9 + 9 + + + + + 4.0.0 + + alops-chat + + + common通用工具 + + + + + + org.snmp4j + snmp4j + 3.9.6 + + + + + org.springframework + spring-context-support + + + + + org.springframework + spring-web + + + + + org.springframework.boot + spring-boot-starter-security + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.fasterxml.jackson.core + jackson-databind + + + + + com.alibaba.fastjson2 + fastjson2 + + + + + commons-io + commons-io + + + + + org.apache.poi + poi-ooxml + + + + + org.yaml + snakeyaml + + + + + io.jsonwebtoken + jjwt + + + + + javax.xml.bind + jaxb-api + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.apache.commons + commons-pool2 + + + + + eu.bitwalker + UserAgentUtils + + + + + javax.servlet + javax.servlet-api + + + org.projectlombok + lombok + 1.18.36 + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/AnswerResponse.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/AnswerResponse.java new file mode 100644 index 00000000..b1cc506a --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/AnswerResponse.java @@ -0,0 +1,34 @@ +// dto/AnswerResponse.java +package com.alops.chat.DTO; + +public class AnswerResponse { + + private String answer; + private String[] sources; + + public AnswerResponse() {} + + public AnswerResponse(String answer, String[] sources) { + + this.answer = answer; + this.sources = sources; + } + + + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String[] getSources() { + return sources; + } + + public void setSources(String[] sources) { + this.sources = sources; + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/EmbeddingResponse.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/EmbeddingResponse.java new file mode 100644 index 00000000..c3568b43 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/EmbeddingResponse.java @@ -0,0 +1,61 @@ +// dto/EmbeddingResponse.java +package com.alops.chat.DTO; + +import java.util.List; + +public class EmbeddingResponse { + private boolean success; + private List vector; + private int dimension; + private String errorMessage; // 添加错误信息字段 + + public EmbeddingResponse() {} + + public EmbeddingResponse(boolean success, List vector, int dimension) { + this.success = success; + this.vector = vector; + this.dimension = dimension; + } + + // 新增构造函数,包含错误信息 + public EmbeddingResponse(boolean success, List vector, int dimension, String errorMessage) { + this.success = success; + this.vector = vector; + this.dimension = dimension; + this.errorMessage = errorMessage; + } + + // Getter和Setter方法 + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getVector() { + return vector; + } + + public void setVector(List vector) { + this.vector = vector; + } + + public int getDimension() { + return dimension; + } + + public void setDimension(int dimension) { + this.dimension = dimension; + } + + // 错误信息的Getter和Setter方法 + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/QuestionRequest.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/QuestionRequest.java new file mode 100644 index 00000000..3bd3f83f --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/DTO/QuestionRequest.java @@ -0,0 +1,20 @@ +// dto/QuestionRequest.java +package com.alops.chat.DTO; + +public class QuestionRequest { + private String question; + + public QuestionRequest() {} + + public QuestionRequest(String question) { + this.question = question; + } + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/entity/KnowledgeEntity.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/entity/KnowledgeEntity.java new file mode 100644 index 00000000..1184e124 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/entity/KnowledgeEntity.java @@ -0,0 +1,94 @@ +// entity/KnowledgeEntry.java +package com.alops.chat.entity; + + +import lombok.Data; + +import javax.persistence.*; +import java.time.LocalDateTime; + +/** + * 知识条目实体类 + * 用于存储知识库中的条目信息 + */ +@Entity +@Table(name = "knowledge_entries") +@Data +public class KnowledgeEntity { + + // 主键,自动生成 + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + // 知识内容,使用TEXT类型存储 + @Column(columnDefinition = "TEXT") + private String content; + + // 向量嵌入,使用Lob注解存储大型字节数组 + @Lob + private byte[] embedding; + + // 知识来源 + private String source; + + // 创建时间,实体被创建时自动设置 + @Column(name = "createtime") + private LocalDateTime createtime; + + // 更新时间,实体每次更新时自动设置 + @Column(name = "updatetime") + private LocalDateTime updatetime; + + // 对应的files的id + @Column(name = "keyfileid") + private Integer keyfileid;; + + // 默认构造方法 + public KnowledgeEntity() { + } + + /** + * 构造方法 + * @param content 知识内容 + * @param embedding 向量嵌入 + * @param source 知识来源 + */ + public KnowledgeEntity(String content, byte[] embedding, String source,int keyfileid) { + this.content = content; + this.embedding = embedding; + this.source = source; + this.createtime = LocalDateTime.now(); + this.updatetime = LocalDateTime.now(); + this.keyfileid =keyfileid; // 默认为正式条目 + } + + /** + * 构造方法(用于临时条目) + * @param content 知识内容 + * @param source 知识来源 + * @param keyfileid 对应的id + */ + public KnowledgeEntity(String content, String source, int keyfileid) { + this.content = content; + this.source = source; + this.createtime = LocalDateTime.now(); + this.updatetime = LocalDateTime.now(); + this.keyfileid = keyfileid; + } + + + + // JPA生命周期回调方法,在实体被更新时自动设置更新时间 + @PreUpdate + public void onPreUpdate() { + this.updatetime = LocalDateTime.now(); + } + + // JPA生命周期回调方法,在实体被持久化之前自动设置创建时间 + @PrePersist + public void onPrePersist() { + this.createtime = LocalDateTime.now(); + this.updatetime = LocalDateTime.now(); + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/entity/UploadedFile.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/entity/UploadedFile.java new file mode 100644 index 00000000..98a6aa38 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/entity/UploadedFile.java @@ -0,0 +1,60 @@ +package com.alops.chat.entity; + + +import lombok.Data; + +import javax.persistence.*; +import java.time.LocalDateTime; + +/** + * 上传文件信息实体类 + * 用于存储上传文件的信息,包括路径、时间、格式等 + */ +@Entity +@Table(name = "uploaded_files") +@Data +public class UploadedFile { + // 主键,自动生成 + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + // 文件保存路径 + @Column(name = "file_path") + private String filePath; + + // 上传时间 + @Column(name = "upload_time") + private LocalDateTime uploadTime; + + // 文件来源名称 + private String source; + + // 文件格式(扩展名) + private String format; + + + + // 默认构造方法 + public UploadedFile() {} + + /** + * 构造方法 + * @param filePath 文件保存路径 + * @param source 文件来源名称 + * @param format 文件格式 + * @param knowledgeId 对应的知识条目ID + */ + public UploadedFile(String filePath, String source, String format, Long knowledgeId) { + this.filePath = filePath; + this.source = source; + this.format = format; + this.uploadTime = LocalDateTime.now(); + } + + // JPA生命周期回调方法,在实体被持久化之前自动设置上传时间 + @PrePersist + public void onPrePersist() { + this.uploadTime = LocalDateTime.now(); + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/repository/KnowledgeRepository.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/repository/KnowledgeRepository.java new file mode 100644 index 00000000..7d904fb5 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/repository/KnowledgeRepository.java @@ -0,0 +1,55 @@ +// repository/KnowledgeRepository.java +package com.alops.chat.repository; + +import com.alops.chat.entity.KnowledgeEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 知识条目数据访问接口 + * 提供对知识条目的增删改查操作 + */ +@Repository +public interface KnowledgeRepository extends JpaRepository { + + /** + * 根据关键词模糊搜索知识条目 + * @param keyword 搜索关键词 + * @return 匹配的知识条目列表 + */ + @Query("SELECT k FROM KnowledgeEntity k WHERE k.content LIKE %:keyword%") + List findByContentContaining(@Param("keyword") String keyword); + + /** + * 根据多个关键词模糊搜索知识条目 + * @param keyword1 第一个关键词 + * @param keyword2 第二个关键词 + * @param keyword3 第三个关键词 + * @return 匹配的知识条目列表 + */ + @Query("SELECT k FROM KnowledgeEntity k WHERE " + + "LOWER(k.content) LIKE LOWER(CONCAT('%', :keyword1, '%')) OR " + + "LOWER(k.content) LIKE LOWER(CONCAT('%', :keyword2, '%')) OR " + + "LOWER(k.content) LIKE LOWER(CONCAT('%', :keyword3, '%'))") + List findByMultipleKeywords( + @Param("keyword1") String keyword1, + @Param("keyword2") String keyword2, + @Param("keyword3") String keyword3); + + /** + * 根据文件ID删除知识条目 + * @param keyfileid 文件ID + * @return 删除的条目数量 + */ + @Modifying + @Transactional + @Query("DELETE FROM KnowledgeEntity k WHERE k.keyfileid = :keyfileid") + int deleteByKeyfileid(@Param("keyfileid") Integer keyfileid); + +} diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/AItokenService.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/AItokenService.java new file mode 100644 index 00000000..cddc07a3 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/AItokenService.java @@ -0,0 +1,750 @@ +// service/Qwen3Service.java +package com.alops.chat.service; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.alops.chat.DTO.EmbeddingResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.ResourceAccessException; +import org.springframework.web.client.RestTemplate; + +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.*; + +@Service +public class AItokenService { + + @Autowired + private RestTemplate restTemplate; + + // Ollama API地址 + private static final String OLLAMA_EMBEDDING_URL = "http://127.0.0.1:11434/api/embeddings"; + private static final String OLLAMA_GENERATION_URL = "http://127.0.0.1:11434/api/chat"; + + // 使用的模型 + private static final String EMBEDDING_MODEL = "nomic-embed-text:v1.5"; + private static final String GENERATION_MODEL = "qwen3:4b"; + + // 是否使用假数据 + @Value("${mock.enabled:false}") + private boolean mockEnabled; + + // 假数据答案 + @Value("${mock.qa.answer:这是默认的模拟答案}") + private String mockAnswer; + + // 假数据来源 + @Value("${mock.qa.sources:模拟来源1,模拟来源2}") + private String mockSources; + + /** + * 检查是否使用假数据模式 + * @return 是否使用假数据 + */ + public boolean isMockEnabled() { + return mockEnabled; + } + + // 添加连接测试方法 + private boolean isOllamaReachable() { + try (Socket socket = new Socket()) { + socket.connect(new InetSocketAddress("127.0.0.1", 11434), 5000); // 5秒超时 + return true; + } catch (Exception e) { + System.err.println("无法通过Socket连接到Ollama服务: " + e.getMessage()); + return false; + } + } + + // 添加HTTP连接测试方法 + private boolean isOllamaHttpReachable() { + try { + ResponseEntity response = restTemplate.getForEntity("http://127.0.0.1:11434/api/tags", String.class); + return response.getStatusCode().is2xxSuccessful(); + } catch (Exception e) { + System.err.println("无法通过HTTP连接到Ollama服务: " + e.getMessage()); + return false; + } + } + + /** + * 获取文本的向量表示结果 + * + * @param text 输入文本 + * @return 向量表示结果 + */ + public EmbeddingResponse getEmbedding(String text) { + // 如果启用假数据模式,返回随机向量 + if (mockEnabled) { + System.out.println("使用假数据模式,返回随机向量"); + return generateRandomEmbedding(); + } + + System.out.println("开始获取文本嵌入向量,输入文本长度: " + (text != null ? text.length() : 0)); + + // 验证输入文本长度是否符合API要求 + if (text == null || text.isEmpty()) { + System.err.println("输入文本为空"); + return new EmbeddingResponse(false, new ArrayList<>(), 0); + } + + // 如果文本长度超过8192个字符,则截取前8192个字符 + if (text.length() > 8192) { + System.out.println("输入文本长度超过8192字符,已自动截取前8192个字符"); + text = text.substring(0, 8192); + } + + // 检查Ollama服务是否可达 + System.out.println("检查Ollama服务是否可达..."); + if (!isOllamaReachable()) { + System.err.println("Socket连接测试失败"); + if (!isOllamaHttpReachable()) { + System.err.println("HTTP连接测试也失败"); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "无法连接到Ollama服务,请确保Ollama正在运行并监听端口11434。请尝试重启Ollama服务或检查防火墙设置。"); + } else { + System.out.println("HTTP连接测试成功,但Socket连接失败,可能存在网络配置问题"); + } + } else { + System.out.println("Socket连接测试成功"); + } + + try { + // 构造请求体 + Map requestBody = new HashMap<>(); + requestBody.put("model", EMBEDDING_MODEL); + requestBody.put("prompt", text); + + // 设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + // 创建HTTP实体 + HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); + + // 发送POST请求到Ollama API + ResponseEntity response = restTemplate.postForEntity(OLLAMA_EMBEDDING_URL, requestEntity, String.class); + + if (response.getStatusCode().is2xxSuccessful() && response.getBody() != null) { + // 解析响应 + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode rootNode = objectMapper.readTree(response.getBody()); + + // 检查是否有错误信息 + JsonNode errorNode = rootNode.get("error"); + if (errorNode != null) { + String errorMessage = errorNode.asText(); + System.err.println("Ollama API返回错误: " + errorMessage); + // 特别处理模型未找到的情况 + if (errorMessage.contains("not found")) { + return new EmbeddingResponse(false, new ArrayList<>(), 0, "模型 '" + EMBEDDING_MODEL + "' 未找到,请运行 'ollama pull " + EMBEDDING_MODEL + "' 命令下载模型"); + } + return new EmbeddingResponse(false, new ArrayList<>(), 0, "Ollama API错误: " + errorMessage); + } + + // 尝试获取"embeddings"字段(某些Ollama版本) + JsonNode embeddingsNode = rootNode.get("embeddings"); + if (embeddingsNode != null && embeddingsNode.isArray()) { + List embedding = new ArrayList<>(); + for (JsonNode node : embeddingsNode) { + embedding.add((float) node.asDouble()); + } + + System.out.println("成功获取嵌入向量,维度: " + embedding.size()); + return new EmbeddingResponse(true, embedding, embedding.size()); + } + + // 尝试获取"embedding"字段(其他Ollama版本) + JsonNode embeddingNode = rootNode.get("embedding"); + if (embeddingNode != null && embeddingNode.isArray()) { + List embedding = new ArrayList<>(); + for (JsonNode node : embeddingNode) { + embedding.add((float) node.asDouble()); + } + + System.out.println("成功获取嵌入向量,维度: " + embedding.size()); + return new EmbeddingResponse(true, embedding, embedding.size()); + } + + // 如果两种方式都失败,记录完整的响应内容用于调试 + System.err.println("Ollama API返回的嵌入向量格式不正确,完整响应: " + rootNode.toString()); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "Ollama API返回的嵌入向量格式不正确"); + } else { + System.err.println("Ollama API调用失败,状态码: " + response.getStatusCode()); + // 特别处理404错误,提示用户需要拉取模型 + if (response.getStatusCode().value() == 404) { + System.err.println("模型未找到,请运行 'ollama pull " + EMBEDDING_MODEL + "' 命令下载模型"); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "模型 '" + EMBEDDING_MODEL + "' 未找到,请运行 'ollama pull " + EMBEDDING_MODEL + "' 命令下载模型"); + } + return new EmbeddingResponse(false, new ArrayList<>(), 0); + } + } catch (ResourceAccessException e) { + // 处理连接被拒绝的异常 + if (e.getCause() instanceof java.net.ConnectException) { + System.err.println("无法连接到Ollama服务: " + e.getMessage()); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "无法连接到Ollama服务,请确保Ollama正在运行并监听端口11434。请尝试重启Ollama服务或检查防火墙设置。"); + } + System.err.println("调用Ollama嵌入API时发生网络异常: " + e.getMessage()); + e.printStackTrace(); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "调用嵌入API时发生网络异常: " + e.getMessage()); + } catch (org.springframework.web.client.HttpClientErrorException.NotFound e) { + System.err.println("模型未找到: " + e.getMessage()); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "模型 '" + EMBEDDING_MODEL + "' 未找到,请运行 'ollama pull " + EMBEDDING_MODEL + "' 命令下载模型"); + } catch (Exception e) { + System.err.println("调用Ollama嵌入API时发生异常: " + e.getMessage()); + e.printStackTrace(); + return new EmbeddingResponse(false, new ArrayList<>(), 0, "调用嵌入API时发生异常: " + e.getMessage()); + } + } + + /** + * 生成随机向量作为后备方案 + * + * @return 随机向量 + */ + private EmbeddingResponse generateRandomEmbedding() { + List randomEmbedding = new ArrayList<>(); + Random random = new Random(); + for (int i = 0; i < 100; i++) { + randomEmbedding.add(random.nextFloat() * 2 - 1); // 生成-1到1之间的随机数 + } + System.out.println("Generated Random Embedding, Size: " + randomEmbedding.size()); + return new EmbeddingResponse(true, randomEmbedding, 100); + } + + /** + * 生成问题的答案(支持多轮对话) + * + * @param messages 对话历史消息列表 + * @return 生成的答案 + */ + public String generateAnswer(List> messages) { + // 如果启用假数据模式,返回预设答案 + if (mockEnabled) { + System.out.println("使用假数据模式,返回预设答案"); + return mockAnswer; + } + + System.out.println("开始生成答案,消息数量: " + (messages != null ? messages.size() : 0)); + + // 验证消息列表 + if (messages == null || messages.isEmpty()) { + System.err.println("消息列表为空"); + return "抱歉,我无法回答这个问题。请稍后再试。"; + } + + // 检查Ollama服务是否可达 + System.out.println("检查Ollama服务是否可达..."); + if (!isOllamaReachable()) { + System.err.println("Socket连接测试失败"); + if (!isOllamaHttpReachable()) { + System.err.println("HTTP连接测试也失败"); + return "系统遇到错误: 无法连接到Ollama服务,请确保Ollama正在运行并监听端口11434。请尝试重启Ollama服务或检查防火墙设置。"; + } else { + System.out.println("HTTP连接测试成功,但Socket连接失败,可能存在网络配置问题"); + } + } else { + System.out.println("Socket连接测试成功"); + } + + // 添加重试机制 + int maxRetries = 5; // 增加重试次数 + for (int attempt = 1; attempt <= maxRetries; attempt++) { + try { + // 构造请求体 + Map requestBody = new HashMap<>(); + requestBody.put("model", GENERATION_MODEL); + requestBody.put("messages", messages); + requestBody.put("stream", false); + requestBody.put("options", Map.of("num_predict", 2048)); // 限制生成长度以减少资源消耗 + + // 设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + // 创建HTTP实体 + HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); + + // 发送POST请求到Ollama API + ResponseEntity response = restTemplate.postForEntity(OLLAMA_GENERATION_URL, requestEntity, String.class); + + if (response.getStatusCode().is2xxSuccessful() && response.getBody() != null) { + System.out.println("Ollama API 响应: " + response.getBody()); + + // 解析响应 + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode rootNode = objectMapper.readTree(response.getBody()); + + // 检查是否有错误信息 + JsonNode errorNode = rootNode.get("error"); + if (errorNode != null) { + String errorMessage = errorNode.asText(); + System.err.println("Ollama API返回错误: " + errorMessage); + // 特别处理模型未找到的情况 + if (errorMessage.contains("not found")) { + return "系统遇到错误: 模型 '" + GENERATION_MODEL + "' 未找到,请联系管理员确认模型是否已正确安装"; + } + return "系统遇到错误: " + errorMessage + "。请稍后再试。"; + } + + // 检查done_reason是否为load(模型正在加载) + JsonNode doneReasonNode = rootNode.get("done_reason"); + if (doneReasonNode != null) { + String doneReason = doneReasonNode.asText(); + // 正确处理"load"状态 - 忽略它并继续等待结果 + if ("load".equals(doneReason)) { + System.out.println("第 " + attempt + " 次尝试:模型正在加载中,请稍后再试"); + if (attempt < maxRetries) { + // 等待时间逐渐增加 + long waitTime = 5000 * attempt; // 5秒, 10秒, 15秒, 20秒... + System.out.println("等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + continue; + } else { + return "AI模型正在加载中,请稍等2-3分钟后再试。如果问题持续存在,可能需要检查系统资源配置。"; + } + } + // 只有当done_reason为stop时才表示真正结束 + else if (!"stop".equals(doneReason)) { + System.out.println("第 " + attempt + " 次尝试:模型返回未知的done_reason: " + doneReason); + if (attempt < maxRetries) { + long waitTime = 3000 * attempt; + System.out.println("等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + continue; + } + } + } + + // 首先尝试获取"message"字段(适用于某些Ollama版本) + JsonNode messageNode = rootNode.get("message"); + if (messageNode != null) { + JsonNode contentNode = messageNode.get("content"); + if (contentNode != null) { + String content = contentNode.asText(); + System.out.println("从 'message.content' 获取回答内容,长度: " + (content != null ? content.length() : 0)); + if (content != null && !content.isEmpty()) { + return content; + } + } + } + + // 如果没有"message"字段,尝试直接获取"response"字段(适用于其他Ollama版本) + JsonNode responseNode = rootNode.get("response"); + if (responseNode != null) { + String content = responseNode.asText(); + System.out.println("从 'response' 获取回答内容,长度: " + (content != null ? content.length() : 0)); + if (content != null && !content.isEmpty()) { + return content; + } + } + + // 尝试获取done字段为false时的文本(流式响应但stream=false的情况) + JsonNode doneNode = rootNode.get("done"); + if (doneNode != null && !doneNode.asBoolean()) { + JsonNode textNode = rootNode.get("response"); + if (textNode != null) { + String content = textNode.asText(); + System.out.println("从流式响应获取回答内容,长度: " + (content != null ? content.length() : 0)); + if (content != null && !content.isEmpty()) { + return content; + } + } + } + + // 如果以上方式都失败,检查是否有其他有用信息 + JsonNode modelNode = rootNode.get("model"); + JsonNode createdAtNode = rootNode.get("created_at"); + if (modelNode != null && createdAtNode != null) { + String model = modelNode.asText(); + String createdAt = createdAtNode.asText(); + System.out.println("模型信息 - 模型: " + model + ", 创建时间: " + createdAt); + // 如果只有模型信息但没有内容,说明可能生成了空响应 + if (rootNode.size() <= 3) { // 只有model, created_at, done等基本信息 + if (attempt < maxRetries) { + // 等待一段时间再重试 + long waitTime = 3000 * attempt; // 3秒, 6秒, 9秒... + System.out.println("模型响应不完整,等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + continue; + } + return "AI模型未能生成相关回答,请尝试重新提问或联系管理员。"; + } + } + + // 如果两种方式都失败,记录完整的响应内容用于调试 + System.err.println("Ollama API返回的结果格式不正确,完整响应: " + rootNode.toString()); + return "抱歉,我无法回答这个问题。请稍后再试。"; + } else { + System.err.println("Ollama API调用失败,状态码: " + response.getStatusCode()); + if (attempt < maxRetries) { + // 等待一段时间再重试 + long waitTime = 3000 * attempt; + System.out.println("API调用失败,等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + continue; + } + return "抱歉,我无法回答这个问题。请稍后再试。"; + } + } catch (ResourceAccessException e) { + // 处理连接被拒绝的异常 + if (e.getCause() instanceof java.net.ConnectException) { + System.err.println("无法连接到Ollama服务: " + e.getMessage()); + return "系统遇到错误: 无法连接到Ollama服务,请确保Ollama正在运行并监听端口11434。请尝试重启Ollama服务或检查防火墙设置。"; + } + System.err.println("调用Ollama API时发生网络异常: " + e.getMessage()); + e.printStackTrace(); + if (attempt < maxRetries) { + try { + long waitTime = 5000 * attempt; + System.out.println("发生网络异常,等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + return "抱歉,我无法回答这个问题。系统遇到了一个意外错误,请稍后再试。"; + } + continue; + } + return "抱歉,我无法回答这个问题。系统遇到了网络连接错误,请稍后再试。"; + } catch (Exception e) { + System.err.println("调用Ollama API时发生异常: " + e.getMessage()); + e.printStackTrace(); + if (attempt < maxRetries) { + try { + long waitTime = 5000 * attempt; + System.out.println("发生异常,等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + return "抱歉,我无法回答这个问题。系统遇到了一个意外错误,请稍后再试。"; + } + continue; + } + return "抱歉,我无法回答这个问题。系统遇到了一个意外错误,请稍后再试。"; + } + } + + return "抱歉,系统尝试多次仍无法获取答案,请稍后再试。"; + } + + + + /** + * 自动生成知识条目 + * 调用大语言模型对输入内容进行分段和总结,生成临时知识条目 + * + * @param content 原始内容 + * @param source 知识来源 + * @return 分段后的内容列表 + */ + public List generateKnowledgeEntries(String content, String source) { + // 如果启用假数据模式,返回模拟分段 + if (mockEnabled) { + System.out.println("使用假数据模式,返回模拟分段"); + List mockSegments = new ArrayList<>(); + mockSegments.add("这是模拟的知识条目1。在真实环境中,这将是由AI模型生成的内容。"); + mockSegments.add("这是模拟的知识条目2。它代表了原始内容的另一个片段。"); + mockSegments.add("这是模拟的知识条目3。用于演示知识库的多条目结构。"); + return mockSegments; + } + + // 如果内容为空,直接返回默认分段 + if (content == null || content.trim().isEmpty()) { + List defaultSegments = new ArrayList<>(); + defaultSegments.add("待处理内容"); + return defaultSegments; + } + + // 限制内容长度,避免API调用失败 + String processedContent = content; + if (content == null || content.trim().isEmpty()) { + System.out.println("输入内容为空,使用默认内容"); + processedContent = "未提供有效内容"; + } else if (content.length() > 8000) { + System.out.println("输入内容长度超过8000字符,已自动截取前8000个字符"); + processedContent = content.substring(0, 8000); + } else { + System.out.println("使用完整内容,长度: " + content.length()); + } + + // 添加重试机制 + int maxRetries = 3; + for (int attempt = 1; attempt <= maxRetries; attempt++) { + try { + // 构造提示词,要求模型将内容分段并总结 + String prompt = "请将以下内容分段并总结,根据知识来源进行分段,内容不能太少,没有字数要求。" + + "请按照以下JSON格式返回结果,不要包含其他内容:\n" + + "[\n" + + " \"分段内容1\",\n" + + " \"分段内容2\",\n" + + " \"分段内容3\"\n" + + "]\n\n" + + "知识来源:" + source + "\n\n" + + "内容如下:\n" + processedContent; + + System.out.println("构造提示词完成,提示词长度: " + prompt.length()); + System.out.println("使用的模型: " + GENERATION_MODEL); + + // 构造请求体 + Map requestBody = new HashMap<>(); + requestBody.put("model", GENERATION_MODEL); + requestBody.put("prompt", prompt); + requestBody.put("stream", false); + requestBody.put("temperature", 0.7); + + // 设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + // 创建HTTP实体 + HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); + + // 发送POST请求到Ollama API + ResponseEntity response = restTemplate.postForEntity(OLLAMA_GENERATION_URL, requestEntity, String.class); + + // 解析响应 + if (response.getStatusCode().is2xxSuccessful() && response.getBody() != null) { + // 解析响应 + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode rootNode = objectMapper.readTree(response.getBody()); + + // 检查是否有错误信息 + JsonNode errorNode = rootNode.get("error"); + if (errorNode != null) { + String errorMessage = errorNode.asText(); + System.err.println("Ollama API返回错误: " + errorMessage); + // 特别处理模型未找到的情况 + if (errorMessage.contains("not found")) { + throw new RuntimeException("模型 '" + GENERATION_MODEL + "' 未找到,请联系管理员确认模型是否已正确安装"); + } + throw new RuntimeException("Ollama API错误: " + errorMessage); + } + + // 检查done_reason是否为load(模型正在加载) + JsonNode doneReasonNode = rootNode.get("done_reason"); + if (doneReasonNode != null) { + String doneReason = doneReasonNode.asText(); + // 正确处理"load"状态 - 忽略它并继续等待结果 + if ("load".equals(doneReason)) { + System.out.println("第 " + attempt + " 次尝试:模型正在加载中,请稍后再试"); + if (attempt < maxRetries) { + // 等待时间逐渐增加 + long waitTime = 5000 * attempt; + System.out.println("等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + continue; + } else { + throw new RuntimeException("AI模型正在加载中,请稍等2-3分钟后再试。如果问题持续存在,可能需要检查系统资源配置。"); + } + } + } + + // 尝试获取"response"字段 + String responseText = ""; + JsonNode responseNode = rootNode.get("response"); + if (responseNode != null) { + responseText = responseNode.asText(); + } else { + // 如果没有"response"字段,尝试使用整个响应体 + responseText = rootNode.toString(); + } + + // 打印AI生成的原始结果,便于查看格式是否正确 + System.out.println("=== AI生成的原始切片结果 ==="); + System.out.println(responseText); + System.out.println("=== 结束 ==="); + + // 检查返回结果是否为空 + if (responseText.isEmpty()) { + return createFallbackSegments(processedContent); + } + + // 尝试解析JSON格式的响应 + try { + List segments = objectMapper.readValue(responseText, new TypeReference>() { + }); + return segments; + } catch (Exception jsonException) { + // 如果JSON解析失败,尝试从文本中提取内容 + System.out.println("JSON解析失败,尝试从文本中提取内容"); + return extractSegmentsFromNonJsonText(responseText); + } + } else { + System.err.println("Ollama API调用失败,状态码: " + response.getStatusCode()); + if (attempt < maxRetries) { + long waitTime = 3000 * attempt; + System.out.println("API调用失败,等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + continue; + } + return createFallbackSegments(processedContent); + } + } catch (Exception e) { + System.err.println("调用Ollama API时发生异常: " + e.getMessage()); + e.printStackTrace(); + if (attempt < maxRetries) { + try { + long waitTime = 5000 * attempt; + System.out.println("发生异常,等待 " + (waitTime/1000) + " 秒后重试..."); + Thread.sleep(waitTime); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + List errorSegments = new ArrayList<>(); + errorSegments.add("处理内容时发生错误: " + e.getMessage()); + return errorSegments; + } + continue; + } + List errorSegments = new ArrayList<>(); + errorSegments.add("处理内容时发生错误: " + e.getMessage()); + return errorSegments; + } + } + + List errorSegments = new ArrayList<>(); + errorSegments.add("处理内容时发生未知错误,请稍后再试"); + return errorSegments; + } + + /** + * 从文本中提取分段内容 + * 当JSON解析失败时使用此方法 + * + * @param text AI返回的文本 + * @return 分段内容列表 + */ + private List extractSegmentsFromNonJsonText(String text) { + List segments = new ArrayList<>(); + + if (text == null || text.trim().isEmpty()) { + segments.add("内容待处理"); + return segments; + } + + try { + // 移除可能的代码块标记 + String cleanText = text.replace("```json", "").replace("```", "").trim(); + + // 尝试直接解析JSON数组 + ObjectMapper objectMapper = new ObjectMapper(); + try { + List jsonSegments = objectMapper.readValue(cleanText, new TypeReference>() { + }); + if (!jsonSegments.isEmpty()) { + System.out.println("成功解析JSON数组,获得" + jsonSegments.size() + "个分段"); + return jsonSegments; + } + } catch (Exception e) { + System.out.println("直接JSON解析失败,继续尝试其他方法: " + e.getMessage()); + } + + // 尝试查找并解析包含在方括号中的JSON数组 + int startIndex = cleanText.indexOf('['); + int endIndex = cleanText.lastIndexOf(']'); + if (startIndex != -1 && endIndex != -1 && endIndex > startIndex) { + String jsonArrayStr = cleanText.substring(startIndex, endIndex + 1); + try { + List jsonSegments = objectMapper.readValue(jsonArrayStr, new TypeReference>() { + }); + if (!jsonSegments.isEmpty()) { + System.out.println("成功解析提取的JSON数组,获得" + jsonSegments.size() + "个分段"); + return jsonSegments; + } + } catch (Exception e) { + System.out.println("提取的JSON数组解析失败: " + e.getMessage()); + } + } + + // 按引号分割提取内容 + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("\"([^\"]+)\""); + java.util.regex.Matcher matcher = pattern.matcher(cleanText); + + while (matcher.find()) { + String segment = matcher.group(1).trim(); + if (!segment.isEmpty() && segment.length() > 10) { + segments.add(segment); + } + } + + // 如果没有通过引号提取到内容,尝试按行分割 + if (segments.isEmpty()) { + String[] lines = cleanText.split("\n"); + for (String line : lines) { + String cleanLine = line.trim().replaceAll("^[0-9]+\\.\\s*", "").replaceAll("\"", ""); + if (!cleanLine.isEmpty() && cleanLine.length() > 10) { + segments.add(cleanLine); + } + } + } + + } catch (Exception e) { + System.err.println("从非JSON文本中提取分段内容时发生异常: " + e.getMessage()); + e.printStackTrace(); + } + + // 如果仍然没有内容,添加原始文本作为单个分段 + if (segments.isEmpty()) { + String finalText = text.length() > 200 ? text.substring(0, 200) + "..." : text; + segments.add(finalText); + System.out.println("使用原始文本作为单个分段: " + finalText); + } + + System.out.println("从非JSON文本中提取到" + segments.size() + "个分段"); + return segments; + } + + /** + * 创建备用分段方案 + * 当AI分段失败时使用此方法 + * + * @param content 原始内容 + * @return 备用分段列表 + */ + private List createFallbackSegments(String content) { + System.out.println("使用备用分段方案"); + List segments = new ArrayList<>(); + + if (content == null || content.trim().isEmpty()) { + segments.add("待处理内容"); + return segments; + } + + String trimmedContent = content.trim(); + + // 简单按句号分割 + String[] sentences = trimmedContent.split("[。.!?!?]"); + for (String sentence : sentences) { + String cleanSentence = sentence.trim(); + if (!cleanSentence.isEmpty() && cleanSentence.length() > 10) { + segments.add(cleanSentence); + } + } + + // 如果没有按句号分割出内容,尝试按段落分割 + if (segments.isEmpty()) { + String[] paragraphs = trimmedContent.split("\n\n"); + for (String paragraph : paragraphs) { + String cleanParagraph = paragraph.trim(); + if (!cleanParagraph.isEmpty() && cleanParagraph.length() > 20) { + segments.add(cleanParagraph); + } + } + } + + // 如果仍然没有内容,创建一个默认分段 + if (segments.isEmpty()) { + // 创建一个包含前200个字符的分段 + String shortContent = trimmedContent.substring(0, Math.min(200, trimmedContent.length())); + segments.add(shortContent + (trimmedContent.length() > 200 ? "..." : "")); + } + + System.out.println("备用方案创建了" + segments.size() + "个分段"); + return segments; + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/EmbeddingService.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/EmbeddingService.java new file mode 100644 index 00000000..14ef4be5 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/EmbeddingService.java @@ -0,0 +1,113 @@ +// service/EmbeddingService.java +package com.alops.chat.service; + +import com.alops.chat.DTO.EmbeddingResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 向量嵌入服务类 + * 提供文本向量化功能 + */ +@Service +public class EmbeddingService { + + @Autowired + private AItokenService AItokenService; + + /** + * 获取文本的向量表示 + * @param text 输入文本 + * @return 浮点数组形式的向量 + */ + public float[] getEmbedding(String text) { + // 获取嵌入向量 + EmbeddingResponse response = AItokenService.getEmbedding(text); + + // 检查是否有错误信息 + if (response.getErrorMessage() != null && !response.getErrorMessage().isEmpty()) { + System.err.println("获取嵌入向量时出错: " + response.getErrorMessage()); + // 返回空数组而不是抛出异常 + return new float[0]; + } + + // 如果成功获取向量,则转换为浮点数组 + if (response.isSuccess()) { + float[] embedding = new float[response.getVector().size()]; + for (int i = 0; i < response.getVector().size(); i++) { + embedding[i] = response.getVector().get(i); + } + return embedding; + } + + // 如果获取失败,返回空数组 + return new float[0]; + } + + /** + * 将浮点数组转换为字节数组 + * @param floats 浮点数组 + * @return 字节数组 + */ + public static byte[] floatArrayToByteArray(float[] floats) { + java.nio.ByteBuffer buffer = java.nio.ByteBuffer.allocate(floats.length * 4); + for (float f : floats) { + buffer.putFloat(f); + } + return buffer.array(); + } + + /** + * 将字节数组转换为浮点数组 + * @param bytes 字节数组 + * @return 浮点数组 + */ + public static float[] byteArrayToFloatArray(byte[] bytes) { + if (bytes == null || bytes.length == 0) { + return new float[0]; + } + + java.nio.ByteBuffer buffer = java.nio.ByteBuffer.wrap(bytes); + float[] floats = new float[bytes.length / 4]; + for (int i = 0; i < floats.length; i++) { + floats[i] = buffer.getFloat(); + } + return floats; + } + + /** + * 计算两个向量之间的欧几里得距离 + * @param a 向量A + * @param b 向量B + * @return 欧几里得距离 + */ + public static double calculateEuclideanDistance(float[] a, float[] b) { + if (a.length != b.length) { + // 当向量维度不匹配时,返回一个较大的距离值而不是抛出异常 + // 这样可以确保程序继续运行,同时将不匹配的向量排在后面 + return Double.MAX_VALUE; + } + + double sum = 0; + for (int i = 0; i < a.length; i++) { + double diff = a[i] - b[i]; + sum += diff * diff; + } + return Math.sqrt(sum); + } + + /** + * 检查Ollama服务是否可用 + * @return 服务是否可用 + */ + public boolean isOllamaServiceAvailable() { + try { + // 尝试获取一个简单的嵌入向量来检查服务是否可用 + float[] testEmbedding = getEmbedding("test"); + return testEmbedding.length > 0; + } catch (Exception e) { + System.err.println("检查Ollama服务可用性时出错: " + e.getMessage()); + return false; + } + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/KnowledgeService.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/KnowledgeService.java new file mode 100644 index 00000000..3d0c743a --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/KnowledgeService.java @@ -0,0 +1,469 @@ +// service/KnowledgeService.java +package com.alops.chat.service; + + +import com.alops.chat.entity.KnowledgeEntity; +import com.alops.chat.repository.KnowledgeRepository; +import com.alops.chat.DTO.AnswerResponse; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * 知识服务类 + * 提供知识库管理功能,包括添加、删除、更新知识条目,以及查找相似知识等功能 + */ +@Service +public class KnowledgeService { + + @Autowired + private KnowledgeRepository knowledgeRepository; + + @Autowired + private EmbeddingService embeddingService; + + @Autowired + private AItokenService AItokenService; + + @Autowired + private TextSplitter textSplitter; + + // 是否使用假数据 + @Value("${mock.knowledge.enabled:false}") + private boolean mockKnowledgeEnabled; + + @PersistenceContext + private EntityManager entityManager; + + /** + * 添加知识到知识库 + * 直接分割内容并生成正式条目 + * @param content 知识内容 + * @param source 知识来源 + * @return 知识条目ID列表 + */ + @Transactional + public List addKnowledge(String content, String source) { + return addKnowledgeWithFileId(content, source, null); + } + + /** + * 添加知识到知识库,包含文件ID + * 直接分割内容并生成正式条目 + * @param content 知识内容 + * @param source 知识来源 + * @param fileId 文件ID + * @return 知识条目ID列表 + */ + @Transactional + public List addKnowledgeWithFileId(String content, String source, Long fileId) { + System.out.println("开始添加知识: " + content); + List knowledgeIds = new ArrayList<>(); + + // 如果使用假数据模式,添加模拟数据 + if (mockKnowledgeEnabled && (content == null || content.trim().isEmpty())) { + System.out.println("使用假数据模式,添加模拟知识条目"); + for (int i = 0; i < 3; i++) { + String mockContent = "模拟知识条目 " + (i + 1) + "。这是用于测试的假数据内容。"; + String mockSource = "模拟来源"; + Long id = addKnowledgeSegment(mockContent, mockSource, fileId != null ? fileId.intValue() : 0); + if (id != null) { + knowledgeIds.add(id); + } + } + return knowledgeIds; + } + + // 直接分割内容并生成正式条目 + if (content.length() > 200) { + System.out.println("内容长度超过200字符,自动切分并生成正式条目"); + List segments = textSplitter.splitText(content); + for (int i = 0; i < segments.size(); i++) { + String segment = segments.get(i); + String segmentSource = source + " (part " + (i + 1) + "/" + segments.size() + ")"; + Long id = addKnowledgeSegment(segment, segmentSource, fileId != null ? fileId.intValue() : 0); + if (id != null) { + knowledgeIds.add(id); + } + } + } else { + // 直接添加知识 + Long id = addKnowledgeSegment(content, source, fileId != null ? fileId.intValue() : 0); + if (id != null) { + knowledgeIds.add(id); + } + } + + return knowledgeIds; + } + + /** + * 添加知识片段到知识库 + * @param content 知识内容 + * @param source 知识来源 + * @return 知识条目ID + */ + @Transactional + public Long addKnowledgeSegment(String content, String source,int keyfileid) { + System.out.println("开始添加知识片段: " + content); + // 获取文本的向量表示 + float[] embedding = embeddingService.getEmbedding(content); + + System.out.println("接收到长度为 " + embedding.length + " 的向量"); + + if (embedding.length > 0) { + // 将浮点数向量转换为字节数组以便存储 + byte[] embeddingBytes = EmbeddingService.floatArrayToByteArray(embedding); + System.out.println("转换为长度为 " + embeddingBytes.length + " 的字节数组"); + + // 创建知识条目对象 + KnowledgeEntity entity = new KnowledgeEntity(content, embeddingBytes, source,keyfileid); + System.out.println("创建KnowledgeEntry对象"); + + // 保存到数据库 + KnowledgeEntity savedEntity = knowledgeRepository.save(entity); + System.out.println("保存KnowledgeEntry,ID: " + savedEntity.getId()); + + return savedEntity.getId(); + } else { + System.out.println("接收到空向量,跳过保存"); + return null; + } + } + + /** + * 根据文件ID删除知识条目 + * @param fileId 文件ID + * @return 删除的条目数量 + */ + @Transactional + public int deleteKnowledgeByFileId(Long fileId) { + return knowledgeRepository.deleteByKeyfileid(fileId.intValue()); + } + + /** + * 自动生成知识条目 + * 调用大语言模型对输入内容进行分段和总结,生成临时知识条目 + * + * @param content 原始内容 + * @param source 知识来源 + * @return 分段后的内容列表 + */ + public List generateKnowledgeEntries(String content, String source) { + return AItokenService.generateKnowledgeEntries(content, source); + } + + /** + * 获取所有正式条目 + * @return 正式条目列表 + */ + public List getPermanentEntries() { + // 如果使用假数据模式,返回模拟数据 + if (mockKnowledgeEnabled) { + System.out.println("使用假数据模式,返回模拟知识条目"); + List mockEntries = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + KnowledgeEntity mockEntry = new KnowledgeEntity(); + mockEntry.setId((long) (i + 1)); + mockEntry.setContent("模拟知识条目 " + (i + 1) + "。这是用于测试的假数据内容。"); + mockEntry.setSource("模拟来源"); + mockEntry.setCreatetime(LocalDateTime.now()); + mockEntry.setUpdatetime(LocalDateTime.now()); + mockEntries.add(mockEntry); + } + return mockEntries; + } + + return knowledgeRepository.findAll(); + } + + + + /** + * 删除指定ID的知识条目 + * @param id 知识条目ID + * @return 删除是否成功 + */ + @Transactional + public boolean deleteKnowledge(Long id) { + if (knowledgeRepository.existsById(id)) { + knowledgeRepository.deleteById(id); + return true; + } + return false; + } + + /** + * 提取问题中的关键词 + * @param question 用户问题 + * @return 关键词列表 + */ + private List extractKeywords(String question) { + List keywords = new ArrayList<>(); + + if (question == null || question.trim().isEmpty()) { + return keywords; + } + + // 移除常见的疑问词和停用词 + String cleanedQuestion = question.replaceAll( + "(什么|如何|为什么|怎么|哪里|哪个|谁|何时|是否|怎么办|吗|呢|吧|啊|的|了|在|是|有|和|与|及|以及|或者|或)$", + "").trim(); + + // 按空格和常见标点符号分割 + String[] words = cleanedQuestion.split("[\\s\\p{Punct}]+"); + + // 过滤掉太短的词(少于2个字符) + for (String word : words) { + if (word.length() >= 2) { + keywords.add(word); + } + } + + return keywords; + } + + /** + * 基于关键词和向量的混合检索 + * @param question 用户问题 + * @param limit 返回结果数量上限 + * @return 相似知识条目列表 + */ + public List findSimilarKnowledgeWithKeywordFilter(String question, int limit) { + // 如果使用假数据模式,返回模拟数据 + if (mockKnowledgeEnabled) { + System.out.println("使用假数据模式,返回模拟相似知识条目"); + List mockEntries = new ArrayList<>(); + for (int i = 0; i < Math.min(3, limit); i++) { + KnowledgeEntity mockEntry = new KnowledgeEntity(); + mockEntry.setId((long) (i + 1)); + mockEntry.setContent("这是与问题 \"" + question + "\" 相关的模拟知识条目 " + (i + 1) + "。在真实环境中,这将是通过向量相似度检索得到的结果。"); + mockEntry.setSource("模拟来源 " + (i + 1)); + mockEntry.setCreatetime(LocalDateTime.now()); + mockEntry.setUpdatetime(LocalDateTime.now()); + mockEntries.add(mockEntry); + } + return mockEntries; + } + + // 1. 提取关键词 + List keywords = extractKeywords(question); + System.out.println("提取到关键词: " + keywords); + + // 2. 如果有关键词,先进行关键词搜索 + List keywordFilteredEntries = new ArrayList<>(); + if (!keywords.isEmpty()) { + // 使用前3个关键词进行搜索 + String keyword1 = keywords.size() > 0 ? keywords.get(0) : ""; + String keyword2 = keywords.size() > 1 ? keywords.get(1) : ""; + String keyword3 = keywords.size() > 2 ? keywords.get(2) : ""; + + keywordFilteredEntries = knowledgeRepository.findByMultipleKeywords(keyword1, keyword2, keyword3); + System.out.println("关键词搜索返回 " + keywordFilteredEntries.size() + " 条结果"); + } + + // 3. 如果关键词搜索没有结果,则使用所有知识条目 + List candidateEntries = keywordFilteredEntries.isEmpty() ? + knowledgeRepository.findAll() : keywordFilteredEntries; + + // 4. 在候选条目中进行向量相似度检索 + return findSimilarKnowledgeFromCandidates(question, candidateEntries, limit); + } + + /** + * 从候选条目中查找与问题最相似的知识条目 + * @param question 用户问题 + * @param candidates 候选知识条目 + * @param limit 返回结果数量上限 + * @return 相似知识条目列表 + */ + private List findSimilarKnowledgeFromCandidates(String question, List candidates, int limit) { + // 获取问题的向量表示 + float[] questionEmbedding = embeddingService.getEmbedding(question); + + // 如果无法生成向量,则返回空列表 + if (questionEmbedding.length == 0) { + return new ArrayList<>(); + } + + // 根据欧几里得距离对知识条目进行排序 + candidates.sort((a, b) -> { + // 将字节数组转换回浮点数组 + float[] embeddingA = EmbeddingService.byteArrayToFloatArray(a.getEmbedding()); + float[] embeddingB = EmbeddingService.byteArrayToFloatArray(b.getEmbedding()); + + // 检查向量是否有效 + if (embeddingA.length == 0 || embeddingB.length == 0) { + // 如果任一向量无效,则将该条目排在后面 + if (embeddingA.length == 0 && embeddingB.length == 0) return 0; + if (embeddingA.length == 0) return 1; // a排在后面 + return -1; // b排在后面 + } + + // 检查向量维度是否匹配 + if (questionEmbedding.length != embeddingA.length || questionEmbedding.length != embeddingB.length) { + // 如果维度不匹配,则根据维度差异排序,将维度匹配的条目排在前面 + if (questionEmbedding.length != embeddingA.length && questionEmbedding.length != embeddingB.length) return 0; + if (questionEmbedding.length != embeddingA.length) return 1; // a排在后面 + if (questionEmbedding.length != embeddingB.length) return -1; // b排在后面 + return 0; + } + + // 计算与问题向量的欧几里得距离 + double distanceA = EmbeddingService.calculateEuclideanDistance(questionEmbedding, embeddingA); + double distanceB = EmbeddingService.calculateEuclideanDistance(questionEmbedding, embeddingB); + + // 按距离升序排序(距离越小越相似) + return Double.compare(distanceA, distanceB); + }); + + // 过滤掉没有有效向量或相似度不够高的条目 + // 设置一个合理的相似度阈值,欧几里得距离越小越相似 + final double SIMILARITY_THRESHOLD = 100.0; + + List validEntries = new ArrayList<>(); + for (KnowledgeEntity entry : candidates) { + float[] embedding = EmbeddingService.byteArrayToFloatArray(entry.getEmbedding()); + // 检查向量是否有效且维度匹配 + if (embedding.length == 0 || embedding.length != questionEmbedding.length) { + continue; + } + + // 计算与问题的欧几里得距离 + double distance = EmbeddingService.calculateEuclideanDistance(questionEmbedding, embedding); + // 只返回距离小于阈值的条目 + if (distance < SIMILARITY_THRESHOLD) { + validEntries.add(entry); + } + } + + // 返回最相似的前limit个条目 + List result = new ArrayList<>(); + int count = 0; + for (KnowledgeEntity entry : validEntries) { + if (count >= limit) { + break; + } + result.add(entry); + count++; + } + return result; + } + + /** + * 查找与问题最相似的知识条目 + * @param question 用户问题 + * @param limit 返回结果数量上限 + * @return 相似知识条目列表 + */ + public List findSimilarKnowledge(String question, int limit) { + // 使用关键词和向量混合检索 + return findSimilarKnowledgeWithKeywordFilter(question, limit); + } + + /** + * 生成上下文内容 + * @param knowledgeEntries 知识条目列表 + * @return 上下文字符串 + */ + public String generateContext(List knowledgeEntries) { + // 检查输入参数 + if (knowledgeEntries == null || knowledgeEntries.isEmpty()) { + System.out.println("知识条目列表为空,无法生成上下文"); + return ""; + } + + StringBuilder context = new StringBuilder(); + + for (int i = 0; i < knowledgeEntries.size(); i++) { + KnowledgeEntity entry = knowledgeEntries.get(i); + // 检查每个条目及其内容是否为空 + if (entry != null && entry.getContent() != null && !entry.getContent().trim().isEmpty()) { + context.append(entry.getContent()); + + if (i < knowledgeEntries.size() - 1) { + context.append("\n\n"); + } + } + } + + String result = context.toString().trim(); + System.out.println("生成上下文,长度: " + result.length()); + return result; + } + + /** + * 更新指定ID的知识条目 + * @param id 知识条目ID + * @param content 知识内容 + * @param source 知识来源 + * @return 更新是否成功 + */ + @Transactional + public boolean updateKnowledge(Long id, String content, String source) { + // 检查知识条目是否存在 + if (knowledgeRepository.existsById(id)) { + // 获取现有知识条目 + KnowledgeEntity existingEntry = knowledgeRepository.findById(id).orElse(null); + if (existingEntry != null) { + // 更新内容和来源 + existingEntry.setContent(content); + existingEntry.setSource(source); + + // 重新计算向量嵌入 + float[] embedding = embeddingService.getEmbedding(content); + if (embedding.length > 0) { + byte[] embeddingBytes = EmbeddingService.floatArrayToByteArray(embedding); + existingEntry.setEmbedding(embeddingBytes); + } + + // 保存更新后的条目 + knowledgeRepository.save(existingEntry); + return true; + } + } + return false; + } + + /** + * 处理用户提问 + * @param question 用户问题 + * @return 答案响应 + */ + public AnswerResponse processQuestion(String question) { + // 这里应该实现具体的问答逻辑 + // 由于这是示例,我们返回一个模拟的答案 + return new AnswerResponse("这是模拟的答案", new String[]{"来源1", "来源2"}); + } + + /** + * 处理文件上传 + * @param file 上传的文件 + * @return 处理结果 + */ + public String handleFileUpload(MultipartFile file) { + // 这里应该实现具体的文件处理逻辑 + return "文件上传成功"; + } + + +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/TextSplitter.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/TextSplitter.java new file mode 100644 index 00000000..46c92605 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/TextSplitter.java @@ -0,0 +1,298 @@ +package com.alops.chat.service; + +import java.util.*; +import java.util.stream.Collectors; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +@Service +public class TextSplitter { + + private static final int MIN_CHUNK_SIZE = 100; // 最小字数 + private static final int MAX_CHUNK_SIZE = 500; // 最大字数 + private static final double SIMILARITY_THRESHOLD = 0.6; // 相似度阈值 + // Ollama nomic-embed-text:v1.5模型的维度 + private static final int EMBEDDING_DIMENSION = 768; // nomic-embed-text:v1.5模型的维度 + + @Autowired + private RestTemplate restTemplate; + + private static final String OLLAMA_EMBEDDING_URL = "http://localhost:11434/api/embeddings"; + private static final String EMBEDDING_MODEL = "nomic-embed-text:v1.5"; + + private final ObjectMapper objectMapper; + + public TextSplitter() { + this.objectMapper = new ObjectMapper(); + } + + /** + * 主流程:输入文本,返回分割后的 chunks + */ + public List splitText(String text) { + // 1. 去除特殊字符 + String cleanedText = removeSpecialCharacters(text); + + // 2. 预切分 + List units = preSplit(cleanedText); + + // 3. 调用 embedding 模型(使用Ollama的nomic-embed-text:v1.5模型) + List embeddings = units.stream() + .map(this::getEmbeddingFromOllama) + .collect(Collectors.toList()); + + // 4. 检测候选边界 + List boundaries = detectBoundaries(embeddings, SIMILARITY_THRESHOLD); + + // 5. 精修边界(BayesSeg 简化) + boundaries = refineBoundaries(boundaries, units); + + // 6. 根据边界切分 + List chunks = cutByBoundaries(units, boundaries); + + // 7. 长度控制(合并/再切) + return adjustChunks(chunks); + } + + /** + * 去除特殊字符 + * @param text 原始文本 + * @return 清理后的文本 + */ + private String removeSpecialCharacters(String text) { + if (text == null || text.isEmpty()) { + return text; + } + + // 定义需要去除的特殊字符(包括但不限于"- ~ ^") + // 可以根据需要添加更多特殊字符到这个列表中 + String specialChars = "-~^`@#$&*()_=|\\{}'<>./"; + + // 创建正则表达式模式来匹配这些特殊字符 + String regex = "[" + java.util.regex.Pattern.quote(specialChars) + "]+"; + + // 将连续的特殊字符替换为单个空格,并去除首尾空格 + return text.replaceAll(regex, " ").trim(); + } + + /** + * 预切分:按段落、句子切 + */ + private List preSplit(String text) { + String[] paras = text.split("\\n\\s*\\n"); // 按空行切段 + List units = new ArrayList<>(); + for (String p : paras) { + if (p.length() > 1000) { + // 长段再按句子切 + units.addAll(Arrays.asList(p.split("(?<=[。!?])"))); + } else { + units.add(p.trim()); + } + } + return units.stream().filter(s -> !s.isEmpty()).collect(Collectors.toList()); + } + + /** + * 相似度检测(TopicSeg 思路) + */ + private List detectBoundaries(List embeddings, double threshold) { + List boundaries = new ArrayList<>(); + for (int i = 0; i < embeddings.size() - 1; i++) { + double sim = cosine(embeddings.get(i), embeddings.get(i + 1)); + if (sim < threshold) { + boundaries.add(i + 1); + } + } + return boundaries; + } + + /** + * 精修候选边界(简化版 BayesSeg) + */ + private List refineBoundaries(List boundaries, List units) { + List refined = new ArrayList<>(); + for (int b : boundaries) { + if (b <= 0 || b >= units.size()) continue; + String left = units.get(b - 1); + String right = units.get(b); + if (keepBoundary(left, right)) { + refined.add(b); + } + } + return refined; + } + + /** + * 关键词差异判断是否保留边界 + */ + private boolean keepBoundary(String left, String right) { + Set leftWords = new HashSet<>(Arrays.asList(left.split("\\s+"))); + Set rightWords = new HashSet<>(Arrays.asList(right.split("\\s+"))); + long common = leftWords.stream().filter(rightWords::contains).count(); + double ratio = (double) common / Math.max(1, leftWords.size()); + return ratio < 0.3; // 共同词过少 → 保留边界 + } + + /** + * 根据边界切分 + */ + private List cutByBoundaries(List units, List boundaries) { + List chunks = new ArrayList<>(); + StringBuilder buffer = new StringBuilder(); + int boundaryIdx = 0; + for (int i = 0; i < units.size(); i++) { + buffer.append(units.get(i)).append(" "); + if (boundaryIdx < boundaries.size() && i + 1 == boundaries.get(boundaryIdx)) { + chunks.add(buffer.toString().trim()); + buffer.setLength(0); + boundaryIdx++; + } + } + if (buffer.length() > 0) chunks.add(buffer.toString().trim()); + return chunks; + } + + /** + * 长度控制 + */ + private List adjustChunks(List chunks) { + List result = new ArrayList<>(); + StringBuilder buffer = new StringBuilder(); + + for (String chunk : chunks) { + if (chunk.length() < MIN_CHUNK_SIZE && !result.isEmpty()) { + // 太短 → 合并到前一个 + int lastIdx = result.size() - 1; + result.set(lastIdx, result.get(lastIdx) + " " + chunk); + } else if (chunk.length() > MAX_CHUNK_SIZE) { + // 太长 → 按句子边界再切分 + List subChunks = splitLongChunk(chunk); + result.addAll(subChunks); + } else { + result.add(chunk); + } + } + + return result; + } + + /** + * 分割长文本块,尽量在句子边界处分割 + * @param chunk 需要分割的长文本 + * @return 分割后的文本块列表 + */ + private List splitLongChunk(String chunk) { + List subChunks = new ArrayList<>(); + + // 定义句子结束标点符号 + String sentenceEndings = "。!?.!?"; + + // 如果文本长度不超过最大块大小,直接返回 + if (chunk.length() <= MAX_CHUNK_SIZE) { + subChunks.add(chunk); + return subChunks; + } + + int start = 0; + while (start < chunk.length()) { + // 计算当前分割点 + int end = Math.min(start + MAX_CHUNK_SIZE, chunk.length()); + + // 如果已经到达文本末尾,直接添加剩余部分 + if (end >= chunk.length()) { + subChunks.add(chunk.substring(start)); + break; + } + + // 寻找最近的句子结束位置 + int bestSplitPoint = end; + for (int i = end - 1; i > start; i--) { + if (sentenceEndings.indexOf(chunk.charAt(i)) != -1) { + bestSplitPoint = i + 1; // 包含句子结束符号 + break; + } + } + + // 如果找到的分割点太靠前(小于最小块大小),则使用固定长度分割 + if (bestSplitPoint - start < MIN_CHUNK_SIZE) { + bestSplitPoint = end; + } + + // 添加分割的文本块 + subChunks.add(chunk.substring(start, bestSplitPoint).trim()); + start = bestSplitPoint; + + // 跳过前面的空白字符 + while (start < chunk.length() && Character.isWhitespace(chunk.charAt(start))) { + start++; + } + } + + return subChunks; + } + + /** + * 从Ollama获取嵌入向量 + * 使用nomic-embed-text:v1.5模型 + */ + private float[] getEmbeddingFromOllama(String text) { + try { + // 构造请求体 + Map requestBody = new HashMap<>(); + requestBody.put("model", EMBEDDING_MODEL); + requestBody.put("prompt", text); + + // 设置请求头 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + // 创建HTTP实体 + HttpEntity> requestEntity = new HttpEntity<>(requestBody, headers); + + // 发送POST请求到Ollama API + ResponseEntity response = restTemplate.postForEntity(OLLAMA_EMBEDDING_URL, requestEntity, String.class); + + if (response.getStatusCode().is2xxSuccessful() && response.getBody() != null) { + // 解析响应 + JsonNode rootNode = objectMapper.readTree(response.getBody()); + JsonNode embeddingNode = rootNode.get("embedding"); + + if (embeddingNode != null && embeddingNode.isArray()) { + float[] embeddingArray = new float[embeddingNode.size()]; + for (int i = 0; i < embeddingNode.size(); i++) { + embeddingArray[i] = embeddingNode.get(i).floatValue(); + } + return embeddingArray; + } + } + + // 如果无法获取嵌入向量,返回零向量 + return new float[EMBEDDING_DIMENSION]; // nomic-embed-text:v1.5默认维度为768 + } catch (Exception e) { + System.err.println("调用Ollama API获取嵌入向量时出错: " + e.getMessage()); + // 出错时返回零向量 + return new float[EMBEDDING_DIMENSION]; // nomic-embed-text:v1.5默认维度为768 + } + } + + /** + * 计算余弦相似度 + */ + private double cosine(float[] v1, float[] v2) { + double dot = 0, normA = 0, normB = 0; + for (int i = 0; i < v1.length; i++) { + dot += v1[i] * v2[i]; + normA += v1[i] * v1[i]; + normB += v2[i] * v2[i]; + } + return dot / (Math.sqrt(normA) * Math.sqrt(normB) + 1e-10); + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/UploadedFileService.java b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/UploadedFileService.java new file mode 100644 index 00000000..96e06089 --- /dev/null +++ b/ALOps_sys_backend/alops-chat/src/main/java/com/alops/chat/service/UploadedFileService.java @@ -0,0 +1,52 @@ +package com.alops.chat.service; + +import com.alops.chat.entity.UploadedFile; +import com.alops.chat.repository.UploadedFileRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; + +/** + * 上传文件信息服务类 + * 提供对上传文件信息的业务处理 + */ +@Service +public class UploadedFileService { + + @Autowired + private UploadedFileRepository uploadedFileRepository; + + /** + * 保存上传文件信息 + * @param uploadedFile 上传文件信息实体 + * @return 保存后的实体 + */ + public UploadedFile save(UploadedFile uploadedFile) { + return uploadedFileRepository.save(uploadedFile); + } + + /** + * 根据ID查找上传文件信息 + * @param id 文件ID + * @return 上传文件信息实体 + */ + public UploadedFile findById(Long id) { + return uploadedFileRepository.findById(id).orElse(null); + } + + /** + * 获取所有上传文件信息 + * @return 上传文件信息列表 + */ + public List findAll() { + return uploadedFileRepository.findAll(); + } + + /** + * 删除上传文件信息 + * @param id 文件ID + */ + public void deleteById(Long id) { + uploadedFileRepository.deleteById(id); + } +} \ No newline at end of file diff --git a/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/FileUploadUtils.java b/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/FileUploadUtils.java index 38831f4e..dabe4087 100644 --- a/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/FileUploadUtils.java +++ b/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/FileUploadUtils.java @@ -93,7 +93,7 @@ public class FileUploadUtils * @param baseDir 相对应用的基目录 * @param file 上传的文件 * @param allowedExtension 上传文件类型 - * @return 返回上传成功的文件名 + * @return 返回上传成功 * @throws FileSizeLimitExceededException 如果超出最大大小 * @throws FileNameLengthLimitExceededException 文件名太长 * @throws IOException 比如读写文件出错时 @@ -138,6 +138,36 @@ public class FileUploadUtils return getPathFileName(baseDir, fileName); } + /** + * 文件上传(保持原始文件名) + * + * @param baseDir 相对应用的基目录 + * @param file 上传的文件 + * @param allowedExtension 上传文件类型 + * @return 返回上传成功的文件名 + * @throws FileSizeLimitExceededException 如果超出最大大小 + * @throws FileNameLengthLimitExceededException 文件名太长 + * @throws IOException 比如读写文件出错时 + * @throws InvalidExtensionException 文件校验异常 + */ + public static final String uploadWithOriginalFilename(String baseDir, MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, + InvalidExtensionException + { + int fileNameLength = Objects.requireNonNull(file.getOriginalFilename()).length(); + if (fileNameLength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) + { + throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); + } + + assertAllowed(file, allowedExtension); + + String fileName = DateUtils.datePath() + "/" + file.getOriginalFilename(); + String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); + file.transferTo(Paths.get(absPath)); + return getPathFileName(baseDir, fileName); + } + /** * 编码文件名(日期格式目录 + 原文件名 + 序列值 + 后缀) */ diff --git a/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/MimeTypeUtils.java b/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/MimeTypeUtils.java index 420b33fc..fc29a794 100644 --- a/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/MimeTypeUtils.java +++ b/ALOps_sys_backend/alops-common/src/main/java/com/alops/common/utils/file/MimeTypeUtils.java @@ -26,6 +26,8 @@ public class MimeTypeUtils public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" }; + public static final String[] TEXT_EXTENSION = {"docx", "txt"}; + public static final String[] DEFAULT_ALLOWED_EXTENSION = { // 图片 "bmp", "gif", "jpg", "jpeg", "png", diff --git a/ALOps_sys_backend/alops-framework/src/main/java/com/alops/framework/config/ApplicationConfig.java b/ALOps_sys_backend/alops-framework/src/main/java/com/alops/framework/config/ApplicationConfig.java index 7e9053ea..7ccee12d 100644 --- a/ALOps_sys_backend/alops-framework/src/main/java/com/alops/framework/config/ApplicationConfig.java +++ b/ALOps_sys_backend/alops-framework/src/main/java/com/alops/framework/config/ApplicationConfig.java @@ -1,11 +1,13 @@ package com.alops.framework.config; import java.util.TimeZone; + import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.web.client.RestTemplate; /** * 程序注解配置 @@ -27,4 +29,13 @@ public class ApplicationConfig { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault()); } + + /** + * RestTemplate配置 + */ + @Bean + public RestTemplate restTemplate() + { + return new RestTemplate(); + } } diff --git a/ALOps_sys_backend/alops-system/pom.xml b/ALOps_sys_backend/alops-system/pom.xml index b939dd28..22020c68 100644 --- a/ALOps_sys_backend/alops-system/pom.xml +++ b/ALOps_sys_backend/alops-system/pom.xml @@ -58,6 +58,15 @@ 1.6.2 compile + + com.alops + alops-common + + + org.projectlombok + lombok + provided + diff --git a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/job/GatherJob.java b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/job/GatherJob.java index c9f27b42..2d516c6f 100644 --- a/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/job/GatherJob.java +++ b/ALOps_sys_backend/alops-system/src/main/java/com/alops/system/job/GatherJob.java @@ -11,7 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -; + import java.util.Date; @Component @@ -98,4 +98,4 @@ public class GatherJob implements Job { } } } -} +} \ No newline at end of file diff --git a/ALOps_sys_sql/aiops_sys.sql b/ALOps_sys_sql/aiops_sys.sql new file mode 100644 index 00000000..00e8b047 --- /dev/null +++ b/ALOps_sys_sql/aiops_sys.sql @@ -0,0 +1,2534 @@ +/* + Navicat Premium Data Transfer + + Source Server : aa + Source Server Type : MySQL + Source Server Version : 80036 (8.0.36) + Source Host : localhost:3306 + Source Schema : aiops_sys + + Target Server Type : MySQL + Target Server Version : 80036 (8.0.36) + File Encoding : 65001 + + Date: 24/09/2025 21:31:02 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for alert_message +-- ---------------------------- +DROP TABLE IF EXISTS `alert_message`; +CREATE TABLE `alert_message` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', + `equ_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备ID', + `equ_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备类型', + `solution` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '解决方案', + `level` tinyint NULL DEFAULT NULL COMMENT '探测级别(1-5级)', + `occur_time` datetime NULL DEFAULT NULL COMMENT '发生时间', + `handler` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '处理人姓名', + `handle_time` datetime NULL DEFAULT NULL COMMENT '解决问题', + `status` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '处理状态\r\nUNHANDLED → 未处理\r\nHANDLED->已经处理', + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预测类型', + `batch` int NOT NULL COMMENT '预警批次', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1192 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备探测记录表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of alert_message +-- ---------------------------- +INSERT INTO `alert_message` VALUES (467, '12', '交换机', NULL, 3, '2025-09-21 17:36:43', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (468, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (469, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (470, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (471, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (472, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (473, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (474, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (475, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (476, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (477, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (478, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (479, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (480, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (481, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (482, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (483, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (484, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (485, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (486, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (487, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (488, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (489, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (490, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (491, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (492, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (493, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (494, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (495, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (496, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (497, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (498, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (499, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (500, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (501, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (502, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (503, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (504, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (505, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (506, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (507, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (508, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (509, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (510, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (511, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (512, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (513, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (514, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (515, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (516, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (517, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (518, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (519, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (520, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (521, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (522, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (523, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (524, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (525, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (526, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (527, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (528, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (529, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (530, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (531, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (532, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (533, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (534, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (535, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (536, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (537, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (538, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (539, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (540, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (541, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (542, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (543, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (544, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (545, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (546, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (547, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (548, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (549, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (550, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (551, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (552, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (553, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (554, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (555, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (556, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (557, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (558, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (559, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (560, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (561, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (562, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (563, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (564, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (565, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (566, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (567, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (568, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (569, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (570, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (571, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (572, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (573, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (574, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (575, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (576, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (577, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (578, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (579, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (580, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (581, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (582, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (583, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (584, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (585, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (586, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (587, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (588, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (589, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (590, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (591, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (592, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (593, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (594, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (595, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (596, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (597, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (598, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (599, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (600, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (601, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (602, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (603, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (604, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (605, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (606, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (607, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (608, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (609, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (610, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (611, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (612, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (613, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (614, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (615, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (616, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (617, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (618, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (619, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (620, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (621, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (622, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (623, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (624, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (625, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (626, '11', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (627, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (628, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (629, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (630, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (631, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (632, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (633, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (634, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (635, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (636, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (637, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (638, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (639, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (640, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (641, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (642, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (643, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (644, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (645, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (646, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (647, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (648, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (649, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (650, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (651, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (652, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (653, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (654, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (655, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (656, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (657, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (658, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (659, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (660, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (661, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (662, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (663, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (664, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (665, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (666, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (667, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (668, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (669, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (670, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (671, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (672, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (673, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (674, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (675, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (676, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (677, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (678, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (679, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (680, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (681, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (682, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (683, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (684, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (685, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (686, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (687, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (688, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (689, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (690, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (691, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (692, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (693, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (694, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (695, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (696, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (697, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (698, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (699, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (700, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (701, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (702, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (703, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (704, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (705, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (706, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (707, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (708, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (709, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (710, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (711, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (712, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (713, '12', '交换机', NULL, 3, '2025-09-21 17:36:47', NULL, NULL, 'UNHANDLED', '2', 1); +INSERT INTO `alert_message` VALUES (714, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (715, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (716, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (717, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (718, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (719, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (720, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (721, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (722, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (723, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (724, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (725, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (726, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (727, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (728, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (729, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (730, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (731, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (732, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (733, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (734, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (735, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (736, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (737, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (738, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (739, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (740, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (741, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (742, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (743, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (744, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (745, '11', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (746, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (747, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (748, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (749, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (750, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (751, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (752, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (753, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (754, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (755, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (756, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (757, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (758, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (759, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (760, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (761, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (762, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (763, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (764, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (765, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (766, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (767, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (768, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (769, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (770, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (771, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (772, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (773, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (774, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (775, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (776, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (777, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (778, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (779, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (780, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (781, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (782, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (783, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (784, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (785, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (786, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (787, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (788, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (789, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (790, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (791, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (792, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (793, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (794, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (795, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (796, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (797, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (798, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (799, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (800, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (801, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (802, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (803, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (804, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (805, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (806, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (807, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (808, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (809, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (810, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (811, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (812, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (813, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (814, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (815, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (816, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (817, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (818, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (819, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (820, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (821, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (822, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (823, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (824, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (825, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (826, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (827, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (828, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (829, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (830, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (831, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (832, '12', '交换机', NULL, 3, '2025-09-21 17:48:35', NULL, NULL, 'UNHANDLED', '2', 2); +INSERT INTO `alert_message` VALUES (833, '12', '交换机', NULL, 3, '2025-09-21 17:54:47', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (834, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (835, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (836, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (837, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (838, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (839, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (840, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (841, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (842, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (843, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (844, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (845, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (846, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (847, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (848, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (849, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (850, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (851, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (852, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (853, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (854, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (855, '11', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (856, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (857, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (858, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (859, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (860, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (861, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (862, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (863, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (864, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (865, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (866, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (867, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (868, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (869, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (870, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (871, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (872, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (873, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (874, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (875, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (876, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (877, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (878, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (879, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (880, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (881, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (882, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (883, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (884, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (885, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (886, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (887, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (888, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (889, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (890, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (891, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (892, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (893, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (894, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (895, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (896, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (897, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (898, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (899, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (900, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (901, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (902, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (903, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (904, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (905, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (906, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (907, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (908, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (909, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (910, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (911, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (912, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (913, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (914, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (915, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (916, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (917, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (918, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (919, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (920, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (921, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (922, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (923, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (924, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (925, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (926, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (927, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (928, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (929, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (930, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (931, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (932, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (933, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (934, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (935, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (936, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (937, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (938, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (939, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (940, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (941, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (942, '12', '交换机', NULL, 3, '2025-09-21 17:54:49', NULL, NULL, 'UNHANDLED', '2', 3); +INSERT INTO `alert_message` VALUES (943, '12', '交换机', NULL, 3, '2025-09-21 18:13:00', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (944, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (945, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (946, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (947, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (948, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (949, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (950, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (951, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (952, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (953, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (954, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (955, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (956, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (957, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (958, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (959, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (960, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (961, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (962, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (963, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (964, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (965, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (966, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (967, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (968, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (969, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (970, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (971, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (972, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (973, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (974, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (975, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (976, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (977, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (978, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (979, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (980, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (981, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (982, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (983, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (984, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (985, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (986, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (987, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (988, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (989, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (990, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (991, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (992, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (993, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (994, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (995, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (996, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (997, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (998, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (999, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1000, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1001, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1002, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1003, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1004, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1005, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1006, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1007, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1008, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1009, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1010, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1011, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1012, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1013, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1014, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1015, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1016, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1017, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1018, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1019, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1020, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1021, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1022, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1023, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1024, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1025, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1026, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1027, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1028, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1029, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1030, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1031, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1032, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1033, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1034, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1035, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1036, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1037, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1038, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1039, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1040, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1041, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1042, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1043, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1044, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1045, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1046, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1047, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1048, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1049, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1050, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1051, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1052, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1053, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1054, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1055, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1056, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1057, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1058, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1059, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1060, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1061, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1062, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1063, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1064, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1065, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1066, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1067, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1068, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1069, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1070, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1071, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1072, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1073, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1074, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1075, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1076, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1077, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1078, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1079, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1080, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1081, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1082, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1083, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1084, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1085, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1086, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1087, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1088, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1089, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1090, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1091, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1092, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1093, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1094, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1095, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1096, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1097, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1098, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1099, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1100, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1101, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1102, '11', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1103, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1104, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1105, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1106, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1107, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1108, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1109, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1110, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1111, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1112, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1113, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1114, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1115, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1116, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1117, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1118, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1119, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1120, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1121, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1122, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1123, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1124, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1125, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1126, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1127, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1128, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1129, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1130, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1131, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1132, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1133, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1134, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1135, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1136, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1137, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1138, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1139, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1140, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1141, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1142, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1143, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1144, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1145, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1146, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1147, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1148, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1149, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1150, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1151, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1152, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1153, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1154, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1155, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1156, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1157, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1158, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1159, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1160, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1161, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1162, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1163, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1164, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1165, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1166, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1167, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1168, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1169, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1170, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1171, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1172, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1173, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1174, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1175, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1176, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1177, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1178, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1179, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1180, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1181, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1182, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1183, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1184, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1185, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1186, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1187, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1188, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1189, '12', '交换机', NULL, 3, '2025-09-21 18:13:01', NULL, NULL, 'UNHANDLED', '2', 4); +INSERT INTO `alert_message` VALUES (1190, '11', '交换机', NULL, 3, '2025-09-21 21:52:35', NULL, NULL, 'UNHANDLED', '1', 5); +INSERT INTO `alert_message` VALUES (1191, '12', '交换机', NULL, 3, '2025-09-21 21:52:35', NULL, NULL, 'UNHANDLED', '1', 5); + +-- ---------------------------- +-- Table structure for alert_rule +-- ---------------------------- +DROP TABLE IF EXISTS `alert_rule`; +CREATE TABLE `alert_rule` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `rule_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预警规则名称', + `severity` int NULL DEFAULT NULL COMMENT '预警级别', + `alert_way` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预警方式(email/message)', + `alert_station` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预警到站方', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预警规则内容描述', + `enable` int(10) UNSIGNED ZEROFILL NOT NULL COMMENT '启用状态(0为启用)', + `create_time` datetime NOT NULL COMMENT '创新时间', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `create_by` bigint NULL DEFAULT NULL COMMENT '创建人', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新人', + `table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '表格名称', + `alert_sql` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '预警sql语句查询', + `alert_template` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预警模版(参数用数据库命名法)', + `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预警类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 41 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of alert_rule +-- ---------------------------- +INSERT INTO `alert_rule` VALUES (9, 'cpu使用率>=80', 3, 'email', '2028008386@qq.com', 'cpu使用率<=80', 0000000001, '2025-09-05 18:10:23', '2025-09-05 16:56:12', 1, 1, 'equ_gather', 'SELECT\r\n g.*,\r\n t.name AS equ_type ,b.name AS equ_name \r\nFROM equ_gather g\r\nJOIN equ_base b\r\n ON g.equ_id = b.id\r\nJOIN equ_type t\r\n ON b.equ_type = t.id\r\nJOIN (\r\n SELECT\r\n equ_id,\r\n MAX(gather_time) AS latest_time\r\n FROM equ_gather\r\n GROUP BY equ_id\r\n) latest\r\n ON g.equ_id = latest.equ_id\r\n AND g.gather_time = latest.latest_time\r\nWHERE g.cpu_utilization >= 80', ' 设备 {equ_id} 的cpu使用率<=80', '1'); +INSERT INTO `alert_rule` VALUES (10, '内从使用率>=80', 3, 'email', '2028008386@qq.com', '内从使用<=80', 0000000000, '2025-09-05 18:10:24', '2025-09-05 16:57:31', 1, 1, 'equ_gather', 'SELECT\r\n g.*,\r\n t.name AS equ_type\r\nFROM equ_gather g\r\nJOIN equ_base b\r\n ON g.equ_id = b.id\r\nJOIN equ_type t\r\n ON b.equ_type = t.id\r\nJOIN (\r\n SELECT\r\n equ_id,\r\n MAX(gather_time) AS latest_time\r\n FROM equ_gather\r\n GROUP BY equ_id\r\n) latest\r\n ON g.equ_id = latest.equ_id\r\n AND g.gather_time = latest.latest_time\r\nWHERE g.memory_utilization >= 80;\r\n', '设备 {equ_id} 的内从使用率<=80', '1'); +INSERT INTO `alert_rule` VALUES (11, '风扇转速状态为0', 3, 'email', '2028008386@qq.com', '风扇转速状态为0', 0000000000, '2025-09-05 18:10:24', '2025-09-05 16:58:50', 1, 1, 'equ_gather', 'SELECT\r\n g.*,\r\n t.name AS equ_type\r\nFROM equ_gather g\r\nJOIN equ_base b\r\n ON g.equ_id = b.id\r\nJOIN equ_type t\r\n ON b.equ_type = t.id\r\nJOIN (\r\n SELECT\r\n equ_id,\r\n MAX(gather_time) AS latest_time\r\n FROM equ_gather\r\n GROUP BY equ_id\r\n) latest\r\n ON g.equ_id = latest.equ_id\r\n AND g.gather_time = latest.latest_time\r\nWHERE g.fan_speed_status = \'0\';\r\n', '设备 {equ_id} 的风扇转速状态为0', '1'); +INSERT INTO `alert_rule` VALUES (12, '健康度改变', 3, 'email', '2028008386@qq.com', '健康度改变', 0000000000, '2025-09-05 18:10:25', '2025-09-05 17:00:57', 1, 1, 'equ_gather', 'CHANGED', '设备 {equ_id} 的健康度改变', '1'); +INSERT INTO `alert_rule` VALUES (35, '温度<20或者>45', 3, 'email', '2028008386@qq.com', '温度<20或者>45', 0000000000, '2025-09-12 19:08:11', '2025-09-12 19:08:11', 1, 1, 'equ_gather', 'SELECT\r\n g.*,\r\n t.name AS equ_type\r\nFROM equ_gather g\r\nJOIN equ_base b\r\n ON g.equ_id = b.id\r\nJOIN equ_type t\r\n ON b.equ_type = t.id\r\nJOIN (\r\n SELECT\r\n equ_id,\r\n MAX(gather_time) AS latest_time\r\n FROM equ_gather\r\n GROUP BY equ_id\r\n) latest\r\n ON g.equ_id = latest.equ_id\r\n AND g.gather_time = latest.latest_time\r\nWHERE g.temperature < 20\r\n OR g.temperature > 45\r\n', '设备 {equ_id} 的温度<20或者>45', '2'); +INSERT INTO `alert_rule` VALUES (38, '设备接口状态为2', 3, 'email', '2028008386@qq.com', '设备接口状态为2', 0000000001, '2025-09-17 10:24:13', '2025-09-17 10:24:13', 1, 1, 'equ_interface', 'SELECT src.*, g.equ_id, t.name AS equ_type ,b.name AS equ_name FROM equ_interface src JOIN equ_gather g ON src.equ_gather_id = g.id JOIN equ_base b ON g.equ_id = b.id JOIN equ_type t ON b.equ_type = t.id WHERE running = \'2\'', '设备编号 {equ_id} 设备名称{equ_name}设备接口{interface_id}接状态为2', '2'); + +-- ---------------------------- +-- Table structure for alert_rule_condition +-- ---------------------------- +DROP TABLE IF EXISTS `alert_rule_condition`; +CREATE TABLE `alert_rule_condition` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `alert_rule_id` bigint NULL DEFAULT NULL COMMENT '预警规则id', + `param_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数名称', + `operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '比较符号', + `compare_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '比较值', + `logic_operator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '与下一个条件的逻辑符号', + `order_no` int NULL DEFAULT NULL COMMENT '条件顺序', + `value_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '比较值的类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 88 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of alert_rule_condition +-- ---------------------------- +INSERT INTO `alert_rule_condition` VALUES (7, 5, 'temperature', '<', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (8, 5, 'temperature', '>', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (9, 6, 'temperature', '<', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (10, 6, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (11, 7, 'temperature', '<', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (12, 7, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (13, 8, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (14, 8, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (15, 9, 'cpu_utilization', '>=', '80', '', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (16, 10, 'memory_utilization', '>=', '80', '', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (17, 11, 'fan_speed_status', '=', '0', '', 1, 'string'); +INSERT INTO `alert_rule_condition` VALUES (18, 12, 'health', 'CHANGED', '0', '', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (19, 13, 'temperature', 'between', '20,45', '', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (20, 14, 'running', '=', '2', '', 1, 'string'); +INSERT INTO `alert_rule_condition` VALUES (21, 15, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (22, 15, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (23, 16, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (24, 16, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (25, 17, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (26, 17, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (27, 18, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (28, 18, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (29, 19, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (30, 19, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (31, 20, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (32, 20, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (33, 21, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (34, 21, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (35, 22, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (36, 22, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (37, 23, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (38, 23, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (39, 24, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (40, 24, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (75, 34, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (76, 34, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (77, 35, 'temperature', '<', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (78, 35, 'temperature', '>', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (79, 36, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (80, 36, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (81, 37, 'temperature', '>', '20', 'or', 1, 'number'); +INSERT INTO `alert_rule_condition` VALUES (82, 37, 'temperature', '<', '45', '', 2, 'number'); +INSERT INTO `alert_rule_condition` VALUES (83, 38, 'running', '=', '2', '', 1, 'string'); + +-- ---------------------------- +-- Table structure for dict_alarm_param +-- ---------------------------- +DROP TABLE IF EXISTS `dict_alarm_param`; +CREATE TABLE `dict_alarm_param` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `param_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '参数名称', + `table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '表名', + `column_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数名', + `param_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 114 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of dict_alarm_param +-- ---------------------------- +INSERT INTO `dict_alarm_param` VALUES (67, 'CPU 使用率(%)', 'equ_gather', 'cpu_utilization', 'number'); +INSERT INTO `dict_alarm_param` VALUES (69, '风扇转速(rpm)', 'equ_gather', 'fan_speed', 'number'); +INSERT INTO `dict_alarm_param` VALUES (72, '综合计算的健康度指标(%)', 'equ_gather', 'health', 'number'); +INSERT INTO `dict_alarm_param` VALUES (77, '内存使用率(%)', 'equ_gather', 'memory_utilization', 'number'); +INSERT INTO `dict_alarm_param` VALUES (78, '设备温度', 'equ_gather', 'temperature', 'number'); +INSERT INTO `dict_alarm_param` VALUES (105, '单板运行状态', 'equ_veneer', 'veneer_status', 'string'); + +-- ---------------------------- +-- Table structure for equ_base +-- ---------------------------- +DROP TABLE IF EXISTS `equ_base`; +CREATE TABLE `equ_base` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备唯一标识(设备编号)', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备名称', + `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备版本', + `ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '带外管理 IP', + `manufacture` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备厂商 id', + `location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '安装位置 ', + `equ_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备类型 id', + `in_charge` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备管理员姓名', + `install_date` date NULL DEFAULT NULL COMMENT '安装日期', + `life_cycle` int NULL DEFAULT NULL COMMENT '预计年限(年)', + `warranty` int NULL DEFAULT NULL COMMENT '质保时间(年)', + `create_by` bigint NULL DEFAULT NULL COMMENT '设备添加人 id', + `create_date` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '添加日期', + `status` tinyint(3) UNSIGNED ZEROFILL NOT NULL DEFAULT 000 COMMENT '启用状态(0启用1禁用)', + `failure_frequency` int NULL DEFAULT NULL COMMENT '累计预警次数', + `device_level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备级别', + `supplier_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '供应商id', + `gather_frequency` int NULL DEFAULT NULL COMMENT '采集次数', + `equ_image` blob NULL COMMENT '设备图片', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备基本信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_base +-- ---------------------------- +INSERT INTO `equ_base` VALUES ('11', 'test1', '3', '192.168.3.1', '3', '华华', '1', '55', '2025-08-06', 5, 1, 1, '2025-09-21 22:15:12', 001, 694, '3', '1', 17, ''); +INSERT INTO `equ_base` VALUES ('12', 'test1', '3', '192.168.3.8', '3', '一层', '1', '55', '2025-08-06', 5, 1, 1, '2025-09-21 22:15:12', 001, 625, '3', '1', 17, ''); +INSERT INTO `equ_base` VALUES ('13', 'test1', '3', '192.168.3.9', '3', '华华', '1', '55', '2025-08-06', 5, 1, 1, '2025-09-21 15:56:51', 000, 0, '3', '1', 5, ''); +INSERT INTO `equ_base` VALUES ('14', 'test1', '3', '192.168.3.10', '3', '华华', '1', '55', '2025-08-06', 5, 1, 1, '2025-09-21 15:56:53', 000, 0, '3', '1', 0, ''); +INSERT INTO `equ_base` VALUES ('2222233444', '新的测试', '3', '196.3.3', '3', '5.5', '1', '小霍', '2025-09-19', 5, 3, 1, '2025-09-19 17:28:07', 000, 0, '5', '1', 0, NULL); +INSERT INTO `equ_base` VALUES ('2222233455', '新的测试', '3', '196.3.3', '3', '5.5', '1', '小霍', '2025-09-19', 5, 3, 1, '2025-09-19 17:29:46', 000, 0, '5', '1', 0, NULL); +INSERT INTO `equ_base` VALUES ('2332', '新设备测试', '3', '193.36.3.1', '3', '5.5', '1', '小子', '2025-08-06', 5, 6, 1, '2025-09-19 21:30:45', 000, 0, '3', '1', 0, 0xFFD8FFE000104A46494600010101009000900000FFFE0014536F6674776172653A20536E697061737465FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC00011080076008403012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F009FCBF2D8852BB4FDEE0D30CAD8DC79141018E417627A8CD0C761C01FF01AFACB1F2B27ADC940CC4E471C702B73E1F782F50F885E2BB7D2AC46D79CEE96661958631F79CFD3D3B92077AE796468DA363865CE081DABEB4FD957C1F1E8DE099B5C9141BAD525608E4722142540F6CB063EFF002FA5615EAFB1A6E4B73A28D255A76E87AB782BC1BA5780B41874AD2A01142832F21E5E67EEEE7B93FA741C56F6FA837FBD1BFDEBE6DB727767D0A4A2AC89F7D1BEA066C82338CD781C7A9FC4EF830DB6FE13E38F0CC7FF002DE224DC429EE796181EBB87B8AC6753D9D9B5A1E4661992CBB927529C9C1DEF28ABF2ED6BA5AD9EBAA4ED6D4FA0F7D1BEB91F007C49D1BE24E92F7DA44B21113049A19936BC4C46707B1FA824574FBFDEAD49495D1E850C452C5528D6A12528CB66B54C5BCB5B7D46D65B6BA863B8B7994A49148032BA9EA083D6BE38F8EFF09BFE15CEAD15D58877D0EF643E496E4C2FD4C64FEA0F719F426BD4755FDA9174CF1B5D787BFE11B32183506B1FB4FDBB1BB126CDDB7CBFC719FC6BD43E24784E2F1CF82F54D22450D24B1168188FB92AF287F3033EC4D6F84C5454FDD7A753C7A198607385523849F33A6ECF46ACF5D354AFB743E0D0ABB739C54982F1641E45426328086072A7A52A3855CF407B57D5238D369922C9B9005FBDD0D2B1DACA9D7BD323C062CA4018A230319DDBF27AFA52B0AE2C9E606E3A514B09F315897C6188A28B0AE511806452C707B0A6B2CB162551E4A9E3E6E7352A00666DC4955E98A62334A1B3C30FEF52093065C295CEEC8CE457DDDF08E38E0F863E17588610E9F0B71EA5413FA935F0925C0DAFD08F6AFB27F678F1245AEFC30D3A20E0CF605AD255EE3072BFF8EB2FE46BCEC726E9A7E67A78192E76BC8F52DF46FA837D1BEBC33DB26672013D6BC153C2BF12BE30317F11EA07C25E1F73FF0020FB50566917D18673C8FEF9FF0080D7BA6FA37D653A6AA5AEF43C7CC32C8665C91AD39282BDE29D94AF6F8ADAD976BADF530BC0BE00D17E1D696D63A35BB449210D2CB239779580C658FF004000F6AE937D79D7C53D43C7B66DA67FC213616F7A1849F6BF3CC636FDDD98DEEBFED74CF4AE1ADF5CF8E8678C4BA1D808B70DE43DBF033CFF00CB5A8751537C8A2F4ECB43CCA99A50CAE7F52A384ABCB0B25C94DB8EAAFA35A75D7CEE7677BFB3EF846FFC4736B72C3786FA6BA378C45C10BE616DC78C74CF6AF4BDF506FAA7AD6B10685A45EEA372C160B585E673ECA33FD2B68C2317EEADCF730D81C2E079E587A6A1CDABB2B5DF767C3BE318E2B4F176B96F181817F3A263B2891B1585B4C33145F98FA1A92FAE5AFEF2E6F26C99E67694B0FEF1393FCEAB0790F28ADE61FBCF9AFB14AC923C094AEEE5A631F2CAF10207CC141CE6A0567911B0EC14F4C818A589363063F3AB70C6868810CE8F848CE76D5D83A128D90E54F273D68A89AE56338962DCDD738ED451624A62559103F4C7DECF14C4322C6A38F31CF4EBC5491B46AAE3EF83D41FE1A91A4DACD82011F74819ACD6FA8E4AEB4238D30C7206D033F5AF62F801A9F88FC1FAF2CFFF0008FEB175E1ED502A4B35BD8CB246BCFCB20214838C9CE3B13E82BC7E43BB00364E3935FA21F04EDE1B8F85DE1B32431BB2E9F6CB96507FE58475C78B9A842CD5D33BB0949CE774ED61327D0D1BEBCAFE367C5FF1AFC28D625822B3F066A29319AE2D2C21B7B996F52D103319A600AAA80AA72738E0E38071E87A46BA7C49E1CF0C6B0F0416D36A9A35ADFCB15BAED457910310075C73C649AE1AF97D5C3D0862256E596D667561B33A389C44F0D04D4A1BDD1A3BBEB46EFAD41BBE946EFA57967AE4FBBEB46EFAD41BBE955F51D52D348B492EAF6E61B4B68C65A599C228FC4D1B86C5FDDF5AF9EFF692F89B1CD6AFE14D3260EC087BF910E40C72B17D73827D3007AD47F13BF68DF3564D2FC25925815935471B703D22079CFF00B47F01D0D7CFBFBDBA9A6676562D9725812493EA7B9AF630B8569AA9517A23C6C5E29493A74DFAB1A8E5826E56000F989A0121D8A16119EC7BD2436A73BB183D6AD641DA65C73F776F35EBDCF1F948904861754041EC292362AE51A320AF073D08A9248B6C8E198AFCB9041A9046008B1924AE493F5ABE6B0AF26470CCAC877FCC73DE8AB10D94613A8E4E68A9E72ACCC632442472C44048C727834F18DCBE5BE427538E2B92D4237B86562DF38F9831278A7C7A95E956884F8C9DA405E31F9576FB0763CA8E295F53AC31B49F77041EEA6BEEBF066B9AFE85F0034EB9F0D68C75ED756D2DA1B6B4320450ED144BBDC923E55CE48CF38EDD47E76ACF3C70CD109019D882BD7D2BD77C39FB5278CBC2BA35A69566B6CD6D6912C41B12AB1000519DB2004E0019C76AE1AD869CDC5A8A7677B3D9FDC77E1F1B08A9C65271BAB5D6EBCF53EBFF00057C03B7B3F0CF88BFE12ABE935AF15F8A2CE5B5D63574203A24A855A28323088A0F1C7381C60051C37ED077775F09FC17E1DD23C3B7D35AC767696DA5C53C9B5A5F25124032718DC446B9200EF8C5782CDFB6178FF79119B46CFDD1BA7FFE3B5CA78F3E37F897E25594106B8D6EB1C120917C90E589008192ECDC0DCDC0F5ACDD0C5D6A9CD5E5757BDBA6D6565D2CB448DA38BC0E1E9F261D34D2B5FAEF7777D5B7AB7BB676BA47C7BF19692A10EA4B7F12F6BC855FFF001E1863F9D6F5B7ED33E2A962DC6C74A6E71910C9FF00C72BE7C1A95D884346EA1541EBDE9D0EA5710C41CC9E601C951C56B2C0425AF2A22398CD2F899EDF7DFB4578CEF8F96B2DA69E187DEB6B7048FF00BECB570BAFF88353F104C66D5350B9BF9064A99A42C17E83A0FC2B94B6D6E56DCB2C2517B36738A93FB510C441941918615706953C32A6F48A44BC67B4F8A4CB6B36D422306473F7BFD9A58E768A4507EE11F7BD6B1A4BFB86F2634436E181324A79CF34E8EE258D1C3B0719E08E95D7EC8E575937A1B22E0C71BB93C03C7BD3D2E00C038C3738C74AC76D50C96F3A2AE005C2B81C66A186FA70E8C64CAEDDBD3A9A3D90BEB163745DA3AAAEE5932D83B876A9E0732063B480A719CF1F8573D2DD48EC15C0181C91C63E94CB6BAB8B49FEEB3A637004D3F62E4C7F5BE546A5DF89EDB4DB878046F260E77515CA5DB5E5DDC3CA855558E76B0E94575AC3C6C70BC7CAFB126A7736FA369971757D304B7B581A69250780A324D74FA3784F4ED36EB424F11F89348B156D4607BABEBEF135858D9DF422774BFB7B70F2AB38B4548A36951BE79649C2655176E1788B4F49342BC79CBA41E49F31A240EE17B90A48C9F6C8FA8AA7E2AD5BC2A7C407C62B670687E0AD07E18E85796DA65F7872CBC4B34104F72B1C70C6978C88242D39779032972243839AF0330AF52D4E30935795BFF256D7E5B75F2B6BEFE5B85A737514A377656F9C92D3CF5DF65D56B75AF61F08FC4F1787A096DE5B4F106BDA98D06D74F79BC43A7451CB712D94D737FF006697CE48AE7EF5B002332614E572373561DBEB5A55BF84754F126A2DA9DC69326A5178534E9744816F8CBAA4B2091A5895268C4E2386170009363FDA6361BF031DEC7E0DF13F80758F88906AD67E75A7806DDBC5BE148346D0ACB4A8A6BB6B3BBB724DA41811EFDFE793B59996C5C82C071E237579AA4FFB32F833C39782CE5B0D37C6DA3DB5859C5BA28712D9DE33B48CA779791D8977CEEE80602A81E4C7155DFB48C65752706B7D14E518D97556B496D7FB5A1ED4F0B867284DC6CD2974566E3172D56CFECBED6BAD4F668BE1AFD8ED5A03E17F8CD26A4D76B325FAFC386F2120F2C2B40D1FDB327E750E1F39059C1DC0AECE33C59E24D17E1E4BE247D4B45F14EAF6BA75B249F659A08F40BC825018C8B32491DDF0418F6FDD230C4E7231D0EB8FE02D0AE7C4315E0F85B07F63DCCF6DA8A9BEF183186585D92453B54EEC32B0F9720E38C8C573BE26B19BC3F7FE2EF094FE0AF0DF8867B8D421D3E1B37D47546B5592511C71C106DBA86674666071265CB390081B547A586AF2A9552E66D4B5F5D968EFA7CADDFABBF9F5F0D4E11BCA0972BB3F2DDBBAB6FEBE9E9DA4F73E0AB4F8D127805344F16BA43E24B7F0E36A7FDB96817334AB1F9BB3FB3FB06CEDDDCE3191D6B8DD17C5FA378E3C47E1EB5D3ED6EBC25A2DEEA474FD4350F11EA904B04518652F309C5B4291048D26E1F707668D432FF175BA6FC45D3B5DFDA76F6683E1FF008766B33F126DAC9358177A9096574BD110B809F6DF2CB82BB8623D878CA11C579EF87B54B3F19E802DE2F02E95A342753962820D1AE2FE67BB919F6246127BA9B2CCC5400A0124803D2B930788AD51506DB6E516FD5FBBAFA6AF4F3D8BC4E1A9528D64D25CAD2F4F8AEBF05AF96E8E9D3C29ABFF00C211E24D685EF879EE2F3C416FA668314BE34D194C56EA9712CFBA44BCF25E6D9259064DC5B9DCA8AAC69D3D9DE585BD9DC5D4561693DAA6CD4213E30D23518652B1C4A935BC315CB4EACEC25678C870A4E55829D8996FE2C58E4B4F845E0DF0E787F58D4B4091AFACF50BED0ECF595D5752612C9AA5A5BC93C32638F2521750378B00992648C51E3AD4DAE35BF0BF83EEB4AD0EC3C5DA589753F135C695A5DA590D3649447F67B066B38937BC31AB3CA086C3CC5413B31514F1151CFDD9DEED72F9AB2575DD3B36EF6D75DDC6FD1570D4941B7049A8BBF96ADA5E4D5D474F4D5291D8FC37BAF02F897C65A168DA96BFAA49797F2B2C9A7DAE971793908EFB44E2F55F185CE4463D31DEB89BDF15787B4EF86B6FE346F10EAD6BA0DF433DA68D26B3A1456B75AD6A380234B6845E4BE65BC4CDBE79C95550A2342F23E13D63C03F16F5AB4D12D7C531F8ABC47F12AFAD35E9347974CBFF001FA785F4E4B98608272F0B5D4DE65F45994001D62C80449060E2B9DF885E2DF1ED8782BC5FE38B8F1F78EF4BD6EC5AC67FB3A7C4DD3355B46135EC36EEA2CF4D86111284918860157701D7272EBE2EAF3C9464D6D7F2BEBA5FAD9EFD34DF6461B0545463CF14DDF4F3E9ADAFA5D6ABB5F6DCE6343F14E9163E1C6B8D5B42D7F52B860D3799A4EA70DB42100E06D7B498E7AF3BBB8E38E6FEB1E35F07691A8F82AD62F0DF8BEF24F137852CBC4C047E20B5FF0046FB41941878D38EEDBE5FDFE339FBA31CC4F134BE16BC99E6695E6B4694C8E396253249CE79AE6E58966F19FC1556E87E13E8DDFDEE6BD0AF527174AD26B9A493D7A72C9FE691E6E1A953942B39453E58DD69FDE8AFC9B3A9B5956FAEE53F66BAB5B52DBA28AEE4596609D833AA2063EE147D2AB69FAF695A7F88B4ED3B5DD3759D41756D72CB4CB59F4CBF8ACD2D639E58E1CB892DA6F318333370501185C02371D978847C47196DBFC64F4AC1F105B18759F02B6D196F186884B77FF8FE86BD48BD142FDBFABEE7931BB9DDA5F71078C3E237823C2BE39F15F8757C29E30BDFEC2D62F3493749E20B5513182668F7EDFECD3B776DCEDC9C67193D68AE3FC7D6866F8C9F159B701FF159EB039FFAFB928AF1B075EA55C353A939BBB49BD5F63D8C6E1E9D2C555A70A6ACA4D2D16D73D6AE2CE4BAB49A0F942C91B210DE8457057BF0EB58D6F45FEC0D475F693C3A90D8DB259430A464C566ACB6A8EEAA1A4118772A198F2DB8FCDCD7A4C6CBE6624EA7814B1C61A35C90814E181EA2B6A8A35125257B6BF35B31C24E9DF934B9C2C7E0AF145C5EE9B733F8E757B89B4ABF9355B1B892E18CE978F80D71249F7E59368540F216210040428C566F883C0FADDEE8B67A459AE9E2CE1D76D75EFDDC02202E2DD2448D1550AAAC7895B28AA3A28040183E9BB372950A540E87D69DB1964655E142839358AA54D2D176FC1A6BF14BEE468EB556F7FE9A6BF26FEF67237F2F8B75F8FC4F79A8699E055D4B54BA9AE99BFE10CD21F0D23B31C992D1CC98CFDE959D8F562C49260BD4F1BDFF0088BC41E2381B4DD23C4FAF3169757B08D964D3D5A230CBF6305D840CE876F98A3CC51908E819C376CCAB31031807A9F5A7AC5FBBE3AE7A54AC3D24B952D2D6F93B5D7CEDAF75A15EDEBB97337D6FF3389F0DF844F81349D0BFB0A380DEE8DA8DB6A76EB329313CD0C8B2207008254B2804020E33823AD47E19F07EABE1DD061874DD4069BAB21B865BD85419613346D1C86272098D8ABBAEE521806201E4D773A55A4779E2BF0DE932C8F1C1AB6B365A7492478DEB1CB32A395C820305270482338E0F4AA3A4FC43F853AB5A0B887C596ACBB8A9DBAE5FE323A8E7C380FE945474A2D292E8D7C9DAFF0027A1549559A938BD9A6DF9EB6FD4E49B42F108D3DB40D10597823C3CF6BF64B94D015A3B9BC439F304B74CCD70E92646E84CBE57C8B88C629BA6F86F5AD26564BD8ACFC4A8224821D4EFD4AEA30283FC5708CAF7002AA46AB706558D11563083AF57AAEBBA34FA978465F0D6A0752D335ED3AE6F04AB7125C20786EE6B760AF25A5ABE3F74321A1186DD82C30C745E312B20CB0CFF00769538D1AA9C92EAD3EF74DAFC35B76E8555955A4F91BE9F2D6DFD3EFD4E46CEC35FD13ED5A669B69E1B9F449B59935B65D6745B4D4245B892DE185827DA239046BB6053F228624B6588C00BE30B4F13789FC35A9F877EC7E16B3D2B5836D15E49A6E856963700437093AED9208A324168D410DB8609C00704755B58ED0AA0E5F93DFA539E37329C0FBBC156EC6B6951A736DC95EFFA597E491CCABD5A76E57B6DF9995A6DEF8834AD122D32CE1F0DBDB5BC6610F7FA058DD4ADD73BA496DDD9BAF7278E3A5578F50F1AFDAAD2E6FA5F096A42CAD52C6C966F07E920DADB26764119167958D7736107032702B751772A22801803BBD0F34F9502AAA96E09C64554A9C24EED18AA9552B45D9195135EDF5C5C5C5EC762934AA14A69D6715AC431E91C48883EA073DE99AEF87E0D5ED2DE1795ED1E1912E229E2244914A8DB91D48E432B00C08E41008AD648440A371C65BF4A90DA79C0B01B8F6CD6916A2AC884A52777B9C7691F0FED6386792E6E6E750BBB89E4B89EF2E5CC92CF2B9DCF23BB125999892589249249A2BB141244BB48518ED4528F2C5592D0B973C9B937A8D8ED15D98E78519CD3C46ACF2C98FDDBF38AB6A3CB05000D9E98A84A8C211C1C608ED5C7CCCEE5048436C86221589DFD0FA529B5C8619E5473EF52A2EDE011B7D314BBC82C5860630481557B94D4510FD9D50A0ED8A214DC0E7A548B1799EBB42E4127149911A01D09E841C8A6999E833417B45F885E159A6BEB1D36DB46D6F4ED4EF6F355BF82C208EDD672599649DD048C0231289B987CA4801865BE0CF19F890E863CDF15F8D599646C993E3B6837640EDFBCF2C71ED58FE22D0A4B9BBB7BC8349D3357B98E374893578FCEB689D86D129818F972B282C02CAAE9F364A160A56A45E12D46EAF6DB51D43567FED4B28E28F4F7B0CDB47A72C7CC496D1C455204463B9562550A4920035CD5232A938DB6FF003FF863AA94A3084BBBB7E17FF37FD6F6B5EBAB9F106A9E01D5DF5B8F589B4ED32FACB505D43C75A6F88B5386492FA778849240EAD2298DD0AEC8F11A954272A4D6DAC3E5153B86E5AE3DFC2DA8DDEAB67737D61A2CD736F3998EB165651D9DECFB87EF3ED0F105FB4B3B61CC9379926E04871BDF7F749E5BAB965C93DC53C3C254D493EADBFBDDFF0037FF000FBB8C4CE3524A4BB7E5A7E445244380CBC75C8A4602693729DBDC67BD588D5A2E5F90C30A299E414600E38AEAD4C791321DB890EE01580E00A7ED2E48750100C83EF52471066C9193D89A7152461B0429CD1CC4385B62B65481B93F1A99108195208F4A9047E62EECF1E94F11282085C2F7C54A95CB8C52DC8045BF9239A2ACC70865C9900A28E60B228467CA566392290A8DF194EFEB45152C68919DE1009C1FA5242E1D5DC64103A51454DC6372CF0B173B976F41C52C2C8842A2F1D83738A28AD65F090C91079BBB7751D31D288903B301C5145671043923F29417F981A47609F328F97D28A2ACB92D051290771E41E83D29E54B3727B514504262A49B158F5C523F11893FBF45152CDA21C646DE0014F8D9991DF3C2F6A28A224488A59155F8040233451455127FFFD9); + +-- ---------------------------- +-- Table structure for equ_gather +-- ---------------------------- +DROP TABLE IF EXISTS `equ_gather`; +CREATE TABLE `equ_gather` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `equ_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备 ID', + `health` decimal(10, 2) NULL DEFAULT NULL COMMENT '综合计算的健康度指标(%)', + `temperature` decimal(10, 2) NULL DEFAULT NULL COMMENT '设备温度', + `humidity` decimal(10, 2) NULL DEFAULT NULL COMMENT '设备湿度(%)', + `cpu_utilization` decimal(10, 2) NULL DEFAULT NULL COMMENT 'CPU 使用率(%)', + `memory_utilization` decimal(10, 2) NULL DEFAULT NULL COMMENT '内存使用率(%)', + `fan_speed` int NULL DEFAULT NULL COMMENT '风扇转速(rpm)', + `vol_in` decimal(10, 2) NULL DEFAULT NULL COMMENT '输入电压(V)', + `vol_out` decimal(10, 2) NULL DEFAULT NULL COMMENT '输出电压(V)', + `alarm_info` json NULL COMMENT '协议采集的结构化告警信息,6 级最高,1 级最低', + `log_online` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上下线日志事件', + `log_sys` json NULL COMMENT '包含事件类型、级别的结构化日志', + `gather_time` timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '采集时间', + `vol_in_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '输入电压状态(Normal/UnderVoltage)', + `vol_out_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '输出电压状态(Normal/UnderVoltage)', + `fan_speed_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '风扇转速状态(Normal/Abnormal)', + `cont_work_period` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备持续运行时长(如365天12小时)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_equ_gather_equ_id`(`equ_id` ASC) USING BTREE, + INDEX `idx_equ_gather_gather_time`(`gather_time` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备采集信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_gather +-- ---------------------------- +INSERT INTO `equ_gather` VALUES ('0855e0e1-bf6b-4eb6-9174-5ce4cef30ee7', '12', 3.00, 54.00, NULL, 5.00, 4.00, 30, 3371.00, 3371.00, NULL, NULL, NULL, '2025-09-21 18:10:31', '1', '1', '0', '342 days, 21:58:45.43'); +INSERT INTO `equ_gather` VALUES ('12b27a7d-6885-47e3-9fa0-2f855a0f5574', '12', 3.00, 54.00, NULL, 6.00, 4.00, 30, 3371.00, 3371.00, NULL, NULL, NULL, '2025-09-21 17:35:03', '1', '1', '0', '342 days, 21:22:53.12'); +INSERT INTO `equ_gather` VALUES ('3c847df8-272c-4168-8589-b4d1f1882241', '11', 1.00, 30.00, NULL, 4.00, 10.00, 30, 1009.00, 1009.00, NULL, NULL, NULL, '2025-09-21 18:12:59', '1', '1', '1', '57 days, 3:55:56.76'); +INSERT INTO `equ_gather` VALUES ('62acf49a-52c6-43b8-8347-0fd1c632e8e4', '11', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:05:35', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('68808bda-8f5f-4dee-95ad-7d2b299e2f21', '11', 1.00, 28.00, NULL, 4.00, 14.00, NULL, 4988.00, 3332.00, NULL, NULL, NULL, '2025-09-21 17:54:47', '1', NULL, '1', '57 days, 3:37:56.84'); +INSERT INTO `equ_gather` VALUES ('69b242ae-ceb2-45f4-975f-451fd262ca48', '12', 3.00, 54.00, NULL, 5.00, 4.00, 30, 3371.00, 1205.00, NULL, NULL, NULL, '2025-09-21 17:53:43', '1', '1', '0', '342 days, 21:40:45.52'); +INSERT INTO `equ_gather` VALUES ('848dcf16-b421-4009-9927-87d36a972829', '11', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:15:13', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('84ccfcc6-41dd-4f26-866d-edd804c3051b', '12', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:15:13', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('a91af2a5-aeb1-461a-b866-322db63744a6', '11', 1.00, 29.00, NULL, 12.00, 10.00, 30, 1009.00, 3332.00, NULL, NULL, NULL, '2025-09-21 17:48:34', '1', '1', '1', NULL); +INSERT INTO `equ_gather` VALUES ('b30de32c-43a9-488f-a75b-9f85c7c9e875', '12', 1.00, 38.00, NULL, 5.00, 4.00, 30, 3371.00, 3371.00, NULL, NULL, NULL, '2025-09-21 17:47:13', '1', '1', '0', NULL); +INSERT INTO `equ_gather` VALUES ('b965ad68-318d-472e-abac-eb403484a619', '11', 1.00, 31.00, NULL, 4.00, 10.00, 30, 1009.00, 1009.00, NULL, NULL, NULL, '2025-09-21 16:59:46', '1', '1', '1', '57 days, 2:43:33.09'); +INSERT INTO `equ_gather` VALUES ('c046541d-6902-467b-8558-c9962044921e', '12', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:10:35', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('c9cec6d1-3314-41e2-ac30-565ec2c6d42e', '12', 3.00, 54.00, NULL, 5.00, 4.00, 30, 3371.00, 3371.00, NULL, NULL, NULL, '2025-09-21 16:58:08', '1', '1', '0', '342 days, 20:46:21.80'); +INSERT INTO `equ_gather` VALUES ('d04e20d3-0dd4-4e9e-ac3b-b0fef9ee87d3', '11', 2.00, 31.00, NULL, 4.00, 88.00, 30, 1009.00, 1009.00, NULL, NULL, NULL, '2025-09-15 22:31:33', '1', '1', '1', '48 days, 5:31:38.91'); +INSERT INTO `equ_gather` VALUES ('d23141a2-b0b9-4634-8a76-5c9c87dd74a0', '12', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:05:35', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('d48d1751-977f-4e88-9022-9afb82bc4f2b', '11', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:13:37', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('d78ec621-6333-41f5-8aee-82b5049a9b0a', '11', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:10:35', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('de454da8-f104-4f76-b12d-d1dce144be21', '12', 3.00, 54.00, NULL, 88.00, 4.00, 30, 3371.00, 3371.00, NULL, NULL, NULL, '2025-09-21 15:43:07', '1', '1', '0', '333 days, 23:39:29.60'); +INSERT INTO `equ_gather` VALUES ('e49a3f06-56ab-470a-a911-2b56ae227989', '12', 4.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-21 22:13:37', NULL, NULL, '0', NULL); +INSERT INTO `equ_gather` VALUES ('fb8bb7a3-955c-41ec-89ab-e4b4a81141e1', '11', 1.00, 31.00, NULL, 4.00, 10.00, 30, 1009.00, 1009.00, NULL, NULL, NULL, '2025-09-21 17:36:43', '1', '1', '1', '57 days, 3:20:04.43'); + +-- ---------------------------- +-- Table structure for equ_interface +-- ---------------------------- +DROP TABLE IF EXISTS `equ_interface`; +CREATE TABLE `equ_interface` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主键', + `equ_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备 ID', + `gather_time` timestamp NULL DEFAULT NULL COMMENT '采集时间', + `running` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '端口运行与否(UP/DOWN(true/false))', + `rate` int NULL DEFAULT NULL COMMENT '传输速率(Mbps)', + `commuicate_mode` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '通信模式字典值(null/half/auto)', + `out_flow` bigint NULL DEFAULT NULL COMMENT '出方向流量(bps)', + `in_flow` bigint NULL DEFAULT NULL COMMENT '入方向流量(bps)', + `in_bandwidth` decimal(10, 2) NULL DEFAULT NULL COMMENT '入方向带宽占有率(%)', + `loss_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '丢包率(%)', + `error_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '错包率(%)', + `equ_gather_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '采集关联外键', + `interface_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '接口id', + `out_bandwidth` decimal(10, 2) NULL DEFAULT NULL COMMENT '出方向带宽占有率(%)' +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '端口运行状态表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_interface +-- ---------------------------- + +-- ---------------------------- +-- Table structure for equ_manu +-- ---------------------------- +DROP TABLE IF EXISTS `equ_manu`; +CREATE TABLE `equ_manu` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '厂商ID', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '厂商名称', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '厂商简介', + `contact_by` bigint NULL DEFAULT NULL COMMENT '联系人ID', + `contact_way` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系方式', + `create_by` bigint NULL DEFAULT NULL COMMENT '添加人ID', + `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '添加日期', + `status` tinyint NULL DEFAULT 1 COMMENT '状态(0-禁用,1-启用)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备厂商管理表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_manu +-- ---------------------------- +INSERT INTO `equ_manu` VALUES ('3', '华为公司', '华为公司', 5, '55588898863', 5, '2025-08-08 10:19:20', 1); +INSERT INTO `equ_manu` VALUES ('5C5frChBed', '华为', '华为', NULL, NULL, NULL, '2025-08-03 21:01:02', 1); + +-- ---------------------------- +-- Table structure for equ_oid +-- ---------------------------- +DROP TABLE IF EXISTS `equ_oid`; +CREATE TABLE `equ_oid` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `oid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实际的OID值', + `param` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'OID参数名称(唯一业务标识)', + `store_table` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '存储表名', + `convert_rule` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单个计算规则表达式', + `combine_group` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '合成组名,多个OID合成字段时相同', + `is_high_part` tinyint(1) NULL DEFAULT 0 COMMENT '是否是高位字段,合成64位时用,高为1', + `manufacturer_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '厂商ID', + `cut_rule` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '截取方式规则(1最后一个非 0 值2 方式 2:每行索引 + 最后词 方式 3:单值 4 路由专用)', + `multi_param` tinyint(1) NULL DEFAULT 0 COMMENT '是否一个OID对应多个参数', + `sub_param_group` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '子参数组合组标识', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述说明', + `unit` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单位', + `enabled` tinyint(1) NULL DEFAULT 1 COMMENT '是否启用及启用方式', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'OID配置信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_oid +-- ---------------------------- +INSERT INTO `equ_oid` VALUES (1, '1.3.6.1.2.1.1.1', 'version', 'equ_gather', NULL, NULL, 0, '3', '3', 0, NULL, 'version', NULL, 1, '2025-08-09 21:13:14', '2025-08-15 16:32:08'); +INSERT INTO `equ_oid` VALUES (2, '1.3.6.1.2.1.1.3', 'cont_work_period', 'equ_gather', NULL, NULL, 0, '3', '3', 0, NULL, 'cont_work_period', NULL, 2, '2025-08-09 19:23:12', '2025-08-16 08:30:56'); +INSERT INTO `equ_oid` VALUES (3, '1.3.6.1.4.1.2011.6.157.2.1.1.3', 'equ_veneer', 'equ_veneer', 'veneer_status', NULL, 0, '3', '2', 1, 'veneer_id,veneer_status', 'veneer', NULL, 2, '2025-08-09 19:23:28', '2025-09-21 15:19:33'); +INSERT INTO `equ_oid` VALUES (4, '1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11', 'temperature', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'temperature', '℃', 2, '2025-08-09 18:38:25', '2025-08-20 17:00:22'); +INSERT INTO `equ_oid` VALUES (5, NULL, 'humidity', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'humidity', NULL, 0, '2025-08-09 18:38:32', '2025-08-16 08:31:48'); +INSERT INTO `equ_oid` VALUES (6, '1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5', 'cpu_utilization', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'cpu_utilization', NULL, 2, '2025-08-09 19:23:52', '2025-08-16 08:31:08'); +INSERT INTO `equ_oid` VALUES (7, '1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7', 'memory_utilization', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'memory_utilization', NULL, 2, '2025-08-09 19:24:09', '2025-08-16 08:31:11'); +INSERT INTO `equ_oid` VALUES (8, '1.3.6.1.4.1.2011.5.25.31.1.1.10.1.5', 'fan_speed', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'fan_speed', 'rpm', 2, '2025-08-09 19:24:25', '2025-08-20 17:00:54'); +INSERT INTO `equ_oid` VALUES (9, '1.3.6.1.4.1.2011.5.25.31.1.1.10.1.7', 'fan_speed_status', 'equ_gather', '', NULL, 0, '3', '5', 0, NULL, 'fan_speed_status', NULL, 2, '2025-08-09 19:24:37', '2025-09-01 21:22:42'); +INSERT INTO `equ_oid` VALUES (10, '1.3.6.1.4.1.2011.5.25.31.1.1.1.1.13', 'vol_in', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'vol_in', 'mV', 2, '2025-08-09 19:24:39', '2025-09-02 17:12:58'); +INSERT INTO `equ_oid` VALUES (11, '1.3.6.1.4.1.2011.5.25.31.1.1.18.1.6', 'vol_in_status', 'equ_gather', '', NULL, 0, '3', '6', 0, NULL, 'vol_in_status', NULL, 2, '2025-08-09 19:24:56', '2025-09-01 21:22:45'); +INSERT INTO `equ_oid` VALUES (12, '1.3.6.1.4.1.2011.5.25.31.1.1.1.1.13', 'vol_out', 'equ_gather', NULL, NULL, 0, '3', '1', 0, NULL, 'vol_out', 'mV', 2, '2025-08-09 19:24:54', '2025-09-02 19:20:18'); +INSERT INTO `equ_oid` VALUES (13, '1.3.6.1.4.1.2011.5.25.31.1.1.18.1.6', 'vol_out_status', 'equ_gather', '', NULL, 0, '3', '6', 0, NULL, 'vol_out_status', NULL, 2, '2025-08-09 19:25:19', '2025-09-01 21:22:47'); +INSERT INTO `equ_oid` VALUES (14, '1.3.6.1.2.1.2.2.1.8', 'equ_interface', 'equ_interface', '', NULL, 0, '3', '2', 1, 'interface_id,running', 'running', NULL, 2, '2025-08-09 19:25:28', '2025-09-01 21:22:48'); +INSERT INTO `equ_oid` VALUES (15, '1.3.6.1.2.1.2.2.1', 'equ_interface', 'equ_interface', NULL, NULL, 0, '3', '2', 1, 'interface_id,rate', 'rate', NULL, 0, '2025-08-09 19:25:36', '2025-08-16 11:37:14'); +INSERT INTO `equ_oid` VALUES (16, '1.3.6.1.4.1.2011.5.25.157.1.1.1.1.14', 'equ_interface', 'equ_interface', '', NULL, 0, '3', '2', 1, 'interface_id,commuicate_mode', 'commuicate_mode', NULL, 2, '2025-08-09 19:25:56', '2025-09-01 21:23:26'); +INSERT INTO `equ_oid` VALUES (17, '1.3.6.1.4.1.2011.5.25.41.1.1.1.1.18', 'equ_interface', 'equ_interface', NULL, 'out_flow', 1, '3', '2', 1, 'interface_id,out_flow_h', 'out_flow_h', 'bps', 2, '2025-08-09 20:12:21', '2025-08-20 17:01:32'); +INSERT INTO `equ_oid` VALUES (18, '1.3.6.1.4.1.2011.5.25.41.1.1.1.1.16', 'equ_interface', 'equ_interface', NULL, 'in_flow', 1, '3', '2', 1, 'interface_id,in_flow_h', 'in_flow_h', 'bps', 2, '2025-08-09 20:12:09', '2025-08-20 17:01:34'); +INSERT INTO `equ_oid` VALUES (19, '1.3.6.1.4.1.2011.5.25.41.1.7.1.1.8', 'equ_interface', 'equ_interface', NULL, NULL, 0, '3', '2', 1, 'interface_id,in_bandwidth', 'in_bandwidth', NULL, 2, '2025-08-09 19:26:10', '2025-08-20 16:06:47'); +INSERT INTO `equ_oid` VALUES (20, NULL, 'equ_interface', 'equ_interface', NULL, NULL, 0, '3', '2', 1, 'interface_id,loss_rate', 'loss_rate', NULL, 0, '2025-08-09 18:50:36', '2025-08-16 00:51:03'); +INSERT INTO `equ_oid` VALUES (21, NULL, 'equ_interface', 'equ_interface', NULL, NULL, 0, '3', '2', 1, 'interface_id,error_rate', 'error_rate', NULL, 0, '2025-08-09 18:51:09', '2025-08-16 00:51:45'); +INSERT INTO `equ_oid` VALUES (22, '1.3.6.1.4.1.2011.5.25.42.3.1.1.1.1.2', 'equ_vlan', 'equ_vlan', NULL, NULL, 0, '3', '2', 1, 'vlan_id,main_id', 'main_id', NULL, 2, '2025-09-03 11:31:30', '2025-09-03 11:32:22'); +INSERT INTO `equ_oid` VALUES (23, '1.3.6.1.2.1.4.24.7.1.9 ', 'equ_routing', 'equ_routing', NULL, NULL, 0, '3', '4', 1, 'des_address,subnet_mask,next_hop', 'route', NULL, 2, '2025-09-03 11:35:43', '2025-09-03 11:35:45'); +INSERT INTO `equ_oid` VALUES (24, '1.3.6.1.4.1.2011.5.25.41.1.1.1.1.17', 'equ_interface', 'equ_interface', NULL, 'out_flow', 0, '3', '2', 1, 'interface_id,out_flow_l', 'out_flow_l', 'bps', 2, '2025-08-09 20:12:13', '2025-08-20 17:01:37'); +INSERT INTO `equ_oid` VALUES (25, '1.3.6.1.4.1.2011.5.25.41.1.1.1.1.15', 'equ_interface', 'equ_interface', NULL, 'in_flow', 0, '3', '2', 1, 'interface_id,in_flow_l', 'in_flow_l', 'bps', 2, '2025-08-09 20:11:54', '2025-08-20 17:01:46'); +INSERT INTO `equ_oid` VALUES (26, '1.3.6.1.4.1.2011.5.25.41.1.7.1.1.10', 'equ_interface', 'equ_interface', NULL, NULL, 0, '3', '2', 1, 'interface_id,out_bandwidth', 'out_bandwidth', NULL, 2, '2025-08-20 16:06:38', '2025-08-20 16:14:35'); + +-- ---------------------------- +-- Table structure for equ_routing +-- ---------------------------- +DROP TABLE IF EXISTS `equ_routing`; +CREATE TABLE `equ_routing` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键', + `equ_gather_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备采集id', + `des_address` varchar(49) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目的地址 (ipv4/ipv6网段)', + `subnet_mask` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '子网掩码', + `next_hop` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '下一跳地址 (ipv4/ipv6网段)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '路由信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_routing +-- ---------------------------- + +-- ---------------------------- +-- Table structure for equ_supplier +-- ---------------------------- +DROP TABLE IF EXISTS `equ_supplier`; +CREATE TABLE `equ_supplier` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '供应商id', + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '供应商名称', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '供应商简介', + `contact_by` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人姓名', + `contact_way` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'l联系方式', + `create_by` bigint NULL DEFAULT NULL COMMENT '添加人id', + `create_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '添加人日期', + `status` tinyint NULL DEFAULT NULL COMMENT '状态(0禁1启用)', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_supplier +-- ---------------------------- +INSERT INTO `equ_supplier` VALUES ('1', '供1', '供1', '小小', '123456789', 1, '2025-09-19 17:13:20', 1); + +-- ---------------------------- +-- Table structure for equ_type +-- ---------------------------- +DROP TABLE IF EXISTS `equ_type`; +CREATE TABLE `equ_type` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型ID', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备类型名称', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '设备类型简介', + `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '设备图片存储地址', + `create_by` bigint NULL DEFAULT NULL COMMENT '添加人ID', + `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '添加日期', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备类型管理表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_type +-- ---------------------------- +INSERT INTO `equ_type` VALUES ('1', '交换机', '交换机', '123', 1, '2025-09-17 09:44:53'); + +-- ---------------------------- +-- Table structure for equ_veneer +-- ---------------------------- +DROP TABLE IF EXISTS `equ_veneer`; +CREATE TABLE `equ_veneer` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键', + `veneer_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '设备的一个单板的运行id', + `veneer_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '单板运行状态校准值(Online/Offline/Fault)', + `equ_gather_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '采集id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_veneer +-- ---------------------------- + +-- ---------------------------- +-- Table structure for equ_vlan +-- ---------------------------- +DROP TABLE IF EXISTS `equ_vlan`; +CREATE TABLE `equ_vlan` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键', + `equ_gather_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '采集ID', + `main_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'vlan的ip地址', + `ip_address` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'IPv4地址', + `subnet_mask` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '掩码格式', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创新时间', + `update_by` bigint NULL DEFAULT NULL COMMENT '更新人', + `vlan_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of equ_vlan +-- ---------------------------- + +-- ---------------------------- +-- Table structure for gen_table +-- ---------------------------- +DROP TABLE IF EXISTS `gen_table`; +CREATE TABLE `gen_table` ( + `table_id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '表名称', + `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '表描述', + `sub_table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联子表的表名', + `sub_table_fk_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '子表关联的外键名', + `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '实体类名称', + `tpl_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)', + `tpl_web_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '前端模板类型(element-ui模版 element-plus模版)', + `package_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成包路径', + `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成模块名', + `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成业务名', + `function_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成功能名', + `function_author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成功能作者', + `gen_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)', + `gen_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '/' COMMENT '生成路径(不填默认项目路径)', + `options` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '其它生成选项', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`table_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成业务表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of gen_table +-- ---------------------------- +INSERT INTO `gen_table` VALUES (38, 'equ_base', '设备基本信息表', NULL, NULL, 'EquBase', 'crud', '', 'com.ruoyi.system', 'system', 'base', '设备基本信息', 'ruoyi', '0', '/', NULL, 'admin', '2025-09-19 14:49:56', '', NULL, NULL); +INSERT INTO `gen_table` VALUES (39, 'equ_supplier', '', NULL, NULL, 'EquSupplier', 'crud', '', 'com.ruoyi.system', 'system', 'supplier', NULL, 'ruoyi', '0', '/', NULL, 'admin', '2025-09-19 14:49:56', '', NULL, NULL); + +-- ---------------------------- +-- Table structure for gen_table_column +-- ---------------------------- +DROP TABLE IF EXISTS `gen_table_column`; +CREATE TABLE `gen_table_column` ( + `column_id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_id` bigint NULL DEFAULT NULL COMMENT '归属表编号', + `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列名称', + `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列描述', + `column_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列类型', + `java_type` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JAVA类型', + `java_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JAVA字段名', + `is_pk` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否主键(1是)', + `is_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否自增(1是)', + `is_required` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否必填(1是)', + `is_insert` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为插入字段(1是)', + `is_edit` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否编辑字段(1是)', + `is_list` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否列表字段(1是)', + `is_query` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否查询字段(1是)', + `query_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)', + `html_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)', + `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型', + `sort` int NULL DEFAULT NULL COMMENT '排序', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`column_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 424 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成业务表字段' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of gen_table_column +-- ---------------------------- +INSERT INTO `gen_table_column` VALUES (398, 38, 'id', '设备唯一标识(设备编号)', 'varchar(50)', 'String', 'id', '1', '0', '0', '1', NULL, NULL, NULL, 'EQ', 'input', '', 1, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (399, 38, 'name', '设备名称', 'varchar(100)', 'String', 'name', '0', '0', '0', '1', '1', '1', '1', 'LIKE', 'input', '', 2, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (400, 38, 'version', '设备版本', 'varchar(50)', 'String', 'version', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 3, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (401, 38, 'ip', '带外管理 IP', 'varchar(15)', 'String', 'ip', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 4, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (402, 38, 'manufacture', '设备厂商 id', 'varchar(50)', 'String', 'manufacture', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 5, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (403, 38, 'location', '安装位置 ', 'varchar(50)', 'String', 'location', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 6, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (404, 38, 'equ_type', '设备类型 id', 'varchar(50)', 'String', 'equType', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'select', '', 7, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (405, 38, 'in_charge', '设备管理员姓名', 'varchar(50)', 'String', 'inCharge', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 8, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (406, 38, 'install_date', '安装日期', 'date', 'Date', 'installDate', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'datetime', '', 9, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (407, 38, 'life_cycle', '预计年限(年)', 'int', 'Long', 'lifeCycle', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 10, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (408, 38, 'warranty', '质保时间(年)', 'int', 'Long', 'warranty', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 11, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (409, 38, 'create_by', '设备添加人 id', 'bigint', 'Long', 'createBy', '0', '0', '0', '1', NULL, NULL, NULL, 'EQ', 'input', '', 12, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (410, 38, 'create_date', '添加日期', 'datetime', 'Date', 'createDate', '0', '0', '1', '1', '1', '1', '1', 'EQ', 'datetime', '', 13, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (411, 38, 'status', '启用状态(0启用1禁用)', 'tinyint', 'Long', 'status', '0', '0', '1', '1', '1', '1', '1', 'EQ', 'radio', '', 14, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (412, 38, 'failure_frequency', '累计预警次数', 'int', 'Long', 'failureFrequency', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 15, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (413, 38, 'device_level', '设备级别', 'varchar(10)', 'String', 'deviceLevel', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 16, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (414, 38, 'supplier_id', '供应商id', 'varchar(50)', 'String', 'supplierId', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 17, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (415, 38, 'gather_frequency', '采集次数', 'int', 'Long', 'gatherFrequency', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 18, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (416, 39, 'id', '供应商id', 'varchar(255)', 'String', 'id', '1', '0', '0', '1', NULL, NULL, NULL, 'EQ', 'input', '', 1, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (417, 39, 'name', '供应商名称', 'varchar(20)', 'String', 'name', '0', '0', '0', '1', '1', '1', '1', 'LIKE', 'input', '', 2, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (418, 39, 'description', '供应商简介', 'text', 'String', 'description', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'textarea', '', 3, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (419, 39, 'contact_by', '联系人姓名', 'varchar(10)', 'String', 'contactBy', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 4, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (420, 39, 'contact_way', 'l联系方式', 'varchar(10)', 'String', 'contactWay', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'input', '', 5, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (421, 39, 'create_by', '添加人id', 'bigint', 'Long', 'createBy', '0', '0', '0', '1', NULL, NULL, NULL, 'EQ', 'input', '', 6, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (422, 39, 'create_time', '添加人日期', 'datetime', 'Date', 'createTime', '0', '0', '1', '1', NULL, NULL, NULL, 'EQ', 'datetime', '', 7, 'admin', '2025-09-19 14:49:56', '', NULL); +INSERT INTO `gen_table_column` VALUES (423, 39, 'status', '状态(0禁1启用)', 'tinyint', 'Long', 'status', '0', '0', '0', '1', '1', '1', '1', 'EQ', 'radio', '', 8, 'admin', '2025-09-19 14:49:56', '', NULL); + +-- ---------------------------- +-- Table structure for internal_message +-- ---------------------------- +DROP TABLE IF EXISTS `internal_message`; +CREATE TABLE `internal_message` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `user_id` bigint NOT NULL COMMENT '接收用户ID', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '消息内容', + `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'unread' COMMENT '消息状态(unread/read)', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '站内信表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of internal_message +-- ---------------------------- +INSERT INTO `internal_message` VALUES (48, 2, '设备 12 的温度<20或者>45', 'unread', '2025-09-21 16:19:25'); +INSERT INTO `internal_message` VALUES (49, 2, '设备 12 的风扇转速状态为0', 'unread', '2025-09-21 16:19:25'); +INSERT INTO `internal_message` VALUES (50, 2, '设备编号 11 设备名称test1设备接口4接状态为2\n设备编号 11 设备名称test1设备接口6接状态为2\n设备编号 11 设备名称test1设备接口10接状态为2\n设备编号 11 设备名称test1设备接口21接状态为2\n设备编号 11 设备名称test1设备接口22接状态为2\n设备编号 11 设备名称test1设备接口23接状态为2\n设备编号 11 设备名称test1设备接口25接状态为2\n设备编号 11 设备名称test1设备接口26接状态为2\n设备编号 11 设备名称test1设备接口27接状态为2\n设备编号 11 设备名称test1设备接口28接状态为2\n设备编号 11 设备名称test1设备接口29接状态为2\n设备编号 11 设备名称test1设备接口30接状态为2\n设备编号 11 设备名称test1设备接口31接状态为2\n设备编号 11 设备名称test1设备接口32接状态为2\n设备编号 11 设备名称test1设备接口33接状态为2\n设备编号 11 设备名称test1设备接口34接状态为2\n设备编号 11 设备名称test1设备接口35接状态为2\n设备编号 11 设备名称test1设备接口36接状态为2\n设备编号 11 设备名称test1设备接口37接状态为2\n设备编号 11 设备名称test1设备接口38接状态为2\n设备编号 11 设备名称test1设备接口39接状态为2\n设备编号 11 设备名称test1设备接口40接状态为2\n设备编号 11 设备名称test1设备接口41接状态为2\n设备编号 11 设备名称test1设备接口42接状态为2\n设备编号 11 设备名称test1设备接口43接状态为2\n设备编号 11 设备名称test1设备接口44接状态为2\n设备编号 11 设备名称test1设备接口45接状态为2\n设备编号 11 设备名称test1设备接口46接状态为2\n设备编号 11 设备名称test1设备接口47接状态为2\n设备编号 11 设备名称test1设备接口48接状态为2\n设备编号 11 设备名称test1设备接口49接状态为2\n设备编号 11 设备名称test1设备接口50接状态为2\n设备编号 11 设备名称test1设备接口52接状态为2\n设备编号 11 设备名称test1设备接口53接状态为2\n设备编号 11 设备名称test1设备接口56接状态为2\n设备编号 11 设备名称test1设备接口57接状态为2\n设备编号 11 设备名称test1设备接口58接状态为2\n设备编号 11 设备名称test1设备接口60接状态为2\n设备编号 11 设备名称test1设备接口63接状态为2\n设备编号 11 设备名称test1设备接口64接状态为2\n设备编号 11 设备名称test1设备接口65接状态为2\n设备编号 11 设备名称test1设备接口66接状态为2\n设备编号 11 设备名称test1设备接口68接状态为2\n设备编号 11 设备名称test1设备接口69接状态为2\n设备编号 11 设备名称test1设备接口70接状态为2\n设备编号 11 设备名称test1设备接口71接状态为2\n设备编号 11 设备名称test1设备接口72接状态为2\n设备编号 11 设备名称test1设备接口73接状态为2\n设备编号 11 设备名称test1设备接口74接状态为2\n设备编号 11 设备名称test1设备接口75接状态为2\n设备编号 11 设备名称test1设备接口76接状态为2\n设备编号 11 设备名称test1设备接口77接状态为2\n设备编号 11 设备名称test1设备接口78接状态为2\n设备编号 11 设备名称test1设备接口79接状态为2\n设备编号 11 设备名称test1设备接口80接状态为2\n设备编号 11 设备名称test1设备接口81接状态为2\n设备编号 11 设备名称test1设备接口83接状态为2\n设备编号 11 设备名称test1设备接口85接状态为2\n设备编号 11 设备名称test1设备接口88接状态为2\n设备编号 11 设备名称test1设备接口89接状态为2\n设备编号 11 设备名称test1设备接口93接状态为2\n设备编号 11 设备名称test1设备接口94接状态为2\n设备编号 11 设备名称test1设备接口95接状态为2\n设备编号 11 设备名称test1设备接口96接状态为2\n设备编号 11 设备名称test1设备接口98接状态为2\n设备编号 11 设备名称test1设备接口99接状态为2\n设备编号 11 设备名称test1设备接口105接状态为2\n设备编号 11 设备名称test1设备接口106接状态为2\n设备编号 11 设备名称test1设备接口107接状态为2\n设备编号 11 设备名称test1设备接口108接状态为2\n设备编号 11 设备名称test1设备接口109接状态为2\n设备编号 11 设备名称test1设备接口110接状态为2\n设备编号 11 设备名称test1设备接口111接状态为2\n设备编号 11 设备名称test1设备接口112接状态为2\n设备编号 11 设备名称test1设备接口113接状态为2\n设备编号 11 设备名称test1设备接口114接状态为2\n设备编号 11 设备名称test1设备接口115接状态为2\n设备编号 11 设备名称test1设备接口116接状态为2\n设备编号 11 设备名称test1设备接口117接状态为2\n设备编号 11 设备名称test1设备接口118接状态为2\n设备编号 11 设备名称test1设备接口119接状态为2\n设备编号 11 设备名称test1设备接口120接状态为2\n设备编号 11 设备名称test1设备接口121接状态为2\n设备编号 11 设备名称test1设备接口122接状态为2\n设备编号 11 设备名称test1设备接口123接状态为2\n设备编号 11 设备名称test1设备接口124接状态为2\n设备编号 11 设备名称test1设备接口125接状态为2\n设备编号 11 设备名称test1设备接口127接状态为2\n设备编号 11 设备名称test1设备接口128接状态为2\n设备编号 11 设备名称test1设备接口129接状态为2\n设备编号 11 设备名称test1设备接口130接状态为2\n设备编号 11 设备名称test1设备接口132接状态为2\n设备编号 11 设备名称test1设备接口133接状态为2\n设备编号 11 设备名称test1设备接口134接状态为2\n设备编号 11 设备名称test1设备接口135接状态为2\n设备编号 11 设备名称test1设备接口137接状态为2\n设备编号 11 设备名称test1设备接口138接状态为2\n设备编号 11 设备名称test1设备接口141接状态为2\n设备编号 11 设备名称test1设备接口143接状态为2\n设备编号 11 设备名称test1设备接口144接状态为2\n设备编号 11 设备名称test1设备接口145接状态为2\n设备编号 11 设备名称test1设备接口146接状态为2\n设备编号 11 设备名称test1设备接口147接状态为2\n设备编号 11 设备名称test1设备接口148接状态为2\n设备编号 11 设备名称test1设备接口153接状态为2\n设备编号 11 设备名称test1设备接口157接状态为2\n设备编号 11 设备名称test1设备接口164接状态为2\n设备编号 11 设备名称test1设备接口165接状态为2\n设备编号 11 设备名称test1设备接口166接状态为2\n设备编号 11 设备名称test1设备接口169接状态为2\n设备编号 11 设备名称test1设备接口170接状态为2\n设备编号 11 设备名称test1设备接口171接状态为2\n设备编号 11 设备名称test1设备接口172接状态为2\n设备编号 11 设备名称test1设备接口173接状态为2\n设备编号 11 设备名称test1设备接口174接状态为2\n设备编号 11 设备名称test1设备接口175接状态为2\n设备编号 11 设备名称test1设备接口176接状态为2\n设备编号 11 设备名称test1设备接口177接状态为2\n设备编号 11 设备名称test1设备接口178接状态为2\n设备编号 11 设备名称test1设备接口179接状态为2\n设备编号 11 设备名称test1设备接口180接状态为2\n设备编号 11 设备名称test1设备接口181接状态为2\n设备编号 11 设备名称test1设备接口182接状态为2\n设备编号 11 设备名称test1设备接口183接状态为2\n设备编号 11 设备名称test1设备接口184接状态为2\n设备编号 11 设备名称test1设备接口185接状态为2\n设备编号 11 设备名称test1设备接口186接状态为2\n设备编号 11 设备名称test1设备接口187接状态为2\n设备编号 11 设备名称test1设备接口188接状态为2\n设备编号 11 设备名称test1设备接口189接状态为2\n设备编号 11 设备名称test1设备接口190接状态为2\n设备编号 11 设备名称test1设备接口191接状态为2\n设备编号 11 设备名称test1设备接口192接状态为2\n设备编号 11 设备名称test1设备接口193接状态为2\n设备编号 11 设备名称test1设备接口194接状态为2\n设备编号 11 设备名称test1设备接口195接状态为2\n设备编号 11 设备名称test1设备接口196接状态为2\n设备编号 11 设备名称test1设备接口197接状态为2\n设备编号 11 设备名称test1设备接口198接状态为2\n设备编号 11 设备名称test1设备接口199接状态为2\n设备编号 11 设备名称test1设备接口200接状态为2\n设备编号 11 设备名称test1设备接口211接状态为2\n设备编号 11 设备名称test1设备接口212接状态为2\n设备编号 11 设备名称test1设备接口216接状态为2\n设备编号 11 设备名称test1设备接口228接状态为2\n设备编号 11 设备名称test1设备接口230接状态为2\n设备编号 11 设备名称test1设备接口231接状态为2\n设备编号 11 设备名称test1设备接口236接状态为2\n设备编号 11 设备名称test1设备接口239接状态为2\n设备编号 11 设备名称test1设备接口256接状态为2\n设备编号 11 设备名称test1设备接口259接状态为2\n设备编号 11 设备名称test1设备接口260接状态为2\n设备编号 11 设备名称test1设备接口261接状态为2\n设备编号 11 设备名称test1设备接口263接状态为2\n设备编号 11 设备名称test1设备接口264接状态为2\n设备编号 11 设备名称test1设备接口266接状态为2\n设备编号 11 设备名称test1设备接口267接状态为2\n设备编号 11 设备名称test1设备接口268接状态为2\n设备编号 11 设备名称test1设备接口269接状态为2\n设备编号 12 设备名称test1设备接口4接状态为2\n设备编号 12 设备名称test1设备接口7接状态为2\n设备编号 12 设备名称test1设备接口8接状态为2\n设备编号 12 设备名称test1设备接口10接状态为2\n设备编号 12 设备名称test1设备接口12接状态为2\n设备编号 12 设备名称test1设备接口14接状态为2\n设备编号 12 设备名称test1设备接口15接状态为2\n设备编号 12 设备名称test1设备接口16接状态为2\n设备编号 12 设备名称test1设备接口17接状态为2\n设备编号 12 设备名称test1设备接口20接状态为2\n设备编号 12 设备名称test1设备接口22接状态为2\n设备编号 12 设备名称test1设备接口24接状态为2\n设备编号 12 设备名称test1设备接口25接状态为2\n设备编号 12 设备名称test1设备接口26接状态为2\n设备编号 12 设备名称test1设备接口27接状态为2\n设备编号 12 设备名称test1设备接口28接状态为2\n设备编号 12 设备名称test1设备接口29接状态为2\n设备编号 12 设备名称test1设备接口30接状态为2\n设备编号 12 设备名称test1设备接口31接状态为2\n设备编号 12 设备名称test1设备接口32接状态为2\n设备编号 12 设备名称test1设备接口33接状态为2\n设备编号 12 设备名称test1设备接口34接状态为2\n设备编号 12 设备名称test1设备接口35接状态为2\n设备编号 12 设备名称test1设备接口36接状态为2\n设备编号 12 设备名称test1设备接口37接状态为2\n设备编号 12 设备名称test1设备接口38接状态为2\n设备编号 12 设备名称test1设备接口39接状态为2\n设备编号 12 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口41接状态为2\n设备编号 12 设备名称test1设备接口42接状态为2\n设备编号 12 设备名称test1设备接口43接状态为2\n设备编号 12 设备名称test1设备接口44接状态为2\n设备编号 12 设备名称test1设备接口45接状态为2\n设备编号 12 设备名称test1设备接口46接状态为2\n设备编号 12 设备名称test1设备接口47接状态为2\n设备编号 12 设备名称test1设备接口48接状态为2\n设备编号 12 设备名称test1设备接口49接状态为2\n设备编号 12 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口51接状态为2\n设备编号 12 设备名称test1设备接口52接状态为2\n设备编号 12 设备名称test1设备接口53接状态为2\n设备编号 12 设备名称test1设备接口54接状态为2\n设备编号 12 设备名称test1设备接口55接状态为2\n设备编号 12 设备名称test1设备接口56接状态为2\n设备编号 12 设备名称test1设备接口57接状态为2\n设备编号 12 设备名称test1设备接口58接状态为2\n设备编号 12 设备名称test1设备接口59接状态为2\n设备编号 12 设备名称test1设备接口60接状态为2\n设备编号 12 设备名称test1设备接口61接状态为2\n设备编号 12 设备名称test1设备接口62接状态为2\n设备编号 12 设备名称test1设备接口66接状态为2\n设备编号 12 设备名称test1设备接口67接状态为2\n设备编号 12 设备名称test1设备接口68接状态为2\n设备编号 12 设备名称test1设备接口71接状态为2\n设备编号 12 设备名称test1设备接口72接状态为2\n设备编号 12 设备名称test1设备接口73接状态为2\n设备编号 12 设备名称test1设备接口74接状态为2\n设备编号 12 设备名称test1设备接口75接状态为2\n设备编号 12 设备名称test1设备接口76接状态为2\n设备编号 12 设备名称test1设备接口77接状态为2\n设备编号 12 设备名称test1设备接口78接状态为2\n设备编号 12 设备名称test1设备接口80接状态为2\n设备编号 12 设备名称test1设备接口81接状态为2\n设备编号 12 设备名称test1设备接口82接状态为2\n设备编号 12 设备名称test1设备接口83接状态为2\n设备编号 12 设备名称test1设备接口84接状态为2\n设备编号 12 设备名称test1设备接口85接状态为2\n设备编号 12 设备名称test1设备接口86接状态为2\n设备编号 12 设备名称test1设备接口87接状态为2\n设备编号 12 设备名称test1设备接口88接状态为2\n设备编号 12 设备名称test1设备接口89接状态为2\n设备编号 12 设备名称test1设备接口90接状态为2\n设备编号 12 设备名称test1设备接口91接状态为2\n设备编号 12 设备名称test1设备接口92接状态为2\n设备编号 12 设备名称test1设备接口93接状态为2\n设备编号 12 设备名称test1设备接口94接状态为2\n设备编号 12 设备名称test1设备接口95接状态为2\n设备编号 12 设备名称test1设备接口96接状态为2\n设备编号 12 设备名称test1设备接口97接状态为2\n设备编号 12 设备名称test1设备接口98接状态为2\n设备编号 12 设备名称test1设备接口99接状态为2\n设备编号 12 设备名称test1设备接口100接状态为2\n设备编号 12 设备名称test1设备接口101接状态为2\n设备编号 12 设备名称test1设备接口102接状态为2\n设备编号 12 设备名称test1设备接口103接状态为2\n设备编号 12 设备名称test1设备接口104接状态为2\n设备编号 12 设备名称test1设备接口111接状态为2', 'unread', '2025-09-21 16:19:25'); +INSERT INTO `internal_message` VALUES (51, 2, '设备 12 的风扇转速状态为0', 'unread', '2025-09-21 16:59:46'); +INSERT INTO `internal_message` VALUES (52, 2, '设备 12 的温度<20或者>45', 'unread', '2025-09-21 16:59:47'); +INSERT INTO `internal_message` VALUES (53, 2, '设备编号 11 设备名称test1设备接口4接状态为2\n设备编号 11 设备名称test1设备接口6接状态为2\n设备编号 11 设备名称test1设备接口10接状态为2\n设备编号 11 设备名称test1设备接口21接状态为2\n设备编号 11 设备名称test1设备接口22接状态为2\n设备编号 11 设备名称test1设备接口23接状态为2\n设备编号 11 设备名称test1设备接口25接状态为2\n设备编号 11 设备名称test1设备接口26接状态为2\n设备编号 11 设备名称test1设备接口27接状态为2\n设备编号 11 设备名称test1设备接口28接状态为2\n设备编号 11 设备名称test1设备接口29接状态为2\n设备编号 11 设备名称test1设备接口30接状态为2\n设备编号 11 设备名称test1设备接口31接状态为2\n设备编号 11 设备名称test1设备接口32接状态为2\n设备编号 11 设备名称test1设备接口33接状态为2\n设备编号 11 设备名称test1设备接口34接状态为2\n设备编号 11 设备名称test1设备接口35接状态为2\n设备编号 11 设备名称test1设备接口36接状态为2\n设备编号 11 设备名称test1设备接口37接状态为2\n设备编号 11 设备名称test1设备接口38接状态为2\n设备编号 11 设备名称test1设备接口39接状态为2\n设备编号 11 设备名称test1设备接口40接状态为2\n设备编号 11 设备名称test1设备接口41接状态为2\n设备编号 11 设备名称test1设备接口42接状态为2\n设备编号 11 设备名称test1设备接口43接状态为2\n设备编号 11 设备名称test1设备接口44接状态为2\n设备编号 11 设备名称test1设备接口45接状态为2\n设备编号 11 设备名称test1设备接口46接状态为2\n设备编号 11 设备名称test1设备接口47接状态为2\n设备编号 11 设备名称test1设备接口48接状态为2\n设备编号 11 设备名称test1设备接口49接状态为2\n设备编号 11 设备名称test1设备接口50接状态为2\n设备编号 11 设备名称test1设备接口52接状态为2\n设备编号 11 设备名称test1设备接口53接状态为2\n设备编号 11 设备名称test1设备接口56接状态为2\n设备编号 11 设备名称test1设备接口57接状态为2\n设备编号 11 设备名称test1设备接口58接状态为2\n设备编号 11 设备名称test1设备接口60接状态为2\n设备编号 11 设备名称test1设备接口63接状态为2\n设备编号 11 设备名称test1设备接口64接状态为2\n设备编号 11 设备名称test1设备接口65接状态为2\n设备编号 11 设备名称test1设备接口66接状态为2\n设备编号 11 设备名称test1设备接口68接状态为2\n设备编号 11 设备名称test1设备接口69接状态为2\n设备编号 11 设备名称test1设备接口70接状态为2\n设备编号 11 设备名称test1设备接口71接状态为2\n设备编号 11 设备名称test1设备接口72接状态为2\n设备编号 11 设备名称test1设备接口73接状态为2\n设备编号 11 设备名称test1设备接口74接状态为2\n设备编号 11 设备名称test1设备接口75接状态为2\n设备编号 11 设备名称test1设备接口76接状态为2\n设备编号 11 设备名称test1设备接口77接状态为2\n设备编号 11 设备名称test1设备接口78接状态为2\n设备编号 11 设备名称test1设备接口79接状态为2\n设备编号 11 设备名称test1设备接口80接状态为2\n设备编号 11 设备名称test1设备接口81接状态为2\n设备编号 11 设备名称test1设备接口83接状态为2\n设备编号 11 设备名称test1设备接口85接状态为2\n设备编号 11 设备名称test1设备接口88接状态为2\n设备编号 11 设备名称test1设备接口89接状态为2\n设备编号 11 设备名称test1设备接口93接状态为2\n设备编号 11 设备名称test1设备接口94接状态为2\n设备编号 11 设备名称test1设备接口95接状态为2\n设备编号 11 设备名称test1设备接口96接状态为2\n设备编号 11 设备名称test1设备接口98接状态为2\n设备编号 11 设备名称test1设备接口99接状态为2\n设备编号 11 设备名称test1设备接口105接状态为2\n设备编号 11 设备名称test1设备接口106接状态为2\n设备编号 11 设备名称test1设备接口107接状态为2\n设备编号 11 设备名称test1设备接口108接状态为2\n设备编号 11 设备名称test1设备接口109接状态为2\n设备编号 11 设备名称test1设备接口110接状态为2\n设备编号 11 设备名称test1设备接口111接状态为2\n设备编号 11 设备名称test1设备接口112接状态为2\n设备编号 11 设备名称test1设备接口113接状态为2\n设备编号 11 设备名称test1设备接口114接状态为2\n设备编号 11 设备名称test1设备接口115接状态为2\n设备编号 11 设备名称test1设备接口116接状态为2\n设备编号 11 设备名称test1设备接口117接状态为2\n设备编号 11 设备名称test1设备接口118接状态为2\n设备编号 11 设备名称test1设备接口119接状态为2\n设备编号 11 设备名称test1设备接口120接状态为2\n设备编号 11 设备名称test1设备接口121接状态为2\n设备编号 11 设备名称test1设备接口122接状态为2\n设备编号 11 设备名称test1设备接口123接状态为2\n设备编号 11 设备名称test1设备接口124接状态为2\n设备编号 11 设备名称test1设备接口125接状态为2\n设备编号 11 设备名称test1设备接口127接状态为2\n设备编号 11 设备名称test1设备接口128接状态为2\n设备编号 11 设备名称test1设备接口129接状态为2\n设备编号 11 设备名称test1设备接口130接状态为2\n设备编号 11 设备名称test1设备接口132接状态为2\n设备编号 11 设备名称test1设备接口133接状态为2\n设备编号 11 设备名称test1设备接口134接状态为2\n设备编号 11 设备名称test1设备接口135接状态为2\n设备编号 11 设备名称test1设备接口137接状态为2\n设备编号 11 设备名称test1设备接口138接状态为2\n设备编号 11 设备名称test1设备接口141接状态为2\n设备编号 11 设备名称test1设备接口143接状态为2\n设备编号 11 设备名称test1设备接口144接状态为2\n设备编号 11 设备名称test1设备接口145接状态为2\n设备编号 11 设备名称test1设备接口146接状态为2\n设备编号 11 设备名称test1设备接口147接状态为2\n设备编号 11 设备名称test1设备接口148接状态为2\n设备编号 11 设备名称test1设备接口153接状态为2\n设备编号 11 设备名称test1设备接口157接状态为2\n设备编号 11 设备名称test1设备接口164接状态为2\n设备编号 11 设备名称test1设备接口165接状态为2\n设备编号 11 设备名称test1设备接口166接状态为2\n设备编号 11 设备名称test1设备接口169接状态为2\n设备编号 11 设备名称test1设备接口170接状态为2\n设备编号 11 设备名称test1设备接口171接状态为2\n设备编号 11 设备名称test1设备接口172接状态为2\n设备编号 11 设备名称test1设备接口173接状态为2\n设备编号 11 设备名称test1设备接口174接状态为2\n设备编号 11 设备名称test1设备接口175接状态为2\n设备编号 11 设备名称test1设备接口176接状态为2\n设备编号 11 设备名称test1设备接口177接状态为2\n设备编号 11 设备名称test1设备接口178接状态为2\n设备编号 11 设备名称test1设备接口179接状态为2\n设备编号 11 设备名称test1设备接口180接状态为2\n设备编号 11 设备名称test1设备接口181接状态为2\n设备编号 11 设备名称test1设备接口182接状态为2\n设备编号 11 设备名称test1设备接口183接状态为2\n设备编号 11 设备名称test1设备接口184接状态为2\n设备编号 11 设备名称test1设备接口185接状态为2\n设备编号 11 设备名称test1设备接口186接状态为2\n设备编号 11 设备名称test1设备接口187接状态为2\n设备编号 11 设备名称test1设备接口188接状态为2\n设备编号 11 设备名称test1设备接口189接状态为2\n设备编号 11 设备名称test1设备接口190接状态为2\n设备编号 11 设备名称test1设备接口191接状态为2\n设备编号 11 设备名称test1设备接口192接状态为2\n设备编号 11 设备名称test1设备接口193接状态为2\n设备编号 11 设备名称test1设备接口194接状态为2\n设备编号 11 设备名称test1设备接口195接状态为2\n设备编号 11 设备名称test1设备接口196接状态为2\n设备编号 11 设备名称test1设备接口197接状态为2\n设备编号 11 设备名称test1设备接口198接状态为2\n设备编号 11 设备名称test1设备接口199接状态为2\n设备编号 11 设备名称test1设备接口200接状态为2\n设备编号 11 设备名称test1设备接口211接状态为2\n设备编号 11 设备名称test1设备接口212接状态为2\n设备编号 11 设备名称test1设备接口216接状态为2\n设备编号 11 设备名称test1设备接口228接状态为2\n设备编号 11 设备名称test1设备接口230接状态为2\n设备编号 11 设备名称test1设备接口231接状态为2\n设备编号 11 设备名称test1设备接口236接状态为2\n设备编号 11 设备名称test1设备接口239接状态为2\n设备编号 11 设备名称test1设备接口256接状态为2\n设备编号 11 设备名称test1设备接口259接状态为2\n设备编号 11 设备名称test1设备接口260接状态为2\n设备编号 11 设备名称test1设备接口261接状态为2\n设备编号 11 设备名称test1设备接口263接状态为2\n设备编号 11 设备名称test1设备接口264接状态为2\n设备编号 11 设备名称test1设备接口266接状态为2\n设备编号 11 设备名称test1设备接口267接状态为2\n设备编号 11 设备名称test1设备接口268接状态为2\n设备编号 11 设备名称test1设备接口269接状态为2\n设备编号 12 设备名称test1设备接口4接状态为2\n设备编号 12 设备名称test1设备接口7接状态为2\n设备编号 12 设备名称test1设备接口8接状态为2\n设备编号 12 设备名称test1设备接口10接状态为2\n设备编号 12 设备名称test1设备接口12接状态为2\n设备编号 12 设备名称test1设备接口14接状态为2\n设备编号 12 设备名称test1设备接口15接状态为2\n设备编号 12 设备名称test1设备接口16接状态为2\n设备编号 12 设备名称test1设备接口17接状态为2\n设备编号 12 设备名称test1设备接口20接状态为2\n设备编号 12 设备名称test1设备接口22接状态为2\n设备编号 12 设备名称test1设备接口24接状态为2\n设备编号 12 设备名称test1设备接口25接状态为2\n设备编号 12 设备名称test1设备接口26接状态为2\n设备编号 12 设备名称test1设备接口27接状态为2\n设备编号 12 设备名称test1设备接口28接状态为2\n设备编号 12 设备名称test1设备接口29接状态为2\n设备编号 12 设备名称test1设备接口30接状态为2\n设备编号 12 设备名称test1设备接口31接状态为2\n设备编号 12 设备名称test1设备接口32接状态为2\n设备编号 12 设备名称test1设备接口33接状态为2\n设备编号 12 设备名称test1设备接口34接状态为2\n设备编号 12 设备名称test1设备接口35接状态为2\n设备编号 12 设备名称test1设备接口36接状态为2\n设备编号 12 设备名称test1设备接口37接状态为2\n设备编号 12 设备名称test1设备接口38接状态为2\n设备编号 12 设备名称test1设备接口39接状态为2\n设备编号 12 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口41接状态为2\n设备编号 12 设备名称test1设备接口42接状态为2\n设备编号 12 设备名称test1设备接口43接状态为2\n设备编号 12 设备名称test1设备接口44接状态为2\n设备编号 12 设备名称test1设备接口45接状态为2\n设备编号 12 设备名称test1设备接口46接状态为2\n设备编号 12 设备名称test1设备接口47接状态为2\n设备编号 12 设备名称test1设备接口48接状态为2\n设备编号 12 设备名称test1设备接口49接状态为2\n设备编号 12 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口51接状态为2\n设备编号 12 设备名称test1设备接口52接状态为2\n设备编号 12 设备名称test1设备接口53接状态为2\n设备编号 12 设备名称test1设备接口54接状态为2\n设备编号 12 设备名称test1设备接口55接状态为2\n设备编号 12 设备名称test1设备接口56接状态为2\n设备编号 12 设备名称test1设备接口57接状态为2\n设备编号 12 设备名称test1设备接口58接状态为2\n设备编号 12 设备名称test1设备接口59接状态为2\n设备编号 12 设备名称test1设备接口60接状态为2\n设备编号 12 设备名称test1设备接口61接状态为2\n设备编号 12 设备名称test1设备接口62接状态为2\n设备编号 12 设备名称test1设备接口66接状态为2\n设备编号 12 设备名称test1设备接口67接状态为2\n设备编号 12 设备名称test1设备接口68接状态为2\n设备编号 12 设备名称test1设备接口71接状态为2\n设备编号 12 设备名称test1设备接口72接状态为2\n设备编号 12 设备名称test1设备接口73接状态为2\n设备编号 12 设备名称test1设备接口74接状态为2\n设备编号 12 设备名称test1设备接口75接状态为2\n设备编号 12 设备名称test1设备接口76接状态为2\n设备编号 12 设备名称test1设备接口77接状态为2\n设备编号 12 设备名称test1设备接口78接状态为2\n设备编号 12 设备名称test1设备接口80接状态为2\n设备编号 12 设备名称test1设备接口81接状态为2\n设备编号 12 设备名称test1设备接口82接状态为2\n设备编号 12 设备名称test1设备接口83接状态为2\n设备编号 12 设备名称test1设备接口84接状态为2\n设备编号 12 设备名称test1设备接口85接状态为2\n设备编号 12 设备名称test1设备接口86接状态为2\n设备编号 12 设备名称test1设备接口87接状态为2\n设备编号 12 设备名称test1设备接口88接状态为2\n设备编号 12 设备名称test1设备接口89接状态为2\n设备编号 12 设备名称test1设备接口90接状态为2\n设备编号 12 设备名称test1设备接口91接状态为2\n设备编号 12 设备名称test1设备接口92接状态为2\n设备编号 12 设备名称test1设备接口93接状态为2\n设备编号 12 设备名称test1设备接口94接状态为2\n设备编号 12 设备名称test1设备接口95接状态为2\n设备编号 12 设备名称test1设备接口96接状态为2\n设备编号 12 设备名称test1设备接口97接状态为2\n设备编号 12 设备名称test1设备接口98接状态为2\n设备编号 12 设备名称test1设备接口99接状态为2\n设备编号 12 设备名称test1设备接口100接状态为2\n设备编号 12 设备名称test1设备接口101接状态为2\n设备编号 12 设备名称test1设备接口102接状态为2\n设备编号 12 设备名称test1设备接口103接状态为2\n设备编号 12 设备名称test1设备接口104接状态为2\n设备编号 12 设备名称test1设备接口111接状态为2', 'unread', '2025-09-21 16:59:48'); +INSERT INTO `internal_message` VALUES (54, 2, '设备 12 的风扇转速状态为0', 'unread', '2025-09-21 17:36:43'); +INSERT INTO `internal_message` VALUES (55, 2, '设备 12 的温度<20或者>45', 'unread', '2025-09-21 17:36:43'); +INSERT INTO `internal_message` VALUES (56, 2, '设备编号 11 设备名称test1设备接口4接状态为2\n设备编号 11 设备名称test1设备接口6接状态为2\n设备编号 11 设备名称test1设备接口10接状态为2\n设备编号 11 设备名称test1设备接口21接状态为2\n设备编号 11 设备名称test1设备接口22接状态为2\n设备编号 11 设备名称test1设备接口23接状态为2\n设备编号 11 设备名称test1设备接口25接状态为2\n设备编号 11 设备名称test1设备接口26接状态为2\n设备编号 11 设备名称test1设备接口27接状态为2\n设备编号 11 设备名称test1设备接口28接状态为2\n设备编号 11 设备名称test1设备接口29接状态为2\n设备编号 11 设备名称test1设备接口30接状态为2\n设备编号 11 设备名称test1设备接口31接状态为2\n设备编号 11 设备名称test1设备接口32接状态为2\n设备编号 11 设备名称test1设备接口33接状态为2\n设备编号 11 设备名称test1设备接口34接状态为2\n设备编号 11 设备名称test1设备接口35接状态为2\n设备编号 11 设备名称test1设备接口36接状态为2\n设备编号 11 设备名称test1设备接口37接状态为2\n设备编号 11 设备名称test1设备接口38接状态为2\n设备编号 11 设备名称test1设备接口39接状态为2\n设备编号 11 设备名称test1设备接口40接状态为2\n设备编号 11 设备名称test1设备接口41接状态为2\n设备编号 11 设备名称test1设备接口42接状态为2\n设备编号 11 设备名称test1设备接口43接状态为2\n设备编号 11 设备名称test1设备接口44接状态为2\n设备编号 11 设备名称test1设备接口45接状态为2\n设备编号 11 设备名称test1设备接口46接状态为2\n设备编号 11 设备名称test1设备接口47接状态为2\n设备编号 11 设备名称test1设备接口48接状态为2\n设备编号 11 设备名称test1设备接口49接状态为2\n设备编号 11 设备名称test1设备接口50接状态为2\n设备编号 11 设备名称test1设备接口52接状态为2\n设备编号 11 设备名称test1设备接口53接状态为2\n设备编号 11 设备名称test1设备接口56接状态为2\n设备编号 11 设备名称test1设备接口57接状态为2\n设备编号 11 设备名称test1设备接口58接状态为2\n设备编号 11 设备名称test1设备接口60接状态为2\n设备编号 11 设备名称test1设备接口63接状态为2\n设备编号 11 设备名称test1设备接口64接状态为2\n设备编号 11 设备名称test1设备接口65接状态为2\n设备编号 11 设备名称test1设备接口66接状态为2\n设备编号 11 设备名称test1设备接口68接状态为2\n设备编号 11 设备名称test1设备接口69接状态为2\n设备编号 11 设备名称test1设备接口70接状态为2\n设备编号 11 设备名称test1设备接口71接状态为2\n设备编号 11 设备名称test1设备接口72接状态为2\n设备编号 11 设备名称test1设备接口73接状态为2\n设备编号 11 设备名称test1设备接口74接状态为2\n设备编号 11 设备名称test1设备接口75接状态为2\n设备编号 11 设备名称test1设备接口76接状态为2\n设备编号 11 设备名称test1设备接口77接状态为2\n设备编号 11 设备名称test1设备接口78接状态为2\n设备编号 11 设备名称test1设备接口79接状态为2\n设备编号 11 设备名称test1设备接口80接状态为2\n设备编号 11 设备名称test1设备接口81接状态为2\n设备编号 11 设备名称test1设备接口83接状态为2\n设备编号 11 设备名称test1设备接口85接状态为2\n设备编号 11 设备名称test1设备接口88接状态为2\n设备编号 11 设备名称test1设备接口89接状态为2\n设备编号 11 设备名称test1设备接口93接状态为2\n设备编号 11 设备名称test1设备接口94接状态为2\n设备编号 11 设备名称test1设备接口95接状态为2\n设备编号 11 设备名称test1设备接口96接状态为2\n设备编号 11 设备名称test1设备接口98接状态为2\n设备编号 11 设备名称test1设备接口99接状态为2\n设备编号 11 设备名称test1设备接口105接状态为2\n设备编号 11 设备名称test1设备接口106接状态为2\n设备编号 11 设备名称test1设备接口107接状态为2\n设备编号 11 设备名称test1设备接口108接状态为2\n设备编号 11 设备名称test1设备接口109接状态为2\n设备编号 11 设备名称test1设备接口110接状态为2\n设备编号 11 设备名称test1设备接口111接状态为2\n设备编号 11 设备名称test1设备接口112接状态为2\n设备编号 11 设备名称test1设备接口113接状态为2\n设备编号 11 设备名称test1设备接口114接状态为2\n设备编号 11 设备名称test1设备接口115接状态为2\n设备编号 11 设备名称test1设备接口116接状态为2\n设备编号 11 设备名称test1设备接口117接状态为2\n设备编号 11 设备名称test1设备接口118接状态为2\n设备编号 11 设备名称test1设备接口119接状态为2\n设备编号 11 设备名称test1设备接口120接状态为2\n设备编号 11 设备名称test1设备接口121接状态为2\n设备编号 11 设备名称test1设备接口122接状态为2\n设备编号 11 设备名称test1设备接口123接状态为2\n设备编号 11 设备名称test1设备接口124接状态为2\n设备编号 11 设备名称test1设备接口125接状态为2\n设备编号 11 设备名称test1设备接口127接状态为2\n设备编号 11 设备名称test1设备接口128接状态为2\n设备编号 11 设备名称test1设备接口129接状态为2\n设备编号 11 设备名称test1设备接口130接状态为2\n设备编号 11 设备名称test1设备接口132接状态为2\n设备编号 11 设备名称test1设备接口133接状态为2\n设备编号 11 设备名称test1设备接口134接状态为2\n设备编号 11 设备名称test1设备接口135接状态为2\n设备编号 11 设备名称test1设备接口137接状态为2\n设备编号 11 设备名称test1设备接口138接状态为2\n设备编号 11 设备名称test1设备接口141接状态为2\n设备编号 11 设备名称test1设备接口143接状态为2\n设备编号 11 设备名称test1设备接口144接状态为2\n设备编号 11 设备名称test1设备接口145接状态为2\n设备编号 11 设备名称test1设备接口146接状态为2\n设备编号 11 设备名称test1设备接口147接状态为2\n设备编号 11 设备名称test1设备接口148接状态为2\n设备编号 11 设备名称test1设备接口153接状态为2\n设备编号 11 设备名称test1设备接口157接状态为2\n设备编号 11 设备名称test1设备接口164接状态为2\n设备编号 11 设备名称test1设备接口165接状态为2\n设备编号 11 设备名称test1设备接口166接状态为2\n设备编号 11 设备名称test1设备接口169接状态为2\n设备编号 11 设备名称test1设备接口170接状态为2\n设备编号 11 设备名称test1设备接口171接状态为2\n设备编号 11 设备名称test1设备接口172接状态为2\n设备编号 11 设备名称test1设备接口173接状态为2\n设备编号 11 设备名称test1设备接口174接状态为2\n设备编号 11 设备名称test1设备接口175接状态为2\n设备编号 11 设备名称test1设备接口176接状态为2\n设备编号 11 设备名称test1设备接口177接状态为2\n设备编号 11 设备名称test1设备接口178接状态为2\n设备编号 11 设备名称test1设备接口179接状态为2\n设备编号 11 设备名称test1设备接口180接状态为2\n设备编号 11 设备名称test1设备接口181接状态为2\n设备编号 11 设备名称test1设备接口182接状态为2\n设备编号 11 设备名称test1设备接口183接状态为2\n设备编号 11 设备名称test1设备接口184接状态为2\n设备编号 11 设备名称test1设备接口185接状态为2\n设备编号 11 设备名称test1设备接口186接状态为2\n设备编号 11 设备名称test1设备接口187接状态为2\n设备编号 11 设备名称test1设备接口188接状态为2\n设备编号 11 设备名称test1设备接口189接状态为2\n设备编号 11 设备名称test1设备接口190接状态为2\n设备编号 11 设备名称test1设备接口191接状态为2\n设备编号 11 设备名称test1设备接口192接状态为2\n设备编号 11 设备名称test1设备接口193接状态为2\n设备编号 11 设备名称test1设备接口194接状态为2\n设备编号 11 设备名称test1设备接口195接状态为2\n设备编号 11 设备名称test1设备接口196接状态为2\n设备编号 11 设备名称test1设备接口197接状态为2\n设备编号 11 设备名称test1设备接口198接状态为2\n设备编号 11 设备名称test1设备接口199接状态为2\n设备编号 11 设备名称test1设备接口200接状态为2\n设备编号 11 设备名称test1设备接口211接状态为2\n设备编号 11 设备名称test1设备接口212接状态为2\n设备编号 11 设备名称test1设备接口216接状态为2\n设备编号 11 设备名称test1设备接口228接状态为2\n设备编号 11 设备名称test1设备接口230接状态为2\n设备编号 11 设备名称test1设备接口231接状态为2\n设备编号 11 设备名称test1设备接口236接状态为2\n设备编号 11 设备名称test1设备接口239接状态为2\n设备编号 11 设备名称test1设备接口256接状态为2\n设备编号 11 设备名称test1设备接口259接状态为2\n设备编号 11 设备名称test1设备接口260接状态为2\n设备编号 11 设备名称test1设备接口261接状态为2\n设备编号 11 设备名称test1设备接口263接状态为2\n设备编号 11 设备名称test1设备接口264接状态为2\n设备编号 11 设备名称test1设备接口266接状态为2\n设备编号 11 设备名称test1设备接口267接状态为2\n设备编号 11 设备名称test1设备接口268接状态为2\n设备编号 11 设备名称test1设备接口269接状态为2\n设备编号 12 设备名称test1设备接口4接状态为2\n设备编号 12 设备名称test1设备接口7接状态为2\n设备编号 12 设备名称test1设备接口8接状态为2\n设备编号 12 设备名称test1设备接口10接状态为2\n设备编号 12 设备名称test1设备接口12接状态为2\n设备编号 12 设备名称test1设备接口14接状态为2\n设备编号 12 设备名称test1设备接口15接状态为2\n设备编号 12 设备名称test1设备接口16接状态为2\n设备编号 12 设备名称test1设备接口17接状态为2\n设备编号 12 设备名称test1设备接口20接状态为2\n设备编号 12 设备名称test1设备接口22接状态为2\n设备编号 12 设备名称test1设备接口24接状态为2\n设备编号 12 设备名称test1设备接口25接状态为2\n设备编号 12 设备名称test1设备接口26接状态为2\n设备编号 12 设备名称test1设备接口27接状态为2\n设备编号 12 设备名称test1设备接口28接状态为2\n设备编号 12 设备名称test1设备接口29接状态为2\n设备编号 12 设备名称test1设备接口30接状态为2\n设备编号 12 设备名称test1设备接口31接状态为2\n设备编号 12 设备名称test1设备接口32接状态为2\n设备编号 12 设备名称test1设备接口33接状态为2\n设备编号 12 设备名称test1设备接口34接状态为2\n设备编号 12 设备名称test1设备接口35接状态为2\n设备编号 12 设备名称test1设备接口36接状态为2\n设备编号 12 设备名称test1设备接口37接状态为2\n设备编号 12 设备名称test1设备接口38接状态为2\n设备编号 12 设备名称test1设备接口39接状态为2\n设备编号 12 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口41接状态为2\n设备编号 12 设备名称test1设备接口42接状态为2\n设备编号 12 设备名称test1设备接口43接状态为2\n设备编号 12 设备名称test1设备接口44接状态为2\n设备编号 12 设备名称test1设备接口45接状态为2\n设备编号 12 设备名称test1设备接口46接状态为2\n设备编号 12 设备名称test1设备接口47接状态为2\n设备编号 12 设备名称test1设备接口48接状态为2\n设备编号 12 设备名称test1设备接口49接状态为2\n设备编号 12 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口51接状态为2\n设备编号 12 设备名称test1设备接口52接状态为2\n设备编号 12 设备名称test1设备接口53接状态为2\n设备编号 12 设备名称test1设备接口54接状态为2\n设备编号 12 设备名称test1设备接口55接状态为2\n设备编号 12 设备名称test1设备接口56接状态为2\n设备编号 12 设备名称test1设备接口57接状态为2\n设备编号 12 设备名称test1设备接口58接状态为2\n设备编号 12 设备名称test1设备接口59接状态为2\n设备编号 12 设备名称test1设备接口60接状态为2\n设备编号 12 设备名称test1设备接口61接状态为2\n设备编号 12 设备名称test1设备接口62接状态为2\n设备编号 12 设备名称test1设备接口66接状态为2\n设备编号 12 设备名称test1设备接口67接状态为2\n设备编号 12 设备名称test1设备接口68接状态为2\n设备编号 12 设备名称test1设备接口71接状态为2\n设备编号 12 设备名称test1设备接口72接状态为2\n设备编号 12 设备名称test1设备接口73接状态为2\n设备编号 12 设备名称test1设备接口74接状态为2\n设备编号 12 设备名称test1设备接口75接状态为2\n设备编号 12 设备名称test1设备接口76接状态为2\n设备编号 12 设备名称test1设备接口77接状态为2\n设备编号 12 设备名称test1设备接口78接状态为2\n设备编号 12 设备名称test1设备接口80接状态为2\n设备编号 12 设备名称test1设备接口81接状态为2\n设备编号 12 设备名称test1设备接口82接状态为2\n设备编号 12 设备名称test1设备接口83接状态为2\n设备编号 12 设备名称test1设备接口84接状态为2\n设备编号 12 设备名称test1设备接口85接状态为2\n设备编号 12 设备名称test1设备接口86接状态为2\n设备编号 12 设备名称test1设备接口87接状态为2\n设备编号 12 设备名称test1设备接口88接状态为2\n设备编号 12 设备名称test1设备接口89接状态为2\n设备编号 12 设备名称test1设备接口90接状态为2\n设备编号 12 设备名称test1设备接口91接状态为2\n设备编号 12 设备名称test1设备接口92接状态为2\n设备编号 12 设备名称test1设备接口93接状态为2\n设备编号 12 设备名称test1设备接口94接状态为2\n设备编号 12 设备名称test1设备接口95接状态为2\n设备编号 12 设备名称test1设备接口96接状态为2\n设备编号 12 设备名称test1设备接口97接状态为2\n设备编号 12 设备名称test1设备接口98接状态为2\n设备编号 12 设备名称test1设备接口99接状态为2\n设备编号 12 设备名称test1设备接口100接状态为2\n设备编号 12 设备名称test1设备接口101接状态为2\n设备编号 12 设备名称test1设备接口102接状态为2\n设备编号 12 设备名称test1设备接口103接状态为2\n设备编号 12 设备名称test1设备接口104接状态为2\n设备编号 12 设备名称test1设备接口111接状态为2', 'unread', '2025-09-21 17:36:47'); +INSERT INTO `internal_message` VALUES (57, 2, '设备 12 的风扇转速状态为0', 'unread', '2025-09-21 17:48:35'); +INSERT INTO `internal_message` VALUES (58, 2, '设备编号 11 设备名称test1设备接口4接状态为2\n设备编号 11 设备名称test1设备接口6接状态为2\n设备编号 11 设备名称test1设备接口10接状态为2\n设备编号 11 设备名称test1设备接口21接状态为2\n设备编号 11 设备名称test1设备接口22接状态为2\n设备编号 11 设备名称test1设备接口23接状态为2\n设备编号 11 设备名称test1设备接口25接状态为2\n设备编号 11 设备名称test1设备接口26接状态为2\n设备编号 11 设备名称test1设备接口27接状态为2\n设备编号 11 设备名称test1设备接口28接状态为2\n设备编号 11 设备名称test1设备接口29接状态为2\n设备编号 11 设备名称test1设备接口30接状态为2\n设备编号 11 设备名称test1设备接口31接状态为2\n设备编号 11 设备名称test1设备接口32接状态为2\n设备编号 11 设备名称test1设备接口33接状态为2\n设备编号 11 设备名称test1设备接口34接状态为2\n设备编号 11 设备名称test1设备接口35接状态为2\n设备编号 11 设备名称test1设备接口36接状态为2\n设备编号 11 设备名称test1设备接口37接状态为2\n设备编号 11 设备名称test1设备接口38接状态为2\n设备编号 11 设备名称test1设备接口39接状态为2\n设备编号 11 设备名称test1设备接口40接状态为2\n设备编号 11 设备名称test1设备接口41接状态为2\n设备编号 11 设备名称test1设备接口42接状态为2\n设备编号 11 设备名称test1设备接口43接状态为2\n设备编号 11 设备名称test1设备接口44接状态为2\n设备编号 11 设备名称test1设备接口45接状态为2\n设备编号 11 设备名称test1设备接口46接状态为2\n设备编号 11 设备名称test1设备接口47接状态为2\n设备编号 11 设备名称test1设备接口48接状态为2\n设备编号 11 设备名称test1设备接口49接状态为2\n设备编号 11 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口4接状态为2\n设备编号 12 设备名称test1设备接口7接状态为2\n设备编号 12 设备名称test1设备接口8接状态为2\n设备编号 12 设备名称test1设备接口10接状态为2\n设备编号 12 设备名称test1设备接口12接状态为2\n设备编号 12 设备名称test1设备接口14接状态为2\n设备编号 12 设备名称test1设备接口15接状态为2\n设备编号 12 设备名称test1设备接口16接状态为2\n设备编号 12 设备名称test1设备接口17接状态为2\n设备编号 12 设备名称test1设备接口20接状态为2\n设备编号 12 设备名称test1设备接口22接状态为2\n设备编号 12 设备名称test1设备接口24接状态为2\n设备编号 12 设备名称test1设备接口25接状态为2\n设备编号 12 设备名称test1设备接口26接状态为2\n设备编号 12 设备名称test1设备接口27接状态为2\n设备编号 12 设备名称test1设备接口28接状态为2\n设备编号 12 设备名称test1设备接口29接状态为2\n设备编号 12 设备名称test1设备接口30接状态为2\n设备编号 12 设备名称test1设备接口31接状态为2\n设备编号 12 设备名称test1设备接口32接状态为2\n设备编号 12 设备名称test1设备接口33接状态为2\n设备编号 12 设备名称test1设备接口34接状态为2\n设备编号 12 设备名称test1设备接口35接状态为2\n设备编号 12 设备名称test1设备接口36接状态为2\n设备编号 12 设备名称test1设备接口37接状态为2\n设备编号 12 设备名称test1设备接口38接状态为2\n设备编号 12 设备名称test1设备接口39接状态为2\n设备编号 12 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口41接状态为2\n设备编号 12 设备名称test1设备接口42接状态为2\n设备编号 12 设备名称test1设备接口43接状态为2\n设备编号 12 设备名称test1设备接口44接状态为2\n设备编号 12 设备名称test1设备接口45接状态为2\n设备编号 12 设备名称test1设备接口46接状态为2\n设备编号 12 设备名称test1设备接口47接状态为2\n设备编号 12 设备名称test1设备接口48接状态为2\n设备编号 12 设备名称test1设备接口49接状态为2\n设备编号 12 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口51接状态为2\n设备编号 12 设备名称test1设备接口52接状态为2\n设备编号 12 设备名称test1设备接口53接状态为2\n设备编号 12 设备名称test1设备接口54接状态为2\n设备编号 12 设备名称test1设备接口55接状态为2\n设备编号 12 设备名称test1设备接口56接状态为2\n设备编号 12 设备名称test1设备接口57接状态为2\n设备编号 12 设备名称test1设备接口58接状态为2\n设备编号 12 设备名称test1设备接口59接状态为2\n设备编号 12 设备名称test1设备接口60接状态为2\n设备编号 12 设备名称test1设备接口61接状态为2\n设备编号 12 设备名称test1设备接口62接状态为2\n设备编号 12 设备名称test1设备接口66接状态为2\n设备编号 12 设备名称test1设备接口67接状态为2\n设备编号 12 设备名称test1设备接口68接状态为2\n设备编号 12 设备名称test1设备接口71接状态为2\n设备编号 12 设备名称test1设备接口72接状态为2\n设备编号 12 设备名称test1设备接口73接状态为2\n设备编号 12 设备名称test1设备接口74接状态为2\n设备编号 12 设备名称test1设备接口75接状态为2\n设备编号 12 设备名称test1设备接口76接状态为2\n设备编号 12 设备名称test1设备接口77接状态为2\n设备编号 12 设备名称test1设备接口78接状态为2\n设备编号 12 设备名称test1设备接口80接状态为2\n设备编号 12 设备名称test1设备接口81接状态为2\n设备编号 12 设备名称test1设备接口82接状态为2\n设备编号 12 设备名称test1设备接口83接状态为2\n设备编号 12 设备名称test1设备接口84接状态为2\n设备编号 12 设备名称test1设备接口85接状态为2\n设备编号 12 设备名称test1设备接口86接状态为2\n设备编号 12 设备名称test1设备接口87接状态为2\n设备编号 12 设备名称test1设备接口88接状态为2\n设备编号 12 设备名称test1设备接口89接状态为2\n设备编号 12 设备名称test1设备接口90接状态为2\n设备编号 12 设备名称test1设备接口91接状态为2\n设备编号 12 设备名称test1设备接口92接状态为2\n设备编号 12 设备名称test1设备接口93接状态为2\n设备编号 12 设备名称test1设备接口94接状态为2\n设备编号 12 设备名称test1设备接口95接状态为2\n设备编号 12 设备名称test1设备接口96接状态为2\n设备编号 12 设备名称test1设备接口97接状态为2\n设备编号 12 设备名称test1设备接口98接状态为2\n设备编号 12 设备名称test1设备接口99接状态为2\n设备编号 12 设备名称test1设备接口100接状态为2\n设备编号 12 设备名称test1设备接口101接状态为2\n设备编号 12 设备名称test1设备接口102接状态为2\n设备编号 12 设备名称test1设备接口103接状态为2\n设备编号 12 设备名称test1设备接口104接状态为2\n设备编号 12 设备名称test1设备接口111接状态为2', 'unread', '2025-09-21 17:48:35'); +INSERT INTO `internal_message` VALUES (59, 2, '设备 12 的风扇转速状态为0', 'unread', '2025-09-21 17:54:47'); +INSERT INTO `internal_message` VALUES (60, 2, '设备 12 的温度<20或者>45', 'unread', '2025-09-21 17:54:47'); +INSERT INTO `internal_message` VALUES (61, 2, '设备编号 11 设备名称test1设备接口4接状态为2\n设备编号 11 设备名称test1设备接口6接状态为2\n设备编号 11 设备名称test1设备接口10接状态为2\n设备编号 11 设备名称test1设备接口21接状态为2\n设备编号 11 设备名称test1设备接口22接状态为2\n设备编号 11 设备名称test1设备接口23接状态为2\n设备编号 11 设备名称test1设备接口25接状态为2\n设备编号 11 设备名称test1设备接口26接状态为2\n设备编号 11 设备名称test1设备接口27接状态为2\n设备编号 11 设备名称test1设备接口28接状态为2\n设备编号 11 设备名称test1设备接口29接状态为2\n设备编号 11 设备名称test1设备接口30接状态为2\n设备编号 11 设备名称test1设备接口31接状态为2\n设备编号 11 设备名称test1设备接口32接状态为2\n设备编号 11 设备名称test1设备接口33接状态为2\n设备编号 11 设备名称test1设备接口34接状态为2\n设备编号 11 设备名称test1设备接口35接状态为2\n设备编号 11 设备名称test1设备接口36接状态为2\n设备编号 11 设备名称test1设备接口37接状态为2\n设备编号 11 设备名称test1设备接口38接状态为2\n设备编号 11 设备名称test1设备接口39接状态为2\n设备编号 11 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口4接状态为2\n设备编号 12 设备名称test1设备接口7接状态为2\n设备编号 12 设备名称test1设备接口8接状态为2\n设备编号 12 设备名称test1设备接口10接状态为2\n设备编号 12 设备名称test1设备接口12接状态为2\n设备编号 12 设备名称test1设备接口14接状态为2\n设备编号 12 设备名称test1设备接口15接状态为2\n设备编号 12 设备名称test1设备接口16接状态为2\n设备编号 12 设备名称test1设备接口17接状态为2\n设备编号 12 设备名称test1设备接口20接状态为2\n设备编号 12 设备名称test1设备接口22接状态为2\n设备编号 12 设备名称test1设备接口24接状态为2\n设备编号 12 设备名称test1设备接口25接状态为2\n设备编号 12 设备名称test1设备接口26接状态为2\n设备编号 12 设备名称test1设备接口27接状态为2\n设备编号 12 设备名称test1设备接口28接状态为2\n设备编号 12 设备名称test1设备接口29接状态为2\n设备编号 12 设备名称test1设备接口30接状态为2\n设备编号 12 设备名称test1设备接口31接状态为2\n设备编号 12 设备名称test1设备接口32接状态为2\n设备编号 12 设备名称test1设备接口33接状态为2\n设备编号 12 设备名称test1设备接口34接状态为2\n设备编号 12 设备名称test1设备接口35接状态为2\n设备编号 12 设备名称test1设备接口36接状态为2\n设备编号 12 设备名称test1设备接口37接状态为2\n设备编号 12 设备名称test1设备接口38接状态为2\n设备编号 12 设备名称test1设备接口39接状态为2\n设备编号 12 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口41接状态为2\n设备编号 12 设备名称test1设备接口42接状态为2\n设备编号 12 设备名称test1设备接口43接状态为2\n设备编号 12 设备名称test1设备接口44接状态为2\n设备编号 12 设备名称test1设备接口45接状态为2\n设备编号 12 设备名称test1设备接口46接状态为2\n设备编号 12 设备名称test1设备接口47接状态为2\n设备编号 12 设备名称test1设备接口48接状态为2\n设备编号 12 设备名称test1设备接口49接状态为2\n设备编号 12 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口51接状态为2\n设备编号 12 设备名称test1设备接口52接状态为2\n设备编号 12 设备名称test1设备接口53接状态为2\n设备编号 12 设备名称test1设备接口54接状态为2\n设备编号 12 设备名称test1设备接口55接状态为2\n设备编号 12 设备名称test1设备接口56接状态为2\n设备编号 12 设备名称test1设备接口57接状态为2\n设备编号 12 设备名称test1设备接口58接状态为2\n设备编号 12 设备名称test1设备接口59接状态为2\n设备编号 12 设备名称test1设备接口60接状态为2\n设备编号 12 设备名称test1设备接口61接状态为2\n设备编号 12 设备名称test1设备接口62接状态为2\n设备编号 12 设备名称test1设备接口66接状态为2\n设备编号 12 设备名称test1设备接口67接状态为2\n设备编号 12 设备名称test1设备接口68接状态为2\n设备编号 12 设备名称test1设备接口71接状态为2\n设备编号 12 设备名称test1设备接口72接状态为2\n设备编号 12 设备名称test1设备接口73接状态为2\n设备编号 12 设备名称test1设备接口74接状态为2\n设备编号 12 设备名称test1设备接口75接状态为2\n设备编号 12 设备名称test1设备接口76接状态为2\n设备编号 12 设备名称test1设备接口77接状态为2\n设备编号 12 设备名称test1设备接口78接状态为2\n设备编号 12 设备名称test1设备接口80接状态为2\n设备编号 12 设备名称test1设备接口81接状态为2\n设备编号 12 设备名称test1设备接口82接状态为2\n设备编号 12 设备名称test1设备接口83接状态为2\n设备编号 12 设备名称test1设备接口84接状态为2\n设备编号 12 设备名称test1设备接口85接状态为2\n设备编号 12 设备名称test1设备接口86接状态为2\n设备编号 12 设备名称test1设备接口87接状态为2\n设备编号 12 设备名称test1设备接口88接状态为2\n设备编号 12 设备名称test1设备接口89接状态为2\n设备编号 12 设备名称test1设备接口90接状态为2\n设备编号 12 设备名称test1设备接口91接状态为2\n设备编号 12 设备名称test1设备接口92接状态为2\n设备编号 12 设备名称test1设备接口93接状态为2\n设备编号 12 设备名称test1设备接口94接状态为2\n设备编号 12 设备名称test1设备接口95接状态为2\n设备编号 12 设备名称test1设备接口96接状态为2\n设备编号 12 设备名称test1设备接口97接状态为2\n设备编号 12 设备名称test1设备接口98接状态为2\n设备编号 12 设备名称test1设备接口99接状态为2\n设备编号 12 设备名称test1设备接口100接状态为2\n设备编号 12 设备名称test1设备接口101接状态为2\n设备编号 12 设备名称test1设备接口102接状态为2\n设备编号 12 设备名称test1设备接口103接状态为2\n设备编号 12 设备名称test1设备接口104接状态为2\n设备编号 12 设备名称test1设备接口111接状态为2', 'unread', '2025-09-21 17:54:49'); +INSERT INTO `internal_message` VALUES (62, 2, '设备 12 的风扇转速状态为0', 'unread', '2025-09-21 18:12:59'); +INSERT INTO `internal_message` VALUES (63, 2, '设备 12 的温度<20或者>45', 'unread', '2025-09-21 18:13:00'); +INSERT INTO `internal_message` VALUES (64, 2, '设备编号 11 设备名称test1设备接口4接状态为2\n设备编号 11 设备名称test1设备接口6接状态为2\n设备编号 11 设备名称test1设备接口10接状态为2\n设备编号 11 设备名称test1设备接口21接状态为2\n设备编号 11 设备名称test1设备接口22接状态为2\n设备编号 11 设备名称test1设备接口23接状态为2\n设备编号 11 设备名称test1设备接口25接状态为2\n设备编号 11 设备名称test1设备接口26接状态为2\n设备编号 11 设备名称test1设备接口27接状态为2\n设备编号 11 设备名称test1设备接口28接状态为2\n设备编号 11 设备名称test1设备接口29接状态为2\n设备编号 11 设备名称test1设备接口30接状态为2\n设备编号 11 设备名称test1设备接口31接状态为2\n设备编号 11 设备名称test1设备接口32接状态为2\n设备编号 11 设备名称test1设备接口33接状态为2\n设备编号 11 设备名称test1设备接口34接状态为2\n设备编号 11 设备名称test1设备接口35接状态为2\n设备编号 11 设备名称test1设备接口36接状态为2\n设备编号 11 设备名称test1设备接口37接状态为2\n设备编号 11 设备名称test1设备接口38接状态为2\n设备编号 11 设备名称test1设备接口39接状态为2\n设备编号 11 设备名称test1设备接口40接状态为2\n设备编号 11 设备名称test1设备接口41接状态为2\n设备编号 11 设备名称test1设备接口42接状态为2\n设备编号 11 设备名称test1设备接口43接状态为2\n设备编号 11 设备名称test1设备接口44接状态为2\n设备编号 11 设备名称test1设备接口45接状态为2\n设备编号 11 设备名称test1设备接口46接状态为2\n设备编号 11 设备名称test1设备接口47接状态为2\n设备编号 11 设备名称test1设备接口48接状态为2\n设备编号 11 设备名称test1设备接口49接状态为2\n设备编号 11 设备名称test1设备接口50接状态为2\n设备编号 11 设备名称test1设备接口52接状态为2\n设备编号 11 设备名称test1设备接口53接状态为2\n设备编号 11 设备名称test1设备接口56接状态为2\n设备编号 11 设备名称test1设备接口57接状态为2\n设备编号 11 设备名称test1设备接口58接状态为2\n设备编号 11 设备名称test1设备接口60接状态为2\n设备编号 11 设备名称test1设备接口63接状态为2\n设备编号 11 设备名称test1设备接口64接状态为2\n设备编号 11 设备名称test1设备接口65接状态为2\n设备编号 11 设备名称test1设备接口66接状态为2\n设备编号 11 设备名称test1设备接口68接状态为2\n设备编号 11 设备名称test1设备接口69接状态为2\n设备编号 11 设备名称test1设备接口70接状态为2\n设备编号 11 设备名称test1设备接口71接状态为2\n设备编号 11 设备名称test1设备接口72接状态为2\n设备编号 11 设备名称test1设备接口73接状态为2\n设备编号 11 设备名称test1设备接口74接状态为2\n设备编号 11 设备名称test1设备接口75接状态为2\n设备编号 11 设备名称test1设备接口76接状态为2\n设备编号 11 设备名称test1设备接口77接状态为2\n设备编号 11 设备名称test1设备接口78接状态为2\n设备编号 11 设备名称test1设备接口79接状态为2\n设备编号 11 设备名称test1设备接口80接状态为2\n设备编号 11 设备名称test1设备接口81接状态为2\n设备编号 11 设备名称test1设备接口83接状态为2\n设备编号 11 设备名称test1设备接口85接状态为2\n设备编号 11 设备名称test1设备接口88接状态为2\n设备编号 11 设备名称test1设备接口89接状态为2\n设备编号 11 设备名称test1设备接口93接状态为2\n设备编号 11 设备名称test1设备接口94接状态为2\n设备编号 11 设备名称test1设备接口95接状态为2\n设备编号 11 设备名称test1设备接口96接状态为2\n设备编号 11 设备名称test1设备接口98接状态为2\n设备编号 11 设备名称test1设备接口99接状态为2\n设备编号 11 设备名称test1设备接口105接状态为2\n设备编号 11 设备名称test1设备接口106接状态为2\n设备编号 11 设备名称test1设备接口107接状态为2\n设备编号 11 设备名称test1设备接口108接状态为2\n设备编号 11 设备名称test1设备接口109接状态为2\n设备编号 11 设备名称test1设备接口110接状态为2\n设备编号 11 设备名称test1设备接口111接状态为2\n设备编号 11 设备名称test1设备接口112接状态为2\n设备编号 11 设备名称test1设备接口113接状态为2\n设备编号 11 设备名称test1设备接口114接状态为2\n设备编号 11 设备名称test1设备接口115接状态为2\n设备编号 11 设备名称test1设备接口116接状态为2\n设备编号 11 设备名称test1设备接口117接状态为2\n设备编号 11 设备名称test1设备接口118接状态为2\n设备编号 11 设备名称test1设备接口119接状态为2\n设备编号 11 设备名称test1设备接口120接状态为2\n设备编号 11 设备名称test1设备接口121接状态为2\n设备编号 11 设备名称test1设备接口122接状态为2\n设备编号 11 设备名称test1设备接口123接状态为2\n设备编号 11 设备名称test1设备接口124接状态为2\n设备编号 11 设备名称test1设备接口125接状态为2\n设备编号 11 设备名称test1设备接口127接状态为2\n设备编号 11 设备名称test1设备接口128接状态为2\n设备编号 11 设备名称test1设备接口129接状态为2\n设备编号 11 设备名称test1设备接口130接状态为2\n设备编号 11 设备名称test1设备接口132接状态为2\n设备编号 11 设备名称test1设备接口133接状态为2\n设备编号 11 设备名称test1设备接口134接状态为2\n设备编号 11 设备名称test1设备接口135接状态为2\n设备编号 11 设备名称test1设备接口137接状态为2\n设备编号 11 设备名称test1设备接口138接状态为2\n设备编号 11 设备名称test1设备接口141接状态为2\n设备编号 11 设备名称test1设备接口143接状态为2\n设备编号 11 设备名称test1设备接口144接状态为2\n设备编号 11 设备名称test1设备接口145接状态为2\n设备编号 11 设备名称test1设备接口146接状态为2\n设备编号 11 设备名称test1设备接口147接状态为2\n设备编号 11 设备名称test1设备接口148接状态为2\n设备编号 11 设备名称test1设备接口153接状态为2\n设备编号 11 设备名称test1设备接口157接状态为2\n设备编号 11 设备名称test1设备接口164接状态为2\n设备编号 11 设备名称test1设备接口165接状态为2\n设备编号 11 设备名称test1设备接口166接状态为2\n设备编号 11 设备名称test1设备接口169接状态为2\n设备编号 11 设备名称test1设备接口170接状态为2\n设备编号 11 设备名称test1设备接口171接状态为2\n设备编号 11 设备名称test1设备接口172接状态为2\n设备编号 11 设备名称test1设备接口173接状态为2\n设备编号 11 设备名称test1设备接口174接状态为2\n设备编号 11 设备名称test1设备接口175接状态为2\n设备编号 11 设备名称test1设备接口176接状态为2\n设备编号 11 设备名称test1设备接口177接状态为2\n设备编号 11 设备名称test1设备接口178接状态为2\n设备编号 11 设备名称test1设备接口179接状态为2\n设备编号 11 设备名称test1设备接口180接状态为2\n设备编号 11 设备名称test1设备接口181接状态为2\n设备编号 11 设备名称test1设备接口182接状态为2\n设备编号 11 设备名称test1设备接口183接状态为2\n设备编号 11 设备名称test1设备接口184接状态为2\n设备编号 11 设备名称test1设备接口185接状态为2\n设备编号 11 设备名称test1设备接口186接状态为2\n设备编号 11 设备名称test1设备接口187接状态为2\n设备编号 11 设备名称test1设备接口188接状态为2\n设备编号 11 设备名称test1设备接口189接状态为2\n设备编号 11 设备名称test1设备接口190接状态为2\n设备编号 11 设备名称test1设备接口191接状态为2\n设备编号 11 设备名称test1设备接口192接状态为2\n设备编号 11 设备名称test1设备接口193接状态为2\n设备编号 11 设备名称test1设备接口194接状态为2\n设备编号 11 设备名称test1设备接口195接状态为2\n设备编号 11 设备名称test1设备接口196接状态为2\n设备编号 11 设备名称test1设备接口197接状态为2\n设备编号 11 设备名称test1设备接口198接状态为2\n设备编号 11 设备名称test1设备接口199接状态为2\n设备编号 11 设备名称test1设备接口200接状态为2\n设备编号 11 设备名称test1设备接口211接状态为2\n设备编号 11 设备名称test1设备接口212接状态为2\n设备编号 11 设备名称test1设备接口216接状态为2\n设备编号 11 设备名称test1设备接口228接状态为2\n设备编号 11 设备名称test1设备接口230接状态为2\n设备编号 11 设备名称test1设备接口231接状态为2\n设备编号 11 设备名称test1设备接口236接状态为2\n设备编号 11 设备名称test1设备接口239接状态为2\n设备编号 11 设备名称test1设备接口256接状态为2\n设备编号 11 设备名称test1设备接口259接状态为2\n设备编号 11 设备名称test1设备接口260接状态为2\n设备编号 11 设备名称test1设备接口261接状态为2\n设备编号 11 设备名称test1设备接口263接状态为2\n设备编号 11 设备名称test1设备接口264接状态为2\n设备编号 11 设备名称test1设备接口266接状态为2\n设备编号 11 设备名称test1设备接口267接状态为2\n设备编号 11 设备名称test1设备接口268接状态为2\n设备编号 11 设备名称test1设备接口269接状态为2\n设备编号 12 设备名称test1设备接口4接状态为2\n设备编号 12 设备名称test1设备接口7接状态为2\n设备编号 12 设备名称test1设备接口8接状态为2\n设备编号 12 设备名称test1设备接口10接状态为2\n设备编号 12 设备名称test1设备接口12接状态为2\n设备编号 12 设备名称test1设备接口14接状态为2\n设备编号 12 设备名称test1设备接口15接状态为2\n设备编号 12 设备名称test1设备接口16接状态为2\n设备编号 12 设备名称test1设备接口17接状态为2\n设备编号 12 设备名称test1设备接口20接状态为2\n设备编号 12 设备名称test1设备接口22接状态为2\n设备编号 12 设备名称test1设备接口24接状态为2\n设备编号 12 设备名称test1设备接口25接状态为2\n设备编号 12 设备名称test1设备接口26接状态为2\n设备编号 12 设备名称test1设备接口27接状态为2\n设备编号 12 设备名称test1设备接口28接状态为2\n设备编号 12 设备名称test1设备接口29接状态为2\n设备编号 12 设备名称test1设备接口30接状态为2\n设备编号 12 设备名称test1设备接口31接状态为2\n设备编号 12 设备名称test1设备接口32接状态为2\n设备编号 12 设备名称test1设备接口33接状态为2\n设备编号 12 设备名称test1设备接口34接状态为2\n设备编号 12 设备名称test1设备接口35接状态为2\n设备编号 12 设备名称test1设备接口36接状态为2\n设备编号 12 设备名称test1设备接口37接状态为2\n设备编号 12 设备名称test1设备接口38接状态为2\n设备编号 12 设备名称test1设备接口39接状态为2\n设备编号 12 设备名称test1设备接口40接状态为2\n设备编号 12 设备名称test1设备接口41接状态为2\n设备编号 12 设备名称test1设备接口42接状态为2\n设备编号 12 设备名称test1设备接口43接状态为2\n设备编号 12 设备名称test1设备接口44接状态为2\n设备编号 12 设备名称test1设备接口45接状态为2\n设备编号 12 设备名称test1设备接口46接状态为2\n设备编号 12 设备名称test1设备接口47接状态为2\n设备编号 12 设备名称test1设备接口48接状态为2\n设备编号 12 设备名称test1设备接口49接状态为2\n设备编号 12 设备名称test1设备接口50接状态为2\n设备编号 12 设备名称test1设备接口51接状态为2\n设备编号 12 设备名称test1设备接口52接状态为2\n设备编号 12 设备名称test1设备接口53接状态为2\n设备编号 12 设备名称test1设备接口54接状态为2\n设备编号 12 设备名称test1设备接口55接状态为2\n设备编号 12 设备名称test1设备接口56接状态为2\n设备编号 12 设备名称test1设备接口57接状态为2\n设备编号 12 设备名称test1设备接口58接状态为2\n设备编号 12 设备名称test1设备接口59接状态为2\n设备编号 12 设备名称test1设备接口60接状态为2\n设备编号 12 设备名称test1设备接口61接状态为2\n设备编号 12 设备名称test1设备接口62接状态为2\n设备编号 12 设备名称test1设备接口66接状态为2\n设备编号 12 设备名称test1设备接口67接状态为2\n设备编号 12 设备名称test1设备接口68接状态为2\n设备编号 12 设备名称test1设备接口71接状态为2\n设备编号 12 设备名称test1设备接口72接状态为2\n设备编号 12 设备名称test1设备接口73接状态为2\n设备编号 12 设备名称test1设备接口74接状态为2\n设备编号 12 设备名称test1设备接口75接状态为2\n设备编号 12 设备名称test1设备接口76接状态为2\n设备编号 12 设备名称test1设备接口77接状态为2\n设备编号 12 设备名称test1设备接口78接状态为2\n设备编号 12 设备名称test1设备接口80接状态为2\n设备编号 12 设备名称test1设备接口81接状态为2\n设备编号 12 设备名称test1设备接口82接状态为2\n设备编号 12 设备名称test1设备接口83接状态为2\n设备编号 12 设备名称test1设备接口84接状态为2\n设备编号 12 设备名称test1设备接口85接状态为2\n设备编号 12 设备名称test1设备接口86接状态为2\n设备编号 12 设备名称test1设备接口87接状态为2\n设备编号 12 设备名称test1设备接口88接状态为2\n设备编号 12 设备名称test1设备接口89接状态为2\n设备编号 12 设备名称test1设备接口90接状态为2\n设备编号 12 设备名称test1设备接口91接状态为2\n设备编号 12 设备名称test1设备接口92接状态为2\n设备编号 12 设备名称test1设备接口93接状态为2\n设备编号 12 设备名称test1设备接口94接状态为2\n设备编号 12 设备名称test1设备接口95接状态为2\n设备编号 12 设备名称test1设备接口96接状态为2\n设备编号 12 设备名称test1设备接口97接状态为2\n设备编号 12 设备名称test1设备接口98接状态为2\n设备编号 12 设备名称test1设备接口99接状态为2\n设备编号 12 设备名称test1设备接口100接状态为2\n设备编号 12 设备名称test1设备接口101接状态为2\n设备编号 12 设备名称test1设备接口102接状态为2\n设备编号 12 设备名称test1设备接口103接状态为2\n设备编号 12 设备名称test1设备接口104接状态为2\n设备编号 12 设备名称test1设备接口111接状态为2', 'unread', '2025-09-21 18:13:01'); +INSERT INTO `internal_message` VALUES (65, 2, '设备 11 的风扇转速状态为0\n设备 12 的风扇转速状态为0', 'unread', '2025-09-21 21:47:35'); +INSERT INTO `internal_message` VALUES (66, 2, '设备 11 的风扇转速状态为0\n设备 12 的风扇转速状态为0', 'unread', '2025-09-21 21:52:35'); + +-- ---------------------------- +-- Table structure for knowledge_entries +-- ---------------------------- +DROP TABLE IF EXISTS `knowledge_entries`; +CREATE TABLE `knowledge_entries` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容', + `embedding` longblob NULL COMMENT '向量', + `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标题', + `createtime` datetime NULL DEFAULT NULL COMMENT '创建时间', + `updatetime` datetime NULL DEFAULT NULL COMMENT '更新时间', + `temporaryentry` int NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 514 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of knowledge_entries +-- ---------------------------- + +-- ---------------------------- +-- Table structure for local_knowledge +-- ---------------------------- +DROP TABLE IF EXISTS `local_knowledge`; +CREATE TABLE `local_knowledge` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '知识ID', + `doc_title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文档标题', + `doc_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '文档简介', + `file_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件存储路径', + `created_by` bigint NULL DEFAULT NULL COMMENT '创建人ID', + `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_by` bigint NULL DEFAULT NULL COMMENT '最后修改人', + `update_date` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间', + `doc_status` tinyint NULL DEFAULT 1 COMMENT '状态(0-下架,1-发布)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_knowledge_title`(`doc_title` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '专家知识库' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of local_knowledge +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qa_history +-- ---------------------------- +DROP TABLE IF EXISTS `qa_history`; +CREATE TABLE `qa_history` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID', + `user_question` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户问题', + `system_answer` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '系统回答', + `source_origin` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '来源(web/app等)', + `created_by` bigint NULL DEFAULT NULL COMMENT '用户ID', + `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', + `record_status` tinyint NULL DEFAULT 1 COMMENT '状态(0-删除,1-正常)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_qa_history_create_by`(`created_by` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '问答历史记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qa_history +-- ---------------------------- + +-- ---------------------------- +-- Table structure for schedule_rules +-- ---------------------------- +DROP TABLE IF EXISTS `schedule_rules`; +CREATE TABLE `schedule_rules` ( + `id` int NOT NULL AUTO_INCREMENT, + `rule_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规则名称', + `rule_type` tinyint NULL DEFAULT NULL COMMENT '规则类型: 0-间隔采集, 1-固定时间采集 2-立即采集', + `frequency` int NULL DEFAULT NULL COMMENT '采集频率(当rule_type=0时有效),如\"5分钟\"', + `gather_time` datetime NULL DEFAULT NULL COMMENT '采集时间', + `start_time` datetime NULL DEFAULT NULL COMMENT '采集开始时间', + `end_time` datetime NULL DEFAULT NULL COMMENT '采集结束时间', + `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `created_by` bigint NULL DEFAULT NULL COMMENT '创建人', + `status` int NULL DEFAULT NULL COMMENT '该规则执行状态\r\n0 等待执行\r\n1正在执行\r\n2 执行完成\r\n3 执行失败\r\n4 取消执行\r\n', + PRIMARY KEY (`id`) USING BTREE, + CONSTRAINT `chk_rule_type` CHECK (`rule_type` in (0,1,2)) +) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '定时采集规则表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of schedule_rules +-- ---------------------------- +INSERT INTO `schedule_rules` VALUES (1, NULL, 2, 0, NULL, NULL, NULL, '2025-09-21 15:47:40', NULL, 3); +INSERT INTO `schedule_rules` VALUES (2, NULL, 2, NULL, NULL, NULL, NULL, '2025-09-21 16:05:11', NULL, 3); +INSERT INTO `schedule_rules` VALUES (3, NULL, 2, NULL, NULL, NULL, NULL, '2025-09-21 16:16:23', NULL, 3); +INSERT INTO `schedule_rules` VALUES (4, NULL, 2, NULL, NULL, NULL, NULL, '2025-09-21 16:57:36', NULL, 2); +INSERT INTO `schedule_rules` VALUES (8, NULL, 1, 0, '2025-09-21 00:00:00', NULL, NULL, '2025-09-21 17:33:13', NULL, 4); +INSERT INTO `schedule_rules` VALUES (9, NULL, 1, 0, '2025-09-21 00:00:00', NULL, NULL, '2025-09-21 17:34:06', NULL, 2); +INSERT INTO `schedule_rules` VALUES (10, NULL, 1, 0, '2025-09-21 00:00:00', NULL, NULL, '2025-09-21 17:42:12', NULL, 4); +INSERT INTO `schedule_rules` VALUES (11, NULL, 1, 0, '2025-09-21 00:00:00', NULL, NULL, '2025-09-21 17:45:51', NULL, 2); +INSERT INTO `schedule_rules` VALUES (12, NULL, 1, 0, '2025-09-21 17:52:00', NULL, NULL, '2025-09-21 17:50:33', NULL, 2); +INSERT INTO `schedule_rules` VALUES (13, NULL, 2, 0, NULL, '2025-09-21 18:01:00', '2025-09-21 18:06:00', '2025-09-21 18:02:14', NULL, 3); +INSERT INTO `schedule_rules` VALUES (14, NULL, 2, 0, NULL, '2025-09-21 18:04:00', '2025-09-21 18:10:00', '2025-09-21 18:02:48', NULL, 3); +INSERT INTO `schedule_rules` VALUES (15, NULL, 0, 0, NULL, '2025-09-21 18:06:00', '2025-09-21 18:12:00', '2025-09-21 18:04:46', NULL, 4); +INSERT INTO `schedule_rules` VALUES (16, NULL, 0, 5, NULL, '2025-09-21 18:06:00', '2025-09-21 18:12:00', '2025-09-21 18:05:03', NULL, 2); +INSERT INTO `schedule_rules` VALUES (17, NULL, 0, 5, NULL, '2025-09-21 21:46:00', '2025-09-21 21:53:00', '2025-09-21 21:45:07', NULL, 2); +INSERT INTO `schedule_rules` VALUES (18, NULL, 0, 5, NULL, '2025-09-21 22:04:00', '2025-09-21 22:10:00', '2025-09-21 22:03:00', NULL, 2); +INSERT INTO `schedule_rules` VALUES (19, NULL, 2, 5, NULL, '2025-09-21 22:04:00', '2025-09-21 22:10:00', '2025-09-21 22:12:03', NULL, 2); +INSERT INTO `schedule_rules` VALUES (20, NULL, 2, 5, NULL, '2025-09-21 22:04:00', '2025-09-21 22:10:00', '2025-09-21 22:13:38', NULL, 2); + +-- ---------------------------- +-- Table structure for sys_alarm_rule +-- ---------------------------- +DROP TABLE IF EXISTS `sys_alarm_rule`; +CREATE TABLE `sys_alarm_rule` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规则唯一标识', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规则名称', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '规则详细描述', + `equ_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '适用的设备类型ID(逻辑关联equ_base.Equ_type)', + `param` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '监控参数', + `max` decimal(10, 2) NULL DEFAULT NULL COMMENT '参数上限阈值', + `min` decimal(10, 2) NULL DEFAULT NULL COMMENT '参数下限阈值', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人ID', + `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人ID', + `status` int(10) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '规则状态(0/1)', + `priority` tinyint NULL DEFAULT 1 COMMENT '规则优先级(1-5)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_equ_type`(`equ_type` ASC) USING BTREE COMMENT '设备类型索引', + CONSTRAINT `chk_threshold` CHECK (`max` > `min`) +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备预警规则系统' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_alarm_rule +-- ---------------------------- + +-- ---------------------------- +-- Table structure for sys_config +-- ---------------------------- +DROP TABLE IF EXISTS `sys_config`; +CREATE TABLE `sys_config` ( + `config_id` int NOT NULL AUTO_INCREMENT COMMENT '参数主键', + `config_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '参数名称', + `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '参数键名', + `config_value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '参数键值', + `config_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'N' COMMENT '系统内置(Y是 N否)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`config_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_config +-- ---------------------------- +INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow'); +INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '初始化密码 123456'); +INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '深色主题theme-dark,浅色主题theme-light'); +INSERT INTO `sys_config` VALUES (4, '账号自助-验证码开关', 'sys.account.captchaEnabled', 'true', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '是否开启验证码功能(true开启,false关闭)'); +INSERT INTO `sys_config` VALUES (5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '是否开启注册用户功能(true开启,false关闭)'); +INSERT INTO `sys_config` VALUES (6, '用户登录-黑名单列表', 'sys.login.blackIPList', '', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)'); +INSERT INTO `sys_config` VALUES (7, '用户管理-初始密码修改策略', 'sys.account.initPasswordModify', '1', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '0:初始密码修改策略关闭,没有任何提示,1:提醒用户,如果未修改初始密码,则在登录时就会提醒修改密码对话框'); +INSERT INTO `sys_config` VALUES (8, '用户管理-账号密码更新周期', 'sys.account.passwordValidateDays', '0', 'Y', 'admin', '2025-07-17 15:27:47', '', NULL, '密码更新周期(填写数字,数据初始化值为0不限制,若修改必须为大于0小于365的正整数),如果超过这个周期登录系统时,则在登录时就会提醒修改密码对话框'); + +-- ---------------------------- +-- Table structure for sys_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dict_data`; +CREATE TABLE `sys_dict_data` ( + `dict_code` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `dict_sort` int NULL DEFAULT 0 COMMENT '字典排序', + `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典标签', + `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)', + `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '表格回显样式', + `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`dict_code`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 120 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_dict_data +-- ---------------------------- +INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '性别男'); +INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '性别女'); +INSERT INTO `sys_dict_data` VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '性别未知'); +INSERT INTO `sys_dict_data` VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '显示菜单'); +INSERT INTO `sys_dict_data` VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '隐藏菜单'); +INSERT INTO `sys_dict_data` VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '默认分组'); +INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '系统分组'); +INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '系统默认是'); +INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '系统默认否'); +INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '通知'); +INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '公告'); +INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '关闭状态'); +INSERT INTO `sys_dict_data` VALUES (18, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '其他操作'); +INSERT INTO `sys_dict_data` VALUES (19, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '新增操作'); +INSERT INTO `sys_dict_data` VALUES (20, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '修改操作'); +INSERT INTO `sys_dict_data` VALUES (21, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '删除操作'); +INSERT INTO `sys_dict_data` VALUES (22, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '授权操作'); +INSERT INTO `sys_dict_data` VALUES (23, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '导出操作'); +INSERT INTO `sys_dict_data` VALUES (24, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '导入操作'); +INSERT INTO `sys_dict_data` VALUES (25, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '强退操作'); +INSERT INTO `sys_dict_data` VALUES (26, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '生成操作'); +INSERT INTO `sys_dict_data` VALUES (27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '清空操作'); +INSERT INTO `sys_dict_data` VALUES (28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '正常状态'); +INSERT INTO `sys_dict_data` VALUES (29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (100, 0, '未处理', 'UNHANDLED', 'alert_message_status', NULL, 'primary', 'N', '0', 'admin', '2025-09-15 22:43:19', 'admin', '2025-09-15 22:44:23', NULL); +INSERT INTO `sys_dict_data` VALUES (105, 0, '采集表', 'equ_gather', 'sys_table', NULL, 'default', 'N', '0', 'admin', '2025-09-15 22:47:01', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (106, 0, '接口表', 'equ_interface', 'sys_table', NULL, 'default', 'N', '0', 'admin', '2025-09-15 22:47:31', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (107, 0, '路由表', 'equ_routing', 'sys_table', NULL, 'default', 'N', '0', 'admin', '2025-09-15 22:47:50', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (108, 0, '单板状态表', 'equ_veneer', 'sys_table', NULL, 'default', 'N', '0', 'admin', '2025-09-15 22:48:24', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (109, 0, 'vlan', 'equ_vlan', 'sys_table', NULL, 'default', 'N', '0', 'admin', '2025-09-15 22:48:51', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (110, 0, 'cpu使用率', 'cpu_utilization', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 14:59:23', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (111, 0, '内存使用率', 'memory_utilization', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 14:59:40', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (112, 0, '风扇转速', 'fan_speed', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 14:59:58', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (113, 0, '设备温度', 'temperature', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 15:00:23', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (114, 0, '健康度', 'health', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 15:00:49', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (115, 0, '单板在位状态', 'veneer_status', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 15:01:46', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (116, 0, '设备编号', 'equ_id', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 15:02:07', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (117, 0, '设备名称', 'equ_name', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 15:02:30', 'admin', '2025-09-21 15:40:10', NULL); +INSERT INTO `sys_dict_data` VALUES (118, 0, '单板id', 'veneer_id', 'alert_param', NULL, 'default', 'N', '0', 'admin', '2025-09-20 15:02:54', '', NULL, NULL); +INSERT INTO `sys_dict_data` VALUES (119, 0, '已处理', 'HANDLED', 'alert_message_status', NULL, 'default', 'N', '0', 'admin', '2025-09-20 17:07:37', '', NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `sys_dict_type`; +CREATE TABLE `sys_dict_type` ( + `dict_id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典名称', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`dict_id`) USING BTREE, + UNIQUE INDEX `dict_type`(`dict_type` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 105 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_dict_type +-- ---------------------------- +INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '用户性别列表'); +INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '菜单状态列表'); +INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '系统开关列表'); +INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '任务状态列表'); +INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '任务分组列表'); +INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '系统是否列表'); +INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '通知类型列表'); +INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '通知状态列表'); +INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '操作类型列表'); +INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'admin', '2025-07-17 15:27:47', '', NULL, '登录状态列表'); +INSERT INTO `sys_dict_type` VALUES (101, '预警信息状态', 'alert_message_status', '0', 'admin', '2025-09-12 15:43:57', '', NULL, '预警信息列表'); +INSERT INTO `sys_dict_type` VALUES (103, '表的类型', 'sys_table', '0', 'admin', '2025-09-15 22:46:20', '', NULL, NULL); +INSERT INTO `sys_dict_type` VALUES (104, '预警参数', 'alert_param', '0', 'admin', '2025-09-20 14:58:39', '', NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_job +-- ---------------------------- +DROP TABLE IF EXISTS `sys_job`; +CREATE TABLE `sys_job` ( + `job_id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID', + `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '任务名称', + `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名', + `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '调用目标字符串', + `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT 'cron执行表达式', + `misfire_policy` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '3' COMMENT '计划执行错误策略(1立即执行 2执行一次 3放弃执行)', + `concurrent` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1暂停)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注信息', + PRIMARY KEY (`job_id`, `job_name`, `job_group`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '定时任务调度表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_job +-- ---------------------------- +INSERT INTO `sys_job` VALUES (1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', '2025-07-17 15:27:47', '', NULL, ''); +INSERT INTO `sys_job` VALUES (2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', '2025-07-17 15:27:47', '', NULL, ''); +INSERT INTO `sys_job` VALUES (3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', '2025-07-17 15:27:47', '', NULL, ''); + +-- ---------------------------- +-- Table structure for sys_job_log +-- ---------------------------- +DROP TABLE IF EXISTS `sys_job_log`; +CREATE TABLE `sys_job_log` ( + `job_log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务日志ID', + `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务名称', + `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务组名', + `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '调用目标字符串', + `job_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '日志信息', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)', + `exception_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '异常信息', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`job_log_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '定时任务调度日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_job_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for sys_location +-- ---------------------------- +DROP TABLE IF EXISTS `sys_location`; +CREATE TABLE `sys_location` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '位置唯一标识', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '位置名称', + `status` int(20) UNSIGNED ZEROFILL NOT NULL DEFAULT 00000000000000000000 COMMENT '状态(0/1)', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人ID', + `in_charge` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '负责人ID(逻辑关联用户/管理员表)', + `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_location_in_charge`(`in_charge` ASC) USING BTREE COMMENT '负责人查询索引' +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '安装位置管理系统' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_location +-- ---------------------------- + +-- ---------------------------- +-- Table structure for sys_logininfor +-- ---------------------------- +DROP TABLE IF EXISTS `sys_logininfor`; +CREATE TABLE `sys_logininfor` ( + `info_id` bigint NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '用户账号', + `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '登录IP地址', + `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '登录地点', + `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '浏览器类型', + `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '操作系统', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '登录状态(0成功 1失败)', + `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '提示消息', + `login_time` datetime NULL DEFAULT NULL COMMENT '访问时间', + PRIMARY KEY (`info_id`) USING BTREE, + INDEX `idx_sys_logininfor_s`(`status` ASC) USING BTREE, + INDEX `idx_sys_logininfor_lt`(`login_time` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 248 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_logininfor +-- ---------------------------- +INSERT INTO `sys_logininfor` VALUES (100, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-17 15:43:10'); +INSERT INTO `sys_logininfor` VALUES (101, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 15:43:14'); +INSERT INTO `sys_logininfor` VALUES (102, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 18:32:51'); +INSERT INTO `sys_logininfor` VALUES (103, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 22:00:46'); +INSERT INTO `sys_logininfor` VALUES (104, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-17 23:55:34'); +INSERT INTO `sys_logininfor` VALUES (105, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 23:55:41'); +INSERT INTO `sys_logininfor` VALUES (106, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 23:55:54'); +INSERT INTO `sys_logininfor` VALUES (107, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 23:57:25'); +INSERT INTO `sys_logininfor` VALUES (108, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-17 23:58:42'); +INSERT INTO `sys_logininfor` VALUES (109, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-18 00:02:07'); +INSERT INTO `sys_logininfor` VALUES (110, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 00:02:11'); +INSERT INTO `sys_logininfor` VALUES (111, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 00:09:53'); +INSERT INTO `sys_logininfor` VALUES (112, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 08:27:02'); +INSERT INTO `sys_logininfor` VALUES (113, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-07-18 20:05:15'); +INSERT INTO `sys_logininfor` VALUES (114, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-18 20:05:22'); +INSERT INTO `sys_logininfor` VALUES (115, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 20:05:26'); +INSERT INTO `sys_logininfor` VALUES (116, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-18 20:13:08'); +INSERT INTO `sys_logininfor` VALUES (117, 'ruoyi', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-07-18 20:13:17'); +INSERT INTO `sys_logininfor` VALUES (118, 'ry', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 20:13:52'); +INSERT INTO `sys_logininfor` VALUES (119, 'ry', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-18 20:21:39'); +INSERT INTO `sys_logininfor` VALUES (120, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 20:21:53'); +INSERT INTO `sys_logininfor` VALUES (121, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-18 20:24:48'); +INSERT INTO `sys_logininfor` VALUES (122, 'ry', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 20:24:59'); +INSERT INTO `sys_logininfor` VALUES (123, 'ry', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-18 20:25:07'); +INSERT INTO `sys_logininfor` VALUES (124, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-18 20:25:11'); +INSERT INTO `sys_logininfor` VALUES (125, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-18 20:25:17'); +INSERT INTO `sys_logininfor` VALUES (126, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 20:25:21'); +INSERT INTO `sys_logininfor` VALUES (127, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-18 20:33:04'); +INSERT INTO `sys_logininfor` VALUES (128, 'ry', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 20:33:13'); +INSERT INTO `sys_logininfor` VALUES (129, 'ry', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '退出成功', '2025-07-18 21:11:39'); +INSERT INTO `sys_logininfor` VALUES (130, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-18 21:11:47'); +INSERT INTO `sys_logininfor` VALUES (131, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码已失效', '2025-07-19 07:58:29'); +INSERT INTO `sys_logininfor` VALUES (132, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-19 07:58:33'); +INSERT INTO `sys_logininfor` VALUES (133, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-19 09:46:47'); +INSERT INTO `sys_logininfor` VALUES (134, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-19 10:30:36'); +INSERT INTO `sys_logininfor` VALUES (135, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-19 10:30:43'); +INSERT INTO `sys_logininfor` VALUES (136, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-19 11:47:45'); +INSERT INTO `sys_logininfor` VALUES (137, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-19 11:47:50'); +INSERT INTO `sys_logininfor` VALUES (138, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-19 12:42:26'); +INSERT INTO `sys_logininfor` VALUES (139, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-19 14:10:05'); +INSERT INTO `sys_logininfor` VALUES (140, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-20 14:54:55'); +INSERT INTO `sys_logininfor` VALUES (141, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-07-20 14:55:03'); +INSERT INTO `sys_logininfor` VALUES (142, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-20 14:55:07'); +INSERT INTO `sys_logininfor` VALUES (143, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-21 19:32:17'); +INSERT INTO `sys_logininfor` VALUES (144, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-21 22:20:51'); +INSERT INTO `sys_logininfor` VALUES (145, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-21 23:18:06'); +INSERT INTO `sys_logininfor` VALUES (146, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-23 09:56:05'); +INSERT INTO `sys_logininfor` VALUES (147, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-07-24 16:47:43'); +INSERT INTO `sys_logininfor` VALUES (148, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-01 16:43:14'); +INSERT INTO `sys_logininfor` VALUES (149, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-01 21:04:23'); +INSERT INTO `sys_logininfor` VALUES (150, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-01 22:43:00'); +INSERT INTO `sys_logininfor` VALUES (151, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-01 23:40:43'); +INSERT INTO `sys_logininfor` VALUES (152, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-02 14:20:26'); +INSERT INTO `sys_logininfor` VALUES (153, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-02 15:44:34'); +INSERT INTO `sys_logininfor` VALUES (154, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-02 16:39:04'); +INSERT INTO `sys_logininfor` VALUES (155, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-03 17:17:52'); +INSERT INTO `sys_logininfor` VALUES (156, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码已失效', '2025-08-03 20:12:20'); +INSERT INTO `sys_logininfor` VALUES (157, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-03 20:25:46'); +INSERT INTO `sys_logininfor` VALUES (158, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-03 20:59:35'); +INSERT INTO `sys_logininfor` VALUES (159, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-03 21:39:09'); +INSERT INTO `sys_logininfor` VALUES (160, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-05 15:47:10'); +INSERT INTO `sys_logininfor` VALUES (161, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-06 09:34:09'); +INSERT INTO `sys_logininfor` VALUES (162, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-06 12:10:25'); +INSERT INTO `sys_logininfor` VALUES (163, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-06 15:49:46'); +INSERT INTO `sys_logininfor` VALUES (164, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-06 16:49:55'); +INSERT INTO `sys_logininfor` VALUES (165, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 08:50:47'); +INSERT INTO `sys_logininfor` VALUES (166, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 10:27:53'); +INSERT INTO `sys_logininfor` VALUES (167, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 16:08:11'); +INSERT INTO `sys_logininfor` VALUES (168, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 17:46:38'); +INSERT INTO `sys_logininfor` VALUES (169, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-08-07 18:52:55'); +INSERT INTO `sys_logininfor` VALUES (170, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 18:53:01'); +INSERT INTO `sys_logininfor` VALUES (171, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 19:39:36'); +INSERT INTO `sys_logininfor` VALUES (172, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-07 21:51:45'); +INSERT INTO `sys_logininfor` VALUES (173, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-08 10:14:12'); +INSERT INTO `sys_logininfor` VALUES (174, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-09 15:44:36'); +INSERT INTO `sys_logininfor` VALUES (175, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-09 16:28:11'); +INSERT INTO `sys_logininfor` VALUES (176, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-09 20:15:01'); +INSERT INTO `sys_logininfor` VALUES (177, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-15 17:32:38'); +INSERT INTO `sys_logininfor` VALUES (178, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码已失效', '2025-08-16 08:24:42'); +INSERT INTO `sys_logininfor` VALUES (179, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-08-16 08:24:46'); +INSERT INTO `sys_logininfor` VALUES (180, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-16 08:24:51'); +INSERT INTO `sys_logininfor` VALUES (181, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-16 10:25:03'); +INSERT INTO `sys_logininfor` VALUES (182, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-16 12:34:04'); +INSERT INTO `sys_logininfor` VALUES (183, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-17 16:24:32'); +INSERT INTO `sys_logininfor` VALUES (184, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-17 17:46:14'); +INSERT INTO `sys_logininfor` VALUES (185, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-17 18:56:42'); +INSERT INTO `sys_logininfor` VALUES (186, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-08-20 16:29:24'); +INSERT INTO `sys_logininfor` VALUES (187, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-01 13:58:58'); +INSERT INTO `sys_logininfor` VALUES (188, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-01 19:47:16'); +INSERT INTO `sys_logininfor` VALUES (189, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-09-02 15:17:47'); +INSERT INTO `sys_logininfor` VALUES (190, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-02 15:17:51'); +INSERT INTO `sys_logininfor` VALUES (191, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-09-02 19:45:05'); +INSERT INTO `sys_logininfor` VALUES (192, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-02 19:45:12'); +INSERT INTO `sys_logininfor` VALUES (193, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-03 11:25:04'); +INSERT INTO `sys_logininfor` VALUES (194, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码已失效', '2025-09-04 15:39:50'); +INSERT INTO `sys_logininfor` VALUES (195, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-04 15:39:54'); +INSERT INTO `sys_logininfor` VALUES (196, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-04 19:45:49'); +INSERT INTO `sys_logininfor` VALUES (197, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-04 23:08:17'); +INSERT INTO `sys_logininfor` VALUES (198, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-05 11:48:03'); +INSERT INTO `sys_logininfor` VALUES (199, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-05 14:08:23'); +INSERT INTO `sys_logininfor` VALUES (200, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '1', '验证码错误', '2025-09-05 16:09:29'); +INSERT INTO `sys_logininfor` VALUES (201, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-05 16:09:32'); +INSERT INTO `sys_logininfor` VALUES (202, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-05 16:55:17'); +INSERT INTO `sys_logininfor` VALUES (203, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-08 18:54:24'); +INSERT INTO `sys_logininfor` VALUES (204, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-08 20:39:32'); +INSERT INTO `sys_logininfor` VALUES (205, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-10 20:49:12'); +INSERT INTO `sys_logininfor` VALUES (206, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 10:40:16'); +INSERT INTO `sys_logininfor` VALUES (207, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 11:34:01'); +INSERT INTO `sys_logininfor` VALUES (208, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 12:12:09'); +INSERT INTO `sys_logininfor` VALUES (209, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 13:56:00'); +INSERT INTO `sys_logininfor` VALUES (210, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 18:47:58'); +INSERT INTO `sys_logininfor` VALUES (211, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 20:28:50'); +INSERT INTO `sys_logininfor` VALUES (212, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 21:01:31'); +INSERT INTO `sys_logininfor` VALUES (213, 'admin', '127.0.0.1', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-09-12 21:47:32'); +INSERT INTO `sys_logininfor` VALUES (214, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-15 19:07:30'); +INSERT INTO `sys_logininfor` VALUES (215, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-15 19:50:05'); +INSERT INTO `sys_logininfor` VALUES (216, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-15 20:29:59'); +INSERT INTO `sys_logininfor` VALUES (217, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-15 22:24:03'); +INSERT INTO `sys_logininfor` VALUES (218, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-16 21:54:36'); +INSERT INTO `sys_logininfor` VALUES (219, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '1', '验证码已失效', '2025-09-17 09:23:33'); +INSERT INTO `sys_logininfor` VALUES (220, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-17 09:23:37'); +INSERT INTO `sys_logininfor` VALUES (221, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-17 11:28:12'); +INSERT INTO `sys_logininfor` VALUES (222, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-17 19:39:36'); +INSERT INTO `sys_logininfor` VALUES (223, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 14:49:22'); +INSERT INTO `sys_logininfor` VALUES (224, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 16:04:58'); +INSERT INTO `sys_logininfor` VALUES (225, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 16:06:50'); +INSERT INTO `sys_logininfor` VALUES (226, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '1', '验证码错误', '2025-09-19 17:00:53'); +INSERT INTO `sys_logininfor` VALUES (227, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 17:00:58'); +INSERT INTO `sys_logininfor` VALUES (228, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 20:54:46'); +INSERT INTO `sys_logininfor` VALUES (229, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 21:26:43'); +INSERT INTO `sys_logininfor` VALUES (230, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '1', '验证码错误', '2025-09-19 22:06:01'); +INSERT INTO `sys_logininfor` VALUES (231, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-19 22:06:04'); +INSERT INTO `sys_logininfor` VALUES (232, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-20 13:47:03'); +INSERT INTO `sys_logininfor` VALUES (233, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-20 14:58:00'); +INSERT INTO `sys_logininfor` VALUES (234, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-20 16:06:35'); +INSERT INTO `sys_logininfor` VALUES (235, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-20 17:05:43'); +INSERT INTO `sys_logininfor` VALUES (236, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-20 21:05:56'); +INSERT INTO `sys_logininfor` VALUES (237, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-21 09:13:40'); +INSERT INTO `sys_logininfor` VALUES (238, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-21 15:22:36'); +INSERT INTO `sys_logininfor` VALUES (239, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-21 16:56:46'); +INSERT INTO `sys_logininfor` VALUES (240, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-21 21:43:38'); +INSERT INTO `sys_logininfor` VALUES (241, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '1', '验证码已失效', '2025-09-22 18:35:13'); +INSERT INTO `sys_logininfor` VALUES (242, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-22 18:35:17'); +INSERT INTO `sys_logininfor` VALUES (243, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-23 19:16:40'); +INSERT INTO `sys_logininfor` VALUES (244, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-23 20:19:00'); +INSERT INTO `sys_logininfor` VALUES (245, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-23 22:43:28'); +INSERT INTO `sys_logininfor` VALUES (246, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-24 20:13:36'); +INSERT INTO `sys_logininfor` VALUES (247, 'admin', '127.0.0.1', '内网IP', 'Chrome 14', 'Windows 10', '0', '登录成功', '2025-09-24 21:17:36'); + +-- ---------------------------- +-- Table structure for sys_manufacture +-- ---------------------------- +DROP TABLE IF EXISTS `sys_manufacture`; +CREATE TABLE `sys_manufacture` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '厂商唯一标识', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '厂商名称', + `status` int(10) UNSIGNED ZEROFILL NOT NULL DEFAULT 0000000000 COMMENT '状态(0/1)', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人ID', + `contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系方式', + `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '设备厂商管理系统' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_manufacture +-- ---------------------------- + +-- ---------------------------- +-- Table structure for sys_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_menu`; +CREATE TABLE `sys_menu` ( + `menu_id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '菜单名称', + `parent_id` bigint NULL DEFAULT 0 COMMENT '父菜单ID', + `order_num` int NULL DEFAULT 0 COMMENT '显示顺序', + `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '路由地址', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '组件路径', + `query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '路由参数', + `route_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '路由名称', + `is_frame` int NULL DEFAULT 1 COMMENT '是否为外链(0是 1否)', + `is_cache` int NULL DEFAULT 0 COMMENT '是否缓存(0缓存 1不缓存)', + `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)', + `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', + `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '权限标识', + `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '#' COMMENT '菜单图标', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注', + PRIMARY KEY (`menu_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 200001 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_menu +-- ---------------------------- +INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 1, 'system', NULL, '', '', 1, 0, 'M', '0', '0', '', 'system', 'admin', '2025-07-19 11:42:04', '', NULL, '系统管理目录'); +INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 2, 'monitor', NULL, '', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', '2025-07-19 11:42:04', '', NULL, '系统监控目录'); +INSERT INTO `sys_menu` VALUES (3, '系统工具', 0, 3, 'tool', NULL, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', '2025-07-19 11:42:04', '', NULL, '系统工具目录'); +INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', '2025-07-19 11:42:04', '', NULL, '用户管理菜单'); +INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', '2025-07-19 11:42:04', '', NULL, '角色管理菜单'); +INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', '2025-07-19 11:42:04', '', NULL, '菜单管理菜单'); +INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', '2025-07-19 11:42:04', '', NULL, '字典管理菜单'); +INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', '2025-07-19 11:42:04', '', NULL, '参数设置菜单'); +INSERT INTO `sys_menu` VALUES (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', '2025-07-19 11:42:04', '', NULL, '通知公告菜单'); +INSERT INTO `sys_menu` VALUES (108, '日志管理', 1, 9, 'log', '', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', '2025-07-19 11:42:04', '', NULL, '日志管理菜单'); +INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', '2025-07-19 11:42:04', '', NULL, '在线用户菜单'); +INSERT INTO `sys_menu` VALUES (110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', '2025-07-19 11:42:04', '', NULL, '定时任务菜单'); +INSERT INTO `sys_menu` VALUES (111, '数据监控', 2, 3, 'druid', 'monitor/druid/index', '', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', '2025-07-19 11:42:04', '', NULL, '数据监控菜单'); +INSERT INTO `sys_menu` VALUES (112, '服务监控', 2, 4, 'server', 'monitor/server/index', '', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', '2025-07-19 11:42:04', '', NULL, '服务监控菜单'); +INSERT INTO `sys_menu` VALUES (113, '缓存监控', 2, 5, 'cache', 'monitor/cache/index', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', '2025-07-19 11:42:04', '', NULL, '缓存监控菜单'); +INSERT INTO `sys_menu` VALUES (114, '缓存列表', 2, 6, 'cacheList', 'monitor/cache/list', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', '2025-07-19 11:42:04', '', NULL, '缓存列表菜单'); +INSERT INTO `sys_menu` VALUES (115, '表单构建', 3, 1, 'build', 'tool/build/index', '', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', '2025-07-19 11:42:04', '', NULL, '表单构建菜单'); +INSERT INTO `sys_menu` VALUES (116, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', '2025-07-19 11:42:04', '', NULL, '代码生成菜单'); +INSERT INTO `sys_menu` VALUES (117, '系统接口', 3, 3, 'swagger', 'tool/swagger/index', '', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', '2025-07-19 11:42:04', '', NULL, '系统接口菜单'); +INSERT INTO `sys_menu` VALUES (500, '操作日志', 108, 1, 'operlog', 'monitor/operlog/index', '', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', '2025-07-19 11:42:04', '', NULL, '操作日志菜单'); +INSERT INTO `sys_menu` VALUES (501, '登录日志', 108, 2, 'logininfor', 'monitor/logininfor/index', '', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', '2025-07-19 11:42:04', '', NULL, '登录日志菜单'); +INSERT INTO `sys_menu` VALUES (1000, '用户查询', 100, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1001, '用户新增', 100, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1002, '用户修改', 100, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1003, '用户删除', 100, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1004, '用户导出', 100, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1005, '用户导入', 100, 6, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1006, '重置密码', 100, 7, '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1007, '角色查询', 101, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1008, '角色新增', 101, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1009, '角色修改', 101, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1010, '角色删除', 101, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1011, '角色导出', 101, 5, '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1012, '菜单查询', 102, 1, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1013, '菜单新增', 102, 2, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1014, '菜单修改', 102, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1015, '菜单删除', 102, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', '2025-07-19 11:42:04', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1025, '字典查询', 105, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1026, '字典新增', 105, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1027, '字典修改', 105, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1028, '字典删除', 105, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1029, '字典导出', 105, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1030, '参数查询', 106, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1031, '参数新增', 106, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1032, '参数修改', 106, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1033, '参数删除', 106, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1034, '参数导出', 106, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1035, '公告查询', 107, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1036, '公告新增', 107, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1037, '公告修改', 107, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1038, '公告删除', 107, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1039, '操作查询', 500, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1040, '操作删除', 500, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1041, '日志导出', 500, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1042, '登录查询', 501, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1043, '登录删除', 501, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1044, '日志导出', 501, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1045, '账户解锁', 501, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1049, '任务查询', 110, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1050, '任务新增', 110, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1051, '任务修改', 110, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1052, '任务删除', 110, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1053, '状态修改', 110, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1054, '任务导出', 110, 6, '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1055, '生成查询', 116, 1, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1056, '生成修改', 116, 2, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1057, '生成删除', 116, 3, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1058, '导入代码', 116, 4, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1059, '预览代码', 116, 5, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (1060, '生成代码', 116, 6, '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', '2025-07-19 11:42:05', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2001, '设备管理', 0, 4, 'device', NULL, NULL, '', 1, 0, 'M', '0', '0', '', 'server', 'admin', '2025-07-29 14:26:06', 'admin', '2025-07-29 14:27:12', ''); +INSERT INTO `sys_menu` VALUES (2002, '设备档案', 2001, 1, 'files', 'device/files/index', NULL, '', 1, 0, 'C', '0', '0', 'device:files:list', 'example', 'admin', '2025-07-29 14:29:51', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2003, '设备类型管理', 2001, 2, 'deviceType', 'device/deviceType/index', NULL, '', 1, 0, 'C', '0', '0', 'device:deviceType:list', 'example', 'admin', '2025-07-29 14:37:31', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2004, '设备厂商管理', 2001, 3, 'deviceManufacturer', 'device/deviceManufacturer/index', NULL, '', 1, 0, 'C', '0', '0', 'device:deviceManufacturer:list', 'example', 'admin', '2025-07-29 14:38:33', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2005, '设备信息采集', 2001, 5, 'deviceInformation', 'device/deviceInformation/index', NULL, '', 1, 0, 'C', '0', '0', 'device:deviceInformation:query', 'example', 'admin', '2025-07-29 14:39:19', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2006, '设备档案查询', 2002, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:files:query', '#', 'admin', '2025-08-01 23:17:55', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2007, '设备档案新增', 2002, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:files:add', '#', 'admin', '2025-08-01 23:17:55', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2008, '设备档案修改', 2002, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:files:edit', '#', 'admin', '2025-08-01 23:17:55', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2009, '设备档案删除', 2002, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:files:remove', '#', 'admin', '2025-08-01 23:17:55', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2010, '设备档案图片查询', 2002, 5, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:files:queryimage', '#', 'admin', '2025-08-01 23:17:55', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2011, '设备类型管理查询', 2003, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceType:query', '#', 'admin', '2025-08-02 16:02:06', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2012, '设备类型管理新增', 2003, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceType:add', '#', 'admin', '2025-08-02 16:02:06', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2013, '设备类型管理修改', 2003, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceType:edit', '#', 'admin', '2025-08-02 16:02:06', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2014, '设备类型管理删除', 2003, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceType:delete', '#', 'admin', '2025-08-02 16:02:06', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2016, '设备厂商管理查询', 2004, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceManu:queryByVO', '#', 'admin', '2025-08-02 16:05:46', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2017, '设备厂商管理新增', 2004, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceManu:add', '#', 'admin', '2025-08-02 16:05:46', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2018, '设备厂商管理修改', 2004, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceManu:edit', '#', 'admin', '2025-08-02 16:05:46', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2019, '设备厂商管理删除', 2004, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceManu:delete', '#', 'admin', '2025-08-02 16:05:46', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2026, '设备智能监测', 0, 5, 'inMonitoring', NULL, NULL, '', 1, 0, 'M', '0', '0', NULL, 'github', 'admin', '2025-07-30 13:53:32', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2027, '设备状态监控', 2026, 1, 'devicesState', 'inMonitoring/devicesState/index', NULL, '', 1, 0, 'C', '0', '0', 'inMonitoring:devicesState:list', 'server', 'admin', '2025-07-30 14:00:38', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2028, '异常预警管控', 2026, 2, 'earlyWarning', '', NULL, '', 1, 0, 'M', '0', '0', '', 'bug', 'admin', '2025-07-30 14:04:49', 'admin', '2025-07-30 14:25:28', '异常预警系统目录'); +INSERT INTO `sys_menu` VALUES (2029, '设备评估预测', 2026, 3, 'assessment', 'inMonitoring/assessment/index', NULL, '', 1, 0, 'C', '0', '0', 'inMonitoring:assessment:list', 'component', 'admin', '2025-07-30 14:06:15', 'admin', '2025-07-30 14:25:38', ''); +INSERT INTO `sys_menu` VALUES (2030, '智能问答系统', 0, 6, 'QandA', NULL, NULL, '', 1, 0, 'M', '0', '0', NULL, 'button', 'admin', '2025-07-30 14:15:49', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2031, '知识库管理', 2030, 1, 'knowledge', 'QandA/knowledge/index', NULL, '', 1, 0, 'C', '0', '0', 'QandA:knowledge:list', 'button', 'admin', '2025-07-30 14:16:55', 'admin', '2025-07-30 14:18:24', ''); +INSERT INTO `sys_menu` VALUES (2032, 'AI问答助手', 2030, 2, 'Aiassistant', 'QandA/Aiassistant/index', NULL, '', 1, 0, 'C', '0', '0', 'QandA:Aiassistant:list', 'button', 'admin', '2025-07-30 14:18:12', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2051, ' (单台) 端口运行状态', 2027, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:interface:listByEquId', '#', 'admin', '2025-09-17 11:34:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2052, ' (单台) Routing路由信息', 2027, 2, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:routing:listByEquId', '#', 'admin', '2025-09-23 20:41:21', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2053, ' (单台) Veneer信息', 2027, 3, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:veneer:listByEquId', '#', 'admin', '2025-09-23 20:43:57', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2054, ' (单台) 历史预警信息', 2027, 4, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertMessage:listByEquId', '#', 'admin', '2025-09-23 20:46:33', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2055, ' (单台) Vlan信息', 2027, 5, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:vlan:queryByEquId', '#', 'admin', '2025-09-23 20:50:06', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2056, ' (单台)历史最新基本信息', 2027, 6, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:query', '#', 'admin', '2025-09-23 20:54:35', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2057, ' (单台)时间段内基本信息', 2027, 7, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:query', '#', 'admin', '2025-09-23 20:54:37', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2066, '定时采集规则新增', 2005, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:deviceInformation:protoCollect', '#', 'admin', '2025-08-03 21:41:17', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2076, 'oid', 4, 5, 'oid', 'equipment/oid/index', NULL, '', 1, 0, 'C', '0', '0', 'equipment:oid:list', '#', 'admin', '2025-08-07 16:18:15', '', NULL, '【请填写功能名称】菜单'); +INSERT INTO `sys_menu` VALUES (2077, 'oid查询', 2076, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'equipment:oid:query', '#', 'admin', '2025-08-07 16:18:15', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2078, 'oid新增', 2076, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'equipment:oid:add', '#', 'admin', '2025-08-07 16:18:15', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2079, 'oid修改', 2076, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'equipment:oid:edit', '#', 'admin', '2025-08-07 16:18:15', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2080, 'oid删除', 2076, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'equipment:oid:remove', '#', 'admin', '2025-08-07 16:18:15', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2081, 'oid导出', 2076, 5, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'equipment:oid:export', '#', 'admin', '2025-08-07 16:18:15', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2082, 'vlan管理', 4, 6, 'vlan', 'equipment/vlan/index', NULL, '', 1, 0, 'C', '0', '0', 'equipment:vlan:list', '#', 'admin', '2025-08-15 17:41:26', '', NULL, 'vlan菜单'); +INSERT INTO `sys_menu` VALUES (2083, 'vlan查询', 2082, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:vlan:query', '#', 'admin', '2025-08-15 17:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2084, 'vlan新增', 2082, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:vlan:add', '#', 'admin', '2025-08-15 17:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2085, 'vlan修改', 2082, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:vlan:edit', '#', 'admin', '2025-08-15 17:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2086, 'vlan删除', 2082, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:vlan:delete', '#', 'admin', '2025-08-15 17:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2094, '预警信息', 2028, 2, 'message', '', NULL, '', 1, 0, 'C', '0', '0', 'inMonitoring:alertMessage:list', '#', 'admin', '2025-09-04 15:56:52', '', NULL, '预警信息菜单'); +INSERT INTO `sys_menu` VALUES (2097, '预警信息修改', 2004, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertMessage:edit', '#', 'admin', '2025-09-04 15:56:52', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2098, '预警信息删除', 2004, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertMessage:remove', '#', 'admin', '2025-09-04 15:56:52', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2100, '预警规则', 2028, 1, 'rule', '', NULL, '', 1, 0, 'C', '0', '0', 'inMonitoring:alertRule:list', '#', 'admin', '2025-09-04 15:57:54', '', NULL, '预警规则菜单'); +INSERT INTO `sys_menu` VALUES (2101, '预警规则查询', 2100, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertRule:query', '#', 'admin', '2025-09-04 15:57:54', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2102, '预警规则新增', 2100, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertRule:add', '#', 'admin', '2025-09-04 15:57:54', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2103, '预警规则修改', 2100, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertRule:edit', '#', 'admin', '2025-09-04 15:57:54', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2104, '预警规则删除', 2100, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertRule:remove', '#', 'admin', '2025-09-04 15:57:54', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2105, '获取预警参数', 2100, 5, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertRule:byTable', '#', 'admin', '2025-09-04 15:57:54', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2116, '【供应商功能】', 2001, 4, 'supplier', 'device/supplier/index', NULL, '', 1, 0, 'C', '0', '0', 'device:supplier:list', '#', 'admin', '2025-09-21 12:41:26', '', NULL, '【供应商功能】菜单'); +INSERT INTO `sys_menu` VALUES (2117, '(厂商下拉表)设备档案', 2002, 7, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:queryManufacture', '#', 'admin', '2025-09-22 21:23:48', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2118, '(设备类型下拉表)设备档案', 2002, 8, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:queryEquType', '#', 'admin', '2025-09-22 21:24:32', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (2119, '(供应商下拉表)设备档案', 2002, 9, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:querySupplier', '#', 'admin', '2025-09-23 21:23:01', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3000, '首页', 0, 1, 'home', NULL, NULL, '', 1, 0, 'C', '0', '0', 'home', '#', 'admin', '2025-09-23 20:17:52', '', NULL, '首页'); +INSERT INTO `sys_menu` VALUES (3001, '(首页)设备状态监控', 3000, 2, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:query', '#', 'admin', '2025-09-23 21:05:19', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3002, '(首页)监测设备信息 (类型分类)', 3000, 3, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'device:files:statistic', '#', 'admin', '2025-09-23 21:05:22', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3003, '(首页)设备预警信息', 3000, 4, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertMessage:list', '#', 'admin', '2025-09-23 21:05:23', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3004, '(首页)预警信息统计', 3000, 5, '#', NULL, NULL, '', 1, 0, 'F', '0', '0', 'inMonitoring:alertMessage:statistic', '#', 'admin', '2025-09-23 21:05:25', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3117, '【供应商功能】查询', 3116, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:supplier:query', '#', 'admin', '2025-09-21 12:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3118, '【供应商功能】新增', 3116, 2, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:supplier:add', '#', 'admin', '2025-09-21 12:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3119, '【供应商功能】修改', 3116, 3, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:supplier:edit', '#', 'admin', '2025-09-21 12:41:26', '', NULL, ''); +INSERT INTO `sys_menu` VALUES (3120, '【供应商功能】删除', 3116, 4, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:supplier:delete', '#', 'admin', '2025-09-21 12:41:26', '', NULL, ''); + +-- ---------------------------- +-- Table structure for sys_notice +-- ---------------------------- +DROP TABLE IF EXISTS `sys_notice`; +CREATE TABLE `sys_notice` ( + `notice_id` int NOT NULL AUTO_INCREMENT COMMENT '公告ID', + `notice_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公告标题', + `notice_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公告类型(1通知 2公告)', + `notice_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '公告内容', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`notice_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '通知公告表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_notice +-- ---------------------------- +INSERT INTO `sys_notice` VALUES (1, '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', '2025-07-19 12:56:29', '', NULL, '管理员'); +INSERT INTO `sys_notice` VALUES (2, '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容', '0', 'admin', '2025-07-19 12:56:29', '', NULL, '管理员'); + +-- ---------------------------- +-- Table structure for sys_oper_log +-- ---------------------------- +DROP TABLE IF EXISTS `sys_oper_log`; +CREATE TABLE `sys_oper_log` ( + `oper_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '模块标题', + `business_type` int NULL DEFAULT 0 COMMENT '业务类型(0其它 1新增 2修改 3删除)', + `method` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '方法名称', + `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '请求方式', + `operator_type` int NULL DEFAULT 0 COMMENT '操作类别(0其它 1后台用户 2手机端用户)', + `oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '操作人员', + `oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '请求URL', + `oper_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '主机地址', + `oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '操作地点', + `oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '请求参数', + `json_result` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '返回参数', + `status` int NULL DEFAULT 0 COMMENT '操作状态(0正常 1异常)', + `error_msg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '错误消息', + `oper_time` datetime NULL DEFAULT NULL COMMENT '操作时间', + `cost_time` bigint NULL DEFAULT 0 COMMENT '消耗时间', + PRIMARY KEY (`oper_id`) USING BTREE, + INDEX `idx_sys_oper_log_bt`(`business_type` ASC) USING BTREE, + INDEX `idx_sys_oper_log_s`(`status` ASC) USING BTREE, + INDEX `idx_sys_oper_log_ot`(`oper_time` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 351 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '操作日志记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_oper_log +-- ---------------------------- +INSERT INTO `sys_oper_log` VALUES (100, '菜单管理', 3, 'com.ruoyi.web.controller.system.SysMenuController.remove()', 'DELETE', 1, 'admin', '/system/menu/3', '127.0.0.1', '内网IP', '3', '{\"msg\":\"存在子菜单,不允许删除\",\"code\":601}', 0, NULL, '2025-07-17 15:30:06', 12); +INSERT INTO `sys_oper_log` VALUES (101, '角色管理', 5, 'com.ruoyi.web.controller.system.SysRoleController.export()', 'POST', 1, 'admin', '/system/role/export', '127.0.0.1', '内网IP', '{\"pageSize\":\"10\",\"pageNum\":\"1\"}', NULL, 0, NULL, '2025-07-17 16:41:24', 681); +INSERT INTO `sys_oper_log` VALUES (102, '用户管理', 5, 'com.ruoyi.web.controller.system.SysUserController.export()', 'POST', 1, 'admin', '/system/user/export', '127.0.0.1', '内网IP', '{\"pageSize\":\"10\",\"pageNum\":\"1\"}', NULL, 0, NULL, '2025-07-17 16:41:44', 63); +INSERT INTO `sys_oper_log` VALUES (103, '用户管理', 5, 'com.ruoyi.web.controller.system.SysUserController.export()', 'POST', 1, 'admin', '/system/user/export', '127.0.0.1', '内网IP', '{\"pageSize\":\"10\",\"pageNum\":\"1\"}', NULL, 0, NULL, '2025-07-17 16:58:08', 38); +INSERT INTO `sys_oper_log` VALUES (104, '用户管理', 6, 'com.ruoyi.web.controller.system.SysUserController.importData()', 'POST', 1, 'admin', '/system/user/importData', '127.0.0.1', '内网IP', '{\"updateSupport\":\"0\"}', '{\"msg\":\"恭喜您,数据已全部导入成功!共 1 条,数据如下:
1、账号 xiaohou 导入成功\",\"code\":200}', 0, NULL, '2025-07-17 17:04:17', 246); +INSERT INTO `sys_oper_log` VALUES (105, '用户管理', 3, 'com.ruoyi.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/100', '127.0.0.1', '内网IP', '[100]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 17:04:28', 25); +INSERT INTO `sys_oper_log` VALUES (106, '用户管理', 2, 'com.ruoyi.web.controller.system.SysUserController.edit()', 'PUT', 1, 'admin', '/system/user', '127.0.0.1', '内网IP', '{\"admin\":false,\"avatar\":\"\",\"createBy\":\"admin\",\"createTime\":\"2025-07-17 18:49:17\",\"delFlag\":\"0\",\"email\":\"213456789@qq.com\",\"loginIp\":\"\",\"nickName\":\"hh\",\"params\":{},\"phonenumber\":\"18845678956\",\"roleIds\":[2],\"roles\":[{\"admin\":false,\"dataScope\":\"2\",\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\",\"roleSort\":2,\"status\":\"0\"}],\"sex\":\"1\",\"status\":\"0\",\"updateBy\":\"admin\",\"userId\":101,\"userName\":\"hh\"}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_user_post\' doesn\'t exist\r\n### The error may exist in file [D:\\II\\RuoYi-Vue\\ruoyi-system\\target\\classes\\mapper\\system\\SysUserPostMapper.xml]\r\n### The error may involve com.ruoyi.system.mapper.SysUserPostMapper.deleteUserPostByUserId-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from sys_user_post where user_id=?\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_user_post\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_user_post\' doesn\'t exist', '2025-07-17 18:51:15', 91); +INSERT INTO `sys_oper_log` VALUES (107, '用户管理', 2, 'com.ruoyi.web.controller.system.SysUserController.edit()', 'PUT', 1, 'admin', '/system/user', '127.0.0.1', '内网IP', '{\"admin\":false,\"avatar\":\"\",\"createBy\":\"admin\",\"createTime\":\"2025-07-17 18:49:17\",\"delFlag\":\"0\",\"email\":\"213456789@qq.com\",\"loginIp\":\"\",\"nickName\":\"hh\",\"params\":{},\"phonenumber\":\"18845678956\",\"roleIds\":[2],\"roles\":[{\"admin\":false,\"dataScope\":\"2\",\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\",\"roleSort\":2,\"status\":\"0\"}],\"sex\":\"1\",\"status\":\"0\",\"updateBy\":\"admin\",\"userId\":101,\"userName\":\"hh\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 18:53:37', 64); +INSERT INTO `sys_oper_log` VALUES (108, '用户管理', 2, 'com.ruoyi.web.controller.system.SysUserController.resetPwd()', 'PUT', 1, 'admin', '/system/user/resetPwd', '127.0.0.1', '内网IP', '{\"admin\":false,\"params\":{},\"updateBy\":\"admin\",\"userId\":101}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 18:53:49', 118); +INSERT INTO `sys_oper_log` VALUES (109, '用户管理', 5, 'com.ruoyi.web.controller.system.SysUserController.export()', 'POST', 1, 'admin', '/system/user/export', '127.0.0.1', '内网IP', '{\"pageSize\":\"10\",\"pageNum\":\"1\"}', NULL, 0, NULL, '2025-07-17 18:54:19', 1151); +INSERT INTO `sys_oper_log` VALUES (110, '角色管理', 1, 'com.ruoyi.web.controller.system.SysRoleController.add()', 'POST', 1, 'admin', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[],\"params\":{},\"roleKey\":\"admin\",\"roleName\":\"管理员\",\"roleSort\":2,\"status\":\"0\"}', '{\"msg\":\"新增角色\'管理员\'失败,角色权限已存在\",\"code\":500}', 0, NULL, '2025-07-17 18:57:27', 22); +INSERT INTO `sys_oper_log` VALUES (111, '角色管理', 1, 'com.ruoyi.web.controller.system.SysRoleController.add()', 'POST', 1, 'admin', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"createBy\":\"admin\",\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[],\"params\":{},\"roleId\":101,\"roleKey\":\"ii\",\"roleName\":\"管理员\",\"roleSort\":2,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 18:57:51', 40); +INSERT INTO `sys_oper_log` VALUES (112, '角色管理', 2, 'com.ruoyi.web.controller.system.SysRoleController.edit()', 'PUT', 1, 'admin', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"createTime\":\"2025-07-17 18:57:51\",\"dataScope\":\"1\",\"delFlag\":\"0\",\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[],\"params\":{},\"roleId\":101,\"roleKey\":\"ii\",\"roleName\":\"管理员\",\"roleSort\":2,\"status\":\"1\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 18:58:10', 44); +INSERT INTO `sys_oper_log` VALUES (113, '角色管理', 2, 'com.ruoyi.web.controller.system.SysRoleController.changeStatus()', 'PUT', 1, 'admin', '/system/role/changeStatus', '127.0.0.1', '内网IP', '{\"admin\":false,\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":101,\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 18:58:14', 12); +INSERT INTO `sys_oper_log` VALUES (114, '角色管理', 3, 'com.ruoyi.web.controller.system.SysRoleController.remove()', 'DELETE', 1, 'admin', '/system/role/101', '127.0.0.1', '内网IP', '[101]', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_role_dept\' doesn\'t exist\r\n### The error may exist in file [D:\\II\\RuoYi-Vue\\ruoyi-system\\target\\classes\\mapper\\system\\SysRoleDeptMapper.xml]\r\n### The error may involve com.ruoyi.system.mapper.SysRoleDeptMapper.deleteRoleDept-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from sys_role_dept where role_id in ( ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_role_dept\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_role_dept\' doesn\'t exist', '2025-07-17 18:58:20', 89); +INSERT INTO `sys_oper_log` VALUES (115, '角色管理', 3, 'com.ruoyi.web.controller.system.SysRoleController.remove()', 'DELETE', 1, 'admin', '/system/role/101', '127.0.0.1', '内网IP', '[101]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 18:59:18', 67); +INSERT INTO `sys_oper_log` VALUES (116, '用户管理', 6, 'com.ruoyi.web.controller.system.SysUserController.importData()', 'POST', 1, 'admin', '/system/user/importData', '127.0.0.1', '内网IP', '{\"updateSupport\":\"0\"}', '{\"msg\":\"恭喜您,数据已全部导入成功!共 1 条,数据如下:
1、账号 55 导入成功\",\"code\":200}', 0, NULL, '2025-07-17 20:25:56', 430); +INSERT INTO `sys_oper_log` VALUES (117, '用户管理', 3, 'com.ruoyi.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/101', '127.0.0.1', '内网IP', '[101]', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_user_post\' doesn\'t exist\r\n### The error may exist in file [D:\\II\\RuoYi-Vue\\ruoyi-system\\target\\classes\\mapper\\system\\SysUserPostMapper.xml]\r\n### The error may involve com.ruoyi.system.mapper.SysUserPostMapper.deleteUserPost-Inline\r\n### The error occurred while setting parameters\r\n### SQL: delete from sys_user_post where user_id in ( ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_user_post\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'aiops_sys.sys_user_post\' doesn\'t exist', '2025-07-17 20:26:02', 109); +INSERT INTO `sys_oper_log` VALUES (118, '用户管理', 3, 'com.ruoyi.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/101', '127.0.0.1', '内网IP', '[101]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 20:27:29', 33); +INSERT INTO `sys_oper_log` VALUES (119, '用户管理', 3, 'com.ruoyi.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/102', '127.0.0.1', '内网IP', '[102]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-17 20:27:32', 18); +INSERT INTO `sys_oper_log` VALUES (120, '用户管理', 6, 'com.alops.web.controller.system.SysUserController.importData()', 'POST', 1, 'admin', '/system/user/importData', '127.0.0.1', '内网IP', '{\"updateSupport\":\"0\"}', '{\"msg\":\"恭喜您,数据已全部导入成功!共 1 条,数据如下:
1、账号 55 导入成功\",\"code\":200}', 0, NULL, '2025-07-18 08:27:31', 1055); +INSERT INTO `sys_oper_log` VALUES (121, '用户管理', 3, 'com.alops.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/103', '127.0.0.1', '内网IP', '[103]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 08:27:36', 64); +INSERT INTO `sys_oper_log` VALUES (122, '个人信息', 2, 'com.alops.web.controller.system.SysProfileController.updatePwd()', 'PUT', 1, 'admin', '/system/user/profile/updatePwd', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"修改密码失败,旧密码错误\",\"code\":500}', 0, NULL, '2025-07-18 08:37:27', 128); +INSERT INTO `sys_oper_log` VALUES (123, '个人信息', 2, 'com.alops.web.controller.system.SysProfileController.updatePwd()', 'PUT', 1, 'admin', '/system/user/profile/updatePwd', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 08:38:33', 248); +INSERT INTO `sys_oper_log` VALUES (124, '角色管理', 1, 'com.alops.web.controller.system.SysRoleController.add()', 'POST', 1, 'admin', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"createBy\":\"admin\",\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[],\"params\":{},\"roleId\":102,\"roleKey\":\"test\",\"roleName\":\"管理员1\",\"roleSort\":2,\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 20:24:09', 27); +INSERT INTO `sys_oper_log` VALUES (125, '角色管理', 2, 'com.alops.web.controller.system.SysRoleController.edit()', 'PUT', 1, 'admin', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"createTime\":\"2025-07-17 15:27:46\",\"dataScope\":\"2\",\"delFlag\":\"0\",\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[],\"params\":{},\"remark\":\"普通角色\",\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\",\"roleSort\":2,\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 20:24:40', 18); +INSERT INTO `sys_oper_log` VALUES (126, '用户管理', 1, 'com.alops.web.controller.system.SysUserController.add()', 'POST', 1, 'admin', '/system/user', '127.0.0.1', '内网IP', '{\"admin\":false,\"createBy\":\"admin\",\"email\":\"123456789@qq.com\",\"nickName\":\"hh\",\"params\":{},\"phonenumber\":\"18832145678\",\"remark\":\"测试人员\",\"roleIds\":[2],\"sex\":\"1\",\"status\":\"0\",\"userId\":104,\"userName\":\"hh\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 20:30:14', 124); +INSERT INTO `sys_oper_log` VALUES (127, '用户管理', 3, 'com.alops.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/104', '127.0.0.1', '内网IP', '[104]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 20:31:06', 20); +INSERT INTO `sys_oper_log` VALUES (128, '角色管理', 3, 'com.alops.web.controller.system.SysRoleController.remove()', 'DELETE', 1, 'admin', '/system/role/102', '127.0.0.1', '内网IP', '[102]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 20:31:13', 29); +INSERT INTO `sys_oper_log` VALUES (129, '角色管理', 2, 'com.alops.web.controller.system.SysRoleController.edit()', 'PUT', 1, 'admin', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"createTime\":\"2025-07-17 15:27:46\",\"dataScope\":\"2\",\"delFlag\":\"0\",\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[1,100,1000,1001,1002,1003,1004,1005,1006,101,1007,1008,1009,1010,1011,2,109,1046,1047,1048,110,1049,1050,1051,1052,1053,1054,111,112,113,114,500,501,1042,1043,1044,1045],\"params\":{},\"remark\":\"普通角色\",\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\",\"roleSort\":2,\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 20:32:57', 26); +INSERT INTO `sys_oper_log` VALUES (130, '角色管理', 2, 'com.alops.web.controller.system.SysRoleController.edit()', 'PUT', 1, 'ry', '/system/role', '127.0.0.1', '内网IP', '{\"admin\":false,\"createTime\":\"2025-07-17 15:27:46\",\"dataScope\":\"2\",\"delFlag\":\"0\",\"flag\":false,\"menuCheckStrictly\":true,\"menuIds\":[2,109,1046,1047,1048,110,1049,1050,1051,1052,1053,1054,111,112,113,114,500,501,1042,1043,1044,1045],\"params\":{},\"remark\":\"普通角色\",\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\",\"roleSort\":2,\"status\":\"0\",\"updateBy\":\"ry\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-18 21:11:33', 179); +INSERT INTO `sys_oper_log` VALUES (131, '个人信息', 2, 'com.alops.web.controller.system.SysProfileController.updatePwd()', 'PUT', 1, 'admin', '/system/user/profile/updatePwd', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 07:58:54', 362); +INSERT INTO `sys_oper_log` VALUES (132, '用户管理', 6, 'com.alops.web.controller.system.SysUserController.importData()', 'POST', 1, 'admin', '/system/user/importData', '127.0.0.1', '内网IP', '{\"updateSupport\":\"0\"}', '{\"msg\":\"恭喜您,数据已全部导入成功!共 1 条,数据如下:
1、账号 55 导入成功\",\"code\":200}', 0, NULL, '2025-07-19 08:04:32', 598); +INSERT INTO `sys_oper_log` VALUES (133, '用户管理', 3, 'com.alops.web.controller.system.SysUserController.remove()', 'DELETE', 1, 'admin', '/system/user/105', '127.0.0.1', '内网IP', '[105]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 08:04:39', 47); +INSERT INTO `sys_oper_log` VALUES (134, '用户管理', 5, 'com.alops.web.controller.system.SysUserController.export()', 'POST', 1, 'admin', '/system/user/export', '127.0.0.1', '内网IP', '{\"pageSize\":\"10\",\"pageNum\":\"1\"}', NULL, 0, NULL, '2025-07-19 08:53:11', 901); +INSERT INTO `sys_oper_log` VALUES (135, '菜单管理', 1, 'com.alops.web.controller.system.SysMenuController.add()', 'POST', 1, 'admin', '/system/menu', '127.0.0.1', '内网IP', '{\"children\":[],\"component\":\"system/user/index\",\"createBy\":\"admin\",\"icon\":\"edit\",\"isCache\":\"0\",\"isFrame\":\"1\",\"menuName\":\"检测\",\"menuType\":\"C\",\"orderNum\":1,\"params\":{},\"parentId\":1,\"path\":\"test\",\"perms\":\"system:user:list\",\"status\":\"0\",\"visible\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 13:51:01', 59); +INSERT INTO `sys_oper_log` VALUES (136, '菜单管理', 3, 'com.alops.web.controller.system.SysMenuController.remove()', 'DELETE', 1, 'admin', '/system/menu/2000', '127.0.0.1', '内网IP', '2000', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 13:51:32', 36); +INSERT INTO `sys_oper_log` VALUES (137, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"sys_menu\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 14:13:41', 134); +INSERT INTO `sys_oper_log` VALUES (138, '字典类型', 1, 'com.alops.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"a\",\"dictType\":\"a\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 14:17:11', 25); +INSERT INTO `sys_oper_log` VALUES (139, '字典类型', 3, 'com.alops.web.controller.system.SysDictTypeController.remove()', 'DELETE', 1, 'admin', '/system/dict/type/100', '127.0.0.1', '内网IP', '[100]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-19 14:17:21', 29); +INSERT INTO `sys_oper_log` VALUES (140, '通知公告', 1, 'com.alops.web.controller.system.SysNoticeController.add()', 'POST', 1, 'admin', '/system/notice', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"noticeContent\":\"

dajiahao

\",\"noticeTitle\":\"hh\",\"noticeType\":\"1\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-20 14:56:23', 20); +INSERT INTO `sys_oper_log` VALUES (141, '通知公告', 3, 'com.alops.web.controller.system.SysNoticeController.remove()', 'DELETE', 1, 'admin', '/system/notice/10', '127.0.0.1', '内网IP', '[10]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-20 14:56:31', 17); +INSERT INTO `sys_oper_log` VALUES (142, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"sys_menu\"}', NULL, 0, NULL, '2025-07-20 14:57:43', 680); +INSERT INTO `sys_oper_log` VALUES (143, '字典类型', 5, 'com.alops.web.controller.system.SysDictTypeController.export()', 'POST', 1, 'admin', '/system/dict/type/export', '127.0.0.1', '内网IP', '{\"pageSize\":\"10\",\"pageNum\":\"1\"}', NULL, 0, NULL, '2025-07-20 15:01:34', 640); +INSERT INTO `sys_oper_log` VALUES (144, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"sys_menu\"}', NULL, 0, NULL, '2025-07-21 20:07:53', 743); +INSERT INTO `sys_oper_log` VALUES (145, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_base\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-07-23 09:56:45', 130); +INSERT INTO `sys_oper_log` VALUES (146, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_base\"}', NULL, 0, NULL, '2025-07-23 09:56:58', 145); +INSERT INTO `sys_oper_log` VALUES (147, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"alarm_rule,local_knowledge,qa_history,fau_sta,equ_manu\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-01 21:07:42', 420); +INSERT INTO `sys_oper_log` VALUES (148, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/2', '127.0.0.1', '内网IP', '[2]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-01 21:12:01', 37); +INSERT INTO `sys_oper_log` VALUES (149, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/1', '127.0.0.1', '内网IP', '[1]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-01 21:12:04', 25); +INSERT INTO `sys_oper_log` VALUES (150, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_type,equ_gather,equ_interface,equ_base\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-01 21:12:54', 283); +INSERT INTO `sys_oper_log` VALUES (151, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_base,equ_gather,equ_interface,equ_type,equ_manu,alarm_rule,fau_sta,local_knowledge,qa_history\"}', NULL, 0, NULL, '2025-08-01 21:23:48', 1028); +INSERT INTO `sys_oper_log` VALUES (152, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/equipment/add', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"equType\":\"NETWORK_SWITCH\",\"failureFrequency\":0,\"id\":\"DEV-2025-001\",\"inCharge\":1001,\"installDate\":\"2024-03-20\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"LOC-ROOM-101\",\"manufacture\":\"MANU-001\",\"name\":\"核心交换机\",\"params\":{},\"releaseDate\":\"2024-01-15\",\"repairCost\":0,\"repairFrequency\":0,\"serviceTime\":1,\"status\":1,\"updateBy\":\"admin\",\"version\":\"v3.2.1\",\"warranty\":3}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLException: Incorrect integer value: \'admin\' for column \'create_by\' at row 1\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, release_date, install_date, life_cycle, service_time, warranty, failure_frequency, repair_frequency, repair_cost, create_by, update_by, status ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLException: Incorrect integer value: \'admin\' for column \'create_by\' at row 1\n; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect integer value: \'admin\' for column \'create_by\' at row 1; nested exception is java.sql.SQLException: Incorrect integer value: \'admin\' for column \'create_by\' at row 1', '2025-08-01 23:56:02', 145); +INSERT INTO `sys_oper_log` VALUES (153, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/equipment/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"equType\":\"NETWORK_SWITCH\",\"failureFrequency\":0,\"id\":\"DEV-2025-001\",\"inCharge\":1001,\"installDate\":\"2024-03-20\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"LOC-ROOM-101\",\"manufacture\":\"MANU-001\",\"name\":\"核心交换机\",\"params\":{},\"releaseDate\":\"2024-01-15\",\"repairCost\":0,\"repairFrequency\":0,\"serviceTime\":1,\"status\":1,\"updateBy\":\"1\",\"version\":\"v3.2.1\",\"warranty\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-02 00:00:22', 17); +INSERT INTO `sys_oper_log` VALUES (154, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/equipment/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"equType\":\"NETWORK_SWITCH\",\"failureFrequency\":0,\"id\":\"DEV-2025-001\",\"inCharge\":1001,\"installDate\":\"2024-03-20\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"LOC-ROOM-101\",\"manufacture\":\"MANU-001\",\"name\":\"核心交换机\",\"params\":{},\"releaseDate\":\"2024-01-15\",\"repairCost\":0,\"repairFrequency\":0,\"serviceTime\":1,\"status\":1,\"updateBy\":\"1\",\"version\":\"v3.2.1\",\"warranty\":3}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'DEV-2025-001\' for key \'equ_base.PRIMARY\'\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, release_date, install_date, life_cycle, service_time, warranty, failure_frequency, repair_frequency, repair_cost, create_by, update_by, status ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'DEV-2025-001\' for key \'equ_base.PRIMARY\'\n; Duplicate entry \'DEV-2025-001\' for key \'equ_base.PRIMARY\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'DEV-2025-001\' for key \'equ_base.PRIMARY\'', '2025-08-02 00:00:24', 16); +INSERT INTO `sys_oper_log` VALUES (155, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/equipment/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"equType\":\"NETWORK_SWITCH\",\"failureFrequency\":0,\"id\":\"DEV-2025-001\",\"inCharge\":1001,\"installDate\":\"2024-03-20\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"LOC-ROOM-101\",\"manufacture\":\"MANU-001\",\"name\":\"核心交换机\",\"params\":{},\"releaseDate\":\"2024-01-15\",\"repairCost\":0,\"repairFrequency\":0,\"serviceTime\":1,\"status\":1,\"updateBy\":\"1\",\"version\":\"v3.2.1\",\"warranty\":3}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-02 00:01:53', 21); +INSERT INTO `sys_oper_log` VALUES (156, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"schedule_rules\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-03 21:39:42', 174); +INSERT INTO `sys_oper_log` VALUES (157, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"schedule_rules\"}', NULL, 0, NULL, '2025-08-03 21:39:45', 299); +INSERT INTO `sys_oper_log` VALUES (158, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_oid\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-07 16:14:57', 90); +INSERT INTO `sys_oper_log` VALUES (159, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_oid\"}', NULL, 0, NULL, '2025-08-07 16:15:00', 267); +INSERT INTO `sys_oper_log` VALUES (160, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/13', '127.0.0.1', '内网IP', '[13]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-07 18:53:09', 51); +INSERT INTO `sys_oper_log` VALUES (161, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_oid\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-07 18:54:36', 63); +INSERT INTO `sys_oper_log` VALUES (162, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_oid\"}', NULL, 0, NULL, '2025-08-07 18:54:39', 159); +INSERT INTO `sys_oper_log` VALUES (163, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/8', '127.0.0.1', '内网IP', '[8]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-09 15:45:03', 74); +INSERT INTO `sys_oper_log` VALUES (164, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_routing_table,equ_valn,equ_base\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-09 15:45:11', 293); +INSERT INTO `sys_oper_log` VALUES (165, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_base,equ_routing_table,equ_valn\"}', NULL, 0, NULL, '2025-08-09 15:45:18', 843); +INSERT INTO `sys_oper_log` VALUES (166, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_veneer\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-09 20:15:37', 145); +INSERT INTO `sys_oper_log` VALUES (167, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_veneer\"}', NULL, 0, NULL, '2025-08-09 20:15:40', 619); +INSERT INTO `sys_oper_log` VALUES (168, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/14', '127.0.0.1', '内网IP', '[14]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-09 20:21:58', 27); +INSERT INTO `sys_oper_log` VALUES (169, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_oid\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-09 20:22:03', 64); +INSERT INTO `sys_oper_log` VALUES (170, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_oid\"}', NULL, 0, NULL, '2025-08-09 20:22:07', 94); +INSERT INTO `sys_oper_log` VALUES (171, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/19,18,15,16,17,12,11,9,10,3', '127.0.0.1', '内网IP', '[19,18,15,16,17,12,11,9,10,3]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-15 17:32:58', 63); +INSERT INTO `sys_oper_log` VALUES (172, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/4,5,6,7', '127.0.0.1', '内网IP', '[4,5,6,7]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-15 17:36:16', 14); +INSERT INTO `sys_oper_log` VALUES (173, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_routing,equ_interface,equ_vlan,equ_veneer,equ_oid,equ_gather\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-15 17:36:51', 180); +INSERT INTO `sys_oper_log` VALUES (174, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_gather,equ_interface,equ_oid,equ_routing,equ_veneer,equ_vlan\"}', NULL, 0, NULL, '2025-08-15 17:36:54', 716); +INSERT INTO `sys_oper_log` VALUES (175, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/20,21,22,23,24,25', '127.0.0.1', '内网IP', '[20,21,22,23,24,25]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-20 16:29:33', 96); +INSERT INTO `sys_oper_log` VALUES (176, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_interface\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-08-20 16:29:38', 132); +INSERT INTO `sys_oper_log` VALUES (177, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_interface\"}', NULL, 0, NULL, '2025-08-20 16:29:41', 411); +INSERT INTO `sys_oper_log` VALUES (178, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/26', '127.0.0.1', '内网IP', '[26]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 15:40:21', 38); +INSERT INTO `sys_oper_log` VALUES (179, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule,alert_rule_condition,dict_alarm_param,alert_message\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 15:40:55', 164); +INSERT INTO `sys_oper_log` VALUES (180, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"alert_message,alert_rule,alert_rule_condition,dict_alarm_param\"}', NULL, 0, NULL, '2025-09-04 15:40:58', 234); +INSERT INTO `sys_oper_log` VALUES (181, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/27,28,29,30', '127.0.0.1', '内网IP', '[27,28,29,30]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 21:07:18', 48); +INSERT INTO `sys_oper_log` VALUES (182, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule_condition\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 21:07:28', 133); +INSERT INTO `sys_oper_log` VALUES (183, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule_condition\"}', NULL, 0, NULL, '2025-09-04 21:07:32', 418); +INSERT INTO `sys_oper_log` VALUES (184, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/31', '127.0.0.1', '内网IP', '[31]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 21:08:38', 18); +INSERT INTO `sys_oper_log` VALUES (185, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule_condition\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 21:08:43', 80); +INSERT INTO `sys_oper_log` VALUES (186, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule_condition\"}', NULL, 0, NULL, '2025-09-04 21:08:45', 80); +INSERT INTO `sys_oper_log` VALUES (187, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/32', '127.0.0.1', '内网IP', '[32]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 23:08:25', 25); +INSERT INTO `sys_oper_log` VALUES (188, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"internal_message\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 23:10:39', 41); +INSERT INTO `sys_oper_log` VALUES (189, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"internal_message\"}', NULL, 0, NULL, '2025-09-04 23:10:41', 111); +INSERT INTO `sys_oper_log` VALUES (190, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/33', '127.0.0.1', '内网IP', '[33]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 23:17:10', 12); +INSERT INTO `sys_oper_log` VALUES (191, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"sys_user\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-04 23:17:26', 64); +INSERT INTO `sys_oper_log` VALUES (192, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"sys_user\"}', NULL, 0, NULL, '2025-09-04 23:17:27', 50); +INSERT INTO `sys_oper_log` VALUES (193, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/34', '127.0.0.1', '内网IP', '[34]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-05 17:51:57', 39); +INSERT INTO `sys_oper_log` VALUES (194, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-05 17:52:06', 85); +INSERT INTO `sys_oper_log` VALUES (195, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"alert_rule\"}', NULL, 0, NULL, '2025-09-05 17:52:13', 213); +INSERT INTO `sys_oper_log` VALUES (196, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/35', '127.0.0.1', '内网IP', '[35]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-05 18:54:08', 30); +INSERT INTO `sys_oper_log` VALUES (197, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"dict_alarm_param\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-05 18:54:18', 76); +INSERT INTO `sys_oper_log` VALUES (198, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"dict_alarm_param\"}', NULL, 0, NULL, '2025-09-05 18:54:20', 148); +INSERT INTO `sys_oper_log` VALUES (199, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alarmRule/list', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度不再20-45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:47:47\",\"description\":\"25<正常温度<45\",\"enable\":0,\"id\":5,\"params\":{},\"ruleName\":\"25<正常温度<45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:11:34\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率>=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率>=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率>=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用率>=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备id为 {equ_id} 的id为{interface_id}的端口状态为2\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 10:49:08\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":14,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:08:32\"},{\"alertStation\":\"2028008', 0, NULL, '2025-09-12 13:56:51', 35); +INSERT INTO `sys_oper_log` VALUES (200, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alarmRule/list', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度不再20-45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:47:47\",\"description\":\"25<正常温度<45\",\"enable\":0,\"id\":5,\"params\":{},\"ruleName\":\"25<正常温度<45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:11:34\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备id为 {equ_id} 的id为{interface_id}的端口状态为2\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 10:49:08\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":14,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:08:32\"},{\"alertStation\":\"2028008386@qq.com,48488753', 0, NULL, '2025-09-12 13:58:40', 31); +INSERT INTO `sys_oper_log` VALUES (201, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alarmRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<=20或者=>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<=20或者=>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":29,\"compareValue\":\"20\",\"createBy\":\"1\",\"id\":59,\"logicOperator\":\"or\",\"operator\":\">=\",\"orderNo\":1,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"},{\"alertRuleId\":29,\"compareValue\":\"45\",\"createBy\":\"1\",\"id\":60,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<=20或者=>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 14:00:30\",\"description\":\"非正常温度<=20或者=>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 14:00:30\"}}', 0, NULL, '2025-09-12 14:00:30', 35); +INSERT INTO `sys_oper_log` VALUES (202, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alarmRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"description\":\"非正常温度<=20或者>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":29,\"compareValue\":\"88\",\"createBy\":\"1\",\"id\":61,\"logicOperator\":\"and\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"},{\"alertRuleId\":29,\"compareValue\":\"36\",\"createBy\":\"1\",\"id\":62,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则修改成功\",\"code\":200,\"data\":{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 14:00:30\",\"description\":\"非正常温度<=20或者>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 14:06:54\"}}', 0, NULL, '2025-09-12 14:06:54', 55); +INSERT INTO `sys_oper_log` VALUES (203, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alarmRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"description\":\"非正常温度<=20或者>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":29,\"compareValue\":\"88\",\"createBy\":\"1\",\"id\":63,\"logicOperator\":\"and\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"},{\"alertRuleId\":29,\"compareValue\":\"36\",\"createBy\":\"1\",\"id\":64,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则修改成功\",\"code\":200,\"data\":{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 14:00:30\",\"description\":\"非正常温度<=20或者>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 14:07:26\"}}', 0, NULL, '2025-09-12 14:07:26', 59); +INSERT INTO `sys_oper_log` VALUES (204, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alarmRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<=20或者=>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<=20或者=>45\",\"enable\":0,\"id\":30,\"params\":{},\"ruleName\":\"非正常温度>=20或者>>>>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":30,\"compareValue\":\"20\",\"createBy\":\"1\",\"id\":65,\"logicOperator\":\"or\",\"operator\":\">=\",\"orderNo\":1,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"},{\"alertRuleId\":30,\"compareValue\":\"45\",\"createBy\":\"1\",\"id\":66,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"params\":{},\"updateBy\":\"1\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<=20或者=>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 14:08:04\",\"description\":\"非正常温度<=20或者=>45\",\"enable\":0,\"id\":30,\"params\":{},\"ruleName\":\"非正常温度>=20或者>>>>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 14:08:04\"}}', 0, NULL, '2025-09-12 14:08:04', 81); +INSERT INTO `sys_oper_log` VALUES (205, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alarmRule/list', '127.0.0.1', '内网IP', '{\"ruleName\":\"温度\"}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度不再20-45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:47:47\",\"description\":\"25<正常温度<45\",\"enable\":0,\"id\":5,\"params\":{},\"ruleName\":\"25<正常温度<45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:11:34\"},{\"alertStation\":\"2028008386@qq.com,484887537@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 10:58:34\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":24,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-10 21:45:46\"},{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 12:17:02\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":27,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 12:17:02\"},{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 12:19:49\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":28,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 12:20:22\"},{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 14:00:30\",\"description\":\"非正常温度<=20或者>45\",\"enable\":0,\"id\":29,\"params\":{},\"ruleName\":\"非正常温度<=20或者=>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 14:07:26\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<=20或者=>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 14:08:04\",\"description\":\"非正常温度<=20或者=>45\",\"enable\":0,\"id\":30,\"params\":{},\"ruleName\":\"非正常温度>=20或者>>>>45\",\"severity\":3,\"tableName\":', 0, NULL, '2025-09-12 14:09:20', 126); +INSERT INTO `sys_oper_log` VALUES (206, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alarmRule/list', '127.0.0.1', '内网IP', '{\"ruleName\":\"cpu\"}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"}],\"total\":1}}', 0, NULL, '2025-09-12 14:15:31', 25); +INSERT INTO `sys_oper_log` VALUES (207, '【查询预警详细规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.getInfo()', 'GET', 1, 'admin', '/inMonitoring/alarmRule/9', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},\"alertRuleConditionList\":[{\"alertRuleId\":9,\"compareValue\":\"80\",\"id\":15,\"operator\":\">=\",\"orderNo\":1,\"paramName\":\"cpu_utilization\",\"params\":{},\"valueType\":\"number\"}]}}', 0, NULL, '2025-09-12 14:17:00', 14); +INSERT INTO `sys_oper_log` VALUES (208, '【查询预警详细规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.getInfo()', 'GET', 1, 'admin', '/inMonitoring/alarmRule/9', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},\"alertRuleConditionList\":[{\"alertRuleId\":9,\"compareValue\":\"80\",\"id\":15,\"logicOperator\":\"\",\"operator\":\">=\",\"orderNo\":1,\"paramName\":\"cpu_utilization\",\"valueType\":\"number\"}]}}', 0, NULL, '2025-09-12 14:18:59', 23); +INSERT INTO `sys_oper_log` VALUES (209, '【删除预警功能】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.remove()', 'DELETE', 1, 'admin', '/inMonitoring/alarmRule/27%2C28%2C29%2C30', '127.0.0.1', '内网IP', '[27,28,29,30]', NULL, 1, 'nested exception is org.apache.ibatis.binding.BindingException: Parameter \'ids\' not found. Available parameters are [array, arg0]', '2025-09-12 14:26:21', 19); +INSERT INTO `sys_oper_log` VALUES (210, '【删除预警功能】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.remove()', 'DELETE', 1, 'admin', '/inMonitoring/alarmRule/27%2C28%2C29%2C30', '127.0.0.1', '内网IP', '[27,28,29,30]', NULL, 1, 'nested exception is org.apache.ibatis.binding.BindingException: Parameter \'ids\' not found. Available parameters are [array, arg0]', '2025-09-12 14:29:47', 18); +INSERT INTO `sys_oper_log` VALUES (211, '【删除预警功能】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.remove()', 'DELETE', 1, 'admin', '/inMonitoring/alarmRule/27%2C28%2C29%2C30', '127.0.0.1', '内网IP', '[27,28,29,30]', '{\"msg\":\"删除成功\",\"code\":200,\"data\":{\"rulesDeleted\":4,\"conditionsDeleted\":8}}', 0, NULL, '2025-09-12 14:31:55', 33); +INSERT INTO `sys_oper_log` VALUES (212, '【导出预警规则】', 5, 'com.alops.web.controller.exceptionController.AlertRuleController.export()', 'POST', 1, 'admin', '/inMonitoring/alarmRule/export', '127.0.0.1', '内网IP', '{\"ruleName\":\"cpu\"}', NULL, 0, NULL, '2025-09-12 14:40:24', 1219); +INSERT INTO `sys_oper_log` VALUES (213, '【导出预警规则】', 5, 'com.alops.web.controller.exceptionController.AlertRuleController.export()', 'POST', 1, 'admin', '/inMonitoring/alarmRule/export', '127.0.0.1', '内网IP', '{\"ruleName\":\"cpu使用率<=80\"}', NULL, 0, NULL, '2025-09-12 14:41:58', 35); +INSERT INTO `sys_oper_log` VALUES (214, '角色下拉表', 1, 'com.alops.web.controller.system.SysRoleController.rolePicker()', 'GET', 1, 'admin', '/system/role/rolePicker', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":[{\"admin\":true,\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":1,\"roleKey\":\"admin\",\"roleName\":\"超级管理员\"},{\"admin\":false,\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\"},{\"admin\":false,\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":101,\"roleKey\":\"ii\",\"roleName\":\"管理员\"},{\"admin\":false,\"flag\":false,\"menuCheckStrictly\":false,\"params\":{},\"roleId\":102,\"roleKey\":\"test\",\"roleName\":\"管理员1\"}]}', 0, NULL, '2025-09-12 15:12:52', 20); +INSERT INTO `sys_oper_log` VALUES (215, '角色下拉表', 1, 'com.alops.web.controller.system.SysRoleController.rolePicker()', 'GET', 1, 'admin', '/system/role/rolePicker', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":[null,null,null,null]}', 0, NULL, '2025-09-12 15:16:18', 35); +INSERT INTO `sys_oper_log` VALUES (216, '角色下拉表', 1, 'com.alops.web.controller.system.SysRoleController.rolePicker()', 'GET', 1, 'admin', '/system/role/rolePicker', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":[{\"roleId\":1,\"roleKey\":\"admin\",\"roleName\":\"超级管理员\"},{\"roleId\":2,\"roleKey\":\"common\",\"roleName\":\"普通角色\"},{\"roleId\":101,\"roleKey\":\"ii\",\"roleName\":\"管理员\"},{\"roleId\":102,\"roleKey\":\"test\",\"roleName\":\"管理员1\"}]}', 0, NULL, '2025-09-12 15:18:14', 15); +INSERT INTO `sys_oper_log` VALUES (217, '字典类型', 1, 'com.alops.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"预警信息状态\",\"dictType\":\"alert_message_status\",\"params\":{},\"remark\":\"预警信息列表\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-12 15:43:57', 40); +INSERT INTO `sys_oper_log` VALUES (218, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage', '127.0.0.1', '内网IP', '{\"params\":{}}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'where id = null\' at line 3\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\AlertMessageMapper.xml]\r\n### The error may involve com.alops.system.mapper.AlertMessageMapper.updateAlertMessage-Inline\r\n### The error occurred while setting parameters\r\n### SQL: update alert_message where id = ?\r\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'where id = null\' at line 3\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'where id = null\' at line 3', '2025-09-12 16:11:59', 149); +INSERT INTO `sys_oper_log` VALUES (219, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage', '127.0.0.1', '内网IP', '{\"handleTime\":\"2025-09-12\",\"handler\":10086,\"id\":1,\"params\":{},\"solution\":\"已派技术人员现场检查,正在处理\",\"status\":\"in_progress\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-12 16:14:42', 30); +INSERT INTO `sys_oper_log` VALUES (220, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":31,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\"},\"alertRuleConditionList\":[{\"alertRuleId\":31,\"compareValue\":\"20\",\"id\":67,\"logicOperator\":\"or\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":31,\"compareValue\":\"45\",\"id\":68,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createTime\":\"2025-09-12 16:23:45\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":31,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateTime\":\"2025-09-12 16:23:45\"}}', 0, NULL, '2025-09-12 16:23:45', 65); +INSERT INTO `sys_oper_log` VALUES (221, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":32,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":32,\"compareValue\":\"20\",\"id\":69,\"logicOperator\":\"or\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":32,\"compareValue\":\"45\",\"id\":70,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 16:28:39\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":32,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 16:28:39\"}}', 0, NULL, '2025-09-12 16:28:39', 55597); +INSERT INTO `sys_oper_log` VALUES (222, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":33,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":33,\"compareValue\":\"20\",\"id\":71,\"logicOperator\":\"or\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":33,\"compareValue\":\"45\",\"id\":72,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 16:30:18\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":33,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 16:30:18\"}}', 0, NULL, '2025-09-12 16:31:26', 115622); +INSERT INTO `sys_oper_log` VALUES (223, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":33,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":33,\"compareValue\":\"88\",\"id\":73,\"logicOperator\":\"and\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":33,\"compareValue\":\"36\",\"id\":74,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则修改成功\",\"code\":200,\"data\":{\"alertStation\":\"99999999@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 16:30:18\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":33,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 16:35:32\"}}', 0, NULL, '2025-09-12 16:35:32', 56); +INSERT INTO `sys_oper_log` VALUES (224, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10,11,12,14,24]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 18:49:09', 10); +INSERT INTO `sys_oper_log` VALUES (225, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10,11,12,14,24]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 18:50:16', 21); +INSERT INTO `sys_oper_log` VALUES (226, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10,11,12,14,24]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 18:51:19', 17); +INSERT INTO `sys_oper_log` VALUES (227, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":34,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":34,\"compareValue\":\"20\",\"id\":75,\"logicOperator\":\"or\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":34,\"compareValue\":\"45\",\"id\":76,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 19:00:14\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":34,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 19:00:14\"}}', 0, NULL, '2025-09-12 19:00:14', 48); +INSERT INTO `sys_oper_log` VALUES (228, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":35,\"compareValue\":\"20\",\"id\":77,\"logicOperator\":\"or\",\"operator\":\"<\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":35,\"compareValue\":\"45\",\"id\":78,\"logicOperator\":\"\",\"operator\":\">\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 19:08:11\"}}', 0, NULL, '2025-09-12 19:08:11', 29); +INSERT INTO `sys_oper_log` VALUES (229, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[11,14]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 19:55:54', 21); +INSERT INTO `sys_oper_log` VALUES (230, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[11]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 19:58:47', 11); +INSERT INTO `sys_oper_log` VALUES (231, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[11]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 20:00:46', 5); +INSERT INTO `sys_oper_log` VALUES (232, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[11]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 20:01:35', 4); +INSERT INTO `sys_oper_log` VALUES (233, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[12]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 20:32:02', 21); +INSERT INTO `sys_oper_log` VALUES (234, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[12]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 21:02:07', 36); +INSERT INTO `sys_oper_log` VALUES (235, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[12,35]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-12 21:05:34', 20); +INSERT INTO `sys_oper_log` VALUES (236, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage', '127.0.0.1', '内网IP', '{\"cause\":\"\",\"description\":\"\",\"handleTime\":\"2025-09-12\",\"handler\":\"\",\"id\":116,\"level\":2,\"params\":{},\"reporter\":\"小美\",\"solution\":\"\",\"status\":\"\",\"type\":\"TEMPERATURE\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-12 21:11:38', 14); +INSERT INTO `sys_oper_log` VALUES (237, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"cause\":\"\",\"description\":\"\",\"handleTime\":\"2025-09-12\",\"handler\":\"\",\"id\":116,\"level\":2,\"params\":{},\"reporter\":\"小美\",\"solution\":\"\",\"status\":\"DELETED \",\"type\":\"TEMPERATURE\"}', '{\"msg\":\"修改成功\",\"code\":200,\"data\":{\"description\":\"设备 11 的健康度改变\",\"equId\":\"11\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-12\",\"id\":116,\"level\":2,\"occurTime\":\"2025-09-12\",\"params\":{},\"reporter\":\"小美\",\"status\":\"DELETED \",\"type\":\"TEMPERATURE\"}}', 0, NULL, '2025-09-12 21:49:10', 21); +INSERT INTO `sys_oper_log` VALUES (238, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"description\":\"设备id为 12 的id为111的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":11,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为104的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":12,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为103的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":13,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为102的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":14,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为101的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":15,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为100的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":16,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为99的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":17,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为98的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":18,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为97的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":19,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为96的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":20,\"level\":3,\"occurTime\":\"2025-09-12\",\"params\":{},\"status\":\"UNHANDLED\",\"type\":\"1\"}],\"total\":92}}', 0, NULL, '2025-09-12 21:49:35', 55); +INSERT INTO `sys_oper_log` VALUES (239, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"description\":\"设备id为 12 的id为111的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":11,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为104的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":12,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为103的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":13,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为102的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":14,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为101的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":15,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为100的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":16,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为99的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":17,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为98的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":18,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为97的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":19,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"description\":\"设备id为 12 的id为96的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":20,\"level\":3,\"occurTime\":\"2025-09-12\",\"status\":\"UNHANDLED\",\"type\":\"1\"}],\"total\":92}}', 0, NULL, '2025-09-12 21:50:28', 60); +INSERT INTO `sys_oper_log` VALUES (240, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{\"reporter\":\"小美\"}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"cause\":\"\",\"description\":\"设备 11 的健康度改变\",\"equId\":\"11\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-12\",\"handler\":\"\",\"id\":116,\"level\":2,\"occurTime\":\"2025-09-12\",\"reporter\":\"小美\",\"solution\":\"\",\"status\":\"DELETED \",\"type\":\"TEMPERATURE\"}],\"total\":1}}', 0, NULL, '2025-09-12 21:53:03', 38); +INSERT INTO `sys_oper_log` VALUES (241, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"cause\":\"\",\"description\":\"\",\"handleTime\":\"2025-09-12\",\"handler\":\"\",\"id\":72,\"level\":2,\"reporter\":\"小美\",\"solution\":\"\",\"status\":\"DELETED \",\"type\":\"TEMPERATURE\"}', '{\"msg\":\"修改成功\",\"code\":200,\"data\":{\"cause\":\"\",\"description\":\"设备id为 12 的id为38的端口状态为2\",\"equId\":\"12\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-12\",\"handler\":\"\",\"id\":72,\"level\":2,\"occurTime\":\"2025-09-12\",\"reporter\":\"小美\",\"solution\":\"\",\"status\":\"DELETED \",\"type\":\"TEMPERATURE\"}}', 0, NULL, '2025-09-12 21:55:14', 24); +INSERT INTO `sys_oper_log` VALUES (242, '删除预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.remove()', 'DELETE', 1, 'admin', '/inMonitoring/alertMessage/73%2C74%2C75', '127.0.0.1', '内网IP', '[73,74,75]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-12 21:56:27', 17); +INSERT INTO `sys_oper_log` VALUES (243, '【获取预警参数】', 5, 'com.alops.web.controller.exceptionController.AlertRuleController.getParamsByTableName()', 'GET', 1, 'admin', '/inMonitoring/alertRule/byTable', '127.0.0.1', '内网IP', '{\"tableName\":\"equ_gather\"}', '{\"msg\":\"获取预警参数成功\",\"code\":200,\"data\":[{\"columnName\":\"alarm_info\",\"id\":65,\"paramName\":\"协议采集的结构化告警信息,6 级最高,1 级最低\",\"paramType\":\"json\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"cont_work_period\",\"id\":66,\"paramName\":\"设备持续运行时长(如365天12小时)\",\"paramType\":\"string\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"cpu_utilization\",\"id\":67,\"paramName\":\"CPU 使用率(%)\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"equ_id\",\"id\":68,\"paramName\":\"设备 ID\",\"paramType\":\"string\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed\",\"id\":69,\"paramName\":\"风扇转速(rpm)\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed_status\",\"id\":70,\"paramName\":\"风扇转速状态(Normal/Abnormal)\",\"paramType\":\"string\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"gather_time\",\"id\":71,\"paramName\":\"采集时间\",\"paramType\":\"timestamp\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"health\",\"id\":72,\"paramName\":\"综合计算的健康度指标(%)\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"humidity\",\"id\":73,\"paramName\":\"设备湿度(%)\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"id\",\"id\":74,\"paramType\":\"string\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"log_online\",\"id\":75,\"paramName\":\"上下线日志事件\",\"paramType\":\"string\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"log_sys\",\"id\":76,\"paramName\":\"包含事件类型、级别的结构化日志\",\"paramType\":\"json\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"memory_utilization\",\"id\":77,\"paramName\":\"内存使用率(%)\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"temperature\",\"id\":78,\"paramName\":\"设备温度\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_in\",\"id\":79,\"paramName\":\"输入电压(V)\",\"paramType\":\"number\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_in_status\",\"id\":80,\"paramName\":\"输入电压状态(Normal/UnderVoltage)\",\"paramType\":\"string\",\"params\":{},\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_out\",\"id\":81,\"paramName\":\"输出电压', 0, NULL, '2025-09-12 22:14:16', 17); +INSERT INTO `sys_oper_log` VALUES (244, '【获取预警参数】', 5, 'com.alops.web.controller.exceptionController.AlertRuleController.getParamsByTableName()', 'GET', 1, 'admin', '/inMonitoring/alertRule/byTable', '127.0.0.1', '内网IP', '{\"tableName\":\"equ_gather\"}', '{\"msg\":\"获取预警参数成功\",\"code\":200,\"data\":[{\"columnName\":\"alarm_info\",\"id\":65,\"paramName\":\"协议采集的结构化告警信息,6 级最高,1 级最低\",\"paramType\":\"json\",\"tableName\":\"equ_gather\"},{\"columnName\":\"cont_work_period\",\"id\":66,\"paramName\":\"设备持续运行时长(如365天12小时)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"cpu_utilization\",\"id\":67,\"paramName\":\"CPU 使用率(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"equ_id\",\"id\":68,\"paramName\":\"设备 ID\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed\",\"id\":69,\"paramName\":\"风扇转速(rpm)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed_status\",\"id\":70,\"paramName\":\"风扇转速状态(Normal/Abnormal)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"gather_time\",\"id\":71,\"paramName\":\"采集时间\",\"paramType\":\"timestamp\",\"tableName\":\"equ_gather\"},{\"columnName\":\"health\",\"id\":72,\"paramName\":\"综合计算的健康度指标(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"humidity\",\"id\":73,\"paramName\":\"设备湿度(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"id\",\"id\":74,\"paramName\":\"\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"log_online\",\"id\":75,\"paramName\":\"上下线日志事件\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"log_sys\",\"id\":76,\"paramName\":\"包含事件类型、级别的结构化日志\",\"paramType\":\"json\",\"tableName\":\"equ_gather\"},{\"columnName\":\"memory_utilization\",\"id\":77,\"paramName\":\"内存使用率(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"temperature\",\"id\":78,\"paramName\":\"设备温度\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_in\",\"id\":79,\"paramName\":\"输入电压(V)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_in_status\",\"id\":80,\"paramName\":\"输入电压状态(Normal/UnderVoltage)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_out\",\"id\":81,\"paramName\":\"输出电压(V)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_out_status\",\"id\":82,\"paramName\":\"输出电压状态(Normal/UnderVoltage)\",\"paramType\":\"string\",\"tableName\":\"equ_gather', 0, NULL, '2025-09-12 22:18:46', 23); +INSERT INTO `sys_oper_log` VALUES (245, '【获取预警参数】', 5, 'com.alops.web.controller.exceptionController.AlertRuleController.getParamsByTableName()', 'GET', 1, 'admin', '/inMonitoring/alertRule/byTable', '127.0.0.1', '内网IP', '{\"tableName\":\"equ_gather\"}', '{\"msg\":\"获取预警参数成功\",\"code\":200,\"data\":[{\"columnName\":\"cont_work_period\",\"id\":66,\"paramName\":\"设备持续运行时长(如365天12小时)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"cpu_utilization\",\"id\":67,\"paramName\":\"CPU 使用率(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed\",\"id\":69,\"paramName\":\"风扇转速(rpm)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed_status\",\"id\":70,\"paramName\":\"风扇转速状态(Normal/Abnormal)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"gather_time\",\"id\":71,\"paramName\":\"采集时间\",\"paramType\":\"timestamp\",\"tableName\":\"equ_gather\"},{\"columnName\":\"health\",\"id\":72,\"paramName\":\"综合计算的健康度指标(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"humidity\",\"id\":73,\"paramName\":\"设备湿度(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"memory_utilization\",\"id\":77,\"paramName\":\"内存使用率(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"temperature\",\"id\":78,\"paramName\":\"设备温度\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_in\",\"id\":79,\"paramName\":\"输入电压(V)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_in_status\",\"id\":80,\"paramName\":\"输入电压状态(Normal/UnderVoltage)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_out\",\"id\":81,\"paramName\":\"输出电压(V)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"vol_out_status\",\"id\":82,\"paramName\":\"输出电压状态(Normal/UnderVoltage)\",\"paramType\":\"string\",\"tableName\":\"equ_gather\"}]}', 0, NULL, '2025-09-12 22:27:36', 18); +INSERT INTO `sys_oper_log` VALUES (246, '设备类型管理', 1, 'com.alops.web.controller.equManagement.EquTypeController.add()', 'POST', 1, 'admin', '/system/type', '127.0.0.1', '内网IP', '{\"createDate\":\"2025-09-15\",\"description\":\"wihfabf\",\"id\":\"0beb821d-0f38-4ba9-a73f-f1883dfeacda\",\"image\":\"123\",\"name\":\"测试设备类型\",\"params\":{}}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 19:50:52', 10934); +INSERT INTO `sys_oper_log` VALUES (247, '字典类型', 1, 'com.alops.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"预警状态\",\"dictType\":\"dict_alert_status\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 20:30:55', 22); +INSERT INTO `sys_oper_log` VALUES (248, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alertRule/list', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"查询成功\",\"code\":200,\"data\":{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备id为 {equ_id} 的id为{interface_id}的端口状态为2\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 10:49:08\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":14,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:08:32\"},{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 19:08:11\"}],\"total\":6}}', 0, NULL, '2025-09-15 22:25:06', 119); +INSERT INTO `sys_oper_log` VALUES (249, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alertRule/list', '127.0.0.1', '内网IP', '{}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率<=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备id为 {equ_id} 的id为{interface_id}的端口状态为2\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 10:49:08\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":14,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"1\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-05 17:08:32\"},{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-12 19:08:11\"}],\"total\":6}', 0, NULL, '2025-09-15 22:26:42', 131); +INSERT INTO `sys_oper_log` VALUES (250, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-15 22:29:41', 16); +INSERT INTO `sys_oper_log` VALUES (251, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-15 22:31:58', 13); +INSERT INTO `sys_oper_log` VALUES (252, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-15 22:36:33', 50); +INSERT INTO `sys_oper_log` VALUES (253, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-15 22:37:02', 10); +INSERT INTO `sys_oper_log` VALUES (254, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"batch\":2,\"description\":\"设备 12 的cpu使用率<=80\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":120,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":2,\"description\":\"设备 11 的内从使用率<=80\",\"equId\":\"11\",\"equType\":\"交换机\",\"id\":121,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":1,\"description\":\"设备 12 的cpu使用率<=80\",\"equId\":\"12\",\"equType\":\"交换机\",\"id\":118,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":1,\"description\":\"设备 11 的内从使用率<=80\",\"equId\":\"11\",\"equType\":\"交换机\",\"id\":119,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"}],\"total\":4}', 0, NULL, '2025-09-15 22:37:37', 58); +INSERT INTO `sys_oper_log` VALUES (255, '字典类型', 3, 'com.alops.web.controller.system.SysDictTypeController.remove()', 'DELETE', 1, 'admin', '/system/dict/type/102', '127.0.0.1', '内网IP', '[102]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:41:45', 24); +INSERT INTO `sys_oper_log` VALUES (256, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"未处理\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"UNHANDLED\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:43:19', 18); +INSERT INTO `sys_oper_log` VALUES (257, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"忽略\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"IGNORED\",\"listClass\":\"info\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:44:09', 28); +INSERT INTO `sys_oper_log` VALUES (258, '字典数据', 2, 'com.alops.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"createTime\":\"2025-09-15 22:43:19\",\"default\":false,\"dictCode\":100,\"dictLabel\":\"未处理\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"UNHANDLED\",\"isDefault\":\"N\",\"listClass\":\"primary\",\"params\":{},\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:44:23', 23); +INSERT INTO `sys_oper_log` VALUES (259, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"删除\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"DELETED \",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:44:51', 14); +INSERT INTO `sys_oper_log` VALUES (260, '字典数据', 2, 'com.alops.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"createTime\":\"2025-09-15 22:44:51\",\"default\":false,\"dictCode\":102,\"dictLabel\":\"删除\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"DELETED \",\"isDefault\":\"N\",\"listClass\":\"warning\",\"params\":{},\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:45:00', 23); +INSERT INTO `sys_oper_log` VALUES (261, '字典数据', 2, 'com.alops.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"createTime\":\"2025-09-15 22:44:51\",\"default\":false,\"dictCode\":102,\"dictLabel\":\"删除\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"DELETED \",\"isDefault\":\"N\",\"listClass\":\"warning\",\"params\":{},\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:45:08', 18); +INSERT INTO `sys_oper_log` VALUES (262, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"正在解决\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"IN_PROGRESS\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:45:24', 16); +INSERT INTO `sys_oper_log` VALUES (263, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"解决完\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"RESOLVED\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:45:43', 35); +INSERT INTO `sys_oper_log` VALUES (264, '字典类型', 1, 'com.alops.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"表的类型\",\"dictType\":\"sys_table\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:46:20', 21); +INSERT INTO `sys_oper_log` VALUES (265, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"采集表\",\"dictSort\":0,\"dictType\":\"sys_table\",\"dictValue\":\"equ_gather\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:47:01', 15); +INSERT INTO `sys_oper_log` VALUES (266, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"接口表\",\"dictSort\":0,\"dictType\":\"sys_table\",\"dictValue\":\"equ_interface\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:47:31', 16); +INSERT INTO `sys_oper_log` VALUES (267, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"路由表\",\"dictSort\":0,\"dictType\":\"sys_table\",\"dictValue\":\"equ_routing\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:47:50', 21); +INSERT INTO `sys_oper_log` VALUES (268, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"单板状态表\",\"dictSort\":0,\"dictType\":\"sys_table\",\"dictValue\":\"equ_veneer\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:48:24', 14); +INSERT INTO `sys_oper_log` VALUES (269, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"vlan\",\"dictSort\":0,\"dictType\":\"sys_table\",\"dictValue\":\"equ_vlan\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-15 22:48:51', 13); +INSERT INTO `sys_oper_log` VALUES (270, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"knowledge_entries\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-16 22:03:24', 111); +INSERT INTO `sys_oper_log` VALUES (271, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"knowledge_entries\"}', NULL, 0, NULL, '2025-09-16 22:03:28', 342); +INSERT INTO `sys_oper_log` VALUES (272, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"执行立即预警失败: \\r\\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'UPDATE equ_base\\n SET failure_frequency = failure_frequency + 1\\n \' at line 5\\r\\n### The error may exist in file [D:\\\\III\\\\AIOps_sys\\\\ALOps_sys_backend\\\\alops-system\\\\target\\\\classes\\\\mapper\\\\system\\\\EquBaseMapper.xml]\\r\\n### The error may involve defaultParameterMap\\r\\n### The error occurred while setting parameters\\r\\n### SQL: UPDATE equ_base SET failure_frequency = failure_frequency + ? WHERE equ_id = ? ; UPDATE equ_base SET failure_frequency = failure_frequency + ? WHERE equ_id = ?\\r\\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'UPDATE equ_base\\n SET failure_frequency = failure_frequency + 1\\n \' at line 5\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'UPDATE equ_base\\n SET failure_frequency = failure_frequency + 1\\n \' at line 5\",\"code\":500}', 0, NULL, '2025-09-16 22:19:05', 327); +INSERT INTO `sys_oper_log` VALUES (273, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"执行立即预警失败: \\r\\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'equ_id\' in \'where clause\'\\r\\n### The error may exist in file [D:\\\\III\\\\AIOps_sys\\\\ALOps_sys_backend\\\\alops-system\\\\target\\\\classes\\\\mapper\\\\system\\\\EquBaseMapper.xml]\\r\\n### The error may involve defaultParameterMap\\r\\n### The error occurred while setting parameters\\r\\n### SQL: UPDATE equ_base SET failure_frequency = CASE equ_id WHEN ? THEN failure_frequency + ? WHEN ? THEN failure_frequency + ? END WHERE equ_id IN ( ? , ? )\\r\\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'equ_id\' in \'where clause\'\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'equ_id\' in \'where clause\'\",\"code\":500}', 0, NULL, '2025-09-16 22:23:22', 177); +INSERT INTO `sys_oper_log` VALUES (274, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-16 22:28:35', 104); +INSERT INTO `sys_oper_log` VALUES (275, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-16 22:37:39', 55); +INSERT INTO `sys_oper_log` VALUES (276, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,10]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-16 22:38:01', 72); +INSERT INTO `sys_oper_log` VALUES (277, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/deviceType/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"equType\":\"\",\"inCharge\":55,\"installDate\":\"2025-09-16\",\"ip\":\"192.168.4.1\",\"lifeCycle\":5,\"location\":\"画画\",\"manufacture\":\"3\",\"name\":\"测试设备\",\"params\":{},\"releaseDate\":\"2025-09-16\",\"serviceTime\":3,\"status\":0,\"updateBy\":\"1\",\"version\":\"3\",\"warranty\":1}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( name, version, ip, manufacture, location, equ_type, in_charge, release_date, install_date, life_cycle, service_time, warranty, create_by, update_by, status ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value', '2025-09-16 23:08:57', 57); +INSERT INTO `sys_oper_log` VALUES (278, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/deviceType/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"equType\":\"1\",\"id\":\"0b49ef57-a06c-40cb-a837-20e93a38beca\",\"inCharge\":55,\"installDate\":\"2025-09-16\",\"ip\":\"192.168.4.1\",\"lifeCycle\":5,\"location\":\"画画\",\"manufacture\":\"3\",\"name\":\"测试设备\",\"params\":{},\"releaseDate\":\"2025-09-16\",\"serviceTime\":3,\"status\":0,\"updateBy\":\"1\",\"version\":\"3\",\"warranty\":1}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, release_date, install_date, life_cycle, service_time, warranty, create_by, update_by, status ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\n; Field \'create_date\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'create_date\' doesn\'t have a default value', '2025-09-16 23:12:04', 61); +INSERT INTO `sys_oper_log` VALUES (279, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/deviceType/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"equType\":\"1\",\"id\":\"993d9f62-eef4-4c41-9a5d-5351d1c4b051\",\"inCharge\":55,\"installDate\":\"2025-09-16\",\"ip\":\"192.168.4.1\",\"lifeCycle\":5,\"location\":\"画画\",\"manufacture\":\"3\",\"name\":\"测试设备\",\"params\":{},\"releaseDate\":\"2025-09-16\",\"serviceTime\":3,\"status\":0,\"updateBy\":\"1\",\"version\":\"3\",\"warranty\":1}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, release_date, install_date, life_cycle, service_time, warranty, create_by, update_by, status ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )\r\n### Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\n; Field \'create_date\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'create_date\' doesn\'t have a default value', '2025-09-16 23:17:34', 132); +INSERT INTO `sys_oper_log` VALUES (280, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/deviceType/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"createDate\":\"2025-09-16\",\"equType\":\"1\",\"id\":\"1f669d7b-44c9-4f0e-8a89-a3098fdfe7b3\",\"inCharge\":55,\"installDate\":\"2025-09-16\",\"ip\":\"192.168.4.1\",\"lifeCycle\":5,\"location\":\"画画\",\"manufacture\":\"3\",\"name\":\"测试设备\",\"params\":{},\"releaseDate\":\"2025-09-16\",\"serviceTime\":3,\"status\":0,\"updateBy\":\"1\",\"updateDate\":\"2025-09-16\",\"version\":\"3\",\"warranty\":1}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-16 23:18:46', 44); +INSERT INTO `sys_oper_log` VALUES (281, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/deviceType/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"createDate\":\"2025-09-16\",\"equType\":\"1\",\"id\":\"634733e8-1dd5-4a38-a54a-5f5c3ac71fb7\",\"inCharge\":55,\"installDate\":\"2025-09-16\",\"ip\":\"192.168.4.1\",\"lifeCycle\":5,\"location\":\"画画\",\"manufacture\":\"3\",\"name\":\"测试设备\",\"params\":{},\"releaseDate\":\"2025-09-16\",\"serviceTime\":3,\"status\":0,\"updateBy\":\"1\",\"updateDate\":\"2025-09-16\",\"version\":\"3\",\"warranty\":1}', NULL, 1, 'nested exception is org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.0', '2025-09-16 23:21:30', 28); +INSERT INTO `sys_oper_log` VALUES (282, '设备档案', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/deviceType/add', '127.0.0.1', '内网IP', '{\"createBy\":\"1\",\"createDate\":\"2025-09-16\",\"equType\":\"1\",\"failureFrequency\":0,\"id\":\"94a4f777-c112-4f08-8608-5496c47a885f\",\"inCharge\":55,\"installDate\":\"2025-09-16\",\"ip\":\"192.168.4.1\",\"lifeCycle\":5,\"location\":\"画画\",\"manufacture\":\"3\",\"name\":\"测试设备\",\"params\":{},\"releaseDate\":\"2025-09-16\",\"serviceTime\":3,\"status\":0,\"updateBy\":\"1\",\"updateDate\":\"2025-09-16\",\"version\":\"3\",\"warranty\":1}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-16 23:24:38', 43); +INSERT INTO `sys_oper_log` VALUES (283, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":36,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":36,\"compareValue\":\"20\",\"id\":79,\"logicOperator\":\"or\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":36,\"compareValue\":\"45\",\"id\":80,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-17 10:04:05\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":36,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-17 10:04:05\"}}', 0, NULL, '2025-09-17 10:04:06', 116); +INSERT INTO `sys_oper_log` VALUES (284, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45,设备类型{equ_type}\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":37,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":37,\"compareValue\":\"20\",\"id\":81,\"logicOperator\":\"or\",\"operator\":\">\",\"orderNo\":1,\"paramName\":\"temperature\",\"valueType\":\"number\"},{\"alertRuleId\":37,\"compareValue\":\"45\",\"id\":82,\"logicOperator\":\"\",\"operator\":\"<\",\"orderNo\":2,\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45,设备类型{equ_type}\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-17 10:04:41\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":37,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-17 10:04:41\"}}', 0, NULL, '2025-09-17 10:04:41', 39); +INSERT INTO `sys_oper_log` VALUES (285, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的设备接口{interface_id}接状态为2,设备类型{equ_type}\",\"alertWay\":\"message\",\"createBy\":\"1\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":38,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":38,\"compareValue\":\"2\",\"id\":83,\"logicOperator\":\"\",\"operator\":\"=\",\"orderNo\":1,\"paramName\":\"running\",\"valueType\":\"string\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的设备接口{interface_id}接状态为2,设备类型{equ_type}\",\"alertWay\":\"message\",\"createBy\":\"1\",\"createTime\":\"2025-09-17 10:24:13\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":38,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-17 10:24:13\"}}', 0, NULL, '2025-09-17 10:24:13', 53); +INSERT INTO `sys_oper_log` VALUES (286, '【立即执行预警】', 3, 'com.alops.web.controller.exceptionController.AlertMessageController.executeImmediate()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/executeImmediate', '127.0.0.1', '内网IP', '{\"ruleIds\":[9,38]}', '{\"msg\":\"立即预警任务已触发,存入成功,请查看\",\"code\":200}', 0, NULL, '2025-09-17 10:27:06', 131); +INSERT INTO `sys_oper_log` VALUES (287, '设备档案', 2, 'com.alops.web.controller.equManagement.EquBaseController.edit()', 'PUT', 1, 'admin', '/device/deviceType', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"failureFrequency\":5,\"id\":\"15\",\"inCharge\":55,\"installDate\":\"2025-08-05\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"机房1\",\"manufacture\":\"3\",\"name\":\"测试设备A\",\"releaseDate\":\"2025-08-01\",\"serviceTime\":3,\"status\":1,\"updateBy\":1,\"updateDate\":\"2025-09-17\",\"version\":\"v2.1\",\"warranty\":1}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-17 10:39:44', 30); +INSERT INTO `sys_oper_log` VALUES (288, '设备档案', 2, 'com.alops.web.controller.equManagement.EquBaseController.edit()', 'PUT', 1, 'admin', '/device/deviceType', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"failureFrequency\":5,\"id\":\"15\",\"inCharge\":55,\"installDate\":\"2025-08-05\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"机房1\",\"manufacture\":\"3\",\"name\":\"测试设备b\",\"releaseDate\":\"2025-08-01\",\"serviceTime\":3,\"status\":1,\"updateBy\":1,\"updateDate\":\"2025-09-17\",\"version\":\"v2.1\",\"warranty\":1}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-17 10:43:52', 13); +INSERT INTO `sys_oper_log` VALUES (289, '设备档案', 2, 'com.alops.web.controller.equManagement.EquBaseController.edit()', 'PUT', 1, 'admin', '/device/deviceType', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"failureFrequency\":5,\"id\":\"15\",\"inCharge\":55,\"installDate\":\"2025-08-05\",\"ip\":\"192.168.1.100\",\"lifeCycle\":5,\"location\":\"机房1\",\"manufacture\":\"3\",\"name\":\"测试设备b\",\"releaseDate\":\"2025-08-01\",\"serviceTime\":3,\"status\":1,\"updateBy\":1,\"updateDate\":\"2025-09-17\",\"version\":\"v2.1\",\"warranty\":1}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-17 10:46:50', 68); +INSERT INTO `sys_oper_log` VALUES (290, '设备档案', 3, 'com.alops.web.controller.equManagement.EquBaseController.remove()', 'DELETE', 1, 'admin', '/device/deviceType/15%2C16', '127.0.0.1', '内网IP', '[\"15\",\"16\"]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-17 10:51:15', 14); +INSERT INTO `sys_oper_log` VALUES (291, '代码生成', 3, 'com.alops.generator.controller.GenController.remove()', 'DELETE', 1, 'admin', '/tool/gen/37,36', '127.0.0.1', '内网IP', '[37,36]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 14:49:50', 32); +INSERT INTO `sys_oper_log` VALUES (292, '代码生成', 6, 'com.alops.generator.controller.GenController.importTableSave()', 'POST', 1, 'admin', '/tool/gen/importTable', '127.0.0.1', '内网IP', '{\"tables\":\"equ_base,equ_supplier\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 14:49:56', 144); +INSERT INTO `sys_oper_log` VALUES (293, '代码生成', 8, 'com.alops.generator.controller.GenController.batchGenCode()', 'GET', 1, 'admin', '/tool/gen/batchGenCode', '127.0.0.1', '内网IP', '{\"tables\":\"equ_base,equ_supplier\"}', NULL, 0, NULL, '2025-09-19 14:50:00', 266); +INSERT INTO `sys_oper_log` VALUES (294, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"22222222222\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', NULL, 1, 'For input string: \"58dab643-5fcd-4ed0-a7cd-b6f2d829b02a\"', '2025-09-19 17:13:47', 6); +INSERT INTO `sys_oper_log` VALUES (295, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"22222222222\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, install_date, life_cycle, warranty, create_by, status, device_level, supplier_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, COALESCE(?, 0), ?, ? )\r\n### Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\n; Field \'create_date\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'create_date\' doesn\'t have a default value', '2025-09-19 17:16:35', 50); +INSERT INTO `sys_oper_log` VALUES (296, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"22222222222\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, install_date, life_cycle, warranty, create_by, status, device_level, supplier_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, COALESCE(?, 0), ?, ? )\r\n### Cause: java.sql.SQLException: Field \'create_date\' doesn\'t have a default value\n; Field \'create_date\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'create_date\' doesn\'t have a default value', '2025-09-19 17:17:20', 14); +INSERT INTO `sys_oper_log` VALUES (297, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"22222222222\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 17:21:53', 41); +INSERT INTO `sys_oper_log` VALUES (298, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"22222222222\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'22222222222\' for key \'equ_base.PRIMARY\'\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, install_date, life_cycle, warranty, create_by, create_date, status, failure_frequency, gather_frequency, device_level, supplier_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, COALESCE(?, 0), COALESCE(?, 0), COALESCE(?, 0), ?, ? )\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'22222222222\' for key \'equ_base.PRIMARY\'\n; Duplicate entry \'22222222222\' for key \'equ_base.PRIMARY\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'22222222222\' for key \'equ_base.PRIMARY\'', '2025-09-19 17:26:44', 82); +INSERT INTO `sys_oper_log` VALUES (299, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"222223333\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 17:27:05', 14); +INSERT INTO `sys_oper_log` VALUES (300, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"2222233444\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 17:28:06', 10); +INSERT INTO `sys_oper_log` VALUES (301, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"2222233455\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 17:29:45', 63747); +INSERT INTO `sys_oper_log` VALUES (302, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"2222233455\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, install_date, life_cycle, warranty, create_by, create_date, status, failure_frequency, gather_frequency, device_level, supplier_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, COALESCE(?, 0), COALESCE(?, 0), COALESCE(?, 0), ?, ? )\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'\n; Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'', '2025-09-19 17:29:45', 71); +INSERT INTO `sys_oper_log` VALUES (303, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"196.3.3\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-09-19 17:13:20\",\"name\":\"新的测试\",\"deviceLevel\":\"5\",\"warranty\":\"3\",\"location\":\"5.5\",\"id\":\"2222233455\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\",\"status\":\"0\"}', NULL, 1, '\r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, install_date, life_cycle, warranty, create_by, create_date, status, failure_frequency, gather_frequency, device_level, supplier_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, COALESCE(?, 0), COALESCE(?, 0), COALESCE(?, 0), ?, ? )\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'\n; Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'2222233455\' for key \'equ_base.PRIMARY\'', '2025-09-19 17:30:31', 9539); +INSERT INTO `sys_oper_log` VALUES (304, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"193.36.3.1\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-08-06\",\"name\":\"新设备测试\",\"deviceLevel\":\"3\",\"warranty\":\"5\",\"location\":\"5.5\",\"id\":\"2332\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\"}', NULL, 1, '\r\n### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'equ_image\' at row 1\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\EquBaseMapper.xml]\r\n### The error may involve com.alops.system.mapper.EquBaseMapper.insertEquBase-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into equ_base ( id, name, version, ip, manufacture, location, equ_type, in_charge, install_date, life_cycle, warranty, create_by, create_date, status, equ_image, failure_frequency, gather_frequency, device_level, supplier_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, COALESCE(?, 0), ?, COALESCE(?, 0), COALESCE(?, 0), ?, ? )\r\n### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'equ_image\' at row 1\n; Data truncation: Data too long for column \'equ_image\' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column \'equ_image\' at row 1', '2025-09-19 18:01:03', 182779); +INSERT INTO `sys_oper_log` VALUES (305, '设备基本信息', 1, 'com.alops.web.controller.equManagement.EquBaseController.add()', 'POST', 1, 'admin', '/device/files/add', '127.0.0.1', '内网IP', '{\"equType\":\"1\",\"supplierId\":\"1\",\"ip\":\"193.36.3.1\",\"version\":\"3\",\"manufacture\":\"3\",\"installDate\":\"2025-08-06\",\"name\":\"新设备测试\",\"deviceLevel\":\"3\",\"warranty\":\"5\",\"location\":\"5.5\",\"id\":\"2332\",\"inCharge\":\"小霍\",\"lifeCycle\":\"5\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 18:04:57', 13); +INSERT INTO `sys_oper_log` VALUES (306, '设备基本信息', 2, 'com.alops.web.controller.equManagement.EquBaseController.edit()', 'PUT', 1, 'admin', '/device/files/modify', '127.0.0.1', '内网IP', '{\"warranty\":\"6\",\"id\":\"2332\",\"inCharge\":\"小子\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 21:30:45', 27); +INSERT INTO `sys_oper_log` VALUES (307, '设备基本信息', 3, 'com.alops.web.controller.equManagement.EquBaseController.remove()', 'DELETE', 1, 'admin', '/device/files/22222222222%2C222223333', '127.0.0.1', '内网IP', '[\"22222222222\",\"222223333\"]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-19 23:33:15', 34); +INSERT INTO `sys_oper_log` VALUES (308, '字典类型', 1, 'com.alops.web.controller.system.SysDictTypeController.add()', 'POST', 1, 'admin', '/system/dict/type', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"dictName\":\"预警参数\",\"dictType\":\"alert_param\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 14:58:39', 33); +INSERT INTO `sys_oper_log` VALUES (309, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"cpu使用率\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"cpu_utilization\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 14:59:23', 27); +INSERT INTO `sys_oper_log` VALUES (310, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"内存使用率\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"memory_utilization\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 14:59:40', 21); +INSERT INTO `sys_oper_log` VALUES (311, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"风扇转速\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"fan_speed\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 14:59:58', 19); +INSERT INTO `sys_oper_log` VALUES (312, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"设备温度\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"temperature\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 15:00:23', 11); +INSERT INTO `sys_oper_log` VALUES (313, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"健康度\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"health\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 15:00:49', 13); +INSERT INTO `sys_oper_log` VALUES (314, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"单板在位状态\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"veneer_status\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 15:01:46', 14); +INSERT INTO `sys_oper_log` VALUES (315, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"设备编号\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"equ_id\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 15:02:07', 10); +INSERT INTO `sys_oper_log` VALUES (316, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"设备名称\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"equ_name\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 15:02:30', 13); +INSERT INTO `sys_oper_log` VALUES (317, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"单板id\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"veneer_id\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 15:02:54', 12); +INSERT INTO `sys_oper_log` VALUES (318, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":39,\"compareValue\":\"20\",\"id\":84,\"operator\":\">\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-20 15:16:36\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-20 15:16:36\"}}', 0, NULL, '2025-09-20 15:16:37', 63); +INSERT INTO `sys_oper_log` VALUES (319, '【增加预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.addRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/addRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":40,\"compareValue\":\"20,45\",\"id\":85,\"operator\":\"between\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则新增成功\",\"code\":200,\"data\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-20 15:17:42\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-20 15:17:42\"}}', 0, NULL, '2025-09-20 15:17:42', 16); +INSERT INTO `sys_oper_log` VALUES (320, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45aaaaaaaaaaaaaaaaaaaa\",\"enable\":0,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"compareValue\":\"20,45\",\"operator\":\"between\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"新增预警修改失败: \\r\\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = null\' at line 18\\r\\n### The error may exist in file [D:\\\\III\\\\AIOps_sys\\\\ALOps_sys_backend\\\\alops-system\\\\target\\\\classes\\\\mapper\\\\system\\\\AlertRuleMapper.xml]\\r\\n### The error may involve com.alops.system.mapper.AlertRuleMapper.updateAlertRule-Inline\\r\\n### The error occurred while setting parameters\\r\\n### SQL: UPDATE alert_rule SET rule_name = ?, severity = ?, alert_way = ?, alert_station = ?, description = ?, enable = ?, update_by = ?, table_name = ?, alert_sql = ?, alert_template = ?, type = ?, create_time=create_time update_time = NOW() WHERE id = ?\\r\\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = null\' at line 18\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = null\' at line 18\",\"code\":500}', 0, NULL, '2025-09-20 15:23:58', 72); +INSERT INTO `sys_oper_log` VALUES (321, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45aaaaaaaaaaaaaaaaaaaa\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"compareValue\":\"20,45\",\"operator\":\"between\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"新增预警修改失败: \\r\\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\\r\\n### The error may exist in file [D:\\\\III\\\\AIOps_sys\\\\ALOps_sys_backend\\\\alops-system\\\\target\\\\classes\\\\mapper\\\\system\\\\AlertRuleMapper.xml]\\r\\n### The error may involve com.alops.system.mapper.AlertRuleMapper.updateAlertRule-Inline\\r\\n### The error occurred while setting parameters\\r\\n### SQL: UPDATE alert_rule SET rule_name = ?, severity = ?, alert_way = ?, alert_station = ?, description = ?, enable = ?, update_by = ?, table_name = ?, alert_sql = ?, alert_template = ?, type = ?, create_time=create_time update_time = NOW() WHERE id = ?\\r\\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\",\"code\":500}', 0, NULL, '2025-09-20 15:24:31', 22); +INSERT INTO `sys_oper_log` VALUES (322, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45aaaaaaaaaaaaaaaaaaaa\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"compareValue\":\"20,45\",\"operator\":\"between\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"新增预警修改失败: \\r\\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\\r\\n### The error may exist in file [D:\\\\III\\\\AIOps_sys\\\\ALOps_sys_backend\\\\alops-system\\\\target\\\\classes\\\\mapper\\\\system\\\\AlertRuleMapper.xml]\\r\\n### The error may involve com.alops.system.mapper.AlertRuleMapper.updateAlertRule-Inline\\r\\n### The error occurred while setting parameters\\r\\n### SQL: UPDATE alert_rule SET rule_name = ?, severity = ?, alert_way = ?, alert_station = ?, description = ?, enable = ?, update_by = ?, table_name = ?, alert_sql = ?, alert_template = ?, type = ?, create_time=create_time update_time = NOW() WHERE id = ?\\r\\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\",\"code\":500}', 0, NULL, '2025-09-20 15:25:37', 13); +INSERT INTO `sys_oper_log` VALUES (323, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"compareValue\":\"20\",\"operator\":\">\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"新增预警修改失败: \\r\\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\\r\\n### The error may exist in file [D:\\\\III\\\\AIOps_sys\\\\ALOps_sys_backend\\\\alops-system\\\\target\\\\classes\\\\mapper\\\\system\\\\AlertRuleMapper.xml]\\r\\n### The error may involve com.alops.system.mapper.AlertRuleMapper.updateAlertRule-Inline\\r\\n### The error occurred while setting parameters\\r\\n### SQL: UPDATE alert_rule SET rule_name = ?, severity = ?, alert_way = ?, alert_station = ?, description = ?, enable = ?, update_by = ?, table_name = ?, alert_sql = ?, alert_template = ?, type = ?, create_time=create_time update_time = NOW() WHERE id = ?\\r\\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'update_time = NOW() \\n WHERE id = 40\' at line 18\",\"code\":500}', 0, NULL, '2025-09-20 15:27:29', 9); +INSERT INTO `sys_oper_log` VALUES (324, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":40,\"compareValue\":\"20\",\"id\":86,\"operator\":\">\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则修改成功\",\"code\":200,\"data\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-20 15:17:42\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-20 15:29:17\"}}', 0, NULL, '2025-09-20 15:29:17', 56); +INSERT INTO `sys_oper_log` VALUES (325, '【修改预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.editRule()', 'POST', 1, 'admin', '/inMonitoring/alertRule/editRule', '127.0.0.1', '内网IP', '{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45aaaaaaaaaaaaaaaaa\",\"alertWay\":\"email\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\"},\"alertRuleConditionList\":[{\"alertRuleId\":40,\"compareValue\":\"20\",\"id\":87,\"operator\":\">\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}', '{\"msg\":\"预警规则修改成功\",\"code\":200,\"data\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45aaaaaaaaaaaaaaaaa\",\"alertWay\":\"email\",\"createBy\":\"1\",\"createTime\":\"2025-09-20 15:17:42\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":40,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"1\",\"updateTime\":\"2025-09-20 15:29:33\"}}', 0, NULL, '2025-09-20 15:29:33', 22); +INSERT INTO `sys_oper_log` VALUES (326, '【获取预警参数】', 5, 'com.alops.web.controller.exceptionController.AlertRuleController.getParamsByTableName()', 'GET', 1, 'admin', '/inMonitoring/alertRule/byTable', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"获取预警参数成功\",\"code\":200,\"data\":[{\"columnName\":\"cpu_utilization\",\"id\":67,\"paramName\":\"CPU 使用率(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"fan_speed\",\"id\":69,\"paramName\":\"风扇转速(rpm)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"health\",\"id\":72,\"paramName\":\"综合计算的健康度指标(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"memory_utilization\",\"id\":77,\"paramName\":\"内存使用率(%)\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"temperature\",\"id\":78,\"paramName\":\"设备温度\",\"paramType\":\"number\",\"tableName\":\"equ_gather\"},{\"columnName\":\"veneer_status\",\"id\":105,\"paramName\":\"单板运行状态\",\"paramType\":\"string\",\"tableName\":\"equ_veneer\"}]}', 0, NULL, '2025-09-20 16:07:22', 21); +INSERT INTO `sys_oper_log` VALUES (327, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alertRule/list', '127.0.0.1', '内网IP', '{}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateTime\":\"2025-09-12 19:08:11\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的设备接口{interface_id}接状态为2,设备类型{equ_type}\",\"alertWay\":\"message\",\"createTime\":\"2025-09-17 10:24:13\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":38,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"2\",\"updateTime\":\"2025-09-17 10:24:13\"},{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-20 15:16:36\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName', 0, NULL, '2025-09-20 16:09:12', 112); +INSERT INTO `sys_oper_log` VALUES (328, '【查询预警详细规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.getInfo()', 'GET', 1, 'admin', '/inMonitoring/alertRule/39', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-20 15:16:36\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateTime\":\"2025-09-20 15:16:36\"},\"alertRuleConditionList\":[{\"alertRuleId\":39,\"compareValue\":\"20\",\"id\":84,\"operator\":\">\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}}', 0, NULL, '2025-09-20 16:10:13', 21); +INSERT INTO `sys_oper_log` VALUES (329, '【查询预警详细规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.getInfo()', 'GET', 1, 'admin', '/inMonitoring/alertRule/9', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},\"alertRuleConditionList\":[{\"alertRuleId\":9,\"compareValue\":\"80\",\"id\":15,\"operator\":\">=\",\"paramName\":\"cpu_utilization\",\"valueType\":\"number\"}]}}', 0, NULL, '2025-09-20 16:11:38', 13); +INSERT INTO `sys_oper_log` VALUES (330, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alertRule/list', '127.0.0.1', '内网IP', '{}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateTime\":\"2025-09-12 19:08:11\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的设备接口{interface_id}接状态为2,设备类型{equ_type}\",\"alertWay\":\"message\",\"createTime\":\"2025-09-17 10:24:13\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":38,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"2\",\"updateTime\":\"2025-09-17 10:24:13\"},{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-20 15:16:36\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName', 0, NULL, '2025-09-20 16:11:46', 14); +INSERT INTO `sys_oper_log` VALUES (331, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alertRule/list', '127.0.0.1', '内网IP', '{}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateTime\":\"2025-09-12 19:08:11\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的设备接口{interface_id}接状态为2,设备类型{equ_type}\",\"alertWay\":\"message\",\"createTime\":\"2025-09-17 10:24:13\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":38,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"2\",\"updateTime\":\"2025-09-17 10:24:13\"},{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createTime\":\"2025-09-20 15:16:36\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName', 0, NULL, '2025-09-20 16:16:18', 102); +INSERT INTO `sys_oper_log` VALUES (332, '【查询预警规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.list()', 'GET', 1, 'admin', '/inMonitoring/alertRule/list', '127.0.0.1', '内网IP', '{}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"admin\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-05 16:56:12\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的内从使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"admin\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"内从使用<=80\",\"enable\":0,\"id\":10,\"params\":{},\"ruleName\":\"内从使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-05 16:57:31\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的风扇转速状态为0\",\"alertWay\":\"message\",\"createBy\":\"admin\",\"createTime\":\"2025-09-05 18:10:24\",\"description\":\"风扇转速状态为0\",\"enable\":0,\"id\":11,\"params\":{},\"ruleName\":\"风扇转速状态为0\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-05 16:58:50\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的健康度改变\",\"alertWay\":\"message\",\"createBy\":\"admin\",\"createTime\":\"2025-09-05 18:10:25\",\"description\":\"健康度改变\",\"enable\":0,\"id\":12,\"params\":{},\"ruleName\":\"健康度改变\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-05 17:00:57\"},{\"alertStation\":\"2028008386@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"admin\",\"createTime\":\"2025-09-12 19:08:11\",\"description\":\"温度<20或者>45\",\"enable\":0,\"id\":35,\"params\":{},\"ruleName\":\"温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-12 19:08:11\"},{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的设备接口{interface_id}接状态为2,设备类型{equ_type}\",\"alertWay\":\"message\",\"createBy\":\"admin\",\"createTime\":\"2025-09-17 10:24:13\",\"description\":\"设备接口状态为2\",\"enable\":0,\"id\":38,\"params\":{},\"ruleName\":\"设备接口状态为2\",\"severity\":3,\"tableName\":\"equ_interface\",\"type\":\"2\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-17 10:24:13\"},{\"alertStation', 0, NULL, '2025-09-20 16:17:46', 106); +INSERT INTO `sys_oper_log` VALUES (333, '【查询预警详细规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.getInfo()', 'GET', 1, 'admin', '/inMonitoring/alertRule/9', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"alertRule\":{\"alertStation\":\"1\",\"alertTemplate\":\"设备 {equ_id} 的cpu使用率<=80\",\"alertWay\":\"message\",\"createBy\":\"admin\",\"createTime\":\"2025-09-05 18:10:23\",\"description\":\"cpu使用率<=80\",\"enable\":0,\"id\":9,\"params\":{},\"ruleName\":\"cpu使用率>=80\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"1\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-05 16:56:12\"},\"alertRuleConditionList\":[{\"alertRuleId\":9,\"compareValue\":\"80\",\"id\":15,\"operator\":\">=\",\"paramName\":\"cpu_utilization\",\"valueType\":\"number\"}]}}', 0, NULL, '2025-09-20 16:18:22', 14); +INSERT INTO `sys_oper_log` VALUES (334, '【查询预警详细规则】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.getInfo()', 'GET', 1, 'admin', '/inMonitoring/alertRule/39', '127.0.0.1', '内网IP', '{}', '{\"msg\":\"操作成功\",\"code\":200,\"data\":{\"alertRule\":{\"alertStation\":\"123456789@qq.com\",\"alertTemplate\":\"设备 {equ_id} 的温度<20或者>45\",\"alertWay\":\"email\",\"createBy\":\"admin\",\"createTime\":\"2025-09-20 15:16:36\",\"description\":\"非正常温度<20或者>45\",\"enable\":0,\"id\":39,\"params\":{},\"ruleName\":\"非正常温度<20或者>45\",\"severity\":3,\"tableName\":\"equ_gather\",\"type\":\"2\",\"updateBy\":\"admin\",\"updateTime\":\"2025-09-20 15:16:36\"},\"alertRuleConditionList\":[{\"alertRuleId\":39,\"compareValue\":\"20\",\"id\":84,\"operator\":\">\",\"paramName\":\"temperature\",\"valueType\":\"number\"}]}}', 0, NULL, '2025-09-20 16:18:28', 15); +INSERT INTO `sys_oper_log` VALUES (335, '【删除预警功能】', 3, 'com.alops.web.controller.exceptionController.AlertRuleController.remove()', 'DELETE', 1, 'admin', '/inMonitoring/alertRule/39%2C40', '127.0.0.1', '内网IP', '[39,40]', '{\"msg\":\"删除成功\",\"code\":200,\"data\":{\"rulesDeleted\":2,\"conditionsDeleted\":2}}', 0, NULL, '2025-09-20 16:19:12', 32); +INSERT INTO `sys_oper_log` VALUES (336, '字典类型', 3, 'com.alops.web.controller.system.SysDictDataController.remove()', 'DELETE', 1, 'admin', '/system/dict/data/101,102,103,104', '127.0.0.1', '内网IP', '[101,102,103,104]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 17:07:16', 79); +INSERT INTO `sys_oper_log` VALUES (337, '字典数据', 1, 'com.alops.web.controller.system.SysDictDataController.add()', 'POST', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"default\":false,\"dictLabel\":\"已处理\",\"dictSort\":0,\"dictType\":\"alert_message_status\",\"dictValue\":\"HANDLED\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 17:07:37', 17); +INSERT INTO `sys_oper_log` VALUES (338, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"handleTime\":\"2025-09-20\",\"handler\":\"解决人\",\"id\":11,\"solution\":\"解决方法\"}', '{\"msg\":\"修改成功\",\"code\":200}', 0, NULL, '2025-09-20 17:13:43', 17); +INSERT INTO `sys_oper_log` VALUES (339, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"handleTime\":\"2025-09-20\",\"handler\":\"解决人\",\"id\":118,\"solution\":\"解决方法\"}', NULL, 1, '\r\n### Error querying database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'id\' in where clause is ambiguous\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\AlertMessageMapper.xml]\r\n### The error may involve com.alops.system.mapper.AlertMessageMapper.selectAlertMessageById-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT am.id, am.equ_id, am.type, am.equ_type, am.solution, am.level, am.occur_time, am.handler, am.handle_time, am.status, am.batch FROM alert_message am LEFT JOIN equ_base eb ON am.equ_id = eb.id where id = ?\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'id\' in where clause is ambiguous\n; Column \'id\' in where clause is ambiguous; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'id\' in where clause is ambiguous', '2025-09-20 17:14:25', 71); +INSERT INTO `sys_oper_log` VALUES (340, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"handleTime\":\"2025-09-20\",\"handler\":\"解决人\",\"id\":118,\"solution\":\"解决方法\"}', NULL, 1, '\r\n### Error querying database. Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'id\' in where clause is ambiguous\r\n### The error may exist in file [D:\\III\\AIOps_sys\\ALOps_sys_backend\\alops-system\\target\\classes\\mapper\\system\\AlertMessageMapper.xml]\r\n### The error may involve com.alops.system.mapper.AlertMessageMapper.selectAlertMessageById-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT am.id, am.equ_id, am.type, am.equ_type, am.solution, am.level, am.occur_time, am.handler, am.handle_time, am.status, am.batch FROM alert_message am LEFT JOIN equ_base eb ON am.equ_id = eb.id where id = ?\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Column \'id\' in where clause is ambiguous\n; Column \'id\' in where clause is ambiguous; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column \'id\' in where clause is ambiguous', '2025-09-20 17:18:12', 80); +INSERT INTO `sys_oper_log` VALUES (341, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"handleTime\":\"2025-09-20\",\"handler\":\"解决人\",\"id\":118,\"solution\":\"解决方法\"}', '{\"msg\":\"修改成功\",\"code\":200,\"data\":{\"batch\":1,\"equId\":\"12\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-20\",\"handler\":\"解决人\",\"id\":118,\"level\":3,\"occurTime\":\"2025-09-15\",\"solution\":\"解决方法\",\"status\":\"UNHANDLED\",\"type\":\"1\"}}', 0, NULL, '2025-09-20 17:19:21', 26); +INSERT INTO `sys_oper_log` VALUES (342, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{\"maxTime\":\"2025-09-15 22:37:02\"}', NULL, 1, 'nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named \'location\' in \'class com.alops.system.domain.dto.AlertDto\'', '2025-09-20 17:35:39', 11); +INSERT INTO `sys_oper_log` VALUES (343, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{\"maxTime\":\"2025-09-15 22:37:02\"}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"batch\":2,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":120,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":2,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":121,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":1,\"equId\":\"12\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-20\",\"handler\":\"解决人\",\"id\":118,\"level\":3,\"occurTime\":\"2025-09-15\",\"solution\":\"解决方法\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":1,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":119,\"level\":3,\"occurTime\":\"2025-09-15\",\"status\":\"UNHANDLED\",\"type\":\"1\"}],\"total\":4}', 0, NULL, '2025-09-20 17:37:02', 101); +INSERT INTO `sys_oper_log` VALUES (344, '修改预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.edit()', 'PUT', 1, 'admin', '/inMonitoring/alertMessage/editAlertMessage', '127.0.0.1', '内网IP', '{\"handleTime\":\"2025-09-20\",\"handler\":\"解决方法\",\"id\":219,\"solution\":\"解决问题\"}', '{\"msg\":\"修改成功\",\"code\":200,\"data\":{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-20\",\"handler\":\"解决方法\",\"id\":219,\"level\":3,\"occurTime\":\"2025-09-17\",\"solution\":\"解决问题\",\"status\":\"HANDLED\",\"type\":\"2\"}}', 0, NULL, '2025-09-20 17:42:44', 29); +INSERT INTO `sys_oper_log` VALUES (345, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{\"locatin\":\"一层\"}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":136,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":212,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":213,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":214,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":215,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":216,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":217,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":218,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":132,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":133,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"}],\"total\":96}', 0, NULL, '2025-09-20 17:43:54', 42); +INSERT INTO `sys_oper_log` VALUES (346, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'GET', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{\"locatin\":\"一层\"}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"batch\":6,\"equId\":\"12\",\"equType\":\"交换机\",\"handleTime\":\"2025-09-20\",\"handler\":\"解决方法\",\"id\":219,\"level\":3,\"occurTime\":\"2025-09-17\",\"solution\":\"解决问题\",\"status\":\"HANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":136,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":213,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":214,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":215,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":216,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":217,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":218,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":207,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":132,\"level\":3,\"occurTime\":\"2025-09-17\",\"status\":\"UNHANDLED\",\"type\":\"1\"}],\"total\":96}', 0, NULL, '2025-09-20 17:44:26', 13); +INSERT INTO `sys_oper_log` VALUES (347, '删除预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.remove()', 'DELETE', 1, 'admin', '/inMonitoring/alertMessage/118', '127.0.0.1', '内网IP', '[118]', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-20 17:52:25', 13); +INSERT INTO `sys_oper_log` VALUES (348, '字典数据', 2, 'com.alops.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"createTime\":\"2025-09-20 15:02:30\",\"default\":false,\"dictCode\":117,\"dictLabel\":\"设备名称\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"name\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-21 15:35:20', 22); +INSERT INTO `sys_oper_log` VALUES (349, '字典数据', 2, 'com.alops.web.controller.system.SysDictDataController.edit()', 'PUT', 1, 'admin', '/system/dict/data', '127.0.0.1', '内网IP', '{\"createBy\":\"admin\",\"createTime\":\"2025-09-20 15:02:30\",\"default\":false,\"dictCode\":117,\"dictLabel\":\"设备名称\",\"dictSort\":0,\"dictType\":\"alert_param\",\"dictValue\":\"equ_name\",\"isDefault\":\"N\",\"listClass\":\"default\",\"params\":{},\"status\":\"0\",\"updateBy\":\"admin\"}', '{\"msg\":\"操作成功\",\"code\":200}', 0, NULL, '2025-09-21 15:40:10', 15); +INSERT INTO `sys_oper_log` VALUES (350, '查询预警信息', 2, 'com.alops.web.controller.exceptionController.AlertMessageController.list()', 'POST', 1, 'admin', '/inMonitoring/alertMessage/list', '127.0.0.1', '内网IP', '{\"inCharge\":\"\",\"location\":\"\",\"status\":\"\"}', '{\"code\":200,\"msg\":\"查询成功\",\"rows\":[{\"batch\":5,\"equId\":\"12\",\"equType\":\"交换机\",\"id\":1191,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":5,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1190,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"1\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1079,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1078,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1077,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1076,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1075,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1074,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1073,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"},{\"batch\":4,\"equId\":\"11\",\"equType\":\"交换机\",\"id\":1072,\"level\":3,\"occurTime\":\"2025-09-21\",\"status\":\"UNHANDLED\",\"type\":\"2\"}],\"total\":725}', 0, NULL, '2025-09-24 21:22:59', 115); + +-- ---------------------------- +-- Table structure for sys_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role`; +CREATE TABLE `sys_role` ( + `role_id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID', + `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称', + `role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色权限字符串', + `role_sort` int NOT NULL COMMENT '显示顺序', + `data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', + `menu_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '菜单树选择项是否关联显示', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色状态(0正常 1停用)', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`role_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 103 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_role +-- ---------------------------- +INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, '0', '0', 'admin', '2025-07-17 15:27:46', '', NULL, '超级管理员'); +INSERT INTO `sys_role` VALUES (2, '运维成员', 'common', 2, '2', 1, '0', '0', 'admin', '2025-07-17 15:27:46', 'ry', '2025-07-18 21:11:32', '普通角色'); +INSERT INTO `sys_role` VALUES (101, '管理员', 'ii', 2, '1', 0, '0', '2', 'admin', '2025-07-17 18:57:51', 'admin', '2025-07-17 18:58:14', NULL); +INSERT INTO `sys_role` VALUES (102, '管理员1', 'test', 2, '1', 1, '0', '2', 'admin', '2025-07-18 20:24:09', '', NULL, NULL); + +-- ---------------------------- +-- Table structure for sys_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `sys_role_menu`; +CREATE TABLE `sys_role_menu` ( + `role_id` bigint NOT NULL COMMENT '角色ID', + `menu_id` bigint NOT NULL COMMENT '菜单ID', + PRIMARY KEY (`role_id`, `menu_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_role_menu +-- ---------------------------- +INSERT INTO `sys_role_menu` VALUES (2, 1); +INSERT INTO `sys_role_menu` VALUES (2, 2); +INSERT INTO `sys_role_menu` VALUES (2, 3); +INSERT INTO `sys_role_menu` VALUES (2, 100); +INSERT INTO `sys_role_menu` VALUES (2, 101); +INSERT INTO `sys_role_menu` VALUES (2, 102); +INSERT INTO `sys_role_menu` VALUES (2, 105); +INSERT INTO `sys_role_menu` VALUES (2, 106); +INSERT INTO `sys_role_menu` VALUES (2, 107); +INSERT INTO `sys_role_menu` VALUES (2, 108); +INSERT INTO `sys_role_menu` VALUES (2, 109); +INSERT INTO `sys_role_menu` VALUES (2, 110); +INSERT INTO `sys_role_menu` VALUES (2, 111); +INSERT INTO `sys_role_menu` VALUES (2, 112); +INSERT INTO `sys_role_menu` VALUES (2, 113); +INSERT INTO `sys_role_menu` VALUES (2, 114); +INSERT INTO `sys_role_menu` VALUES (2, 115); +INSERT INTO `sys_role_menu` VALUES (2, 116); +INSERT INTO `sys_role_menu` VALUES (2, 117); +INSERT INTO `sys_role_menu` VALUES (2, 500); +INSERT INTO `sys_role_menu` VALUES (2, 501); +INSERT INTO `sys_role_menu` VALUES (2, 1000); +INSERT INTO `sys_role_menu` VALUES (2, 1001); +INSERT INTO `sys_role_menu` VALUES (2, 1002); +INSERT INTO `sys_role_menu` VALUES (2, 1003); +INSERT INTO `sys_role_menu` VALUES (2, 1004); +INSERT INTO `sys_role_menu` VALUES (2, 1005); +INSERT INTO `sys_role_menu` VALUES (2, 1006); +INSERT INTO `sys_role_menu` VALUES (2, 1007); +INSERT INTO `sys_role_menu` VALUES (2, 1008); +INSERT INTO `sys_role_menu` VALUES (2, 1009); +INSERT INTO `sys_role_menu` VALUES (2, 1010); +INSERT INTO `sys_role_menu` VALUES (2, 1011); +INSERT INTO `sys_role_menu` VALUES (2, 1012); +INSERT INTO `sys_role_menu` VALUES (2, 1013); +INSERT INTO `sys_role_menu` VALUES (2, 1014); +INSERT INTO `sys_role_menu` VALUES (2, 1015); +INSERT INTO `sys_role_menu` VALUES (2, 1025); +INSERT INTO `sys_role_menu` VALUES (2, 1026); +INSERT INTO `sys_role_menu` VALUES (2, 1027); +INSERT INTO `sys_role_menu` VALUES (2, 1028); +INSERT INTO `sys_role_menu` VALUES (2, 1029); +INSERT INTO `sys_role_menu` VALUES (2, 1030); +INSERT INTO `sys_role_menu` VALUES (2, 1031); +INSERT INTO `sys_role_menu` VALUES (2, 1032); +INSERT INTO `sys_role_menu` VALUES (2, 1033); +INSERT INTO `sys_role_menu` VALUES (2, 1034); +INSERT INTO `sys_role_menu` VALUES (2, 1035); +INSERT INTO `sys_role_menu` VALUES (2, 1036); +INSERT INTO `sys_role_menu` VALUES (2, 1037); +INSERT INTO `sys_role_menu` VALUES (2, 1038); +INSERT INTO `sys_role_menu` VALUES (2, 1039); +INSERT INTO `sys_role_menu` VALUES (2, 1040); +INSERT INTO `sys_role_menu` VALUES (2, 1041); +INSERT INTO `sys_role_menu` VALUES (2, 1042); +INSERT INTO `sys_role_menu` VALUES (2, 1043); +INSERT INTO `sys_role_menu` VALUES (2, 1044); +INSERT INTO `sys_role_menu` VALUES (2, 1045); +INSERT INTO `sys_role_menu` VALUES (2, 1046); +INSERT INTO `sys_role_menu` VALUES (2, 1047); +INSERT INTO `sys_role_menu` VALUES (2, 1048); +INSERT INTO `sys_role_menu` VALUES (2, 1049); +INSERT INTO `sys_role_menu` VALUES (2, 1050); +INSERT INTO `sys_role_menu` VALUES (2, 1051); +INSERT INTO `sys_role_menu` VALUES (2, 1052); +INSERT INTO `sys_role_menu` VALUES (2, 1053); +INSERT INTO `sys_role_menu` VALUES (2, 1054); +INSERT INTO `sys_role_menu` VALUES (2, 1055); +INSERT INTO `sys_role_menu` VALUES (2, 1056); +INSERT INTO `sys_role_menu` VALUES (2, 1057); +INSERT INTO `sys_role_menu` VALUES (2, 1058); +INSERT INTO `sys_role_menu` VALUES (2, 1059); +INSERT INTO `sys_role_menu` VALUES (2, 1060); +INSERT INTO `sys_role_menu` VALUES (2, 2001); +INSERT INTO `sys_role_menu` VALUES (2, 2002); +INSERT INTO `sys_role_menu` VALUES (2, 2003); +INSERT INTO `sys_role_menu` VALUES (2, 2004); +INSERT INTO `sys_role_menu` VALUES (2, 2005); +INSERT INTO `sys_role_menu` VALUES (2, 2006); +INSERT INTO `sys_role_menu` VALUES (2, 2007); +INSERT INTO `sys_role_menu` VALUES (2, 2008); +INSERT INTO `sys_role_menu` VALUES (2, 2009); +INSERT INTO `sys_role_menu` VALUES (2, 2010); +INSERT INTO `sys_role_menu` VALUES (2, 2011); +INSERT INTO `sys_role_menu` VALUES (2, 2012); +INSERT INTO `sys_role_menu` VALUES (2, 2013); +INSERT INTO `sys_role_menu` VALUES (2, 2014); +INSERT INTO `sys_role_menu` VALUES (2, 2016); +INSERT INTO `sys_role_menu` VALUES (2, 2017); +INSERT INTO `sys_role_menu` VALUES (2, 2018); +INSERT INTO `sys_role_menu` VALUES (2, 2019); +INSERT INTO `sys_role_menu` VALUES (2, 2026); +INSERT INTO `sys_role_menu` VALUES (2, 2027); +INSERT INTO `sys_role_menu` VALUES (2, 2028); +INSERT INTO `sys_role_menu` VALUES (2, 2029); +INSERT INTO `sys_role_menu` VALUES (2, 2030); +INSERT INTO `sys_role_menu` VALUES (2, 2031); +INSERT INTO `sys_role_menu` VALUES (2, 2032); +INSERT INTO `sys_role_menu` VALUES (2, 2051); +INSERT INTO `sys_role_menu` VALUES (2, 2052); +INSERT INTO `sys_role_menu` VALUES (2, 2053); +INSERT INTO `sys_role_menu` VALUES (2, 2054); +INSERT INTO `sys_role_menu` VALUES (2, 2055); +INSERT INTO `sys_role_menu` VALUES (2, 2056); +INSERT INTO `sys_role_menu` VALUES (2, 2057); +INSERT INTO `sys_role_menu` VALUES (2, 2066); +INSERT INTO `sys_role_menu` VALUES (2, 2076); +INSERT INTO `sys_role_menu` VALUES (2, 2077); +INSERT INTO `sys_role_menu` VALUES (2, 2078); +INSERT INTO `sys_role_menu` VALUES (2, 2079); +INSERT INTO `sys_role_menu` VALUES (2, 2080); +INSERT INTO `sys_role_menu` VALUES (2, 2081); +INSERT INTO `sys_role_menu` VALUES (2, 2082); +INSERT INTO `sys_role_menu` VALUES (2, 2083); +INSERT INTO `sys_role_menu` VALUES (2, 2084); +INSERT INTO `sys_role_menu` VALUES (2, 2085); +INSERT INTO `sys_role_menu` VALUES (2, 2086); +INSERT INTO `sys_role_menu` VALUES (2, 2094); +INSERT INTO `sys_role_menu` VALUES (2, 2097); +INSERT INTO `sys_role_menu` VALUES (2, 2098); +INSERT INTO `sys_role_menu` VALUES (2, 2100); +INSERT INTO `sys_role_menu` VALUES (2, 2101); +INSERT INTO `sys_role_menu` VALUES (2, 2102); +INSERT INTO `sys_role_menu` VALUES (2, 2103); +INSERT INTO `sys_role_menu` VALUES (2, 2104); +INSERT INTO `sys_role_menu` VALUES (2, 2105); +INSERT INTO `sys_role_menu` VALUES (2, 2116); +INSERT INTO `sys_role_menu` VALUES (2, 2117); +INSERT INTO `sys_role_menu` VALUES (2, 2118); +INSERT INTO `sys_role_menu` VALUES (2, 2119); +INSERT INTO `sys_role_menu` VALUES (2, 3000); +INSERT INTO `sys_role_menu` VALUES (2, 3001); +INSERT INTO `sys_role_menu` VALUES (2, 3002); +INSERT INTO `sys_role_menu` VALUES (2, 3003); +INSERT INTO `sys_role_menu` VALUES (2, 3004); +INSERT INTO `sys_role_menu` VALUES (2, 3117); +INSERT INTO `sys_role_menu` VALUES (2, 3118); +INSERT INTO `sys_role_menu` VALUES (2, 3119); +INSERT INTO `sys_role_menu` VALUES (2, 3120); + +-- ---------------------------- +-- Table structure for sys_user +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user`; +CREATE TABLE `sys_user` ( + `user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户账号', + `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户昵称', + `user_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '00' COMMENT '用户类型(00系统用户)', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '用户邮箱', + `phonenumber` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '手机号码', + `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)', + `avatar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '头像地址', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '密码', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '账号状态(0正常 1停用)', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime NULL DEFAULT NULL COMMENT '最后登录时间', + `pwd_update_date` datetime NULL DEFAULT NULL COMMENT '密码最后更新时间', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`user_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 106 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_user +-- ---------------------------- +INSERT INTO `sys_user` VALUES (1, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$ydWgO9lepuwwJp3hUkiTnO1sVvK45F8lY6Qjx2hL97g4vqcnRAGn.', '0', '0', '127.0.0.1', '2025-09-24 21:17:36', '2025-07-19 07:58:54', 'admin', '2025-07-17 15:27:46', '', '2025-09-24 21:17:36', '管理员'); +INSERT INTO `sys_user` VALUES (2, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2025-07-18 20:33:14', '2025-07-17 15:27:46', 'admin', '2025-07-17 15:27:46', '', '2025-07-18 20:33:13', '测试员'); + +-- ---------------------------- +-- Table structure for sys_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_role`; +CREATE TABLE `sys_user_role` ( + `user_id` bigint NOT NULL COMMENT '用户ID', + `role_id` bigint NOT NULL COMMENT '角色ID', + PRIMARY KEY (`user_id`, `role_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户和角色关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of sys_user_role +-- ---------------------------- +INSERT INTO `sys_user_role` VALUES (1, 1); +INSERT INTO `sys_user_role` VALUES (2, 2); + +SET FOREIGN_KEY_CHECKS = 1;