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-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java b/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java
new file mode 100644
index 0000000..bbd88c7
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java
@@ -0,0 +1,104 @@
+package com.ruoyi.device.task;
+
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.WxCpUtils;
+import com.ruoyi.device.dto.DeviceRecordDto;
+import com.ruoyi.device.mapper.DeviceMapper;
+import com.ruoyi.device.mapper.DeviceRecordMapper;
+import com.ruoyi.device.pojo.Device;
+import com.ruoyi.device.pojo.DeviceRecord;
+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.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 璁惧浣跨敤璁板綍鎻愰啋
+ */
+@Component
+public class DeviceRecordSchedule {
+
+    @Resource
+    private DeviceMapper deviceMapper;
+    @Resource
+    private DeviceRecordMapper deviceRecordMapper;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
+    /**
+     * 鎻愰啋濉啓璁惧浣跨敤璁板綍
+     */
+//    @Scheduled(cron = "0/5 * * * * *")
+    @Scheduled(cron = "0 0 9 * * 6") // 姣忓懆鍏墽琛屼竴娆�
+    public void task1() {
+        // 鏌ヨ鏈~鍐欑殑璁惧浣跨敤璁板綍
+        List<DeviceRecordDto> deviceRecords = deviceRecordMapper.selectNotFilled();
+        Map<Integer, List<DeviceRecordDto>> userPersonIdMap = deviceRecords.stream().collect(Collectors.groupingBy(DeviceRecord::getUsePersonId));
+        userPersonIdMap.forEach((userId, recordList) -> {
+            threadPoolTaskExecutor.execute(() -> {
+                // 浼佷笟寰俊閫氱煡濉啓璁惧浣跨敤璁板綍
+                User user = userMapper.selectById(userId);
+                String message = "";
+                message += "璁惧浣跨敤璁板綍鏈~鍐欐彁閱掗�氱煡";
+                for (DeviceRecordDto deviceRecord : recordList) {
+                    message += "\n璁惧鍚嶇О缂栧彿: " + deviceRecord.getDeviceName() + "-" + deviceRecord.getManagementNumber();
+                    message += "\n濮旀墭缂栧彿: " + deviceRecord.getSampleCode();
+                    message += "\n";
+                }
+                message += "\n璇峰幓濉啓璁惧浣跨敤璁板綍";
+
+                //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+                try {
+                    WxCpUtils.inform(user.getAccount(), message, null);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+            });
+        });
+    }
+
+
+    /**
+     * 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+     * 鍒ゆ柇鏄惁鏈夎澶囧埌杈炬牎鍑嗘湁鏁堟湡
+     */
+//    @Scheduled(cron = "0/10 * * * * *")
+    @Scheduled(cron = "0 0 9 * * 1-6") // 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+    public void task2() {
+        // 鏌ヨ鍒拌揪鏍″噯鏈夋晥鏈熺殑璁惧-鎻愬墠5澶�
+        List<Device> deviceList = deviceMapper.selectOverdueDevice();
+        Map<Integer, List<Device>> userPersonIdMap = deviceList.stream().collect(Collectors.groupingBy(Device::getEquipmentManager));
+        userPersonIdMap.forEach((userId, recordList) -> {
+            threadPoolTaskExecutor.execute(() -> {
+                // 浼佷笟寰俊閫氱煡濉啓璁惧浣跨敤璁板綍
+                User user = userMapper.selectById(userId);
+                String message = "";
+                message += "璁惧鍒拌揪鏍″噯鏈夋晥鏈�";
+                for (Device deviceRecord : recordList) {
+                    message += "\n璁惧鍚嶇О: " + deviceRecord.getDeviceName();
+                    message += "\n璁惧缂栧彿: " + deviceRecord.getManagementNumber();
+                    message += "\n鏍″噯鏈夋晥鏈�: " + deviceRecord.getActivationDate();
+                    message += "\n";
+                }
+                message += "\n璇峰幓杩涜璁惧鏍″噯";
+
+                //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+                try {
+                    WxCpUtils.inform(user.getAccount(), message, null);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+            });
+        });
+    }
+
+}

--
Gitblit v1.9.3