From 6191827dac5d8f1338ee43afeb54e87fc3f7afe0 Mon Sep 17 00:00:00 2001
From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com>
Date: Thu, 20 Jul 2023 15:45:09 +0800
Subject: [PATCH] =?UTF-8?q?2023-07-20=2015:38:46=20=E4=BC=98=E5=8C=96?=
 =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=AD=96=E7=95=A5=E6=89=A7=E8=A1=8C=E4=B8=8B?=
 =?UTF-8?q?=E5=8F=91=E8=AE=BE=E5=A4=87=E8=B0=83=E6=8E=A7=E9=80=BB=E8=BE=91?=
 =?UTF-8?q?!=202023-07-20=2015:42:07=20=E5=AE=8C=E6=88=90=E8=83=BD?=
 =?UTF-8?q?=E8=80=97=E5=AF=B9=E6=AF=94=E7=AD=96=E7=95=A5=E6=89=A7=E8=A1=8C?=
 =?UTF-8?q?=E5=89=8D=E3=80=81=E5=90=8E=E5=AE=A4=E5=86=85=E6=B8=A9=E5=BA=A6?=
 =?UTF-8?q?=E6=9B=B2=E7=BA=BF=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=EF=BC=81?=
 =?UTF-8?q?=202023-07-20=2015:45:02=20=20=E4=BC=98=E5=8C=96=E5=AE=8C?=
 =?UTF-8?q?=E5=96=84=E6=B8=A9=E5=BA=A6=E6=9B=B2=E7=BA=BF=E6=9F=A5=E8=AF=A2?=
 =?UTF-8?q?=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AD=98?=
 =?UTF-8?q?=E5=82=A8=E4=BE=9D=E6=97=A7=E4=B8=BA1min=E5=85=A5=E5=BA=931?=
 =?UTF-8?q?=E6=9D=A1=E6=95=B0=E6=8D=AE=EF=BC=8C=E8=80=8C=E5=9C=A8=E5=89=8D?=
 =?UTF-8?q?=E7=AB=AF=E9=A1=B5=E9=9D=A2=E4=BB=A5=E9=97=B4=E9=9A=9415mins?=
 =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F=E6=98=BE=E7=A4=BA=E6=B8=A9=E5=BA=A6?=
 =?UTF-8?q?=E6=9B=B2=E7=BA=BF=EF=BC=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/psdc/entity/PsdcStrategyLog.java |  5 +-
 .../com/psdc/mapper/PsdcDeviceMapper.java     |  4 +
 .../psdc/mapper/PsdcElectricHtdataMapper.java |  4 +
 .../psdc/mapper/PsdcStrategyLogMapper.java    |  3 +
 .../mapper/PsdcThermometerHtdataMapper.java   |  4 +
 .../java/com/psdc/mqtt/MyMQTTCallback.java    |  2 +-
 .../psdc/mqtt/savedata/DataAndPowerSave.java  | 12 ++-
 .../service/impl/PsdcStrategyLogService.java  | 67 +++++++++++--
 .../PsdcThermometerHtdataServiceImpl.java     | 97 +++++++++++++------
 .../mapper/business/PsdcDeviceMapper.xml      | 15 +++
 .../business/PsdcElectricHtdataMapper.xml     | 16 +++
 .../mapper/business/PsdcStrategyLogMapper.xml |  8 ++
 .../business/PsdcThermometerHtdataMapper.xml  | 18 +++-
 13 files changed, 210 insertions(+), 45 deletions(-)

diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcStrategyLog.java b/psdc-business/src/main/java/com/psdc/entity/PsdcStrategyLog.java
index 8486ef8..342dcca 100644
--- a/psdc-business/src/main/java/com/psdc/entity/PsdcStrategyLog.java
+++ b/psdc-business/src/main/java/com/psdc/entity/PsdcStrategyLog.java
@@ -6,8 +6,10 @@ import lombok.NoArgsConstructor;
 import org.springframework.stereotype.Component;
 
 import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
 
- /**
+/**
  * @author : stone
  * @date : 2023-6-11
  */
