From 0ccc9a0dcadfb32aa8c63b718518ec0d216fae8f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 05 九月 2024 17:06:16 +0800
Subject: [PATCH] 保存到mongo时设置标签信息

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java              |   37 +++++++++
 ycl-server/src/main/java/com/ycl/task/HKTask.java                              |   86 ++++++++++++++++++--
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml                    |   11 ++
 ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java          |   25 ++++++
 ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java            |    9 ++
 ycl-server/src/main/java/com/ycl/task/UYTask.java                              |   46 ++++++-----
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java |   14 +++
 ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java          |   10 ++
 8 files changed, 207 insertions(+), 31 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java
index ce6f3d4..6e9a164 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java
@@ -17,4 +17,29 @@
      */
     @CreatedDate
     private LocalDate mongoCreateTime;
+
+    /**
+     * 鍥芥爣鐮�
+     */
+    private String no;
+
+    /**
+     * 鐪佸巺
+     */
+    private Boolean provinceTag;
+
+    /**
+     * 閮ㄧ骇
+     */
+    private Boolean deptTag;
+
+    /**
+     * 閲嶇偣
+     */
+    private Boolean importantTag;
+
+    /**
+     * 閲嶇偣鎸囨尌鍥惧儚
+     */
+    private Boolean importantCommandImageTag;
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java
new file mode 100644
index 0000000..e6f6d0a
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java
@@ -0,0 +1,37 @@
+package com.ycl.platform.domain.vo;
+
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/9/5 12:08
+ */
+@Data
+public class CheckTagVO {
+
+    /**
+     * 璁惧缂栧彿
+     */
+    private String no;
+
+    /**
+     * 鐪佸巺
+     */
+    private Boolean provinceTag;
+
+    /**
+     * 閮ㄧ骇
+     */
+    private Boolean deptTag;
+
+    /**
+     * 閲嶇偣
+     */
+    private Boolean importantTag;
+
+    /**
+     * 閲嶇偣鎸囨尌鍥惧儚
+     */
+    private Boolean importantCommandImageTag;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
index f95bd46..9ec669c 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
@@ -6,6 +6,7 @@
 import com.ycl.platform.domain.entity.ReportAuditingRecord;
 import com.ycl.platform.domain.entity.YwPoint;
 import com.ycl.platform.domain.query.YwPointQuery;
+import com.ycl.platform.domain.vo.CheckTagVO;
 import com.ycl.platform.domain.vo.ReportAuditingRecordVO;
 import com.ycl.platform.domain.vo.YwPointVO;
 import com.ycl.platform.domain.excel.PointExport;
@@ -104,4 +105,12 @@
      * @return
      */
     ReportAuditingRecordVO getReportResult(@Param("serialNumber") String serialNumber, @Param("reportType") String reportType);
+
+    /**
+     * 閫氳繃鍥芥爣鑾峰彇鏍囩淇℃伅
+     *
+     * @param gbList
+     * @return
+     */
+    List<CheckTagVO> getTagsByGB(@Param("gbList") List<String> gbList);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
index 02d6b0c..8a9ca65 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
@@ -6,6 +6,8 @@
 import com.ycl.platform.domain.form.BatchEditPointForm;
 import com.ycl.platform.domain.form.YwPointForm;
 import com.ycl.platform.domain.query.YwPointQuery;
+import com.ycl.platform.domain.result.BaseResult;
+import com.ycl.platform.domain.vo.CheckTagVO;
 import com.ycl.platform.domain.vo.ReportAuditingRecordVO;
 import com.ycl.system.Result;
 import jakarta.servlet.http.HttpServletResponse;
@@ -131,4 +133,12 @@
      * @return
      */
     ReportAuditingRecordVO getReportResult(String serialNumber, String reportType);
+
+    /**
+     * 鏍规嵁鍥芥爣鑾峰彇tag
+     *
+     * @param dataList 鏁版嵁
+     * @return
+     */
+    <T extends BaseResult> void setDeviceTagByGB(List<T> dataList);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
index 95a973d..35bf6ab 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -13,6 +13,8 @@
 import com.ycl.platform.domain.form.BatchEditPointForm;
 import com.ycl.platform.domain.form.YwPointForm;
 import com.ycl.platform.domain.query.YwPointQuery;
+import com.ycl.platform.domain.result.BaseResult;
+import com.ycl.platform.domain.vo.CheckTagVO;
 import com.ycl.platform.domain.vo.ReportAuditingRecordVO;
 import com.ycl.platform.domain.vo.YwPointVO;
 import com.ycl.platform.mapper.YwPeopleMapper;
@@ -310,4 +312,16 @@
         log.error("鎬诲叡鑰楁椂锛�" + (endTime.getTime() - startTime.getTime()));
     }
 
