From f77a9d8f16bae6b4cf809891f037c038070e81ed Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期四, 19 六月 2025 17:12:50 +0800 Subject: [PATCH] 工单,数据中心用户查看数据的权限,合同考核每日,以及导出每日和按月 --- ycl-server/src/main/java/com/ycl/task/ContractResultTask.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 99 insertions(+), 13 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 e15e890..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,22 +1,28 @@ package com.ycl.task; -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.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; /** @@ -24,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 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(); @@ -49,11 +103,28 @@ // 涓婁釜鏈堟墸鍒嗚褰� List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime); // 鏂板鑰冩牳缁撴灉 + //鑾峰彇涓婁釜鏈堟椂闂� + 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); +// // 鏂板鑰冩牳缁撴灉璁板綍 +// 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); } } @@ -89,7 +160,8 @@ 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())); + //鏀逛负鐩存帴鍘绘煡 +// contractResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get())); return contractResult; } @@ -106,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