From f6593a5f6f1138abf09a0ee69fc5119fdce412c9 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期六, 07 十二月 2024 17:52:07 +0800
Subject: [PATCH] 标签bug

---
 ycl-server/src/main/java/com/ycl/task/ContractTask.java |  185 ++++++++++++++++++++++------------------------
 1 files changed, 88 insertions(+), 97 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
index 1753fb6..60eb9b8 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -3,42 +3,38 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.mongodb.client.result.DeleteResult;
-import com.ycl.platform.domain.entity.*;
+import com.ycl.platform.domain.entity.ContractRuleRecord;
+import com.ycl.platform.domain.entity.ContractScore;
+import com.ycl.platform.domain.entity.WorkOrder;
+import com.ycl.platform.domain.entity.YwPoint;
 import com.ycl.platform.domain.result.HK.PicAccessResult;
-import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
 import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
-import com.ycl.platform.domain.result.UY.VideoOnlineResult;
 import com.ycl.platform.domain.vo.CalculateRuleVO;
-import com.ycl.platform.domain.vo.ContractVO;
-import com.ycl.platform.domain.vo.ReportVO;
 import com.ycl.platform.domain.vo.WorkOrderVO;
 import com.ycl.platform.mapper.*;
 import com.ycl.platform.service.IContractScoreService;
+import com.ycl.system.mapper.SysConfigMapper;
 import com.ycl.utils.DateUtils;
+import com.ycl.utils.StringUtils;
 import constant.ApiConstants;
-import constant.RedisConstant;
 import enumeration.ContractRule;
 import enumeration.ErrorType;
 import enumeration.general.AuditingStatus;
-import enumeration.general.ErrorTypeEnum;
-import enumeration.general.RuleDeductCategoryEnum;
 import enumeration.general.WorkOrderStatusEnum;
 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 javax.management.monitor.Monitor;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 
@@ -47,6 +43,7 @@
  */
 @Slf4j
 @Component("contractTask")
+//TODO:閲嶆柊鐪嬩笅閫昏緫
 public class ContractTask {
     @Autowired
     private MongoTemplate mongoTemplate;
@@ -62,18 +59,18 @@
     private IContractScoreService contractScoreService;
     @Autowired
     private WorkOrderMapper workOrderMapper;
-
+    @Autowired
+    private SysConfigMapper sysConfigMapper;
     private static final Integer Online = 1;
     private static final Integer Offline = -1;
     private static final String AuditStatus_Pass = "1";
     private static final String Remark = "绯荤粺鐢熸垚";
-    private static final Integer randomSize = 1;
+    private static final Integer randomSize = 30;
 
     /**
      * 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴�
      * 鏌ョ敓鏁堢殑鍚堝悓鍏宠仈鐨勫叕鍙革紝鑾峰彇unitId闆嗗悎
      * 鏍规嵁unitId鏌ヨ瀵瑰簲鐐逛綅鑾峰彇鍚勪釜鍏徃绠$悊鐨勮澶嘔ds
-     * 鏌ヨ涓夌璁惧鍦ㄧ嚎涓嶅湪绾挎儏鍐碉紝灏佽涓轰竴涓猰ap<鍥芥爣鐮�,鍦ㄧ嚎鐘舵��>
      * 璁$畻姣忔棩姣忓鍏徃鐨勫湪绾跨巼瀛樺叆mysql
      * 鏈堝簳璁$畻骞冲潎鍊硷紝鏍规嵁鍦ㄧ嚎鐜囧拰鍚堝悓鏍囧噯鎵e噺鍒嗘暟
      */
@@ -85,53 +82,31 @@
         List<Integer> unitIds = ruleVos.stream().map(CalculateRuleVO::getUnitId).collect(Collectors.toList());
         List<YwPoint> ywPoints = ywPointMapper.selectList(new QueryWrapper<YwPoint>().in("unit_id", unitIds));
         //key鏄痷nitId value鏄澶囩紪鐮侀泦鍚�
-        Map<Long, List<String>> unitMap = ywPoints.stream()
+        Map<Long, List<YwPoint>> unitMap = ywPoints.stream().filter(point -> point.getUnitId() != null)
                 .collect(Collectors.groupingBy(
-                        YwPoint::getUnitId,
-                        Collectors.mapping(
-                                YwPoint::getSerialNumber,
-                                Collectors.toList()
+                        YwPoint::getUnitId
                         )
-                ));
-        Map<String, Integer> onlineStatusMap = new HashMap<>();
-        //鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌
-        Date date = DateUtils.getDay(2024, 7, 13);
-        //杞﹁締銆佷汉鑴�
-        Query query = new Query();
-        query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
-        List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
-        for (SnapshotDataMonitorResult result : results) {
-            if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) {
-                onlineStatusMap.put(result.getExternalIndexCode(), Online);
-            } else {
-                onlineStatusMap.put(result.getExternalIndexCode(), Offline);
-            }
-        }
-        //瑙嗛
-        Query videoQuery = new Query(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
-        List<VideoOnlineResult> videoOnlineResults = mongoTemplate.find(videoQuery, VideoOnlineResult.class);
-        for (VideoOnlineResult videoOnlineResult : videoOnlineResults) {
-            onlineStatusMap.put(videoOnlineResult.getDeviceId(), videoOnlineResult.getStatus());
-        }
+                );
         //鏌ヨ鎶ュ鍒楄〃
         List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
         //璁$畻姣忎釜鍏徃鐨勭偣浣嶅湪绾跨巼
         List<ContractRuleRecord> ruleRecordList = new ArrayList<>();
