|
@@ -24,6 +24,8 @@ public class HandleTask {
|
|
|
private AtomicInteger dailyCount = new AtomicInteger(0);
|
|
|
private AtomicInteger weeklyCount = new AtomicInteger(0);
|
|
|
private AtomicInteger monthlyCount = new AtomicInteger(0);
|
|
|
+ //年办理事件数量
|
|
|
+ private AtomicInteger yearlyCount = new AtomicInteger(0);
|
|
|
|
|
|
// 应用启动时加载今日的办件量
|
|
|
public void loadDailyCount() {
|
|
@@ -45,9 +47,26 @@ public class HandleTask {
|
|
|
// 加载本周和本月的办件量
|
|
|
loadWeeklyCount();
|
|
|
loadMonthlyCount();
|
|
|
+ loadYearlyCount();
|
|
|
}
|
|
|
|
|
|
|
|
|
+ //在每年元旦重置年办理数量
|
|
|
+ @Scheduled(cron = "0 0 0 1 1 ?") // 每年1月1日零点执行
|
|
|
+ public void resetYearlyCount() {
|
|
|
+ // 保存上年的yearlyCount
|
|
|
+ int previousYearlyCount = yearlyCount.get();
|
|
|
+ saveYearlyCount(previousYearlyCount);
|
|
|
+
|
|
|
+ // 重置yearlyCount
|
|
|
+ yearlyCount.set(0);
|
|
|
+
|
|
|
+ // 插入当前年的记录,初始值为0
|
|
|
+ saveYearlyCount(0);
|
|
|
+
|
|
|
+ System.out.println("Yearly count has been reset to 0.");
|
|
|
+ }
|
|
|
+
|
|
|
// 在每月初重置月办理数量
|
|
|
@Scheduled(cron = "0 0 0 1 * ?") // 每月1日凌晨0点执行
|
|
|
public void resetMonthlyCount() {
|
|
@@ -67,14 +86,20 @@ public class HandleTask {
|
|
|
|
|
|
@Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行
|
|
|
public void resetDailyCount() {
|
|
|
+ // 累加dailyCount到yearlyCount
|
|
|
+ yearlyCount.addAndGet(dailyCount.get());
|
|
|
+
|
|
|
// 更新本周和本月的办件量
|
|
|
updateWeeklyCount(dailyCount.get());
|
|
|
- updateMonthlyCount(weeklyCount.get());
|
|
|
+ updateMonthlyCount(dailyCount.get());
|
|
|
|
|
|
dailyCount.set(0);
|
|
|
LocalDate today = LocalDate.now();
|
|
|
saveDailyCount(today, 0);
|
|
|
System.out.println("Daily count has been reset to 0.");
|
|
|
+
|
|
|
+ // 更新数据库中的yearlyCount
|
|
|
+ saveYearlyCount(yearlyCount.get());
|
|
|
}
|
|
|
|
|
|
@Scheduled(cron = "0 0/10 * * * ?") // 每10分钟执行
|
|
@@ -226,13 +251,6 @@ public class HandleTask {
|
|
|
updateMonthlyCount(dailyCount);
|
|
|
}
|
|
|
|
|
|
-// private void SaveWeeklyCountIfEndOfWeek() {
|
|
|
-// LocalDate today = LocalDate.now();
|
|
|
-// if (today.getDayOfWeek().getValue() == 7) { // 周日
|
|
|
-// saveWeeklyCount(today, weeklyCount.get());
|
|
|
-// weeklyCount.set(0); // 重置周计数
|
|
|
-// }
|
|
|
-// }
|
|
|
|
|
|
private void saveWeeklyCount(LocalDate date, int count) {
|
|
|
SolveAffairs solveAffairs = new SolveAffairs();
|
|
@@ -263,13 +281,6 @@ public class HandleTask {
|
|
|
saveMonthlyCount(LocalDate.now(), monthlyCount.get()); // 每次更新都保存到数据库
|
|
|
}
|
|
|
|
|
|
-// private void SaveMonthlyCountIfEndOfMonth() {
|
|
|
-// LocalDate today = LocalDate.now();
|
|
|
-// if (today.plusDays(1).getMonthValue() != today.getMonthValue()) { // 下一天是下个月
|
|
|
-// saveMonthlyCount(today, monthlyCount.get());
|
|
|
-// monthlyCount.set(0); // 重置月计数
|
|
|
-// }
|
|
|
-// }
|
|
|
|
|
|
private void saveMonthlyCount(LocalDate date, int count) {
|
|
|
SolveAffairs solveAffairs = new SolveAffairs();
|
|
@@ -291,4 +302,36 @@ public class HandleTask {
|
|
|
solveAffairsDao.insert(solveAffairs);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void saveYearlyCount(int count) {
|
|
|
+ SolveAffairs solveAffairs = new SolveAffairs();
|
|
|
+ solveAffairs.setHandleNum(count);
|
|
|
+ solveAffairs.setHandleType(4); // 年办理数量
|
|
|
+ solveAffairs.setCreateTime(new Date());
|
|
|
+ updateOrCreateYearly(solveAffairs);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateOrCreateYearly(SolveAffairs solveAffairs) {
|
|
|
+ int year = LocalDate.now().getYear();
|
|
|
+ SolveAffairs existing = solveAffairsDao.findByYearAndType(year, 4);
|
|
|
+ if (existing != null) {
|
|
|
+ existing.setHandleNum(solveAffairs.getHandleNum());
|
|
|
+ existing.setUpdateTime(new Date());
|
|
|
+ solveAffairsDao.update(existing);
|
|
|
+ } else {
|
|
|
+ solveAffairs.setCreateTime(Date.from(LocalDate.ofYearDay(year, 1).atStartOfDay(ZoneId.systemDefault()).toInstant()));
|
|
|
+ solveAffairsDao.insert(solveAffairs);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void loadYearlyCount() {
|
|
|
+ int year = LocalDate.now().getYear();
|
|
|
+ SolveAffairs existing = solveAffairsDao.findByYearAndType(year, 4);
|
|
|
+ if (existing != null) {
|
|
|
+ yearlyCount.set(existing.getHandleNum());
|
|
|
+ } else {
|
|
|
+ yearlyCount.set(0);
|
|
|
+ }
|
|
|
+ System.out.println("Loaded yearly count: " + yearlyCount.get());
|
|
|
+ }
|
|
|
}
|