From e547993a3c78d0bd75f3fdef4a9878e180d73d36 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 29 四月 2024 17:52:26 +0800
Subject: [PATCH] 合同考核结果定时任务、详情、查询、导出

---
 ycl-server/src/main/java/com/ycl/task/ContractResultTask.java |   56 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 44 insertions(+), 12 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..758c3a8 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -9,14 +9,14 @@
 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;
 
 /**
@@ -36,11 +36,11 @@
     private String endTime;
 
     /**
-     * 姣忎釜鏈�1鍙锋墽琛�
+     * 姣忎釜鏈�1鍙锋墽琛岋紝缁熻鑰冩牳缁撴灉
      */
     @Scheduled(cron = "0 0 0 1 * ?")
-    // @PostConstruct
-    // 澶氳〃
+    @Transactional
+    // @PostConstruct //鍚姩鏃舵墽琛屼竴娆�
     public void contractResultTask() {
         // 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚�
         List<TContract> list = contractService.selectUsingContract();
@@ -49,19 +49,51 @@
             // 涓婁釜鏈堟墸鍒嗚褰�
             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());
+            CheckResult checkResult = getCheckResult(tContract, contractScore);
             checkResultService.save(checkResult);
             // 鏂板鑰冩牳缁撴灉璁板綍
-            List<ContractResultRecord> contractResultRecord = new ArrayList<>();
-            BeanUtils.copyBeanProp(contractResultRecord, contractScore);
+            List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, checkResult);
             checkResultService.saveBatchRecord(contractResultRecord);
         }
     }
 
+    /**
+     * 淇濆瓨鑰冩牳璁板綍
+     *
+     * @param contractScore 鎵e垎
+     * @param checkResult   鑰冩牳缁撴灉
+     * @return 鑰冩牳璁板綍
+     */
+    private List<ContractResultRecord> getContractResultRecord(List<ContractScore> contractScore, CheckResult checkResult) {
+        return contractScore.stream().map(
+                item -> {
+                    ContractResultRecord record = new ContractResultRecord();
+                    BeanUtils.copyProperties(item, record);
+                    record.setResultId(checkResult.getId());
+                    record.setCreateTime(DateUtils.getNowDate());
+                    return record;
+                }
+        ).toList();
+    }
+
+    /**
+     * 璁$畻鑰冩牳缁撴灉
+     *
+     * @param tContract     鍚堝悓
+     * @param contractScore 鎵e垎
+     * @return 鑰冩牳缁撴灉
+     */
+    private CheckResult getCheckResult(TContract tContract, List<ContractScore> contractScore) {
+        CheckResult checkResult = new CheckResult();
+        checkResult.setUnitId(tContract.getUnitId());
+        checkResult.setContractId(tContract.getId());
+        checkResult.setPublish(0);
+        checkResult.setDeleted("0");
+        checkResult.setCheckTime(DateUtils.getNowDate());
+        checkResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
+        return checkResult;
+    }
+
 
     /**
      * 鑾峰彇涓婁釜鏈堢殑绗竴澶╁拰鏈�鍚庝竴澶�

--
Gitblit v1.8.0