From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期五, 01 八月 2025 13:27:59 +0800 Subject: [PATCH] yys 密码已重置 --- cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 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 new file mode 100644 index 0000000..4d48dd4 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java @@ -0,0 +1,142 @@ +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 { + @Resource + private QualitySuperviseDetailsMapper qualitySuperviseDetailsMapper; + @Resource + 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鍙锋墽琛� + public void task1() { + // 鏌ヨ褰撴湀鐩戠潱璁″垝 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M"); + String format = LocalDateTime.now().format(formatter); + List<QualitySuperviseDetails> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>lambdaQuery() + .eq(QualitySuperviseDetails::getSuperviseTime, format)); + + for (QualitySuperviseDetails qualitySuperviseDetail : qualitySuperviseDetails) { + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ琚洃鐫d汉淇℃伅 + User user = userMapper.selectById(qualitySuperviseDetail.getSupervisedUserId()); + // 浼佷笟寰俊閫氱煡鍩硅 + String message = ""; + message += "璐ㄩ噺鐩戠潱璁″垝鎻愰啋閫氱煡"; + message += "\n鐩戠潱鏃ユ湡: " + qualitySuperviseDetail.getSuperviseTime(); + message += "\n鐩戠潱鐩殑: " + qualitySuperviseDetail.getSupervisePurpose(); + message += "\n鐩戠潱椤圭洰: " + qualitySuperviseDetail.getSuperviseProject(); + message += "\n琚洃鐫d汉: " + qualitySuperviseDetail.getSupervisee(); + message += "\n璁″垝褰撴湀杩涜鐩戠潱璁″垝"; + + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(user.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + } + + + /** + * 姣忔湀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