From 7a93f4097430703dc60c4aee0240ed348a0ab1df Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 06 一月 2025 18:12:00 +0800
Subject: [PATCH] 核算重构
---
ycl-server/src/main/java/com/ycl/task/ContractTask.java | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 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 a62d7d1..a31b5e5 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -120,7 +120,6 @@
//鏈堝簳璁$畻鍦ㄧ嚎鐜囧垎鏁�
public void calculateOnlineScore() {
- //TODO:妫�鏌ヨ〃
log.info("寮�濮嬭绠楀悎鍚岀偣浣嶅湪绾跨巼鍒嗘暟");
//鏈堝簳闇�瑕佺粺璁″钩鍧囧湪绾跨巼鐒跺悗杩涜绉垎鎵i櫎
String mouthStart = DateUtils.getMouthStart(new Date());
@@ -179,7 +178,7 @@
.collect(Collectors.groupingBy(
CalculateRuleVO::getRuleName, // 鎸夎鍒欏悕绉板垎缁�
Collectors.groupingBy(
- CalculateRuleVO::getContractId // 姣忎釜瑙勫垯鍚嶇О鍐呴儴鍐嶆寜鍚堝悓ID鍒嗙粍,value涓鸿鍒欓泦鍚�
+ CalculateRuleVO::getContractId // 姣忎釜瑙勫垯鍚嶇О鍐呴儴鍐嶆寜鍚堝悓ID鍒嗙粍,value涓鸿鍒欓泦鍚�(澶氫釜鍚堝悓鎯呭喌)
)
));
//鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
@@ -195,13 +194,14 @@
LocalDateTime endTime = LocalDateTime.now();
// 璁$畻30澶╁墠鐨勬棩鏈�
LocalDateTime startTime = endTime.minusDays(30);
+ //闇�瑕佹煡瀹℃牳閫氳繃閭f潯璁板綍鐨勬椂闂�
List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(), "瀹℃牳閫氳繃");
for (WorkOrderVO workOrder : workOrders) {
//妫�娴嬫槸鍚︽姤澶囪繃
if (!CollectionUtils.isEmpty(reportNumbers)) {
if (reportNumbers.contains(workOrder.getSerialNumber())) continue;
}
- if(!WorkOrderStatusEnum.AUDITING_SUCCESS.equals(workOrder.getStatus())) continue;
+// if(!WorkOrderStatusEnum.AUDITING_SUCCESS.equals(workOrder.getStatus())) continue;
String errorType = workOrder.getErrorType();
//瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯� 锛堟敼鎴愭墜鍔ㄦ墦鍒嗕簡锛�
// if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) {
@@ -228,7 +228,7 @@
// }
// }
//鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級
- if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType)) {
+ if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType) || ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)) {
if (!CollectionUtils.isEmpty(monitorRuleMap)) {
monitorRuleMap.forEach((contractId, rules) -> {
Integer unitId = rules.get(0).getUnitId();
@@ -238,8 +238,16 @@
Date createTime = workOrder.getDistributeTime();
Date auditTime = workOrder.getAuditTime();
double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60);
- //閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
+ //鎵惧埌瀵瑰簲瑙勫垯銆侀�夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
for (CalculateRuleVO rule : rules) {
+ if(ErrorType.OSD_ERROR.getValue().equals(errorType)){
+ if(!rule.getRuleCondition().equals("OSD鏍囪瘑")) continue;
+ }else if(ErrorType.CLOCK_SKEW.getValue().equals(errorType)){
+ if(!rule.getRuleCondition().equals("鏃堕挓鍚屾")) continue;
+ }else if( ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)){
+ if(!rule.getRuleCondition().equals("涓�鏈轰竴妗�")) continue;
+ }
+
if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
double deductScore = rule.getCalcFraction();
ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "宸ュ崟缂栧彿涓�:" + workOrder.getWorkOrderNo() + "澶勭悊瓒呮椂锛屾墸闄�" + deductScore + "鍒�");
@@ -252,7 +260,7 @@
}
}
//鐐逛綅寮傚父鎯呭喌澶勭悊锛堥暅澶村紓甯搞�佹憚鍍忓ご閬尅绛夛級
- if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType)) {
+ if (ErrorType.ABNORMAL_PIC.getValue().equals(errorType)) {
if (!CollectionUtils.isEmpty(monitorRuleMap)) {
siteRuleMap.forEach((contractId, rules) -> {
Integer unitId = rules.get(0).getUnitId();
@@ -319,7 +327,7 @@
List<ContractScore> contractScoreList = new ArrayList<>();
//鏌ヨ鎶ュ鍒楄〃
List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
- Date date = DateUtils.getDay(2024, 7, 13);
+ Date date = new Date();
//鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
.filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_PicComplete.getName().equals(calculateRuleVO.getRuleName()))
@@ -399,8 +407,7 @@
List<ContractScore> contractScoreList = new ArrayList<>();
//鏌ヨ鎶ュ鍒楄〃
List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
- //TODO:娴嬭瘯鏃ユ湡
- Date date = DateUtils.getDay(2024, 7, 13);
+ Date date = new Date();
//鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
.filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_VideoRecord.getName().equals(calculateRuleVO.getRuleName()))
--
Gitblit v1.8.0