From beb40a62ce723b391964dab56de6aa0f98f50613 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 11 Mar 2022 15:08:25 +0800
Subject: [PATCH] city_aqi月,年数据定时任务修改,每日累计统计

---
 screen-common/src/main/java/com/moral/util/DateUtils.java                          |    4 ++++
 screen-job/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java |   18 +++++++++++++++++-
 screen-job/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java  |   19 +++++++++++++++++--
 3 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 3699260..5de2f15 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -80,6 +80,10 @@
      * ������������(yyyy-MM-dd HH)
      * */
     public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH";
+    /*
+     * ������������(MM-dd)
+     * */
+    public static final String MM_dd_EN = "MM-dd";
 
     /*
      * Date���toString������
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java
index b67eebf..1745e77 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.moral.api.entity.CityAqiDaily;
 import com.moral.api.entity.CityAqiMonthly;
 import com.moral.api.mapper.CityAqiMonthlyMapper;
@@ -57,6 +58,20 @@
         //���������������������1���
         Date end = DateUtils.addMonths(start, 1);
 
+        //���������1������������������������������������
+        //������1���������������������������������������������������������
+        int day = DateUtils.getDay(new Date());
+        UpdateWrapper<CityAqiMonthly> cityAqiMonthlyUpdateWrapper = new UpdateWrapper<>();
+        if (day == 1) {
+            cityAqiMonthlyUpdateWrapper.eq("time", start);
+        } else {
+            start = end;
+            end = DateUtils.addMonths(start, 1);
+            lastLastMonth = DateUtils.addMonths(start, -1);
+            cityAqiMonthlyUpdateWrapper.eq("time", start);
+        }
+        cityAqiMonthlyMapper.delete(cityAqiMonthlyUpdateWrapper);
+
 
         //������������������aqi������������
         QueryWrapper<CityAqiDaily> wrapper = new QueryWrapper<>();
@@ -83,11 +98,12 @@
 
         List<CityAqiMonthly> cityAqiMonthlyList = new ArrayList<>();
 
+        Date finalStart = start;
         data.forEach((cityCode, value) -> {
             CityAqiMonthly cityAqiMonthly = new CityAqiMonthly();
             Map<String, Object> jsonMap = new HashMap<>();
             cityAqiMonthly.setCityCode(Integer.parseInt(cityCode));
-            cityAqiMonthly.setTime(start);
+            cityAqiMonthly.setTime(finalStart);
 
             Map<String, Object> params = new HashMap<>();
             List<Map<String, Object>> temp = new ArrayList<>();
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java
index cdda6d5..245369d 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.moral.api.entity.CityAqiDaily;
 import com.moral.api.entity.CityAqiYearly;
 import com.moral.api.mapper.CityAqiYearlyMapper;
@@ -18,7 +19,6 @@
 
 import java.text.DecimalFormat;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -59,6 +59,20 @@
         //���������������������1���
         Date end = DateUtils.getDate(DateUtils.getDateAddYear(DateUtils.dateToDateString(start, DateUtils.yyyy), 1), DateUtils.yyyy);
 
+        //���������1���1���������������������������
+        //������1���1���������������������������������������������������������
+        String monthAndDay = DateUtils.dateToDateString(new Date(), DateUtils.MM_dd_EN);
+        UpdateWrapper<CityAqiYearly> cityAqiYearlyUpdateWrapper = new UpdateWrapper<>();
+        if ("01-01".equals(monthAndDay)) {
+            cityAqiYearlyUpdateWrapper.eq("time", start);
+        } else {
+            start = end;
+            end = DateUtils.getDate(DateUtils.getDateAddYear(DateUtils.dateToDateString(start, DateUtils.yyyy), 1), DateUtils.yyyy);
+            lastLastYear = DateUtils.getDate(DateUtils.getDateAddYear(DateUtils.dateToDateString(start, DateUtils.yyyy), -1), DateUtils.yyyy);
+            cityAqiYearlyUpdateWrapper.eq("time", start);
+        }
+        cityAqiYearlyMapper.delete(cityAqiYearlyUpdateWrapper);
+
 
         //������������������aqi���������
         QueryWrapper<CityAqiDaily> wrapper = new QueryWrapper<>();
@@ -85,11 +99,12 @@
 
         List<CityAqiYearly> cityAqiYearlyList = new ArrayList<>();
 
+        Date finalStart = start;
         data.forEach((cityCode, value) -> {
             CityAqiYearly cityAqiYearly = new CityAqiYearly();
             Map<String, Object> jsonMap = new HashMap<>();
             cityAqiYearly.setCityCode(Integer.parseInt(cityCode));
-            cityAqiYearly.setTime(start);
+            cityAqiYearly.setTime(finalStart);
 
             //PM2.5
             Double pm25Avg = AmendUtils.getAvgOfYear(value, "PM2_5");

--
Gitblit v1.8.0