From 5bc6d4839f68e60a27e381d5411c479bcf529056 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 01 八月 2024 16:13:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-common/src/main/java/constant/RedisConstant.java                               |    6 +
 ycl-server/src/main/java/com/ycl/task/MonitorTask.java                             |   88 ++++++++++++++++++++++
 ycl-server/src/main/java/com/ycl/task/UYTask.java                                  |    5 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java |   89 ++++++++++++----------
 4 files changed, 146 insertions(+), 42 deletions(-)

diff --git a/ycl-common/src/main/java/constant/RedisConstant.java b/ycl-common/src/main/java/constant/RedisConstant.java
new file mode 100644
index 0000000..2e024e8
--- /dev/null
+++ b/ycl-common/src/main/java/constant/RedisConstant.java
@@ -0,0 +1,6 @@
+package constant;
+
+public class RedisConstant {
+    /** 涓�鏈轰竴妗g洰褰曚竴鑷寸巼 澶氬嚭鏉ョ殑璁惧 Set闆嗗悎 */
+    public static final String New_Monitor_Set="New_Monitor_Set";
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java
index f6d6087..99e9cc0 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java
@@ -27,6 +27,54 @@
     private String SBMC;
 
     /**
+     * 鎽勫儚鏈洪噰闆嗗尯鍩燂紙鍙傝�冩枃妗hВ鏋愶級
+     */
+    private String SXJCJQY;
+
+    /**
+     * 鐩戞帶鐐逛綅绫诲瀷锛�1-涓�绫昏棰戠洃鎺х偣锛�2-浜岀被瑙嗛鐩戞帶鐐癸紱3-涓夌被瑙嗛鐩戞帶鐐癸紱4-鍏畨鍐呴儴瑙嗛鐩戞帶鐐癸紱9-鍏朵粬鐐逛綅銆�
+     * 鍙傜収鍏畨閮ㄣ�婂叧浜庤繘涓�姝ュ姞寮哄叕瀹夋満鍏宠棰戝浘鍍忎俊鎭簲鐢ㄥ伐浣滅殑鎰忚銆嬶紙鍏�氬瓧锕�2015锕�4鍙凤級瀹氫箟銆�
+     */
+    private String JKDWLX;
+
+    /**
+     * IPV4鍦板潃锛屾憚鍍忔満IP鍦板潃銆�
+     */
+    private String IP;
+
+    /**
+     * IPV6鍦板潃锛屾憚鍍忔満鎵╁睍IP鍦板潃銆�
+     */
+//    private String IPV6;
+
+    /**
+     * 缁忓害銆�
+     */
+    private Double JD;
+
+    /**
+     * 绾害銆�
+     */
+    private Double WD;
+
+    /**
+     * 鎽勫儚鏈哄姛鑳界被鍨嬶紝鍙栧�艰寖鍥�(澶氶��) : [1.瑙嗛鐩戞帶;2.杞﹁締璇嗗埆;3.浜哄憳璇嗗埆;] 鏁版嵁鏍煎紡[濉叆澶氫釜鍊煎苟浠�/闅斿紑銆備緥濡�  1/2]
+     */
+    private String SXJGNLX;
+
+    /**
+     * MAC鍦板潃锛屾憚鍍忔満MAC鍦板潃銆�
+     */
+    private String MACDZ;
+
+    /**
+     * 璁惧鐘舵�侊紝1-鍦ㄧ敤锛�2-缁翠慨锛�3-鎷嗛櫎銆�
+     */
+    private String SBZT;
+
+    //---------------------------------------------------------------------
+
+    /**
      * 璁惧鍘傚晢锛岀紪鐮�1-娴峰悍濞佽锛�2-澶у崕锛�3-澶╁湴浼熶笟锛�4-绉戣揪锛�5-瀹夎澹紱6-鍗氫笘锛�7-浜氬畨锛�8-鑻遍鎷擄紱9-瀹囪锛�10-娴蜂俊锛�11-涓槦鐢靛瓙锛�12-鏄庢櫙锛�13-鑱旀兂锛�14-涓叴锛�99-鍏朵粬銆�
      */
     private String SBCS;
@@ -35,12 +83,6 @@
      * 琛屾斂鍖哄煙锛岃鏀垮尯鍒掋�佺睄璐渷甯傚幙浠g爜銆傚弬鐓с�奊B/T 2260 涓崕浜烘皯鍏卞拰鍥借鏀垮尯鍒掍唬鐮併�嬨��
      */
     private String XZQY;
-
-    /**
-     * 鐩戞帶鐐逛綅绫诲瀷锛�1-涓�绫昏棰戠洃鎺х偣锛�2-浜岀被瑙嗛鐩戞帶鐐癸紱3-涓夌被瑙嗛鐩戞帶鐐癸紱4-鍏畨鍐呴儴瑙嗛鐩戞帶鐐癸紱9-鍏朵粬鐐逛綅銆�
-     * 鍙傜収鍏畨閮ㄣ�婂叧浜庤繘涓�姝ュ姞寮哄叕瀹夋満鍏宠棰戝浘鍍忎俊鎭簲鐢ㄥ伐浣滅殑鎰忚銆嬶紙鍏�氬瓧锕�2015锕�4鍙凤級瀹氫箟銆�
-     */
-    private String JKDWLX;
 
     /**
      * 璁惧鍨嬪彿锛屾弿杩拌澶囩殑鍏蜂綋鍨嬪彿銆�
@@ -53,29 +95,9 @@
     private String DWSC;
 
     /**
-     * IPV4鍦板潃锛屾憚鍍忔満IP鍦板潃銆�
-     */
-    private String IPV4;
-
-    /**
-     * IPV6鍦板潃锛屾憚鍍忔満鎵╁睍IP鍦板潃銆�
-     */
-    private String IPV6;
-
-    /**
-     * MAC鍦板潃锛屾憚鍍忔満MAC鍦板潃銆�
-     */
-    private String MACDZ;
-
-    /**
      * 鎽勫儚鏈虹被鍨嬶紝1-鐞冩満锛�2-鍗婄悆锛�3-鍥哄畾鏋満锛�4-閬ユ帶鏋満锛�5-鍗″彛鏋満锛�99-鏈煡銆�
      */
     private String SXJLX;
-
-    /**
-     * 鎽勫儚鏈哄姛鑳界被鍨嬶紝1-杞﹁締鍗″彛锛�2-浜哄憳鍗″彛锛�3-寰崱鍙o紱4-鐗瑰緛鎽勫儚鏈猴紱5-鏅�氱洃鎺э紱99-鍏朵粬锛屽閫夊悇鍙傛暟浠モ��/鈥濆垎闅斻��
-     */
-    private String SXJGNLX;
 
     /**
      * 琛ュ厜灞炴�э紝1-鏃犺ˉ鍏夈��2-绾㈠琛ュ厜銆�3-鐧藉厜琛ュ厜銆�9-鍏朵粬琛ュ厜銆�
@@ -92,16 +114,6 @@
      * 鍙傝�冭寖寮忥細琛楅亾+闂ㄧ墝鍙风爜+鍗曚綅鍚嶇О銆傞珮閫熷叕璺�佸浗閬撶瓑鐐逛綅鍙弬鐓р�滃叕璺悕绉�+鍏噷鏁扳�濊寖寮忋��
      */
     private String AZDZ;
-
-    /**
-     * 缁忓害銆�
-     */
-    private Double JD;
-
-    /**
-     * 绾害銆�
-     */
-    private Double WD;
 
     /**
      * 鎽勫儚鏈轰綅缃被鍨嬶紝1-鐪侀檯妫�鏌ョ珯銆�2-鍏氭斂鏈哄叧銆�3-杞︾珯鐮佸ご銆�4-涓績骞垮満銆�5-浣撹偛鍦洪銆�6-鍟嗕笟涓績銆�7-瀹楁暀鍦烘墍銆�8-鏍″洯鍛ㄨ竟銆�9-娌诲畨澶嶆潅鍖哄煙銆�10-浜ら�氬共绾裤��11-鍖婚櫌鍛ㄨ竟銆�12-閲戣瀺鏈烘瀯鍛ㄨ竟銆�13-鍗遍櫓鐗╁搧鍦烘墍鍛ㄨ竟銆�14-鍗氱墿棣嗗睍瑙堥銆�15-閲嶇偣姘村煙銆佽埅閬撱��96-甯傞檯鍏畨妫�鏌ョ珯锛�97-娑夊鍦烘墍锛�98-杈瑰娌跨嚎锛�99-鏃呮父鏅尯锛屽閫夊悇鍙傛暟浠モ��/鈥濆垎闅斻��
@@ -147,11 +159,6 @@
      * 褰曞儚淇濆瓨澶╂暟銆�
      */
     private Integer LXBCTS;
-
-    /**
-     * 璁惧鐘舵�侊紝1-鍦ㄧ敤锛�2-缁翠慨锛�3-鎷嗛櫎銆�
-     */
-    private String SBZT;
 
     /**
      * 鎵�灞為儴闂�/琛屼笟锛�1-鍏畨鏈哄叧锛�2-鐜繚閮ㄩ棬锛�3-鏂囧崥閮ㄩ棬锛�4-鍖荤枟閮ㄩ棬锛�5-鏃呮父绠$悊锛�6-鏂伴椈骞跨數锛�7-椋熷搧鍖昏嵂鐩戠潱绠$悊閮ㄩ棬锛�8-鏁欒偛绠$悊閮ㄩ棬锛�9-妫�瀵熼櫌锛�10-娉曢櫌锛�11-閲戣瀺閮ㄩ棬锛�12-浜ら�氶儴闂紱13-浣忔埧鍜屽煄涔″缓璁鹃儴闂紱14-姘村埄閮ㄩ棬锛�15-鏋椾笟閮ㄩ棬锛�16-瀹夊叏鐢熶骇鐩戠潱閮ㄩ棬锛�17-甯傛斂甯傚濮旓紱18-鍥藉湡灞�锛屽彲鎵╁睍锛屽閫夊悇鍙傛暟浠モ��/鈥濆垎闅斻��
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
new file mode 100644
index 0000000..ae6b11e
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -0,0 +1,88 @@
+package com.ycl.task;
+
+
+import com.alibaba.druid.support.json.JSONUtils;
+import com.alibaba.fastjson2.JSONArray;
+import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.result.UY.OneMachineFileResult;
+import com.ycl.platform.domain.vo.TMonitorVO;
+import com.ycl.platform.service.ITMonitorService;
+import com.ycl.system.entity.SysDictData;
+import com.ycl.system.service.ISysDictDataService;
+import com.ycl.utils.DateUtils;
+import constant.RedisConstant;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+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.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 褰撳ぉ鏅氫笂 鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴�
+ */
+@Slf4j
+@Component("monitorTask")
+public class MonitorTask {
+    @Autowired
+    private MongoTemplate mongoTemplate;
+    @Autowired
+    private ITMonitorService monitorService;
+    @Autowired
+    private ISysDictDataService dictDataService;
+    @Autowired
+    private RedisTemplate redisTemplate;
+    //鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴�
+    public void synchronize() {
+        Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+        List<OneMachineFileResult> oneMachineFileResults = mongoTemplate.find(query, OneMachineFileResult.class);
+        List<String> serialNumberInBase = monitorService.selectTMonitorList(null).stream().map(TMonitorVO::getSerialNumber).collect(Collectors.toList());
+        //鍑嗗鎻掑叆鏁版嵁搴撶殑鏁版嵁
+        List<TMonitor> monitorList = new ArrayList<>();
+        //鏂扮殑鏁版嵁锛屽師鏁版嵁搴撲腑涓嶅瓨鍦ㄧ殑鏁版嵁
+        Set<TMonitor> newMonitorList = new HashSet<>();
+        for (OneMachineFileResult result : oneMachineFileResults) {
+            TMonitor monitor = setMonitor(result);
+            monitorList.add(monitor);
+            //姣斿绛涢�夊嚭鏂扮殑鏁版嵁
+            if(!CollectionUtils.isEmpty(serialNumberInBase) && !serialNumberInBase.contains(result.getSBBM())){
+                newMonitorList.add(monitor);
+            }
+        }
+        //鏂扮殑鏁版嵁鏀惧叆Redis涓瓑寰呰�冩牳鎸囨爣浠诲姟浣跨敤
+        redisTemplate.opsForValue().set(RedisConstant.New_Monitor_Set, JSONArray.toJSONString(newMonitorList));
+        //TODO:瑙f瀽鍖哄煙
+
+        //TODO:瑙f瀽閲嶇偣鐐逛綅
+        //閲嶇偣鐐逛綅闆嗗悎瀛楀吀
+        SysDictData sysDictData = new SysDictData();
+        sysDictData.setDictType("platform_important_site");
+        List<SysDictData> DictDataList = dictDataService.selectDictDataList(sysDictData);
+        List<String> importantSite = DictDataList.stream().map(SysDictData::getDictValue).collect(Collectors.toList());
+
+
+    }
+
+    private TMonitor setMonitor(OneMachineFileResult result) {
+        TMonitor monitor = new TMonitor();
+        monitor.setSerialNumber(result.getSBBM());
+        monitor.setName(result.getSBMC());
+        monitor.setSiteType(Long.valueOf(result.getJKDWLX()));
+        monitor.setMacAddr(result.getMACDZ());
+        monitor.setIp(result.getIP());
+        monitor.setCameraFunType(result.getSXJGNLX());
+        monitor.setLongitude(result.getJD() + "");
+        monitor.setLatitude(result.getWD() + "");
+        monitor.setCameraCaptureArea(result.getSXJCJQY());
+        monitor.setOnState(Long.valueOf(result.getSBZT()));
+        //鍥芥爣鐮佸墠鍏綅涓鸿鏀跨紪鐮�
+        monitor.setCivilCode(result.getSBBM().substring(0, 8));
+        return monitor;
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index f529f48..4a359d9 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -9,6 +9,7 @@
 import com.ycl.platform.domain.result.UY.OneMachineFileResult;
 import com.ycl.platform.domain.result.UY.QueryVqdResult;
 import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
+import com.ycl.platform.service.ITMonitorService;
 import com.ycl.platform.service.IYwThresholdService;
 import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
@@ -23,6 +24,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 //浼樹簯瀵规帴鏁版嵁浠诲姟
 @Slf4j
@@ -35,7 +37,8 @@
     private UYClient uyClient;
     @Autowired
     private IYwThresholdService ywThresholdService;
-
+    @Autowired
+    private ITMonitorService monitorService;
     @Value("${youYun.tenantId}")
     private String tenantId;
 

--
Gitblit v1.8.0