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