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