From 0877a9313cfcccbf59f86215cf75d922e4f786d7 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期三, 07 五月 2025 15:15:12 +0800 Subject: [PATCH] 添加监督质量评审功能 --- cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java | 80 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 78 insertions(+), 2 deletions(-) diff --git a/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java index 0c35317..4d48dd4 100644 --- a/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java +++ b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java @@ -1,23 +1,33 @@ package com.ruoyi.process.task; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.WxCpUtils; import com.ruoyi.process.mapper.QualitySuperviseDetailsMapper; +import com.ruoyi.process.mapper.QualitySuperviseDetailsRecordMapper; +import com.ruoyi.process.mapper.QualitySuperviseManagementReviewMapper; import com.ruoyi.process.pojo.QualitySuperviseDetails; +import com.ruoyi.process.pojo.QualitySuperviseDetailsRecord; +import com.ruoyi.process.pojo.QualitySuperviseManagementReview; import com.ruoyi.system.mapper.UserMapper; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** - * 鍩硅璁″垝浣跨敤鎻愰啋璁板綍鎻愰啋 + * 璐ㄩ噺鐩戠潱濉啓鎻愰啋 */ @Component public class QualitySuperviseSchedule { @@ -27,9 +37,13 @@ private UserMapper userMapper; @Resource private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Resource + private QualitySuperviseManagementReviewMapper qualitySuperviseManagementReviewMapper; + @Resource + private QualitySuperviseDetailsRecordMapper qualitySuperviseDetailsRecordMapper; /** - * 鎻愰啋濉啓璁惧浣跨敤璁板綍 + * 璐ㄩ噺鐩戠潱濉啓鎻愰啋 */ // @Scheduled(cron = "0/5 * * * * *") @Scheduled(cron = "0 0 9 1 * *") // 姣忔湀1鍙锋墽琛� @@ -63,4 +77,66 @@ } } + + /** + * 姣忔湀28鍙疯嚜鍔ㄧ敓鎴愯川閲忕洃鐫f�荤粨 + */ +// @Scheduled(cron = "0/5 * * * * *") + @Scheduled(cron = "0 0 9 28 * *") // 姣忔湀28鍙锋墽琛� + public void task2() { + LocalDateTime now = LocalDateTime.now(); + // 鏌ヨ褰撴湀鐩戠潱璁″垝 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M"); + String format = now.format(formatter); + List<QualitySuperviseDetails> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>lambdaQuery() + .eq(QualitySuperviseDetails::getSuperviseTime, format)); + + // 鏍规嵁瀹氭湡鐩戠潱鍜屽姩鎬佺洃鐫e尯鍒� + Map<String, List<QualitySuperviseDetails>> superviseReasonMap = qualitySuperviseDetails.stream().collect(Collectors.groupingBy(QualitySuperviseDetails::getSuperviseReason)); + + // 鑾峰彇褰撴湀鏃ユ湡 + DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy骞碝M鏈�"); + String format2 = now.format(formatter2); + + // 鑾峰彇璁″垝鍐呭 + String implementationSupervisee = ""; + List<QualitySuperviseDetails> implementationList = superviseReasonMap.get("瀹氭湡鐩戠潱"); + if (CollectionUtils.isNotEmpty(implementationList)) { + // 鑾峰彇瀹氭湡鐩戠潱浜哄憳淇℃伅 + List<String> collect = implementationList.stream().map(QualitySuperviseDetails::getSupervisee).collect(Collectors.toList()); + implementationSupervisee = CollUtil.join(collect, ","); + } + String implementationContent = "宸ヤ綔涓弗鏍兼寜鐓у勾搴﹁川閲忕洃鐫e伐浣滆鍒掕繘琛屾墽琛屻�倇}瀵箋}杩涜涓�娆″畾鏈熺洃鐫c�傚湪鐩戠潱杩囩▼涓紝娌℃湁鍙戠幇涓嶇鍚堢殑鐜拌薄銆傛楠屽憳鑳界啛缁冪殑鎸夌収瑙勫畾鐨勮姹傝繘琛岃澶囩殑鎿嶄綔锛屽浜庢爣鍑嗚兘鐔熻锛屾墍浣跨敤鐨勮澶囧潎鍦ㄦ牎鍑嗗懆鏈熷唴锛岃兘娓呮瀹屾暣鐨勭殑璁板綍鍘熷鏁版嵁骞跺嚭鍏锋姤鍛婏紱鍦ㄨ瘯楠岀幆澧冩柟闈紝鑳藉涓ユ牸鐨勬寜鐓ф爣鍑嗘墽琛屻��"; + String formatImplementationContent = StrUtil.format(implementationContent, format2, implementationSupervisee); + + //鑾峰彇鍔ㄦ�佸唴瀹� + String dynamicSupervisee = ""; + List<QualitySuperviseDetails> dynamicList = superviseReasonMap.get("鍔ㄦ�佺洃鐫�"); + if (CollectionUtils.isNotEmpty(dynamicList)) { + List<String> collect = dynamicList.stream() + .map(details -> StrUtil.format("瀵箋}鍔ㄦ�佺洃鐫�1娆″湪鐩戠潱杩囩▼涓�", details.getSupervisee())).collect(Collectors.toList()); + dynamicSupervisee = CollUtil.join(collect, "锛�"); + } + String dynamicContent = "鍦ㄤ繚璇佽川閲忕洃鐫h鍒掔殑鍚屾椂锛屼篃鍧氭寔鎸夌収棰嗗瑕佹眰鍔犲己涓嶅畾鏈熺洃鐫e姩浣溿�倇}浠絳}锛屾病鏈夊彂鐜颁笉绗﹀悎鐨勭幇璞°�傛楠屽憳鑳界啛缁冪殑鎸夌収瑙勫畾鐨勮姹傝繘琛岃澶囩殑鎿嶄綔锛屽浜庢爣鍑嗚兘鐔熻锛屾墍浣跨敤鐨勮澶囧潎鍦ㄦ牎鍑嗗懆鏈熷唴锛岃兘娓呮瀹屾暣鐨勭殑璁板綍鍘熷鏁版嵁骞跺嚭鍏锋姤鍛婏紱鍦ㄨ瘯楠岀幆澧冩柟闈紝鑳藉涓ユ牸鐨勬寜鐓ф爣鍑嗘墽琛屻��"; + String formatdynamicContent = StrUtil.format(dynamicContent, format2, dynamicSupervisee); + + // 鑾峰彇鐩戠潱鍛樹俊鎭� + QualitySuperviseDetails superviseDetails = qualitySuperviseDetails.get(0); + QualitySuperviseDetailsRecord detailsRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery() + .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, superviseDetails.getSuperviseDetailsId()) + .last("limit 1")); + String supervisor = detailsRecord.getSupervisor(); + + // 鍒涘缓璇勫瀵硅薄 + QualitySuperviseManagementReview managementReview = new QualitySuperviseManagementReview(); + String yearDate = now.format(DateTimeFormatter.ofPattern("yyyy骞�")); + String monthDate = now.format(DateTimeFormatter.ofPattern("MM鏈�")); + managementReview.setFileName(StrUtil.format("{}绠$悊璇勫杈撳叆鏉愭枡锛坽}锛塤{}", yearDate, supervisor, monthDate)); + managementReview.setImplementationContent(formatImplementationContent); + managementReview.setDynamicContent(formatdynamicContent); + managementReview.setSupervisor(supervisor); + managementReview.setSuperviseDate(LocalDate.now()); + qualitySuperviseManagementReviewMapper.insert(managementReview); + } + } -- Gitblit v1.9.3