From 7026924403af3d377cf51b7b7ebb0ebcf2bba7dc Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 20 六月 2025 10:55:45 +0800
Subject: [PATCH] 异步 tag-value

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java |   57 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 38 insertions(+), 19 deletions(-)

diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java
index c296722..9ed4669 100644
--- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/controller/admin/HttpTagController.java
@@ -1,13 +1,14 @@
 package com.iailab.module.data.channel.http.controller.admin;
 
 import com.iailab.framework.apilog.core.annotation.ApiAccessLog;
+import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.framework.common.pojo.PageParam;
 import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
 import com.iailab.framework.excel.core.util.ExcelUtils;
-import com.iailab.module.data.channel.http.collector.ihdb.HttpCollectorForIhd;
+import com.iailab.module.data.channel.http.collector.HttpCollector;
 import com.iailab.module.data.channel.http.entity.HttpTagEntity;
 import com.iailab.module.data.channel.http.service.HttpTagService;
 import com.iailab.module.data.channel.http.vo.HttpTagPageReqVO;
@@ -15,10 +16,12 @@
 import com.iailab.module.data.channel.tag.vo.TagExportExcelVO;
 import com.iailab.module.data.channel.tag.vo.TagImportExcelVO;
 import com.iailab.module.data.channel.tag.vo.TagImportRespVO;
+import com.iailab.module.data.common.enums.DataQualityEnum;
 import com.iailab.module.data.common.enums.IsEnableEnum;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -29,8 +32,12 @@
 import javax.validation.Valid;
 import java.io.IOException;
 import java.util.*;
-import java.util.stream.Collectors;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
 import static com.iailab.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.iailab.framework.common.pojo.CommonResult.error;
 import static com.iailab.framework.common.pojo.CommonResult.success;
 
 
@@ -47,29 +54,41 @@
     private HttpTagService tagService;
 
     @Resource
-    private HttpCollectorForIhd httpCollectorForIhd;
+    private HttpCollector httpCollector;
+
+    ThreadPoolExecutor threadPool = new ThreadPoolExecutor(18, 36, 30, TimeUnit.SECONDS,
+            new ArrayBlockingQueue<Runnable>(36), new ThreadPoolExecutor.AbortPolicy());
 
     @PreAuthorize("@ss.hasPermission('data:channel-http:query')")
     @GetMapping("page")
     public CommonResult<PageResult<HttpTagRespVO>> page(@Valid HttpTagPageReqVO reqVO) {
-        
         PageResult<HttpTagEntity> page = tagService.queryPage(reqVO);
-        PageResult<HttpTagRespVO> pageResultVO = new PageResult<>();
-        List<String> tagNames = page.getList().stream()
-                .map(HttpTagEntity::getTagName)
-                .collect(Collectors.toList());
-        Map<String, Object> dataMap = httpCollectorForIhd.getLastValues(tagNames);
+        PageResult<HttpTagRespVO> pageResult = BeanUtils.toBean(page, HttpTagRespVO.class);
+        try {
+            /*pageResult.getList().forEach(item -> {
+                item.setDataValue(httpCollector.getTagValue(item.getApiId(), item.getTagName()));
+                item.setDataTime(new Date());
+                item.setDataQuality(DataQualityEnum.getEumByValue(item.getDataValue()).getDesc());
+            });*/
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return success(pageResult);
+    }
 
-        List<HttpTagRespVO> vos = page.getList().stream().map(entity -> {
-
-            HttpTagRespVO vo = BeanUtils.toBean(entity,HttpTagRespVO.class);
-            vo.setDataValue(Double.parseDouble(dataMap.get(entity.getTagName()).toString()));
-            return vo;
-        }).collect(Collectors.toList());
-
-        pageResultVO.setList(vos);
-
-        return success(pageResultVO);
+    @PostMapping("/tag-value")
+    public CommonResult<HttpTagRespVO> getTagValue(@RequestBody HttpTagRespVO reqVO) {
+        HttpTagRespVO result = new HttpTagRespVO();
+        if (StringUtils.isBlank(reqVO.getTagName())) {
+            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
+        }
+        if (StringUtils.isBlank(reqVO.getApiId())) {
+            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
+        }
+        result.setDataValue(httpCollector.getTagValue(reqVO.getApiId(), reqVO.getTagName()));
+        result.setDataTime(new Date());
+        result.setDataQuality(DataQualityEnum.getEumByValue(reqVO.getDataValue()).getDesc());
+        return success(result);
     }
 
     @PreAuthorize("@ss.hasPermission('data:channel-http:query')")

--
Gitblit v1.9.3