| | |
| | | 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 { |
| | |
| | | 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号执行 |
| | | // @Scheduled(cron = "0 0 9 1 * *") // 每月1号执行 |
| | | public void task1() { |
| | | // 查询当月监督计划 |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M"); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 每月28号自动生成质量监督总结 |
| | | */ |
| | | // @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)); |
| | | |
| | | // 根据定期监督和动态监督区分 |
| | | Map<String, List<QualitySuperviseDetails>> superviseReasonMap = qualitySuperviseDetails.stream().collect(Collectors.groupingBy(QualitySuperviseDetails::getSuperviseReason)); |
| | | |
| | | // 获取当月日期 |
| | | DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy年MM月"); |
| | | 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 = "工作中严格按照年度质量监督工作计划进行执行。{}对{}进行一次定期监督。在监督过程中,没有发现不符合的现象。检验员能熟练的按照规定的要求进行设备的操作,对于标准能熟记,所使用的设备均在校准周期内,能清楚完整的的记录原始数据并出具报告;在试验环境方面,能够严格的按照标准执行。"; |
| | | 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 = "在保证质量监督计划的同时,也坚持按照领导要求加强不定期监督动作。{}份{},没有发现不符合的现象。检验员能熟练的按照规定的要求进行设备的操作,对于标准能熟记,所使用的设备均在校准周期内,能清楚完整的的记录原始数据并出具报告;在试验环境方面,能够严格的按照标准执行。"; |
| | | 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); |
| | | } |
| | | |
| | | } |