-        unitMap.forEach((unitId, serialNumberList) -> {
+        unitMap.forEach((unitId, pointList) -> {
             int totalSite = 0;
             int onlineSite = 0;
-            for (String number : serialNumberList) {
+            for (YwPoint point : pointList) {
                 //鎶ュ杩囦笉绾冲叆璁$畻
-                if (!CollectionUtils.isEmpty(reportNumbers) && reportNumbers.contains(number)) continue;
-                Integer status = onlineStatusMap.get(number);
+                if (!CollectionUtils.isEmpty(reportNumbers) && reportNumbers.contains(point.getSerialNumber()))
+                    continue;
                 totalSite++;
-                if (Online.equals(status)) {
+                if (ApiConstants.UY_OnlineSite_Online.equals(point.getOnline())) {
                     onlineSite++;
                 }
             }
-            BigDecimal online = new BigDecimal(onlineSite).divide(new BigDecimal(totalSite), 2, RoundingMode.DOWN);
+            BigDecimal online = BigDecimal.ONE;
+            if (totalSite != 0) {
+                online = new BigDecimal(onlineSite).divide(new BigDecimal(totalSite), 2, RoundingMode.DOWN);
+            }
             ContractRuleRecord contractRuleRecord = new ContractRuleRecord();
             contractRuleRecord.setSiteOnline(online);
             contractRuleRecord.setCreateTime(new Date());
@@ -145,17 +120,16 @@
 
     //鏈堝簳璁$畻鍦ㄧ嚎鐜囧垎鏁�
     public void calculateOnlineScore() {
+        //TODO:妫�鏌ヨ〃
         log.info("寮�濮嬭绠楀悎鍚岀偣浣嶅湪绾跨巼鍒嗘暟");
-        //濡傛灉鏄湀搴曪紝闇�瑕佺粺璁″钩鍧囧湪绾跨巼鐒跺悗杩涜绉垎鎵i櫎
-//        String now = DateUtils.getDate();
+        //鏈堝簳闇�瑕佺粺璁″钩鍧囧湪绾跨巼鐒跺悗杩涜绉垎鎵i櫎
         String mouthStart = DateUtils.getMouthStart(new Date());
         String mouthEnd = DateUtils.getMouthEnd(new Date());
-//        if (now.equals(mouthEnd)) {
         //鏌ヤ竴涓湀鐨勮褰�
         List<ContractRuleRecord> ruleMonthRecords = recordMapper.selectMonth(mouthStart, mouthEnd);
-        //閫氳繃unitId鍒嗗崟浣�
+        //閫氳繃unitId鍒嗗崟浣嶏紝鑾峰彇褰撴湀鏁版嵁map
         Map<Long, List<ContractRuleRecord>> unitMap = ruleMonthRecords.stream().collect(Collectors.groupingBy(ContractRuleRecord::getUnitId));
-        //鏌ュ湪绾跨巼瑙勫垯 鑾峰彇key涓哄悎鍚宨d锛寁alue涓哄湪绾跨巼瑙勫垯鐨刴ap
+        //鏌ュ湪绾跨巼瑙勫垯 鑾峰彇key涓哄悎鍚宨d锛寁alue涓哄湪绾跨巼瑙勫垯闆嗗悎
         Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
                 .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_Online.getName().equals(calculateRuleVO.getRuleName()))
                 .collect(Collectors.groupingBy(CalculateRuleVO::getContractId));
@@ -167,7 +141,7 @@
             CalculateRuleVO calculateRuleVO = ruleList.get(0);
             Integer unitId = calculateRuleVO.getUnitId();
             List<ContractRuleRecord> ruleRecordList = unitMap.get(Long.parseLong(unitId + ""));
-            if (!CollectionUtils.isEmpty(ruleMonthRecords)) {
+            if (!CollectionUtils.isEmpty(ruleRecordList)) {
                 BigDecimal siteOnlineTotal = ruleRecordList.stream().map(ContractRuleRecord::getSiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add);
                 BigDecimal siteOnline = siteOnlineTotal.divide(new BigDecimal(ruleRecordList.size()), 2, RoundingMode.DOWN);
                 for (CalculateRuleVO ruleVO : ruleList) {
@@ -183,7 +157,6 @@
                 }
             }
         });
-//        }
         contractScoreService.saveBatch(contractScoreList);
         log.info("缁撴潫璁$畻鍚堝悓鐐逛綅鍦ㄧ嚎鐜囧垎鏁�");
     }
@@ -211,8 +184,8 @@
                 ));
         //鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
         Map<Integer, List<CalculateRuleVO>> monitorRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Monitor.getName());
-        //瀛樺偍鏁呴殰锛�24灏忔椂浠ュ唴锛�48灏忔椂浠ュ唴锛� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
-        Map<Integer, List<CalculateRuleVO>> storeRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Store.getName());
+        //瀛樺偍鏁呴殰锛�24灏忔椂浠ュ唴锛�48灏忔椂浠ュ唴锛� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map   锛堟敼鎴愭墜鍔ㄧ殑浜嗭級
+//        Map<Integer, List<CalculateRuleVO>> storeRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Store.getName());
         //鐐逛綅寮傚父鎯呭喌澶勭悊 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
         Map<Integer, List<CalculateRuleVO>> siteRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Site.getName());
         //鏌ヨ鎶ュ鍒楄〃
