2023-08-27 09:47:36 优化完善能耗统计设备用能数据入库功能!

master
魔神煜修罗皇 2 years ago
parent 2c97d2043c
commit 75d8e2d255
  1. 4
      psdc-admin/src/main/resources/application-prod.yml
  2. 2
      psdc-admin/src/main/resources/application.yml
  3. 2
      psdc-business/src/main/java/com/psdc/mqtt/savedata/DataAndPowerSave.java
  4. 50
      psdc-business/src/main/java/com/psdc/service/impl/PsdcStrategyLogService.java

@ -54,9 +54,9 @@ spring:
# 数据库驱动 # 数据库驱动
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3308/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=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 username: root
password: root password: 123456
messages: messages:
# 国际化资源文件路径 # 国际化资源文件路径
basename: i18n/messages basename: i18n/messages

@ -1,3 +1,3 @@
spring: spring:
profiles: profiles:
active: prod active: dev

@ -177,7 +177,7 @@ public class DataAndPowerSave {
PsdcStrategyLog strategyLog = psdcStrategyLogMapper.selMyRunLog(2); PsdcStrategyLog strategyLog = psdcStrategyLogMapper.selMyRunLog(2);
if (null != strategyLog) { if (null != strategyLog) {
Boolean b2 = false; boolean b2 = false;
String[] runCodes = strategyLog.getRunSceneCodes().split(","); String[] runCodes = strategyLog.getRunSceneCodes().split(",");
String[] resList; String[] resList;
if (null != strategyLog.getStrategyRunRes()) { if (null != strategyLog.getStrategyRunRes()) {

@ -48,15 +48,17 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
public List<PsdcStrategyLog> selMyStrategyLog() { public List<PsdcStrategyLog> selMyStrategyLog() {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<PsdcStrategyLog> logList = strategyLogMapper.selMyStrategyLog(userId); List<PsdcStrategyLog> logList = strategyLogMapper.selMyStrategyLog(userId);
for (PsdcStrategyLog psl : logList){ // 策略层 // 策略层
for (PsdcStrategyLog psl : logList) {
Long code = psl.getStrategyCode(); Long code = psl.getStrategyCode();
PsdcStrategy res ; PsdcStrategy res;
Double strategyUseEnergy = 0.0; Double strategyUseEnergy = 0.0;
List<PsdcStrategy> strategyList = strategyMapper.queryByUser(userId, code); List<PsdcStrategy> strategyList = strategyMapper.queryByUser(userId, code);
if (null != strategyList && strategyList.size() > 0){ if (null != strategyList && strategyList.size() > 0) {
res = strategyList.get(0); res = strategyList.get(0);
String[] split = res.getScenes().split(","); String[] split = res.getScenes().split(",");
for (String s : split){ // 步骤层【1个步骤1个设备】 // 步骤层【1个步骤1个设备】
for (String s : split) {
List<SceneVo> sceneVos = sceneMapper.findSceneByUserAndSceneCode(userId, Long.parseLong(s), null); List<SceneVo> sceneVos = sceneMapper.findSceneByUserAndSceneCode(userId, Long.parseLong(s), null);
// for (SceneVo sv : sceneVos) { // 设备层 // for (SceneVo sv : sceneVos) { // 设备层
// Integer deviceId = sv.getDeviceId(); // Integer deviceId = sv.getDeviceId();
@ -72,27 +74,27 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
Double jssc = jssc(sdf, psl.getStartTime(), psl.getEndTime()); Double jssc = jssc(sdf, psl.getStartTime(), psl.getEndTime());
String runHours = df.format(jssc); String runHours = df.format(jssc);
if (".".equals(runHours.substring(0,1))){ if (".".equals(runHours.substring(0, 1))) {
runHours= "0" + runHours; runHours = "0" + runHours;
} }
// System.out.println("策略执行用时长: " + jssc + "。\n"); // System.out.println("策略执行用时长: " + jssc + "。\n");
psl.setRunHours(runHours); psl.setRunHours(runHours);
psl.setSceneUseEnergy(strategyUseEnergy); psl.setSceneUseEnergy(strategyUseEnergy);
double v = 0.0; double v = 0.0;
if (jssc > 0.0){ if (jssc > 0.0) {
v = strategyUseEnergy / jssc; // 时长空判断处理 // 时长空判断处理
v = strategyUseEnergy / jssc;
} }
// System.out.println("触发 = " + v + "\n");
String s = df.format(v); String s = df.format(v);
if (".".equals(s.substring(0,1))){ if (".".equals(s.substring(0, 1))) {
s= "0" + s; s = "0" + s;
} }
psl.setOneUseEnergy(s); psl.setOneUseEnergy(s);
} }
Date date ; Date date;
try { try {
date = sdf.parse(psl.getStartTime()); date = sdf.parse(psl.getStartTime());
} catch (ParseException e) { } catch (ParseException e) {
@ -120,7 +122,7 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
return logList; return logList;
} }
private void getaDouble(int count, List<Double> listTemp, List<String> times, List<PsdcThermometerHtdata> tempList) { private void getaDouble(int count, List<Double> listTemp, List<String> times, List<PsdcThermometerHtdata> tempList) {
if (tempList.size() == 0) { if (tempList.size() == 0) {
count = 1; count = 1;
} }
@ -130,14 +132,14 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
PsdcThermometerHtdata scr1 = tempList.get(i); PsdcThermometerHtdata scr1 = tempList.get(i);
long time2 = sdf.parse(scr1.getUpdateTime()).getTime(); long time2 = sdf.parse(scr1.getUpdateTime()).getTime();
long time3 = time2 - time1; long time3 = time2 - time1;
if(time3 >= 900000){ if (time3 >= 900000) {
Double evIn = scr1.getThermometerValue() / count; Double evIn = scr1.getThermometerValue() / count;
listTemp.add(Double.parseDouble(df.format(evIn))); listTemp.add(Double.parseDouble(df.format(evIn)));
times.add(scr1.getUpdateTime().split(" ")[1].substring(0,5)); times.add(scr1.getUpdateTime().split(" ")[1].substring(0, 5));
time1 = sdf.parse(scr1.getUpdateTime()).getTime(); time1 = sdf.parse(scr1.getUpdateTime()).getTime();
} }
} }
} catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -156,7 +158,7 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
@Override @Override
public PsdcStrategyLog selMyRunStrategy() { public PsdcStrategyLog selMyRunStrategy() {
PsdcStrategyLog strategyLog = strategyLogMapper.selMyRunStrategy(SecurityUtils.getUserId(), 2); PsdcStrategyLog strategyLog = strategyLogMapper.selMyRunStrategy(SecurityUtils.getUserId(), 2);
if (null != strategyLog){ if (null != strategyLog) {
String[] split = strategyLog.getRunSceneCodes().split(","); String[] split = strategyLog.getRunSceneCodes().split(",");
String code = split[split.length - 1]; String code = split[split.length - 1];
List<PsdcScene> scenes = sceneMapper.queryBySceneCode(Integer.parseInt(code)); List<PsdcScene> scenes = sceneMapper.queryBySceneCode(Integer.parseInt(code));
@ -168,11 +170,17 @@ public class PsdcStrategyLogService implements IPsdcStrategyLogService {
} }
} }
public Double jssc(SimpleDateFormat dfs, String start, String end){ public Double jssc(SimpleDateFormat dfs, String start, String end) {
try { try {
Double d1 = Double.valueOf(dfs.parse(start).getTime()); double d1 = 0.0;
Double d2 = Double.valueOf(dfs.parse(end).getTime()); if (null != start && !"".equals(start)) {
Double between = (d2 - d1)/1000/3600; d1 = (double) dfs.parse(start).getTime();
}
double d2 = 0.0;
if (null != end && !"".equals(end)) {
d2 = (double) dfs.parse(end).getTime();
}
double between = (d2 - d1) / 1000 / 3600;
return between; return between;
} catch (ParseException pe) { } catch (ParseException pe) {
pe.printStackTrace(); pe.printStackTrace();

Loading…
Cancel
Save