@@ -45,6 +47,7 @@ public class PsdcStrategyLog implements Serializable,Cloneable{
      private String oneUseEnergy; // 单位时长用电
      private Double sceneUseEnergy; // 总用电量
      private String runSceneName;  // 正在执行步骤名称
+     private Map tempInAry; // 室内温度变化曲线
 
      public PsdcStrategyLog(Long strategyCode, String startTime, String allSceneCodes,Integer runtimeStatus, Double inFrontAvgtemp, Double outFrontAvgtemp) {
          this.strategyCode = strategyCode;
diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java
index 9ef115c..79ab043 100644
--- a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java
+++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java
@@ -44,6 +44,10 @@ public interface PsdcDeviceMapper{
     Integer upDevStatus(@Param(value = "devStatus") Integer devStatus,
                         @Param(value = "devId") Integer devId);
 
+    Integer selDevCounts(@Param(value = "userId") Long userId,
+                         @Param(value = "deviceModel") String deviceModel,
+                         @Param(value = "deviceAddress") String deviceAddress);
+
 
     /**
      * 分页查询指定行数据
diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java
index 39af0d6..01fc8fb 100644
--- a/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java
+++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java
@@ -35,6 +35,10 @@ public interface PsdcElectricHtdataMapper{
                              @Param(value = "beginTime") String begin_time,
                              @Param(value = "endTime") String end_time);
 
+    Integer selHtCount(@Param(value = "deviceId") Integer deviceId,
+                       @Param(value = "beginTime") String begin_time,
+                       @Param(value = "endTime") String end_time);
+
 
     /** 
      * 分页查询指定行数据
diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyLogMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyLogMapper.java
index 269afc3..4d9e34d 100644
--- a/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyLogMapper.java
+++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyLogMapper.java
@@ -33,6 +33,9 @@ public interface PsdcStrategyLogMapper {
     PsdcStrategyLog selMyRunStrategy(@Param("userId") Long userId,
                                      @Param("code") Integer status);
 
+    List<PsdcStrategyLog> selTodayNewLog(@Param("userId") Long userId,
+                                         @Param("code") Integer status);
+
     /**
      * 新增数据
      *
diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java
index 93f829f..15edc2d 100644
--- a/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java
+++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java
@@ -42,6 +42,10 @@ public interface PsdcThermometerHtdataMapper{
                                                      @Param(value = "beginTime") String begin_time,
                                                      @Param(value = "endTime") String end_time);
 
+    Integer selHtCount(@Param(value = "deviceId") Integer deviceId,
+                       @Param(value = "beginTime") String begin_time,
+                       @Param(value = "endTime") String end_time);
+
 
     /** 
      * 统计总行数
diff --git a/psdc-business/src/main/java/com/psdc/mqtt/MyMQTTCallback.java b/psdc-business/src/main/java/com/psdc/mqtt/MyMQTTCallback.java
index 8523751..b3548f1 100644
--- a/psdc-business/src/main/java/com/psdc/mqtt/MyMQTTCallback.java
+++ b/psdc-business/src/main/java/com/psdc/mqtt/MyMQTTCallback.java
@@ -83,7 +83,7 @@ public class MyMQTTCallback implements MqttCallback {
                 log.info("实时数据,开始入库!");
                 // 更新实时数据,历史数据
                 dataAndPowerSaveBean.saveDevRtData(jsonObject);
-            } else if ("result".equals(str)) {
+            } else if ("resulta".equals(str)) {
                 log.info("控制结果数据,开始入库!");
                 controlResultSave.saveDevRtData(jsonObject);
             }
diff --git a/psdc-business/src/main/java/com/psdc/mqtt/savedata/DataAndPowerSave.java b/psdc-business/src/main/java/com/psdc/mqtt/savedata/DataAndPowerSave.java
index 53b97fa..0894e4d 100644
--- a/psdc-business/src/main/java/com/psdc/mqtt/savedata/DataAndPowerSave.java
+++ b/psdc-business/src/main/java/com/psdc/mqtt/savedata/DataAndPowerSave.java
@@ -64,6 +64,8 @@ public class DataAndPowerSave {
         String time1 = timestamp.split("T")[1];
         int hour = Integer.parseInt(time1.substring(0, 8).split(":")[0]);
         int min = Integer.parseInt(time1.substring(0, 8).split(":")[1]);
+        String begin = date1 + " " + time1.substring(0,5) + ":00";
+        String end = date1 + " " + time1.substring(0,5) + ":59";
         String upDateTime = date1 + " " + time1.substring(0, 8);
 
         // 根据设备id获取数据,查看设备库中是否有该设备,若没有该设备,则不对该设备的数据进行实时数据库入库操作
@@ -113,7 +115,10 @@ public class DataAndPowerSave {
                 peht.setTotp(P);
                 peht.setTotwh(TotWh);
                 peht.setUseDeiffen(useEnergy);
-                electricHtDataMapper.insert(peht);
+                int count5 = electricHtDataMapper.selHtCount(deviceId, begin, end);
+                if (count5 < 1){
+                    electricHtDataMapper.insert(peht);
+                }
 
                 // 根据设备id查询设备功率表中该设备的条数
                 int count3 = devicePowerHtData96Mapper.todayPowerCount(deviceId, samDate);
@@ -151,7 +156,10 @@ public class DataAndPowerSave {
                 ptht.setThermometerValue(NowTemp);
                 ptht.setThermometerValueIn(InTemp);
                 ptht.setThermometerValueOut(OutTemp);
-                thermometerHtDataMapper.insert(ptht);
+                int count6 = thermometerHtDataMapper.selHtCount(deviceId, begin, end);
+                if (count6 < 1){
+                    thermometerHtDataMapper.insert(ptht);
+                }
             }
 
             deviceMapper.upDevStatus(devStatus(devStatus), deviceId);
diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcStrategyLogService.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcStrategyLogService.java
index ea0dfe5..04ad251 100644
--- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcStrategyLogService.java
+++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcStrategyLogService.java
@@ -1,13 +1,9 @@
 package com.psdc.service.impl;
 
-import com.psdc.entity.PsdcScene;
-import com.psdc.entity.PsdcStrategy;
-import com.psdc.entity.PsdcStrategyLog;
+import com.psdc.entity.*;
+import com.psdc.entity.res.PsdcThermometerDataRes;
 import com.psdc.entity.vo.SceneVo;
-import com.psdc.mapper.PsdcElectricHtdataMapper;
-import com.psdc.mapper.PsdcSceneMapper;
-import com.psdc.mapper.PsdcStrategyLogMapper;
-import com.psdc.mapper.PsdcStrategyMapper;
+import com.psdc.mapper.*;
 import com.psdc.service.IPsdcStrategyLogService;
 import com.psdc.utils.SecurityUtils;
 import org.springframework.stereotype.Service;
@@ -16,7 +12,7 @@ import javax.annotation.Resource;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Author:戴仕崑
@@ -37,6 +33,12 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
     PsdcSceneMapper sceneMapper;
     @Resource
     PsdcElectricHtdataMapper electricHtDataMapper;
+    @Resource
+    PsdcThermometerHtdataMapper thermometerHtDataMapper;
+    @Resource
+    PsdcThermometerRtdataMapper thermometerRtDataMapper;
+    @Resource
+    PsdcDeviceMapper deviceMapper;
 
     DecimalFormat df = new DecimalFormat("#.00");
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -65,8 +67,6 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
                     Integer deviceId = sv.getDeviceId();
                     Double energy = electricHtDataMapper.selTodayUseEnergy(deviceId, psl.getStartTime(), psl.getEndTime());
                     strategyUseEnergy = strategyUseEnergy + energy;
-//                    System.out.println("\n策略名称: " + psl.getStrategyName() + ",步骤名称: " + sv.getSceneName()
-//                                + ",设备名称: " + sv.getDeviceName() + ",当前用能: " + energy + ",目前累计用能: " + strategyUseEnergy + "。\n");
 
                 }
 
@@ -91,10 +91,57 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
 
                 psl.setOneUseEnergy(s);
             }
+
+            Date date ;
+            try {
+                date = sdf.parse(psl.getStartTime());
+            } catch (ParseException e) {
+                e.printStackTrace();
+                date = new Date();
+            }
+            long twoHour = date.getTime() - 7200000;
+            date.setTime(twoHour);
+            String tb = sdf.format(date);
+            long tomorrow = twoHour + 86400000;
+            date.setTime(tomorrow);
+            String te = sdf.format(date);
+            System.out.println("策略名称: " + psl.getStrategyName() + ",开始=" + tb + ",结束=" + te + "。\n");
+            Integer countIn = deviceMapper.selDevCounts(userId, "温度传感器", "室内");
+            List<Double> listTempIn = new ArrayList(); // 今天室内历史温度集合
+            List<String> timesIn = new ArrayList(); // 今天室内历史温度时间轴
+            Map<String, Object> map = new HashMap<>();
+            List<PsdcThermometerHtdata> tempInList = thermometerHtDataMapper.selTodayThermometer2("室内", tb, te);
+            getaDouble(countIn, listTempIn, timesIn, tempInList);
+            map.put("listTempIn", listTempIn);
+            map.put("timesIn", timesIn);
+            psl.setTempInAry(map);
+
         }
         return logList;
     }
 
+    private void getaDouble(int count, List<Double> listTemp, List<String> times, List<PsdcThermometerHtdata> tempList)  {
+        if (tempList.size() == 0) {
+            count = 1;
+        }
+        try {
+            long time1 = 0;
+            for (int i = 0; i < tempList.size(); i++) {
+                PsdcThermometerHtdata scr1 = tempList.get(i);
+                long time2 = sdf.parse(scr1.getUpdateTime()).getTime();
+                long time3 = time2 - time1;
+                if(time3 >= 900000){
+                    Double evIn = scr1.getThermometerValue() / count;
+                    listTemp.add(Double.parseDouble(df.format(evIn)));
+                    times.add(scr1.getUpdateTime().split(" ")[1].substring(0,5));
+                    time1 = sdf.parse(scr1.getUpdateTime()).getTime();
+                }
+            }
+        } catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
     @Override
     public PsdcStrategyLog selMyNewLog(Long code) {
         return strategyLogMapper.selMyNewLog(SecurityUtils.getUserId(), code);
diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java
index 1eb49fa..180aac1 100644
--- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java
+++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java
@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.text.DecimalFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -41,6 +42,7 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
     SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH");
+    SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
     DecimalFormat df = new DecimalFormat("#.00");
 
     @Override
@@ -67,19 +69,30 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS
 
                 // 循环遍历今天历史数据对象集合
                 List<PsdcThermometerHtdata> htdata = psdcThermometerHtdataMapper.selTodayThermometer(d, tb, te);
-                for (PsdcThermometerHtdata h : htdata) {
-                    if (null != h.getThermometerValue()) {
-                        listTemp.add(h.getThermometerValue());
-                    }
-                    if (null != h.getThermometerValueIn()) {
-                        listIn.add(h.getThermometerValueIn());
-                    }
-                    if (null != h.getThermometerValueOut()) {
-                        listOut.add(h.getThermometerValueOut());
+                try {
+                    long time1 = 0;
+                    for (int i = 0; i < htdata.size(); i++) {
+                        PsdcThermometerHtdata h = htdata.get(i);
+                        long time2 = sdf4.parse(h.getUpdateTime()).getTime();
+                        long time3 = time2 - time1;
+                        if(time3 >= 900000){
+                            if (null != h.getThermometerValue()) {
+                                listTemp.add(h.getThermometerValue());
+                            }
+                            if (null != h.getThermometerValueIn()) {
+                                listIn.add(h.getThermometerValueIn());
+                            }
+                            if (null != h.getThermometerValueOut()) {
+                                listOut.add(h.getThermometerValueOut());
+                            }
+
+                            String t = h.getUpdateTime().split(" ")[1].substring(0, 5);
+                            times.add(t);
+                            time1 = sdf4.parse(h.getUpdateTime()).getTime();
+                        }
                     }
-
-                    String t = h.getUpdateTime().split(" ")[1].substring(0, 5);
-                    times.add(t);
+                } catch (Exception e){
+                    e.printStackTrace();
                 }
 
                 Double useEnergy = psdcElectricHtdataMapper.selTodayUseEnergy(d, tb, te);
@@ -167,17 +180,29 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS
         return ary;
     }
 
-    private Double getaDouble(Double houseTemp, int count, List<Double> listTemp, List<String> times, List<PsdcThermometerHtdata> tempList) {
+    private Double getaDouble(Double houseTemp, int count, List<Double> listTemp, List<String> times, List<PsdcThermometerHtdata> tempList)  {
         if (tempList.size() == 0) {
             count = 1;
         }
-        for (PsdcThermometerHtdata scr1 : tempList) {
-            Double evIn = scr1.getThermometerValue() / count;
-            listTemp.add(Double.parseDouble(df.format(evIn)));
-            times.add(scr1.getUpdateTime().split(" ")[1].substring(0,5));
+        try {
+            long time1 = 0;
+            for (int i = 0; i < tempList.size(); i++) {
+                PsdcThermometerHtdata scr1 = tempList.get(i);
+                long time2 = sdf4.parse(scr1.getUpdateTime()).getTime();
+                long time3 = time2 - time1;
+                if(time3 >= 900000){
+                    Double evIn = scr1.getThermometerValue() / count;
+                    listTemp.add(Double.parseDouble(df.format(evIn)));
+                    times.add(scr1.getUpdateTime().split(" ")[1].substring(0,5));
+                    time1 = sdf4.parse(scr1.getUpdateTime()).getTime();
+                }
+            }
+            houseTemp = houseTemp / count;
+            return houseTemp;
+        } catch (Exception e){
+            e.printStackTrace();
+            return 0.0;
         }
-        houseTemp = houseTemp / count;
-        return houseTemp;
     }
 
     /**
@@ -196,18 +221,30 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS
         List<String> times = new ArrayList(); // 时间轴
         // 循环遍历今天历史数据对象集合
         List<PsdcThermometerHtdata> htdata = psdcThermometerHtdataMapper.selTodayThermometer(deviceId, tb, te);
-        for (PsdcThermometerHtdata h : htdata) {
-            if (null != h.getThermometerValueIn()) {
-                listIn.add(h.getThermometerValueIn());
-            }
-            if (null != h.getThermometerValueOut()) {
-                listOut.add(h.getThermometerValueOut());
-            }
-            if (null != h.getThermometerValue()) {
-                listTemps.add(h.getThermometerValue());
+        try {
+            long time1 = 0;
+            for (int i = 0; i < htdata.size(); i++) {
+                PsdcThermometerHtdata h = htdata.get(i);
+                long time2 = sdf4.parse(h.getUpdateTime()).getTime();
+                long time3 = time2 - time1;
+                if(time3 >= 900000){
+                    if (null != h.getThermometerValue()) {
+                        listTemps.add(h.getThermometerValue());
+                    }
+                    if (null != h.getThermometerValueIn()) {
+                        listIn.add(h.getThermometerValueIn());
+                    }
+                    if (null != h.getThermometerValueOut()) {
+                        listOut.add(h.getThermometerValueOut());
+                    }
+
+                    String t = h.getUpdateTime().split(" ")[1].substring(0, 5);
+                    times.add(t);
+                    time1 = sdf4.parse(h.getUpdateTime()).getTime();
+                }
             }
-            String t = h.getUpdateTime().split(" ")[1].substring(0, 5);
-            times.add(t);
+        } catch (Exception e){
+            e.printStackTrace();
         }
         AjaxResult ajax = AjaxResult.success().put("tempIn", listIn).put("tempOut", listOut).put("temps", listTemps).put("times", times);
         return ajax;
diff --git a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml
index 5d6e5e1..23ae59e 100644
--- a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml
+++ b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml
@@ -358,6 +358,21 @@
         Update psdc_device Set device_status = #{devStatus} Where device_id = ${devId}
     </update>
 
+    <select id="selDevCounts" resultType="java.lang.Integer">
+        Select Count(1) From psdc_device
+        <where>
+            <if test="userId != null and userId != ''">
+                And user_id = ${userId}
+            </if>
+            <if test="deviceModel != null and deviceModel != ''">
+                And device_model = #{deviceModel}
+            </if>
+            <if test="deviceAddress != null and deviceAddress != ''">
+                and device_address Like concat('%', #{deviceAddress}, '%')
+            </if>
+        </where>
+    </select>
+
     <!--    根据设备id查询设备名称-->
     <select id="queryDeviceNameByDeviceId" resultType="string">
         select device_name from psdc_device where device_id = #{deviceId}
diff --git a/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml
index 0211c0f..691e4c7 100644
--- a/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml
+++ b/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml
@@ -103,6 +103,22 @@
     </select>
 
 
+    <select id="selHtCount" resultType="java.lang.Integer">
+        Select Count(1) From psdc_electric_htdata
+        <where>
+            <if test="deviceId != null and deviceId != ''">
+                device_id = #{deviceId}
+            </if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                And date_format(update_time,'%Y-%m-%d %H:%i:%S') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%S')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                And date_format(update_time,'%Y-%m-%d %H:%i:%S') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%S')
+            </if>
+        </where>
+    </select>
+
+
     <!--分页查询指定行数据-->
     <select id="queryAllByLimit" resultMap="PsdcElectricHtdataMap">
         select
diff --git a/psdc-business/src/main/resources/mapper/business/PsdcStrategyLogMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcStrategyLogMapper.xml
index ed3d244..ca88568 100644
--- a/psdc-business/src/main/resources/mapper/business/PsdcStrategyLogMapper.xml
+++ b/psdc-business/src/main/resources/mapper/business/PsdcStrategyLogMapper.xml
@@ -56,6 +56,14 @@
         Order By start_time Desc LIMIT 0,1
     </select>
 
+    <select id="selTodayNewLog" resultMap="PsdcStrategyLogMap">
+        Select psl.strategy_code, strategy_name, MAX(start_time) As start_time From psdc_strategy_log psl
+        Left Join psdc_strategy ps On ps.strategy_code = psl.strategy_code
+        Where psl.runtime_status = #{code} And user_id = ${userId}
+        GROUP BY strategy_code
+        ORDER BY start_time
+    </select>
+
     <!-- 更新数据 -->
     <update id="updateRunRes">
         Update psdc_strategy_log
diff --git a/psdc-business/src/main/resources/mapper/business/PsdcThermometerHtdataMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcThermometerHtdataMapper.xml
index d12f538..97d9a8f 100644
--- a/psdc-business/src/main/resources/mapper/business/PsdcThermometerHtdataMapper.xml
+++ b/psdc-business/src/main/resources/mapper/business/PsdcThermometerHtdataMapper.xml
@@ -51,11 +51,27 @@
                 And date_format(pth.update_time,'%Y-%m-%d %H:%i:%S') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%S')
             </if>
         </where>
-        GROUP BY pth.update_time
+        GROUP BY date_format(pth.update_time,'%Y-%m-%d %H:%i')
         ORDER BY pth.update_time
     </select>
 
 
+    <select id="selHtCount" resultType="java.lang.Integer">
+        Select Count(1) From psdc_thermometer_htdata pth
+        <where>
+            <if test="deviceId != null and deviceId != ''">
+                And device_id = #{deviceId}
+            </if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                And date_format(pth.update_time,'%Y-%m-%d %H:%i:%S') &gt;= date_format(#{beginTime},'%Y-%m-%d %H:%i:%S')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                And date_format(pth.update_time,'%Y-%m-%d %H:%i:%S') &lt;= date_format(#{endTime},'%Y-%m-%d %H:%i:%S')
+            </if>
+        </where>
+    </select>
+
+
     <!--分页查询指定行数据-->
     <select id="queryAllByLimit" resultMap="PsdcThermometerHtdataMap">
         Select