From abd93e0e29d38daf7ed02614cd742a3c61ba6f9a Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Wed, 26 Jul 2023 10:38:37 +0800 Subject: [PATCH] =?UTF-8?q?2023-07-26=2010:37:06=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=83=BD=E8=80=97=E7=BB=9F=E8=AE=A1=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E7=94=A8=E8=83=BD=E6=95=B0=E6=8D=AE=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 2 +- .../src/main/resources/application-prod.yml | 6 +++--- .../psdc/mapper/PsdcStatisticsDayMapper.java | 5 +++++ .../psdc/mqtt/savedata/DataAndPowerSave.java | 18 +++++++++++++----- .../service/impl/PsdcDeviceServiceImpl.java | 4 ++-- .../impl/PsdcElectricHtdataServiceImpl.java | 9 ++++++--- .../impl/PsdcThermometerHtdataServiceImpl.java | 1 + .../business/PsdcStatisticsDayMapper.xml | 6 ++++++ 8 files changed, 37 insertions(+), 14 deletions(-) diff --git a/psdc-admin/src/main/resources/application-dev.yml b/psdc-admin/src/main/resources/application-dev.yml index 890e2e2..7255316 100644 --- a/psdc-admin/src/main/resources/application-dev.yml +++ b/psdc-admin/src/main/resources/application-dev.yml @@ -138,7 +138,7 @@ mqtt: #QOS等级 0, 1, 2 qos: 1 #客户端id 必须唯一 - clientId: psdcDev12356EVQ + clientId: psdcDev12356HDFS #连接超时,默认30000 timeOut: 10 #心跳间隔时间,默认3000 diff --git a/psdc-admin/src/main/resources/application-prod.yml b/psdc-admin/src/main/resources/application-prod.yml index 206c483..bd76864 100644 --- a/psdc-admin/src/main/resources/application-prod.yml +++ b/psdc-admin/src/main/resources/application-prod.yml @@ -54,7 +54,7 @@ spring: # 数据库驱动 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://127.0.0.1:3306/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true + url: jdbc:mysql://127.0.0.1:3306/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: 123456 messages: @@ -130,7 +130,7 @@ xss: #MQTT配置 mqtt: - #MQTT服务端地址,端口默认为1883,如果有多个,用逗号隔开,如tcp://127.0.0.1:1883,tcp://192.168.60.133:1883 + #MQTT服务端地址,端口默认为1883,如果有多个,用逗号隔开,如tcp://127.0.0.1:1883, tcp://192.168.60.133:1883, tcp://39.105.213.67:1883 url: tcp://127.0.0.1:1883 #用户名 密码 username: 1669792462840@UserName @@ -138,7 +138,7 @@ mqtt: #QOS等级 0, 1, 2 qos: 1 #客户端id 必须唯一 - clientId: psdc@System2 + clientId: psdc@System #连接超时,默认30000 timeOut: 10 #心跳间隔时间,默认3000 diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcStatisticsDayMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcStatisticsDayMapper.java index 24a8595..3e6188b 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcStatisticsDayMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcStatisticsDayMapper.java @@ -54,6 +54,11 @@ public interface PsdcStatisticsDayMapper{ */ int update(PsdcStatisticsDay psdcStatisticsDay); + Integer updateTodayDevEnergy(@Param(value = "valNo") String valNo, + @Param(value = "powerValue") Double powerValue, + @Param(value = "devId") Integer devId, + @Param(value = "samDate") String samDate); + Integer updateDay(@Param(value = "valNo") String valNo, @Param(value = "powerValue") Double powerValue, @Param(value = "devId") Integer devId, 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 0894e4d..52abbf3 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 @@ -44,10 +44,6 @@ public class DataAndPowerSave { PsdcThermometerHtdataMapper thermometerHtDataMapper; @Resource PsdcStatisticsDayMapper statisticsDayMapper; - @Resource - PsdcStatisticsMonthMapper statisticsMonthMapper; - @Resource - PsdcStatisticsYearMapper statisticsYearMapper; public Boolean saveDevRtData(JSONObject jsonObject) { Integer deviceId = jsonObject.getInteger("deviceId"); @@ -87,7 +83,7 @@ public class DataAndPowerSave { String valNo = "val" + countNo; if (deviceStatusVo != null) { - if (null != params.getFloat("P")) { + if (null != params.getFloat("TotWh")) { double P = params.getFloat("P"); double TotWh = params.getFloat("TotWh"); PsdcElectricRtdata pert = new PsdcElectricRtdata(); @@ -120,6 +116,18 @@ public class DataAndPowerSave { electricHtDataMapper.insert(peht); } + Long devCountDay = statisticsDayMapper.count(deviceId, date1); + if (devCountDay < 1){ + PsdcStatisticsDay statisticsDay = new PsdcStatisticsDay(); + statisticsDay.setDayDate(date1); + statisticsDay.setDeviceId(deviceId); + statisticsDay.setDeviceName(deviceStatusVo.getDeviceName()); + statisticsDayMapper.insertDay(statisticsDay); + } + Double hourUse = electricHtDataMapper.selTodayUseEnergy(deviceId, begin, end); + String hourNo = "hour_" + hour; + statisticsDayMapper.updateTodayDevEnergy(hourNo, hourUse, deviceId, date1); + // 根据设备id查询设备功率表中该设备的条数 int count3 = devicePowerHtData96Mapper.todayPowerCount(deviceId, samDate); // 设备有功功率入库 diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java index d3fb266..35b4665 100644 --- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java @@ -470,11 +470,11 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { i = setTemperature(deviceId, sceneCode, data, userName, 1); System.out.println("你好 (2) 世界: " + sceneCode); String sCode = newLog.getRunSceneCodes() + sceneCode + ","; - if (sCode.indexOf("null") >= 0){ + if (sCode.contains("null")){ sCode = sCode.substring(4); } String res = newLog.getStrategyRunRes() + "2"; - if (res.indexOf("null") >= 0){ + if (res.contains("null")){ res = res.substring(4); } diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java index d1a9c6a..16be171 100644 --- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java @@ -150,19 +150,22 @@ public class PsdcElectricHtdataServiceImpl implements IPsdcElectricHtdataService /** * 每日统计定时任务 */ - @Scheduled(cron = "0 10 0 * * ? ") + @Scheduled(cron = "0 0 0 1/1 * ?") // 每天凌晨零点执行一次 @Override public void statisticalTask(){ - //获取昨日用电量总和 + System.out.println("李雷:How are you?Jerry: I am fine and you!\n"); + // 获取昨日用电量总和 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dayDateFormat = new SimpleDateFormat("dd"); SimpleDateFormat yearMonthDateFormat = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat monthDateFormat = new SimpleDateFormat("MM"); + SimpleDateFormat yearDateFormat = new SimpleDateFormat("yyyy"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); Date yesterday = calendar.getTime(); List psdcElectricHtdatas = electricHtdataMapper.statisticalGroupByTime(simpleDateFormat.format(yesterday)); + // 月点位 String monthPoint = "day_" + dayDateFormat.format(yesterday); String yearPoint = "month_" + monthDateFormat.format(yesterday); @@ -187,7 +190,7 @@ public class PsdcElectricHtdataServiceImpl implements IPsdcElectricHtdataService // 每月数据 // 先查询该id今年每月数据 - PsdcStatisticsYear psdcStatisticsYear = psdcStatisticsYearMapper.queryByDeviceIdAndDate(deviceId, yearMonthDateFormat.format(yesterday)); + PsdcStatisticsYear psdcStatisticsYear = psdcStatisticsYearMapper.queryByDeviceIdAndDate(deviceId, yearDateFormat.format(yesterday)); Double aDouble = psdcStatisticsMonthMapper.queryOneLineSum(deviceId, yearMonthDateFormat.format(yesterday)); if (psdcStatisticsYear == null){ // 插入 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 180aac1..9a06474 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 @@ -188,6 +188,7 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS long time1 = 0; for (int i = 0; i < tempList.size(); i++) { PsdcThermometerHtdata scr1 = tempList.get(i); + SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 long time2 = sdf4.parse(scr1.getUpdateTime()).getTime(); long time3 = time2 - time1; if(time3 >= 900000){ diff --git a/psdc-business/src/main/resources/mapper/business/PsdcStatisticsDayMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcStatisticsDayMapper.xml index 75a2f5b..db39eec 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcStatisticsDayMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcStatisticsDayMapper.xml @@ -66,6 +66,12 @@ + + Update psdc_statistics_day Set ${valNo} = #{powerValue} + Where device_id = #{devId} And day_date = #{samDate} + + + Insert into psdc_statistics_day( day_date,