@@ -226,35 +199,35 @@
         for (WorkOrderVO workOrder : workOrders) {
             //妫�娴嬫槸鍚︽姤澶囪繃
             if (!CollectionUtils.isEmpty(reportNumbers)) {
-                if(reportNumbers.contains(workOrder.getSerialNumber())) continue;
+                if (reportNumbers.contains(workOrder.getSerialNumber())) continue;
             }
             String errorType = workOrder.getErrorType();
-            //瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯�
-            if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) {
-                if (!CollectionUtils.isEmpty(storeRuleMap)) {
-                    storeRuleMap.forEach((contractId, rules) -> {
-                        Integer unitId = rules.get(0).getUnitId();
-                        //鎵惧埌瀵瑰簲鐨勮鍒�
-                        if (workOrder.getUnitId().equals(unitId)) {
-                            //宸ュ崟涓嬪彂鏃堕棿
-                            Date createTime = workOrder.getDistributeTime();
-                            Date auditTime = workOrder.getAuditTime();
-                            double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60);
-                            //閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
-                            for (CalculateRuleVO rule : rules) {
-                                if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
-                                    double deductScore = rule.getCalcFraction() * Math.ceil(diffTime);
-                                    ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "宸ュ崟缂栧彿涓�:" + workOrder.getWorkOrderNo() + "澶勭悊瓒呮椂锛屾墸闄�" + deductScore + "鍒�");
-                                    contractScoreList.add(contractScore);
-                                    workOrderList.add(workOrder.getWorkOrderNo());
-                                }
-                            }
-                        }
-                    });
-                }
-            }
+            //瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯� 锛堟敼鎴愭墜鍔ㄦ墦鍒嗕簡锛�
+//            if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) {
+//                if (!CollectionUtils.isEmpty(storeRuleMap)) {
+//                    storeRuleMap.forEach((contractId, rules) -> {
+//                        Integer unitId = rules.get(0).getUnitId();
+//                        //鎵惧埌瀵瑰簲鐨勮鍒�
+//                        if (workOrder.getUnitId().equals(unitId)) {
+//                            //宸ュ崟涓嬪彂鏃堕棿
+//                            Date createTime = workOrder.getDistributeTime();
+//                            Date auditTime = workOrder.getAuditTime();
+//                            double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60);
+//                            //閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
+//                            for (CalculateRuleVO rule : rules) {
+//                                if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
+//                                    double deductScore = rule.getCalcFraction() * Math.ceil(diffTime);
+//                                    ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "宸ュ崟缂栧彿涓�:" + workOrder.getWorkOrderNo() + "澶勭悊瓒呮椂锛屾墸闄�" + deductScore + "鍒�");
+//                                    contractScoreList.add(contractScore);
+//                                    workOrderList.add(workOrder.getWorkOrderNo());
+//                                }
+//                            }
+//                        }
+//                    });
+//                }
+//            }
             //鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級
