From 9b55891e6dd57bc244e6c5654434b32e05c83496 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 25 九月 2024 15:10:25 +0800
Subject: [PATCH] 异常监控排除已经审核过的工单作为状态
---
ycl-server/src/main/java/com/ycl/task/ContractResultTask.java | 67 ++++++++++++++++++++++++---------
1 files changed, 48 insertions(+), 19 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
index 22a195b..339f924 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -1,22 +1,21 @@
package com.ycl.task;
-import com.ycl.platform.domain.entity.CheckResult;
+import com.ycl.platform.domain.entity.ContractResult;
import com.ycl.platform.domain.entity.ContractResultRecord;
import com.ycl.platform.domain.entity.ContractScore;
import com.ycl.platform.domain.entity.TContract;
-import com.ycl.platform.service.ICheckResultService;
+import com.ycl.platform.service.IContractResultService;
import com.ycl.platform.service.IContractScoreService;
import com.ycl.platform.service.ITContractService;
import com.ycl.utils.DateUtils;
import com.ycl.utils.bean.BeanUtils;
-import jakarta.annotation.PostConstruct;
import lombok.Data;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -24,23 +23,22 @@
* @since 2024/4/28 涓嬪崍 4:14
*/
-@Component
@Data
+@Component("contractResultTask")
public class ContractResultTask {
private final ITContractService contractService;
private final IContractScoreService contractScoreService;
- private final ICheckResultService checkResultService;
+ private final IContractResultService checkResultService;
private String startTime;
private String endTime;
/**
- * 姣忎釜鏈�1鍙锋墽琛�
+ * 姣忎釜鏈�1鍙锋墽琛岋紝缁熻鑰冩牳缁撴灉
*/
- @Scheduled(cron = "0 0 0 1 * ?")
- // @PostConstruct
- // 澶氳〃
+ @Transactional
+ // @PostConstruct //鍚姩鏃舵墽琛屼竴娆�
public void contractResultTask() {
// 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚�
List<TContract> list = contractService.selectUsingContract();
@@ -49,19 +47,50 @@
// 涓婁釜鏈堟墸鍒嗚褰�
List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime);
// 鏂板鑰冩牳缁撴灉
- CheckResult checkResult = new CheckResult();
- checkResult.setUnitId(tContract.getUnitId());
- checkResult.setContractId(tContract.getId());
- checkResult.setPublish(0);
- checkResult.setCheckTime(DateUtils.getNowDate());
- checkResultService.save(checkResult);
+ ContractResult contractResult = getCheckResult(tContract, contractScore);
+ checkResultService.save(contractResult);
// 鏂板鑰冩牳缁撴灉璁板綍
- List<ContractResultRecord> contractResultRecord = new ArrayList<>();
- BeanUtils.copyBeanProp(contractResultRecord, contractScore);
+ List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
checkResultService.saveBatchRecord(contractResultRecord);
}
}
+ /**
+ * 淇濆瓨鑰冩牳璁板綍
+ *
+ * @param contractScore 鎵e垎
+ * @param contractResult 鑰冩牳缁撴灉
+ * @return 鑰冩牳璁板綍
+ */
+ private List<ContractResultRecord> getContractResultRecord(List<ContractScore> contractScore, ContractResult contractResult) {
+ return contractScore.stream().map(
+ item -> {
+ ContractResultRecord record = new ContractResultRecord();
+ BeanUtils.copyProperties(item, record);
+ record.setResultId(contractResult.getId());
+ record.setCreateTime(DateUtils.getNowDate());
+ return record;
+ }
+ ).toList();
+ }
+
+ /**
+ * 璁$畻鑰冩牳缁撴灉
+ *
+ * @param tContract 鍚堝悓
+ * @param contractScore 鎵e垎
+ * @return 鑰冩牳缁撴灉
+ */
+ private ContractResult getCheckResult(TContract tContract, List<ContractScore> contractScore) {
+ ContractResult contractResult = new ContractResult();
+ contractResult.setUnitId(tContract.getUnitId());
+ contractResult.setContractId(tContract.getId());
+ contractResult.setPublish(0);
+ contractResult.setCheckTime(DateUtils.getNowDate());
+ contractResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
+ return contractResult;
+ }
+
/**
* 鑾峰彇涓婁釜鏈堢殑绗竴澶╁拰鏈�鍚庝竴澶�
--
Gitblit v1.8.0