From 71972694f7d5f23cf42226366a9ddaad4b72b89f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 20 九月 2024 09:33:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-server/src/main/java/com/ycl/task/ContractTask.java |   44 ++++++++++++++++++++++++++++++++------------
 1 files changed, 32 insertions(+), 12 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 019cfa5..26c75e0 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -15,7 +15,9 @@
 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 enumeration.ContractRule;
 import enumeration.ErrorType;
@@ -56,12 +58,13 @@
     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;
 
     /**
      * 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴�
@@ -88,7 +91,7 @@
                         )
                 ));
         Map<String, Integer> onlineStatusMap = new HashMap<>();
-        //鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌
+        //TODO 鍦ㄧ嚎鐜囦慨鏀癸紝鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌
         Date date = DateUtils.getDay(2024, 7, 13);
         //杞﹁締銆佷汉鑴�
         Query query = new Query();
@@ -220,7 +223,7 @@
         for (WorkOrderVO workOrder : workOrders) {
             //妫�娴嬫槸鍚︽姤澶囪繃
             if (!CollectionUtils.isEmpty(reportNumbers)) {
-                if(reportNumbers.contains(workOrder.getSerialNumber())) continue;
+                if (reportNumbers.contains(workOrder.getSerialNumber())) continue;
             }
             String errorType = workOrder.getErrorType();
             //瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯�
@@ -323,8 +326,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("寮�濮嬫娊鏌ュ浘鐗囧畬鏁寸姸鎬�");
             //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
@@ -346,7 +357,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())));
@@ -361,7 +372,7 @@
                     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())) {
@@ -395,7 +406,16 @@
     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("寮�濮嬫娊鏌ュ綍鍍忓畬鏁寸姸鎬�");
             //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚�
@@ -417,7 +437,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())));
@@ -430,7 +450,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())) {
@@ -440,7 +460,7 @@
                                     Double max = calculateRuleVO.getMax();
                                     Double min = calculateRuleVO.getMin();
                                     //鍒ゆ柇鑼冨洿鍦ㄥ摢涓尯闂� 鍗曚綅鏄皬鏃惰浆鎹负鍒嗛挓
-                                    if (checkRange(min, max, BigDecimal.valueOf(result.getMissDuration()*60))) {
+                                    if (checkRange(min, max, BigDecimal.valueOf(result.getMissDuration() * 60))) {
                                         if (calculateRuleVO.getNum() == null) {
                                             calculateRuleVO.setNum(1);
                                         } else {
@@ -452,7 +472,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