-            if (ErrorType.MONITOR_UNQUALIFY.getValue().equals(errorType) || ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType)) {
+            if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType)) {
                 if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                     monitorRuleMap.forEach((contractId, rules) -> {
                         Integer unitId = rules.get(0).getUnitId();
@@ -278,7 +251,7 @@
                 }
             }
             //鐐逛綅寮傚父鎯呭喌澶勭悊锛堥暅澶村紓甯搞�佹憚鍍忓ご閬尅绛夛級
-            if (ErrorType.SCREEN_COLOR_DEVIATION.getValue().equals(errorType) || ErrorType.SNOW_STORM.getValue().equals(errorType) || ErrorType.STRIPE_INTERFERENCE.getValue().equals(errorType) || ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType) || ErrorType.ABNORMAL_CLARITY.getValue().equals(errorType) || ErrorType.ABNORMAL_BRIGHTNESS.getValue().equals(errorType)) {
+            if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType)) {
                 if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                     siteRuleMap.forEach((contractId, rules) -> {
                         Integer unitId = rules.get(0).getUnitId();
@@ -292,7 +265,7 @@
                             for (CalculateRuleVO rule : rules) {
                                 if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
                                     double deductScore = 0d;
-                                    if (ContractRule.CONTRACT_RULE_Store_48H.getName().equals(rule.getRuleCondition())) {
+                                    if (ContractRule.CONTRACT_RULE_Site_Error48.getName().equals(rule.getRuleCondition())) {
                                         //璁$畻瓒呮椂澶╂暟
                                         int day = (int) ((diffTime - 48) / 24 + 1);
                                         deductScore = rule.getCalcFraction() * (day);
@@ -329,8 +302,16 @@
      */
     public void randomDeductPic() {
         Random random = new Random();
+        Integer num = randomSize;
         //缁欏畾闅忔満鑼冨洿
-        int number = random.nextInt(randomSize);
+        String count = sysConfigMapper.checkConfigKeyUnique("check.contract.sample").getConfigValue();
+        if (!StringUtils.isEmpty(count)) {
+            Integer temp = Integer.valueOf(count);
+            if (temp > 0) {
+                num = temp;
+            }
+        }
+        int number = random.nextInt(num);
         if (number == 0) {
             log.info("寮�濮嬫娊鏌ュ浘鐗囧畬鏁寸姸鎬�");
             //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
@@ -352,7 +333,7 @@
             queryWrapper.in("serial_number", serialNumbers);
             //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
             Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
-                    .collect(Collectors.groupingBy(YwPoint::getUnitId,
+                    .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                             Collectors.mapping(
                                     YwPoint::getSerialNumber,
                                     Collectors.toList())));
@@ -367,12 +348,12 @@
                     for (PicAccessResult picAccessResult : picAccessResults) {
                         //鍒ゆ柇鏄惁鎶ュ杩�
                         if (!CollectionUtils.isEmpty(reportNumbers)) {
-                            if(reportNumbers.contains(picAccessResult.getExternalIndexCode())) continue;
+                            if (reportNumbers.contains(picAccessResult.getExternalIndexCode())) continue;
                         }
                         //鍒ゆ柇鏄惁鏄鍏徃杩愮淮
                         if (monitorList.contains(picAccessResult.getExternalIndexCode())) {
-                            //瀛樺湪澶у浘涓嶅彲鐢ㄦ暟鎹噺锛岄渶瑕佹墸鍑�
-                            if (picAccessResult.getBigDisableCount() > 0) {
+                            //瀛樺湪鍥剧墖璁块棶寮傚父鏁版嵁閲忥紝闇�瑕佹墸鍑�
+                            if (picAccessResult.getExpCount() > 0) {
                                 deduct = true;
                                 serialNumber = picAccessResult.getExternalIndexCode();
                                 break;
@@ -401,13 +382,23 @@
     public void randomDeductVideo() {
         Random random = new Random();
         //缁欏畾闅忔満鑼冨洿
-        int number = random.nextInt(randomSize);
+        Integer num = randomSize;
+        //缁欏畾闅忔満鑼冨洿
+        String count = sysConfigMapper.checkConfigKeyUnique("check.contract.sample").getConfigValue();
+        if (!StringUtils.isEmpty(count)) {
+            Integer temp = Integer.valueOf(count);
+            if (temp > 0) {
+                num = temp;
+            }
+        }
+        int number = random.nextInt(num);
         if (number == 0) {
             log.info("寮�濮嬫娊鏌ュ綍鍍忓畬鏁寸姸鎬�");
             //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
             List<ContractScore> contractScoreList = new ArrayList<>();
             //鏌ヨ鎶ュ鍒楄〃
             List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
+            //TODO:娴嬭瘯鏃ユ湡
             Date date = DateUtils.getDay(2024, 7, 13);
             //鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
             Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
@@ -423,7 +414,7 @@
             queryWrapper.in("serial_number", serialNumbers);
             //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
             Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
-                    .collect(Collectors.groupingBy(YwPoint::getUnitId,
+                    .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                             Collectors.mapping(
                                     YwPoint::getSerialNumber,
                                     Collectors.toList())));
@@ -436,7 +427,7 @@
                     for (RecordMetaDSumResult result : recordMetaDSumResults) {
                         //鍒ゆ柇鏄惁鎶ュ杩�
                         if (!CollectionUtils.isEmpty(reportNumbers)) {
-                            if(reportNumbers.contains(result.getDeviceId())) continue;
+                            if (reportNumbers.contains(result.getDeviceId())) continue;
                         }
                         //鍒ゆ柇鏄惁鏄鍏徃杩愮淮
                         if (monitorList.contains(result.getDeviceId())) {
@@ -445,8 +436,8 @@
                                 for (CalculateRuleVO calculateRuleVO : ruleList) {
                                     Double max = calculateRuleVO.getMax();
                                     Double min = calculateRuleVO.getMin();
-                                    //鍒ゆ柇鑼冨洿鍦ㄥ摢涓尯闂� //TODO:鍒ゆ柇鍗曚綅
-                                    if (checkRange(min, max, BigDecimal.valueOf(result.getMissDuration()))) {
+                                    //鍒ゆ柇鑼冨洿鍦ㄥ摢涓尯闂� 鍗曚綅鏄皬鏃惰浆鎹负鍒嗛挓
+                                    if (checkRange(min, max, BigDecimal.valueOf(result.getMissDuration() * 60))) {
                                         if (calculateRuleVO.getNum() == null) {
                                             calculateRuleVO.setNum(1);
                                         } else {
@@ -458,7 +449,7 @@
                         }
                     }
                     for (CalculateRuleVO calculateRuleVO : ruleList) {
-                        if (calculateRuleVO.getNum()!=null && calculateRuleVO.getNum() > 0) {
+                        if (calculateRuleVO.getNum() != null && calculateRuleVO.getNum() > 0) {
                             //闇�瑕佹墸闄ょ殑鍒嗘暟锛屾瑙勫垯鍙湁涓�鏉′笉闇�瑕佸垽鏂寖鍥�
                             double deductScore = calculateRuleVO.getCalcFraction() * calculateRuleVO.getNum();
                             ContractScore contractScore = getContractScore(calculateRuleVO, deductScore, calculateRuleVO.getNum() + "", Remark + calculateRuleVO.getNum() + "璺澶囪繚鍙嶈鍒�");

--
Gitblit v1.8.0