Przeglądaj źródła

首页历史数据查询

wangzhe 10 miesięcy temu
rodzic
commit
b397072d37

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/timer/BigscreenAutoQueryYesterdayData.java

@@ -16,7 +16,7 @@ public class BigscreenAutoQueryYesterdayData extends BaseTask {
     @Override
     protected void run() {
 //        System.out.println("【系统启动】开始(每20秒输出一次)...");
-        iZdszBigscreenService.bigscreenAutoQueryYesterdayData();
+        iZdszBigscreenService.bigscreenAutoQueryYesterdayData(null);
         System.out.println("【系统提示】 查询大屏昨日数据已完成!");
     }
 

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZdszBigscreenService.java

@@ -44,5 +44,5 @@ public interface IZdszBigscreenService {
     /**
      * 查询大屏昨日数据
      */
-    public void bigscreenAutoQueryYesterdayData();
+    public void bigscreenAutoQueryYesterdayData(String initTime);
 }

+ 98 - 23
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZdszBigscreenServiceImpl.java

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -49,9 +50,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 施工进度统计
      */
-    public void setConstructionProgress(){
+    public void setConstructionProgress(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
+        if(initTime != null){
+            time = initTime;
+        }
 //        time = "2024-05-21";
         zdszBigscreenBo.setTime(time);
         String[] times = time.split("-");
@@ -71,7 +75,10 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
 
     @Override
     public Map getConstructionProgress(ZdszBigscreenBo zdszBigscreenBo){
-        setConstructionProgress();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setConstructionProgress(time);
+        }
         clearTime(zdszBigscreenBo);
         List<Map> list = bigscreenMapper.getConstructionProgress(zdszBigscreenBo);
         int size = list.size();
@@ -107,9 +114,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 工程状态统计
      */
-    public void setProjectStatus(){
+    public void setProjectStatus(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
+        if(initTime != null){
+            time = initTime;
+        }
         zdszBigscreenBo.setTime(time);
 
 //        LambdaQueryWrapper<ZEngineeringIndustry> zEngineeringIndustryBoLambdaQueryWrapper = new LambdaQueryWrapper<ZEngineeringIndustry>();
@@ -127,7 +137,10 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     @Override
     public Map getProjectStatus(ZdszBigscreenBo zdszBigscreenBo){
         clearTime(zdszBigscreenBo);
-        setProjectStatus();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setProjectStatus(time);
+        }
         List<Map> list = bigscreenMapper.getProjectStatus(zdszBigscreenBo);
         int size = list.size();
         switch (size){
@@ -154,9 +167,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 今日施工数
      */
-    public void setCountEngineering(){
+    public void setCountEngineering(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
+        if(initTime != null){
+            time = initTime;
+        }
         String[] times = time.split("-");
         zdszBigscreenBo.setTime(time);
         zdszBigscreenBo.setInfo("z_engineering_info_" + times[0] + "_" + times[1]); // z_engineering_info_2024_03
@@ -174,7 +190,10 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     @Override
     public Map getCountEngineering(ZdszBigscreenBo zdszBigscreenBo){
         clearTime(zdszBigscreenBo);
-        setCountEngineering();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setCountEngineering(time);
+        }
         List<Map> list = bigscreenMapper.getCountEngineering(zdszBigscreenBo);
         int size = list.size();
         switch (size){
@@ -207,9 +226,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 今日使用人数
      */
-    public void setCountPerson(){
+    public void setCountPerson(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
+        if(initTime != null){
+            time = initTime;
+        }
         zdszBigscreenBo.setTime(time);
         Map map = new HashMap();
         map.put("time", time); // 创建时间
@@ -224,7 +246,10 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     @Override
     public Map getCountPerson(ZdszBigscreenBo zdszBigscreenBo){
         clearTime(zdszBigscreenBo);
-        setCountPerson();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setCountPerson(time);
+        }
         List<Map> list = bigscreenMapper.getCountPerson(zdszBigscreenBo);
         int size = list.size();
         switch (size){
@@ -257,9 +282,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 地图施工数据分布
      */
-    public void setConstructionMap(){
+    public void setConstructionMap(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
+        if(initTime != null){
+            time = initTime;
+        }
 //        time = "2024-03-10";
         zdszBigscreenBo.setTime(time);
         String[] times = time.split("-");
@@ -286,7 +314,10 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     @Override
     public Map getConstructionMap(ZdszBigscreenBo zdszBigscreenBo){
         clearTime(zdszBigscreenBo);
-        setConstructionMap();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setConstructionMap(time);
+        }
         Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
         List<SysDictData> dictDataList = sysDictMap.get("district");
         List<Map> list = bigscreenMapper.getConstructionMap(zdszBigscreenBo);
@@ -349,10 +380,13 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 各个区今日施工数
      */
-    public void setConstructionNew(){
+    public void setConstructionNew(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
-        time = "2024-03-10";
+        if(initTime != null){
+            time = initTime;
+        }
+//        time = "2024-03-10";
         zdszBigscreenBo.setTime(time);
         String[] times = time.split("-");
         zdszBigscreenBo.setInfo("z_engineering_info_" + times[0] + "_" + times[1]); // z_engineering_info_2024_03
@@ -376,7 +410,10 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     @Override
     public Map getConstructionNew(ZdszBigscreenBo zdszBigscreenBo){
         clearTime(zdszBigscreenBo);
-        setConstructionNew();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setConstructionNew(time);
+        }
         Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
         List<SysDictData> dictDataList = sysDictMap.get("district");
         List<Map> list = bigscreenMapper.getConstructionNew(zdszBigscreenBo);
@@ -439,9 +476,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     /**
      * 各个区今日旧改施工数
      */
-    public void setConstructionOld(){
+    public void setConstructionOld(String initTime){
         ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
         String time = getPreviousDay();
+        if(initTime != null){
+            time = initTime;
+        }
         String[] times = time.split("-");
         zdszBigscreenBo.setTime(time);
 //        zdszBigscreenBo.setTime("2024-08-05");
@@ -462,8 +502,12 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     }
     @Override
     public Map getConstructionOld(ZdszBigscreenBo zdszBigscreenBo){
+//        batchInitData("2024-08-01");
         clearTime(zdszBigscreenBo);
-        setConstructionOld();
+        String time = zdszBigscreenBo.getTime();
+        if(time != null && time.equals(new SimpleDateFormat("yyyy-MM-dd").format(new Date()))){
+            setConstructionOld(time);
+        }
         Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
         List<SysDictData> dictDataList = sysDictMap.get("district");
         List<Map> list = bigscreenMapper.getConstructionOld(zdszBigscreenBo);
@@ -576,14 +620,45 @@ public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
     }
 
     @Override
-    public void bigscreenAutoQueryYesterdayData(){
-        setConstructionProgress(); // 施工进度统计
-        setProjectStatus(); // 工程状态统计
-        setCountEngineering(); // 今日施工数
-        setCountPerson(); // 今日使用人数
-        setConstructionMap(); // 地图施工数据分布
-        setConstructionOld(); // 各个区今日旧改施工数
-        setConstructionNew(); // 各个区今日施工数
+    public void bigscreenAutoQueryYesterdayData(String initTime){
+        setConstructionProgress(initTime); // 施工进度统计
+        setProjectStatus(initTime); // 工程状态统计
+        setCountEngineering(initTime); // 今日施工数
+        setCountPerson(initTime); // 今日使用人数
+        setConstructionMap(initTime); // 地图施工数据分布
+        setConstructionOld(initTime); // 各个区今日旧改施工数
+        setConstructionNew(initTime); // 各个区今日施工数
+    }
+
+    private void batchInitData(String startTime){
+        List<String> times = batchInitDateList(startTime);
+        for (String time: times) {
+            System.out.println("time=" + time);
+            bigscreenAutoQueryYesterdayData(time);
+        }
     }
 
+    public List batchInitDateList(String startTime){
+        Date today = new Date();
+        List list = new ArrayList();
+        list.add(startTime);
+        while (!startTime.equals(new SimpleDateFormat("yyyy-MM-dd").format(today))){
+            list.add(getNextDay(startTime));
+            startTime = getNextDay(startTime);
+        }
+        return list;
+    }
+    public String getNextDay(String date){
+        Calendar calendar = Calendar.getInstance();
+        try {
+            calendar.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(date));
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        // 将日期加一天
+        calendar.add(Calendar.DAY_OF_MONTH, 1);
+        // 获取后一天的日期
+        Date nextDay = calendar.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(nextDay);
+    }
 }