From 5ed5f51d479989d5b2149b09c82b6b3ea495b589 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期二, 23 七月 2024 16:21:59 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java | 75 ++++++++++++++++++++++++++++++++++++- 1 files changed, 73 insertions(+), 2 deletions(-) diff --git a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java index 1760331..57d55d0 100644 --- a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java +++ b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java @@ -1,16 +1,34 @@ package com.yuanchu.mom.backup; +import com.yuanchu.mom.dto.PerformanceShiftAddDto; +import com.yuanchu.mom.mapper.EnumMapper; +import com.yuanchu.mom.pojo.Enums; +import com.yuanchu.mom.pojo.PerformanceShift; +import com.yuanchu.mom.pojo.User; +import com.yuanchu.mom.service.EnumService; +import com.yuanchu.mom.service.PerformanceShiftService; +import com.yuanchu.mom.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.io.*; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.TemporalAdjusters; +import java.time.temporal.WeekFields; import java.util.Date; +import java.util.Dictionary; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; -//@Component +@Component @EnableScheduling @Slf4j public class MysqlDataBackup { @@ -55,11 +73,20 @@ @Value("${backup.mysqldump}") private String mysqldump; + @Resource + private PerformanceShiftService performanceShiftService; + + @Resource + private EnumService enumService; + + @Resource + private UserService userService; + /** * 姣忓ぉ鏅氫笂23鐐�05绉掓墽琛� 銆� 0 0 4 1/1 * ? 銆� * 娴嬭瘯 20 绉掍竴娆°�� 0/20 * * * * ? 銆慇Scheduled(cron = "5 * 23 * * ?") */ -// @Scheduled(cron = "5 0 23 * * ?") + //@Scheduled(cron = "0/20 * * * * ?") private void configureTasks() { log.info("銆愬浠芥暟鎹簱銆�--START"); String dbUrl2 = dbUrl.replace("jdbc:mysql://", ""); @@ -171,6 +198,50 @@ } } + + /** + * 瀹氭椂浠诲姟,姣忎釜鏈�1鍙风殑00:00:00 + * 缁欐瘡涓汉閮借繘琛屾帓鐝�(榛樿鏃╃彮) + */ + @Scheduled(cron = "0 0 0 1 * ?") + //@Scheduled(cron = "0/20 * * * * ?") + private void timerCreateSchedule(){ + System.out.println("寮�濮嬬粰姣忎釜浜鸿繘琛屾帓鐝�,榛樿鏃╃彮======start"); + // TODO 缁欐瘡涓汉閮借繘琛屾帓鐝�(榛樿鏃╃彮) + PerformanceShiftAddDto performanceShiftAddDto = new PerformanceShiftAddDto(); + //鐝--鏃�(鏌ヨ瀛楀吀) + List<Enums> shiftType = enumService.selectEnumByCategory("鐝绫诲瀷"); + List<String> collect = shiftType.stream().filter(enums -> enums.getLabel().equals("鏃�")).map(enums -> enums.getValue()).collect(Collectors.toList()); + performanceShiftAddDto.setShift(collect.get(0)); + //浜哄憳--鎵�鏈変汉 + String userIds = userService.getDeviceManager().stream().map(user -> user.getId().toString()).distinct().collect(Collectors.joining(",")); + performanceShiftAddDto.setUserId(userIds); + //鍛ㄦ--褰撴湀鎵�鏈� + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + // 鑾峰彇鏈湀鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); + LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + // 鑾峰彇鍛ㄥ瓧娈典俊鎭紙鏍规嵁鍖哄煙璁剧疆锛� + WeekFields weekFields = WeekFields.of(Locale.getDefault()); + // 鑾峰彇鏈湀绗竴澶╃殑鍛ㄤ竴 + LocalDate startOfWeek = firstDayOfMonth.with(TemporalAdjusters.previousOrSame(weekFields.getFirstDayOfWeek())); + // 閬嶅巻鏈湀鎵�鏈夊ぉ鏁帮紝鎵惧嚭姣忓懆鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate endOfWeek; + while (startOfWeek.isBefore(firstDayOfMonth.plusMonths(1))) { + endOfWeek = startOfWeek.plusDays(6); + LocalDateTime startDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIDNIGHT); + LocalDateTime endDateTime = LocalDateTime.of(endOfWeek, LocalTime.MIDNIGHT); + System.out.println("Week starts on " + startDateTime + " and ends on " + endDateTime); + performanceShiftAddDto.setStartWeek(startDateTime); + performanceShiftAddDto.setEndWeek(endDateTime); + performanceShiftService.performanceShiftAdd(performanceShiftAddDto); + startOfWeek = startOfWeek.plusWeeks(1); + } + + System.out.println("鎺掔彮缁撴潫======end"); + } + /** * 鍒ゆ柇鏂囦欢鏄惁瀛樺湪锛屼笉瀛樺湪鍒涘缓 */ -- Gitblit v1.9.3