From db75b45e9a7ce347162b8d3a36e4a7f46cfe199e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 10 二月 2025 15:30:18 +0800
Subject: [PATCH] 核算导出单独对录像扣分的数量做处理

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
index c676cab..5d2b201 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -9,6 +9,7 @@
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoDatabase;
 import com.ycl.platform.domain.entity.*;
+import com.ycl.platform.domain.excel.TMonitorExp;
 import com.ycl.platform.domain.query.DataCenterQuery;
 import com.ycl.platform.domain.result.HK.*;
 import com.ycl.platform.domain.result.SYS.TMonitorResult;
@@ -26,9 +27,11 @@
 import com.ycl.utils.DateUtils;
 import com.ycl.utils.MongoUtil;
 import com.ycl.utils.bean.BeanUtils;
+import com.ycl.utils.poi.ExcelUtil;
 import constant.ApiConstants;
 import constant.CheckConstants;
 import enumeration.general.AreaDeptEnum;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.collections.CollectionUtils;
 import org.bson.Document;
@@ -113,9 +116,8 @@
             }
             List<String> offLineTime = item.getOffLineTimeStr();
             if(!CollectionUtils.isEmpty(offLineTime)) {
-                //鍚庣画鍙互鏀规垚閰嶇疆鐨勭绾挎鏁�(鎻愬彇鍓峮娆★紝n涓洪厤缃殑绂荤嚎娆℃暟)
                 if (offLineTime.size() > 1) {
-                    offLineTime = offLineTime.subList(0, 2);
+                    offLineTime = offLineTime.subList(offLineTime.size() - 2, offLineTime.size());
                 }
                 item.setOffLineTimeStr(offLineTime);
             }
@@ -227,6 +229,7 @@
         // 娣诲姞鍥哄畾鏉′欢
         criteriaList.add(Criteria.where("monitorType").regex(".*" + CheckConstants.Rule_Category_Video + ".*"));
         criteriaList.add(Criteria.where("mongoCreateTime").gte(params.getStartTime()).lte(params.getEndTime()));
+        criteriaList.add(Criteria.where("deptTag").is(Boolean.TRUE));
         // 鏍规嵁dataType鍔ㄦ�佹坊鍔犳潯浠�
         if (params.getDataType() == 1) {
             criteriaList.add(Criteria.where("provinceTag").is(Boolean.TRUE));
@@ -1060,7 +1063,7 @@
         MongoUtil.setPage(query, params, "checkTime");
         List<OsdCheckResult> resultList = mongoTemplate.find(query, OsdCheckResult.class);
         for (OsdCheckResult osdCheckResult : resultList) {
-            OsdCheckResult.getText(osdCheckResult);
+            OsdCheckResult.getError(osdCheckResult);
         }
         // 缁熻鏁伴噺
         MongoDatabase database = mongoTemplate.getDb();
@@ -1147,6 +1150,66 @@
         return Result.ok().data(map).total(total);
     }
 
+    @Override
+    public void videoImportantPointLabelingAccuracyExport(HttpServletResponse response, DataCenterQuery params) {
+        List<String> likeFileds = Arrays.asList("deviceNo", "osdName");
+        List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, "checkTime", likeFileds, null);
+        Query query = new Query();
+        Criteria and = new Criteria();
+        and.andOperator(andCriteria);
+        query = Query.query(and);
+        //涓嬫媺妗嗘爣娉ㄦ纭煡璇㈡潯浠�
+        if (params.getOption() != null) {
+            if(params.getOption()==1) {
+                andCriteria.add(Criteria.where("osdNameCorrect").is(1));
+                andCriteria.add(Criteria.where("osdTimeCorrect").is(1));
+                andCriteria.add(Criteria.where("osdProvinceCorrect").is(1));
+                andCriteria.add(Criteria.where("osdCityCorrect").is(1));
+                andCriteria.add(Criteria.where("osdPartCorrect").is(1));
+                Criteria and2 = new Criteria();
+                and2.andOperator(andCriteria);
+                query = Query.query(and2);
+            }else if(params.getOption()==-1){
+                // 浣跨敤$or鏉′欢杩炴帴澶氫釜瀛楁妫�鏌ワ紝姣忎釜瀛楁妫�鏌ユ槸鍚︾瓑浜�-1
+                Criteria c1 = Criteria.where("osdNameCorrect").is(-1);
+                Criteria c2 = Criteria.where("osdTimeCorrect").is(-1);
+                Criteria c3 = Criteria.where("osdProvinceCorrect").is(-1);
+                Criteria c4 = Criteria.where("osdCityCorrect").is(-1);
+                Criteria c5 = Criteria.where("osdPartCorrect").is(-1);
+                Criteria orOperator = new Criteria().orOperator(c1, c2, c3, c4, c5);
+                orOperator.andOperator(andCriteria);
+                query = Query.query(orOperator);
+            }else {
+                Criteria c1 = Criteria.where("osdNameCorrect").is(0);
+                Criteria c2 = Criteria.where("osdTimeCorrect").is(0);
+                Criteria c3 = Criteria.where("osdProvinceCorrect").is(0);
+                Criteria c4 = Criteria.where("osdCityCorrect").is(0);
+                Criteria c5 = Criteria.where("osdPartCorrect").is(0);
+                Criteria orOperator = new Criteria().orOperator(c1, c2, c3, c4, c5);
+                orOperator.andOperator(andCriteria);
+                query = Query.query(orOperator);
+            }
+        }
+        List<OsdCheckResult> resultList = mongoTemplate.find(query, OsdCheckResult.class);
+        for (OsdCheckResult osdCheckResult : resultList) {
+            OsdCheckResult.getError(osdCheckResult);
+            StringBuilder tag = new StringBuilder("" +
+                    (osdCheckResult.getProvinceTag() ? "鐪佸巺銆�" : "") +
+                    (osdCheckResult.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") +
+                    (osdCheckResult.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") +
+                    (osdCheckResult.getDeptTag() ? "閮ㄧ骇銆�" : ""));
+            // 鍒犻櫎瀛楃涓叉湯灏剧殑"銆�"
+            if (tag.toString().endsWith("銆�")) {
+                tag = new StringBuilder(tag.substring(0, tag.length() - 1));
+            }
+            osdCheckResult.setTagStr(tag.toString());
+        }
+        ExcelUtil<OsdCheckResult> util = new ExcelUtil<>(OsdCheckResult.class);
+        String sheetName = "OSD鏍囨敞";
+
+        util.exportExcel(response, resultList, sheetName);
+    }
+
     /**
      * 瑙嗛锛氭牎鏃舵纭巼
      *
@@ -1182,7 +1245,7 @@
     @Override
     public Result videoImportantPointCheckTimeAccuracy(DataCenterQuery params) {
         List<String> likeFileds = Arrays.asList("deviceNo", "osdName");
-        Query query = MongoUtil.getQuery(params, "checkTime", likeFileds, 3);
+        Query query = MongoUtil.getQuery(params, "checkTime", likeFileds, null);
         //涓嬫媺妗嗘爣娉ㄦ纭煡璇㈡潯浠�
         if (params.getOption() != null) {
             if(params.getOption()==1) {
@@ -1199,7 +1262,7 @@
         List<OsdCheckResult> resultList = mongoTemplate.find(query, OsdCheckResult.class);
 
         for (OsdCheckResult osdCheckResult : resultList) {
-            OsdCheckResult.getText(osdCheckResult);
+            OsdCheckResult.getError(osdCheckResult);
         }
         // 缁熻鏁伴噺
         MongoDatabase database = mongoTemplate.getDb();

--
Gitblit v1.8.0