From 2a12d6d43b6f7abc0ef594ee9b992f34ee00b7a1 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 16 八月 2024 10:28:59 +0800
Subject: [PATCH] python接口
---
ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/PyOsdParam.java | 15 +++++++
ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 2
ycl-server/src/main/resources/application-prod.yml | 1
ycl-server/src/main/java/com/ycl/feign/PythonClient.java | 21 ++++++++++
ycl-server/src/main/resources/application-dev.yml | 1
ycl-server/src/main/java/com/ycl/task/PythonTask.java | 69 ++++++++++++++++++++++++++++++++++
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 2
7 files changed, 109 insertions(+), 2 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/PyOsdParam.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/PyOsdParam.java
new file mode 100644
index 0000000..855dc71
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/PyOsdParam.java
@@ -0,0 +1,15 @@
+package com.ycl.platform.domain.param.UY;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PyOsdParam {
+ /**
+ * 鍥芥爣鐮�
+ */
+ private List<String> deviceNoList;
+
+ private String Date;
+}
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index a13d14e..b3ae363 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -180,7 +180,7 @@
List<YwPoint> commandImages = pointMapper.selectByTag(null, null, Boolean.TRUE);
return CollectionUtils.isEmpty(commandImages) ? new ArrayList<>() : commandImages.stream().map(YwPoint::getSerialNumber).collect(Collectors.toList());
}
- //杩斿洖閲嶇偣鎸囨尌鍥惧儚闆嗗悎
+ //杩斿洖monitor
public List<String> getMonitorFromMongo() {
// 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜
Calendar calendar = Calendar.getInstance();
diff --git a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
index 7c5c7ea..5a5af92 100644
--- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
+++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
@@ -40,7 +40,7 @@
calculators.put(CalculationStrategyConstants.Face_DirectConsistent, new FaceConsistentCalculation());
//涓�鏈轰竴妗f敞鍐岀巼銆佹。妗堣�冩牳姣�
- calculators.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,new MonitorRegistrationCalculation())
+ calculators.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,new MonitorRegistrationCalculation());
//涓�鏈轰竴妗e悎鏍肩巼
calculators.put(CalculationStrategyConstants.Video_MonitorQualify, new MonitorQualifyCalculation());
//瑙嗛鐐逛綅鍦ㄧ嚎鐜�
diff --git a/ycl-server/src/main/java/com/ycl/feign/PythonClient.java b/ycl-server/src/main/java/com/ycl/feign/PythonClient.java
new file mode 100644
index 0000000..28eaf2e
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/feign/PythonClient.java
@@ -0,0 +1,21 @@
+package com.ycl.feign;
+
+
+import com.alibaba.fastjson2.JSONObject;
+import com.ycl.platform.domain.param.UY.PyOsdParam;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@Component
+@FeignClient(name = "PythonClient", url = "${request.pythonDomain}")
+public interface PythonClient {
+ /**
+ * OSD鏍囨敞
+ *
+ * @return 鏌ヨ鎽勫儚鏈篛SD鏍囨敞
+ */
+ @PostMapping("/")
+ JSONObject pythonOsd(@RequestBody PyOsdParam param);
+}
diff --git a/ycl-server/src/main/java/com/ycl/task/PythonTask.java b/ycl-server/src/main/java/com/ycl/task/PythonTask.java
new file mode 100644
index 0000000..d77cd15
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/task/PythonTask.java
@@ -0,0 +1,69 @@
+package com.ycl.task;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.mongodb.client.result.DeleteResult;
+import com.ycl.feign.PythonClient;
+import com.ycl.feign.UYClient;
+import com.ycl.platform.domain.param.UY.*;
+import com.ycl.platform.domain.result.UY.*;
+import com.ycl.platform.service.ITMonitorService;
+import com.ycl.platform.service.IYwThresholdService;
+import com.ycl.utils.DateUtils;
+import constant.ApiConstants;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * python瀵规帴浠诲姟
+ * 鎷垮幓osd鏍囨敞銆佹爣娉ㄦ椂闂存暟鎹�
+ */
+@Slf4j
+@Component("PythonTask")
+public class PythonTask {
+ @Autowired
+ private MongoTemplate mongoTemplate;
+ @Autowired
+ private PythonClient pythonClient;
+
+ public void pythonOsdTask(){
+ log.info("寮�濮嬫墽琛宲ythonOsd鏁版嵁鍚屾");
+ PyOsdParam pyOsdParam = new PyOsdParam();
+ pyOsdParam.setDate(DateUtils.getDate());
+ Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
+ if(!CollectionUtils.isEmpty(oneMachineFileResults)) {
+ List<String> deviceIdList = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
+ pyOsdParam.setDeviceNoList(deviceIdList);
+ //鏌ヨosd鏍囨敞鍜屾椂闂翠俊鎭�
+ JSONObject jsonObject = pythonClient.pythonOsd(pyOsdParam);
+ if (jsonObject != null) {
+ if (ApiConstants.UYSuccessCode.equals(jsonObject.getInteger("code"))) {
+ List<PyOsdResult> records = jsonObject.getList("data", PyOsdResult.class);
+ if (!CollectionUtils.isEmpty(records)) {
+ //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+ Query pyQuery = new Query(Criteria
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ DeleteResult result = mongoTemplate.remove(pyQuery, PyOsdResult.class);
+ //瀛樻斁鍦╩ongo涓�
+ mongoTemplate.insertAll(records);
+ }
+ } else {
+ log.error("pythonOsd鏁版嵁涓虹┖{}", jsonObject);
+ }
+ }
+ log.info("缁撴潫鎵цpythonOsd鏁版嵁鍚屾");
+ }
+ }
+}
diff --git a/ycl-server/src/main/resources/application-dev.yml b/ycl-server/src/main/resources/application-dev.yml
index 149d7ea..5eabbef 100644
--- a/ycl-server/src/main/resources/application-dev.yml
+++ b/ycl-server/src/main/resources/application-dev.yml
@@ -130,6 +130,7 @@
retry: 4 # 鏈�澶ч噸璇曟鏁�
youYunDomain: http://51.92.65.56 # 浼樹簯鍦板潃
haiKangDomain: 51.92.65.48 # 娴峰悍鍦板潃
+ pythonDomain: 11 # python鑴氭湰鍦板潃
youYun:
tenantId: e10adc3949ba59abbe56e057f20f88dd
diff --git a/ycl-server/src/main/resources/application-prod.yml b/ycl-server/src/main/resources/application-prod.yml
index 81766c5..5010d56 100644
--- a/ycl-server/src/main/resources/application-prod.yml
+++ b/ycl-server/src/main/resources/application-prod.yml
@@ -130,6 +130,7 @@
retry: 4 # 鏈�澶ч噸璇曟鏁�
youYunDomain: http://51.92.65.56 # 浼樹簯鍦板潃
haiKangDomain: 51.92.65.48 # 娴峰悍鍦板潃
+ pythonDomain: 11 # python鑴氭湰鍦板潃
youYun:
tenantId: e10adc3949ba59abbe56e057f20f88dd
--
Gitblit v1.8.0