From 9e11e94f8a92a62695657bb2b3b59a1cf47058a5 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 17 十月 2025 13:38:11 +0800
Subject: [PATCH] 大屏显示问题以及报备导出
---
ycl-server/src/main/java/com/ycl/task/ContractResultTask.java | 141 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 114 insertions(+), 27 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 5bec0a4..b9c6022 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -1,20 +1,28 @@
package com.ycl.task;
-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.domain.entity.*;
+import com.ycl.platform.mapper.CalculateRecordMapper;
+import com.ycl.platform.service.CalculateRecordService;
+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 enumeration.general.CalculateReportStatusEnum;
+import enumeration.general.PublishType;
import lombok.Data;
-import org.springframework.scheduling.annotation.Scheduled;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.Date;
import java.util.List;
/**
@@ -22,23 +30,71 @@
* @since 2024/4/28 涓嬪崍 4:14
*/
-@Component
+@Slf4j
@Data
+@Component("contractResultTask")
public class ContractResultTask {
private final ITContractService contractService;
private final IContractScoreService contractScoreService;
- private final ICheckResultService checkResultService;
-
+ private final IContractResultService checkResultService;
+ private final CalculateRecordMapper calculateRecordMapper;
private String startTime;
private String endTime;
+ @Transactional
+ public void contractResultTaskByDay(){
+ // 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚�
+ List<TContract> list = contractService.selectUsingContract();
+ String startTime = "2025-06-17 00:00:00";
+ String endTime = "2025-06-17 23:59:59";
+// getDayStartAndEnd(startTime,endTime);
+ for (TContract tContract : list) {
+ // 鑾峰緱鏄ㄥぉ鐨勬墸鍒嗚褰�
+ List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime);
+
+ System.out.println("鎵撳嵃鏄ㄦ棩鎵e垎璁板綍");
+ System.out.println(contractScore);
+ if (CollectionUtils.isEmpty(contractScore)){
+ log.error("鏄ㄦ棩鎵e垎璁板綍鍒楄〃涓虹┖");
+ return;
+ }
+ // 鏂板鑰冩牳缁撴灉
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.DATE, -1);
+ ContractResult contractResult = getCheckResult(tContract, contractScore);
+ contractResult.setWhichMonth(calendar.get(Calendar.MONTH)+1);
+ contractResult.setWhichYear(calendar.get(Calendar.YEAR));
+ contractResult.setWhichDay(calendar.get(Calendar.DAY_OF_MONTH));
+
+ checkResultService.save(contractResult);
+// // 鏂板鑰冩牳缁撴灉璁板綍
+// List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
+// checkResultService.saveBatchRecord(contractResultRecord);
+ // 鏂板鏍哥畻鏄庣粏璁板綍
+ CalculateRecord calculateRecord = new CalculateRecord();
+ //鏀逛负鐩存帴鍘绘煡
+// calculateRecord.setScore(contractResult.getScore());
+ calculateRecord.setContractId(Integer.parseInt(tContract.getId()+""));
+ calculateRecord.setCreateTime(new Date());
+ calculateRecord.setUpdateTime(new Date());
+ calculateRecord.setStatus(PublishType.UNPUBLISHED.getCode());
+
+ calculateRecord.setWhichYear(calendar.get(Calendar.YEAR));
+ calculateRecord.setWhichMonth(calendar.get(Calendar.MONTH)+1);
+ calculateRecord.setWhichDay(calendar.get(Calendar.DAY_OF_MONTH));
+ System.out.println("鏂板鏍哥畻璁板綍");
+ System.out.println(calculateRecord);
+
+ calculateRecordMapper.insert(calculateRecord);
+
+
+ }
+ }
/**
* 姣忎釜鏈�1鍙锋墽琛岋紝缁熻鑰冩牳缁撴灉
*/
- @Scheduled(cron = "0 0 0 1 * ?")
@Transactional
- // @PostConstruct //鍚姩鏃舵墽琛屼竴娆�
public void contractResultTask() {
// 鏌ヨ鏈夋晥鏈熷唴鐨勫悎鍚�
List<TContract> list = contractService.selectUsingContract();
@@ -47,27 +103,44 @@
// 涓婁釜鏈堟墸鍒嗚褰�
List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime);
// 鏂板鑰冩牳缁撴灉
- CheckResult checkResult = getCheckResult(tContract, contractScore);
- checkResultService.save(checkResult);
- // 鏂板鑰冩牳缁撴灉璁板綍
- List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, checkResult);
- checkResultService.saveBatchRecord(contractResultRecord);
+ //鑾峰彇涓婁釜鏈堟椂闂�
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.MONTH, -1);
+ ContractResult contractResult = getCheckResult(tContract, contractScore);
+ contractResult.setWhichMonth(calendar.get(Calendar.MONTH)+1);
+ contractResult.setWhichYear(calendar.get(Calendar.YEAR));
+ checkResultService.save(contractResult);
+// // 鏂板鑰冩牳缁撴灉璁板綍
+// List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
+// checkResultService.saveBatchRecord(contractResultRecord);
+ // 鏂板鏍哥畻鏄庣粏璁板綍
+ CalculateRecord calculateRecord = new CalculateRecord();
+ //鏀逛负鐩存帴鍘绘煡
+// calculateRecord.setScore(contractResult.getScore());
+ calculateRecord.setContractId(Integer.parseInt(tContract.getId()+""));
+ calculateRecord.setCreateTime(new Date());
+ calculateRecord.setUpdateTime(new Date());
+ calculateRecord.setStatus(PublishType.UNPUBLISHED.getCode());
+
+ calculateRecord.setWhichYear(calendar.get(Calendar.YEAR));
+ calculateRecord.setWhichMonth(calendar.get(Calendar.MONTH)+1);
+ calculateRecordMapper.insert(calculateRecord);
}
}
/**
* 淇濆瓨鑰冩牳璁板綍
*
- * @param contractScore 鎵e垎
- * @param checkResult 鑰冩牳缁撴灉
+ * @param contractScore 鎵e垎
+ * @param contractResult 鑰冩牳缁撴灉
* @return 鑰冩牳璁板綍
*/
- private List<ContractResultRecord> getContractResultRecord(List<ContractScore> contractScore, CheckResult checkResult) {
+ private List<ContractResultRecord> getContractResultRecord(List<ContractScore> contractScore, ContractResult contractResult) {
return contractScore.stream().map(
item -> {
ContractResultRecord record = new ContractResultRecord();
BeanUtils.copyProperties(item, record);
- record.setResultId(checkResult.getId());
+ record.setResultId(contractResult.getId());
record.setCreateTime(DateUtils.getNowDate());
return record;
}
@@ -81,15 +154,15 @@
* @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;
+ 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;
}
@@ -105,5 +178,19 @@
this.startTime = firstDay;
this.endTime = lastDay;
}
+ /**
+ * 鑾峰彇浠婂ぉ鐨勫紑濮嬫椂闂翠笌缁撴潫鏃堕棿
+ * */
+ public void getDayStartAndEnd(String startTime,String endTime) {
+
+ LocalDate today = LocalDate.now().minusDays(1);
+ LocalDateTime startOfDay = today.atStartOfDay(); // 00:00:00
+ LocalDateTime endOfDay = today.atTime(LocalTime.MAX); // 23:59:59.999999999
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+ startTime = startOfDay.format(formatter);
+ endTime = endOfDay.format(formatter);
+ }
}
--
Gitblit v1.8.0