+    @Override
+    public <T extends BaseResult> void setDeviceTagByGB(List<T> dataList) {
+        List<String> gbList = dataList.stream().map(BaseResult::getNo).collect(Collectors.toList());
+        List<CheckTagVO> pointList = baseMapper.getTagsByGB(gbList);
+        Map<String, CheckTagVO> pointMap = pointList.stream().collect(Collectors.toMap(CheckTagVO::getNo, item -> item));
+        for (BaseResult data : dataList) {
+            CheckTagVO tag = pointMap.get(data.getNo());
+            if (Objects.nonNull(tag)) {
+                BeanUtils.copyProperties(tag, data);
+            }
+        }
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index d310a07..85c3811 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -3,16 +3,11 @@
 import com.alibaba.fastjson2.JSONObject;
 import com.mongodb.client.result.DeleteResult;
 import com.ycl.feign.HkApiUtil;
-import com.ycl.feign.HkApiUtil;
 import com.ycl.platform.domain.param.HK.*;
 import com.ycl.platform.domain.result.HK.*;
-import com.ycl.platform.service.ICheckIndexCarService;
-import com.ycl.platform.service.ICheckIndexFaceService;
-import com.ycl.platform.service.ICheckIndexVideoService;
-import com.ycl.platform.service.IYwThresholdService;
+import com.ycl.platform.service.*;
 import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
-import com.ycl.feign.HKClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -24,6 +19,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 //娴峰悍瀵规帴鏁版嵁浠诲姟
 @Slf4j
@@ -41,11 +37,7 @@
     @Autowired
     private IYwThresholdService ywThresholdService;
     @Autowired
-    private ICheckIndexFaceService checkIndexFaceService;
-    @Autowired
-    private ICheckIndexCarService checkIndexCarService;
-    @Autowired
-    private ICheckIndexVideoService checkIndexVideoService;
+    private YwPointService pointService;
 
     //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
     public void vehicleDeviceInspectionTask() {
@@ -60,6 +52,12 @@
             //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
             Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class);
+            list.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(list);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(list);
             //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
@@ -83,6 +81,12 @@
             //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
             Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class);
+            list.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(list);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(list);
             //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
@@ -110,6 +114,12 @@
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))
                     .and("dataType").is(ApiConstants.HK_DataType_CAR));
             DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class);
+            carList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(carList);
             //瀛樻斁鍦╩ongo涓�
             carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
             mongoTemplate.insertAll(carList);
@@ -129,6 +139,12 @@
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))
                     .and("dataType").is(ApiConstants.HK_DataType_FACE));
             DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
             mongoTemplate.insertAll(faceList);
@@ -150,6 +166,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, MonitoringDetailResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
@@ -170,6 +192,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, CrossDetailResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
@@ -192,6 +220,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, DataIntegrityMonitoringResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
@@ -214,6 +248,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, AttrRecognitionMonitorResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
@@ -241,6 +281,12 @@
             DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorResult.class);
             //瀛樻斁鍦╩ongo涓�
             carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
+            carList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(carList);
             mongoTemplate.insertAll(carList);
         }
 
