Эх сурвалжийг харах

perf:优化获取近三天报警情况接口

黄渊昊 2 сар өмнө
parent
commit
d3e43c393c

+ 3 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/mapper/MonitorNoticeMapper.java

@@ -26,8 +26,8 @@ import java.util.Set;
  * @date  2024/11/25 10:58
  **/
 public interface MonitorNoticeMapper extends BaseMapper<MonitorNotice> {
-    Integer getDayBeforeYesterday(String startTime, String endTime,String orgId);
-    Integer getYesterday(String startTime, String endTime,String orgId);
-    Integer getToDay(String startTime, String endTime,String orgId);
+    Integer getDayBeforeYesterday(String day, String startTime, String endTime,String orgId);
+    Integer getYesterday(String day, String startTime, String endTime,String orgId);
+    Integer getToDay(String day, String startTime, String endTime,String orgId);
 
 }

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/mapper/mapping/MonitorNoticeMapper.xml

@@ -4,7 +4,7 @@
     <select id="getDayBeforeYesterday" resultType="Integer">
         SELECT COUNT(*)
         FROM sensor_alarm
-        WHERE DATEDIFF(CREATE_TIME, Now()) = -2
+        WHERE CREATE_TIME like #{day}
           AND (
             DATE_FORMAT(CREATE_TIME, '%H:%i:%S') between #{startTime} and #{endTime}
             )

+ 18 - 5
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/service/impl/MonitorNoticeServiceImpl.java

@@ -33,10 +33,14 @@ import vip.xiaonuo.coldchain.modular.monitortargetregion.entity.MonitorTargetReg
 import vip.xiaonuo.coldchain.modular.monitortargetregion.service.MonitorTargetRegionService;
 
 import java.text.SimpleDateFormat;
+import java.time.LocalTime;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
+import static java.time.LocalTime.now;
+
 /**
  * 监控通知Service接口实现类
  *
@@ -57,8 +61,11 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
 
     private static int STP = 3;
 
+    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+
     @Override
     public CountWithTime today(String orgId) {
+        String day = dateFormat.format(new Date());
         List<String> timePeriodList = new ArrayList<>();
         List<Integer> countList = new ArrayList<>();
         int timeFlag = 0;
@@ -67,7 +74,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
             timeFlag = timeFlag + STP - 1;
             String endTimeStr = getEndTimeStr(timeFlag);
             timePeriodList.add(startTimeStr + "-" + endTimeStr);
-            Integer toDay = monitorNoticeMapper.getToDay(startTimeStr, endTimeStr, orgId);
+            Integer toDay = monitorNoticeMapper.getToDay(day, startTimeStr, endTimeStr, orgId);
             countList.add(toDay);
         }
         CountWithTime countWithTime = new CountWithTime();
@@ -79,7 +86,10 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
 
     @Override
     public CountWithTime yesterday(String orgId) {
-        List<NoticeByDate> yesterdayNoticeList = new ArrayList<>();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.add(Calendar.DAY_OF_MONTH,-1);
+        String day = dateFormat.format(calendar.getTime());
         List<String> timePeriodList = new ArrayList<>();
         List<Integer> countList = new ArrayList<>();
         int timeFlag = 0;
@@ -88,7 +98,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
             timeFlag = timeFlag + STP;
             String endTimeStr = getEndTimeStr(timeFlag);
             timePeriodList.add(startTimeStr + "-" + endTimeStr);
-            Integer yesterday = monitorNoticeMapper.getYesterday(startTimeStr, endTimeStr, orgId);
+            Integer yesterday = monitorNoticeMapper.getYesterday(day, startTimeStr, endTimeStr, orgId);
             countList.add(yesterday);
         }
         CountWithTime countWithTime = new CountWithTime();
@@ -100,7 +110,10 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
 
     @Override
     public CountWithTime dayBeforeYesterday(String orgId) {
-        List<NoticeByDate> yesterdayNoticeList = new ArrayList<>();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.add(Calendar.DAY_OF_MONTH,-2);
+        String day = dateFormat.format(calendar.getTime());
         List<String> timePeriodList = new ArrayList<>();
         List<Integer> countList = new ArrayList<>();
         int timeFlag = 0;
@@ -109,7 +122,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
             timeFlag = timeFlag + STP;
             String endTimeStr = getEndTimeStr(timeFlag);
             timePeriodList.add(startTimeStr + "-" + endTimeStr);
-            Integer dayBeforeYesterday = monitorNoticeMapper.getDayBeforeYesterday(startTimeStr, endTimeStr, orgId);
+            Integer dayBeforeYesterday = monitorNoticeMapper.getDayBeforeYesterday(day, startTimeStr, endTimeStr, orgId);
             countList.add(dayBeforeYesterday);
         }
         CountWithTime countWithTime = new CountWithTime();