From 7006d2e6e6c0281e4effc7fc70719af91b0c4982 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 30 九月 2024 12:23:46 +0800
Subject: [PATCH] 工单取图片优化
---
ycl-server/src/main/java/com/ycl/task/ContractTask.java | 83 +++++++++++++++++++++++------------------
1 files changed, 46 insertions(+), 37 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 aa9b899..af7619c 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,37 @@
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.stream.Collectors;
@@ -62,12 +59,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 = 50;
+ private static final Integer randomSize = 30;
/**
* 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴�
@@ -94,27 +92,20 @@
)
));
Map<String, Integer> onlineStatusMap = new HashMap<>();
- //鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌
- Date date = DateUtils.getDay(2024, 7, 13);
+ Date date = new Date();
//杞﹁締銆佷汉鑴�
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);
+ List<TMonitorResult> tMonitorResults = mongoTemplate.find(query, TMonitorResult.class);
+ for (TMonitorResult result : tMonitorResults) {
+ if(result.getOnline()){
+ onlineStatusMap.put(result.getNo(), Online);
+ }else {
+ onlineStatusMap.put(result.getNo(), 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());
//璁$畻姣忎釜鍏徃鐨勭偣浣嶅湪绾跨巼
@@ -145,6 +136,7 @@
//鏈堝簳璁$畻鍦ㄧ嚎鐜囧垎鏁�
public void calculateOnlineScore() {
+ //TODO:妫�鏌ヨ〃
log.info("寮�濮嬭绠楀悎鍚岀偣浣嶅湪绾跨巼鍒嗘暟");
//濡傛灉鏄湀搴曪紝闇�瑕佺粺璁″钩鍧囧湪绾跨巼鐒跺悗杩涜绉垎鎵i櫎
// String now = DateUtils.getDate();
@@ -226,7 +218,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 +321,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 +352,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 +367,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 +401,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 +432,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 +445,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 +454,8 @@
for (CalculateRuleVO calculateRuleVO : ruleList) {
Double max = calculateRuleVO.getMax();
Double min = calculateRuleVO.getMin();
- //鍒ゆ柇鑼冨洿鍦ㄥ摢涓尯闂�
- 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 +467,7 @@
}
}
for (CalculateRuleVO calculateRuleVO : ruleList) {
- if (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