From 2bb12b1ca40b29b7edcf06ef3f3d6de24dde1c4c Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 24 九月 2025 14:59:17 +0800
Subject: [PATCH] 原材料订单拆分功能v1
---
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 30c545a..82e0d83 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