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 | 60 +++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 37 insertions(+), 23 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..26c75e0 100644 --- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java +++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java @@ -3,40 +3,36 @@ 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.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.stream.Collectors; @@ -62,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; /** * 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴� @@ -94,7 +91,7 @@ ) )); Map<String, Integer> onlineStatusMap = new HashMap<>(); - //鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌 + //TODO 鍦ㄧ嚎鐜囦慨鏀癸紝鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌 Date date = DateUtils.getDay(2024, 7, 13); //杞﹁締銆佷汉鑴� Query query = new Query(); @@ -226,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(); //瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯� @@ -329,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("寮�濮嬫娊鏌ュ浘鐗囧畬鏁寸姸鎬�"); //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚� @@ -352,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()))); @@ -367,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())) { @@ -401,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("寮�濮嬫娊鏌ュ綍鍍忓畬鏁寸姸鎬�"); //鍑嗗鎵归噺鎵撳垎鐨勯泦鍚� @@ -423,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()))); @@ -436,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())) { @@ -445,8 +459,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 +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