From b91945ea32378a71d1e57356af6e16703a1ceaa7 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 01 十一月 2024 14:52:16 +0800
Subject: [PATCH] 工单只下发考核的、阈值bug

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java |   35 ++++++++++++++++++++++++-----------
 1 files changed, 24 insertions(+), 11 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 bbffadb..8728731 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
@@ -176,9 +176,9 @@
     @Override
     public void faceCheck(List<FaceDeviceInspectionResult> list) {
         Map<String, YwThreshold> thresholdMap = getYwThresholdMap(BusinessTypeEnum.FACE.name());
-        //鍑嗗涓嬪彂宸ュ崟闆嗗悎
+        //鍑嗗寰呬笅鍙戝伐鍗曢泦鍚�
         List<WorkOrder> distributeList = new ArrayList<>();
-        //鍑嗗鑷姩鐢熸垚宸ュ崟闆嗗悎
+        //鍑嗗鐩存帴涓嬪彂宸ュ崟闆嗗悎
         List<WorkOrder> workOrderList = new ArrayList<>();
         //澶勭悊鎺ュ彛鏁版嵁
         for (FaceDeviceInspectionResult result : list) {
@@ -261,9 +261,11 @@
             //妫�鏌ョ櫧澶╂湭璇嗗埆閲�
             Integer dayNoNumberCountResult = result.getSnapPlate().getDayNoNumberCount();
             check(YwThreadConstants.Car_DayNoNumberCount, dayNoNumberCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.UNRECOGNIZED_DAY_VOLUME.getValue());
-            //杞﹁締涓昏灞炴�т笉瀹屾暣鐜�
+            //杞﹁締涓昏灞炴�т竴鑷寸巼
             Integer noIntegrityCountResult = result.getIntegrity().getMainNoIntegrityCount();
-            check(YwThreadConstants.Car_NoIntegrityCount, noIntegrityCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CAR_SIX.getValue());
+            Integer dataCount = result.getDataCount();
+            Double integrityRate = ((double)dataCount-noIntegrityCountResult)/dataCount;
+            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());
@@ -284,6 +286,7 @@
         /** 娣诲姞宸ュ崟 */
         workOrderService.innerAddWorkOrder(workOrderList);
         workOrderService.innerAddWorkOrder(distributeList);
+
     }
 
     /**
@@ -317,23 +320,33 @@
                 v -> {
                     YwThreshold ywThreshold = thresholds.get(key);
                     //杞崲绫诲瀷
-                    T thresholdValue = parseThreshold(ywThreshold.getValueAuto(), value.getClass());
-                    T thresholdAutoValue = parseThreshold(ywThreshold.getValue(), value.getClass());
+                    //寰呭伐鍗曢槇鍊�
+                    T thresholdAutoValue = parseThreshold(ywThreshold.getValueAuto(), value.getClass());
+                    //鐩存帴涓嬪彂宸ュ崟闃堝��
+                    T thresholdValue = parseThreshold(ywThreshold.getValue(), value.getClass());
+                    if("percent".equals(ywThreshold.getCountType())){
+                        if (thresholdAutoValue instanceof Float) {
+                            thresholdAutoValue = (T) Float.valueOf(((Float) thresholdAutoValue) / 100f);
+                        }
+                        if (thresholdValue instanceof Float) {
+                            thresholdValue = (T) Float.valueOf(((Float) thresholdValue) / 100f);
+                        }
+                    }
                     //姣旇緝澶у皬锛屽姞鍏ュ埌瀵瑰簲寰呭鐞嗛泦鍚�
-                    if (compareType.compare(v, thresholdAutoValue)) {
-                        //鑷姩涓嬪彂宸ュ崟
+                    if (compareType.compare(v, thresholdValue)) {
+                        //杩涘叆宸ュ崟鐩存帴涓嬪彂
                         workOrder.setSerialNumber(serialNumber);
-                        workOrder.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
+                        workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
                         if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
                             workOrder.setErrorTypeList(new ArrayList<>());
                             workOrder.getErrorTypeList().add(errorType);
                         } else {
                             workOrder.getErrorTypeList().add(errorType);
                         }
-                    } else if (compareType.compare(v, thresholdValue)) {
+                    } else if (compareType.compare(v, thresholdAutoValue)) {
                         //杩涘叆宸ュ崟浠d笅鍙�
                         workOrder.setSerialNumber(serialNumber);
-                        workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+                        workOrder.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
                         if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
                             workOrder.setErrorTypeList(new ArrayList<>());
                             workOrder.getErrorTypeList().add(errorType);

--
Gitblit v1.8.0