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