@@ -281,6 +327,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, PicAccessResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
@@ -303,6 +355,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, VehicleDeviceSamplingResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
@@ -324,6 +382,12 @@
             Query query = new Query(Criteria
                     .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
             DeleteResult result = mongoTemplate.remove(query, FaceDeviceSamplingResult.class);
+            faceList.stream().forEach(item -> {
+                if (Objects.nonNull(item.getExternalIndexCode())) {
+                    item.setNo(item.getExternalIndexCode());
+                }
+            });
+            pointService.setDeviceTagByGB(faceList);
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(faceList);
         }
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 0554404..672b4ad 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -4,49 +4,37 @@
 import com.mongodb.client.result.DeleteResult;
 import com.ycl.feign.UYClient;
 import com.ycl.platform.domain.param.UY.*;
-import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
-import com.ycl.platform.domain.result.UY.OneMachineFileResult;
-import com.ycl.platform.domain.result.UY.OsdMonitorResult;
 import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
 import com.ycl.platform.domain.result.UY.*;
-import com.ycl.platform.service.ITMonitorService;
-import com.ycl.platform.service.IYwThresholdService;
 import com.ycl.platform.service.UYErrorTypeCheckService;
+import com.ycl.platform.service.YwPointService;
 import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
+import lombok.RequiredArgsConstructor;
 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.format.annotation.DateTimeFormat;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 //浼樹簯瀵规帴鏁版嵁浠诲姟
 @Slf4j
 @Component("UYTask")
+@RequiredArgsConstructor
 public class UYTask {
 
-    @Autowired
-    private MongoTemplate mongoTemplate;
-    @Autowired
-    private UYClient uyClient;
-    @Autowired
-    private IYwThresholdService ywThresholdService;
-    @Autowired
-    private ITMonitorService monitorService;
-    @Autowired
-    private UYErrorTypeCheckService uyErrorTypeCheckService;
+    private final MongoTemplate mongoTemplate;
+    private final UYClient uyClient;
+    private final UYErrorTypeCheckService uyErrorTypeCheckService;
+    private final YwPointService pointService;
 
     @Value("${youYun.tenantId}")
     private String tenantId;
@@ -79,6 +67,12 @@
                         Query query = new Query(Criteria
                                 .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                         DeleteResult result = mongoTemplate.remove(query, ImageDetectionResult.class);
+                        records.stream().forEach(item -> {
+                            if (Objects.nonNull(item.getDeviceId())) {
+                                item.setNo(item.getDeviceId());
+                            }
+                        });
+                        pointService.setDeviceTagByGB(records);
                         //瀛樻斁鍦╩ongo涓�
                         mongoTemplate.insertAll(records);
                         // 宸ュ崟鐢熸垚
@@ -122,6 +116,12 @@
                         Query query = new Query(Criteria
                                 .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                         DeleteResult result = mongoTemplate.remove(query, MonitorQualifyResult.class);
+                        records.stream().forEach(item -> {
+                            if (Objects.nonNull(item.getSerialNumber())) {
+                                item.setNo(item.getSerialNumber().getShowValue());
+                            }
+                        });
+                        pointService.setDeviceTagByGB(records);
                         //瀛樻斁鍦╩ongo涓�
                         mongoTemplate.insertAll(records);
                         // 宸ュ崟鐢熸垚
@@ -207,6 +207,12 @@
                     Query query = new Query(Criteria
                             .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                     DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
+                    records.stream().forEach(item -> {
+                        if (Objects.nonNull(item.getDeviceId())) {
+                            item.setNo(item.getDeviceId());
+                        }
+                    });
+                    pointService.setDeviceTagByGB(records);
                     //瀛樻斁鍦╩ongo涓�
                     mongoTemplate.insertAll(records);
                     // 宸ュ崟鐢熸垚
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index 86df1f8..e5dfe33 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -214,4 +214,15 @@
         limit 1
     </select>
 
+    <select id="getTagsByGB" resultType="com.ycl.platform.domain.vo.CheckTagVO">
+        SELECT
+               serial_number as no, province_tag, important_tag, important_command_image_tag, dept_tag
+        FROM
+            t_yw_point
+        WHERE
+            deleted = 0 AND serial_number in <foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach>
+        GROUP BY
+            serial_number, province_tag, important_tag, important_command_image_tag, dept_tag
+    </select>
+
 </mapper>

--
Gitblit v1.8.0