From 64efb660b2c119c00432434c0f651f8996483f18 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 21 二月 2025 15:51:13 +0800
Subject: [PATCH] OSD大华数据格式+数据中心重点标签统计数

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java |   73 ++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 25 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index 8289811..8a19b35 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -228,16 +228,16 @@
                 check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.MODELING_FAIL.getValue());
             }
             // 鐐逛綅鍦ㄧ嚎鐜�
-            if (2 == result.getSnapResult()) {
-                workOrder.setSerialNumber(result.getExternalIndexCode());
-                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
-                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
-                    workOrder.setErrorTypeList(new ArrayList<>());
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                } else {
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                }
-            }
+//            if (2 == result.getSnapResult()) {
+//                workOrder.setSerialNumber(result.getExternalIndexCode());
+//                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+//                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+//                    workOrder.setErrorTypeList(new ArrayList<>());
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                } else {
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                }
+//            }
             if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
                 workOrderList.add(workOrder);
             } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
@@ -299,16 +299,16 @@
                 check(YwThreadConstants.Car_NoIntegrityCount, integrityRate, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CAR_SIX.getValue());
             }
             // 鐐逛綅鍦ㄧ嚎鐜�
-            if (2 == result.getSnapResult()) {
-                workOrder.setSerialNumber(result.getExternalIndexCode());
-                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
-                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
-                    workOrder.setErrorTypeList(new ArrayList<>());
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                } else {
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                }
-            }
+//            if (2 == result.getSnapResult()) {
+//                workOrder.setSerialNumber(result.getExternalIndexCode());
+//                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+//                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+//                    workOrder.setErrorTypeList(new ArrayList<>());
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                } else {
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                }
+//            }
             if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
                 workOrderList.add(workOrder);
             } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
@@ -517,8 +517,6 @@
         }
         boolean duplic = checkDuplic(dataList);
         if (duplic) throw new RuntimeException("瀛樺湪閲嶅鍥芥爣璁惧");
-        //宸插瓨鍦ㄧ殑鐧藉悕鍗�
-        Map<String, WorkOrderWhite> whiteMap = workOrderWhiteMapper.selectList().stream().collect(Collectors.toMap(WorkOrderWhite::getSerialNumber, Function.identity()));
         List<WorkOrderWhite> addList = new ArrayList<>();
         dataList.stream().forEach(item -> {
             WorkOrderWhite white = new WorkOrderWhite();
@@ -542,9 +540,6 @@
                     errorDataList.add(errorText);
                 });
                 white.setErrorType(String.join(",", errorDataList));
-                //濡傛灉宸插瓨鍦ㄨˉ鍏卛d
-                WorkOrderWhite whiteExsit = whiteMap.get(white.getSerialNumber());
-                if (whiteExsit != null) white.setId(whiteExsit.getId());
                 addList.add(white);
             } catch (Exception e) {
                 throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滅被鍨嬫湁璇�");
@@ -664,6 +659,34 @@
         );
     }
 
+    /**
+     * 鎵�鏈夌櫧鍚嶅崟娣诲姞鏁呴殰绫诲瀷
+     *
+     * @param workOrderWhite
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result addBatch(WorkOrderWhite workOrderWhite) {
+        List<String> errorTypeListAdd = workOrderWhite.getErrorTypeList();
+        List<WorkOrderWhite> whites = workOrderWhiteMapper.selectList();
+        for (WorkOrderWhite white : whites) {
+            List<String> errorTypeList = new ArrayList<>(Arrays.asList(white.getErrorType().split(",")));
+            for (String newError : errorTypeListAdd) {
+                if (errorTypeList.contains(newError)) {
+                    continue;
+                } else {
+                    errorTypeList.add(newError);
+                }
+            }
+            white.setErrorType(String.join(",", errorTypeList));
+        }
+        if (!CollectionUtils.isEmpty(whites)) {
+            workOrderWhiteMapper.deleteAll();
+            workOrderWhiteMapper.insertBatch(whites);
+        }
+        return Result.ok();
+    }
+
     private <T extends Comparable<T>> T parseThreshold(String thresholdStr, Class<?> type) {
         if (Integer.class.equals(type)) {
             return (T) Integer.valueOf(thresholdStr);

--
Gitblit v1.8.0