From 648b3ae660a9a306d74cda6c7c05a6ef5f4c4250 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期一, 26 九月 2022 18:29:48 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java | 242 ++++++++++++++++-------------------------------
1 files changed, 84 insertions(+), 158 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
index 63fe79f..04b7579 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -22,17 +22,17 @@
import com.sandu.ximon.admin.param.LightControlParam;
import com.sandu.ximon.admin.param.LightPowerSettingParam;
import com.sandu.ximon.admin.param.LightRemarkParam;
+import com.sandu.ximon.admin.redis.DeviceRedisKey;
import com.sandu.ximon.admin.redis.LightKey;
import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
import com.sandu.ximon.admin.vo.ControlLightCommandVO;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
import com.sandu.ximon.dao.bo.LightBo;
import com.sandu.ximon.dao.bo.PoleTaskLightPowerBo;
-import com.sandu.ximon.dao.domain.Light;
-import com.sandu.ximon.dao.domain.LightReportData;
-import com.sandu.ximon.dao.domain.Pole;
-import com.sandu.ximon.dao.domain.PoleBinding;
+import com.sandu.ximon.dao.domain.*;
import com.sandu.ximon.dao.enums.DeviceRespStatusEnums;
import com.sandu.ximon.dao.enums.OrderByEnums;
import com.sandu.ximon.dao.mapper.LightMapper;
@@ -43,9 +43,10 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -62,6 +63,7 @@
private final LightReportDataService lightReportDataService;
private final PoleBindingService bindingService;
private final PoleService poleService;
+ private final RedisUtils redisUtils;
/**
* 褰曞叆褰撳墠璁惧鐮佺殑璺伅鏁版嵁
@@ -306,151 +308,6 @@
return resultList;
}
- /**
- * 鍗曠伅鑺傝兘鐜�
- *
- * @return
- */
- public List controlEnergySaving() {
- //鑾峰彇鍒版鍦ㄦ墽琛岀殑浠诲姟鍒楄〃
- List<LightTaskDto> lightTaskDtos = SpringContextHolder.getBean(LightTaskService.class).listTask();
- LocalDateTime now = LocalDateTime.now();
-
- List<LightTaskDto> list1 = new ArrayList<>();
- List<LightTaskDto> list2 = new ArrayList<>();
- List<LightTaskDto> list3 = new ArrayList<>();
- List<LightTaskDto> list4 = new ArrayList<>();
- List<LightTaskDto> list5 = new ArrayList<>();
- List<LightTaskDto> list6 = new ArrayList<>();
- List<LightTaskDto> list7 = new ArrayList<>();
-
- for (LightTaskDto lightTaskDto : lightTaskDtos) {
- List<Integer> weekList = lightTaskDto.getWeekList();
- for (Integer one : weekList) {
- switch (one) {
- case 1:
- list1.add(lightTaskDto);
- break;
- case 2:
- list2.add(lightTaskDto);
- break;
- case 4:
- list3.add(lightTaskDto);
- break;
- case 8:
- list4.add(lightTaskDto);
- break;
- case 16:
- list5.add(lightTaskDto);
- break;
- case 32:
- list6.add(lightTaskDto);
- break;
- case 64:
- list7.add(lightTaskDto);
- break;
- default:
- }
- }
- }
-
-
- //鑾峰彇褰撳墠鏄熸湡鍑� 1-7
-
- int currentWeekValue = now.getDayOfWeek().getValue();
- Map map;
- List<Map> temp = new ArrayList<>();
- //鑾峰彇鏃ユ湡 绮剧‘鍒板ぉ
- LocalDateTime localDateTime = now.with(LocalTime.MIN);
-
-
- for (int i = 1; i < 8; i++) {
- currentWeekValue--;
- if (currentWeekValue < 1) {
- currentWeekValue = 7;
- }
- map = new LinkedHashMap();
- map.put("time", localDateTime.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- map.put("value", getlist(currentWeekValue));
- temp.add(map);
- }
-
-
- return temp;
- }
-
-
- /**
- * 鍗曠伅鑳借��
- *
- * @return
- */
- public List controlEnergy() {
- //鑾峰彇鍒版鍦ㄦ墽琛岀殑浠诲姟鍒楄〃
- List<LightTaskDto> lightTaskDtos = SpringContextHolder.getBean(LightTaskService.class).listTask();
- LocalDateTime now = LocalDateTime.now();
-
- List<LightTaskDto> list1 = new ArrayList<>();
- List<LightTaskDto> list2 = new ArrayList<>();
- List<LightTaskDto> list3 = new ArrayList<>();
- List<LightTaskDto> list4 = new ArrayList<>();
- List<LightTaskDto> list5 = new ArrayList<>();
- List<LightTaskDto> list6 = new ArrayList<>();
- List<LightTaskDto> list7 = new ArrayList<>();
-
- for (LightTaskDto lightTaskDto : lightTaskDtos) {
- List<Integer> weekList = lightTaskDto.getWeekList();
- System.out.println(weekList + "===========================");
- for (Integer one : weekList) {
- switch (one) {
- case 1:
- list1.add(lightTaskDto);
- break;
- case 2:
- list2.add(lightTaskDto);
- break;
- case 4:
- list3.add(lightTaskDto);
- break;
- case 8:
- list4.add(lightTaskDto);
- break;
- case 16:
- list5.add(lightTaskDto);
- break;
- case 32:
- list6.add(lightTaskDto);
- break;
- case 64:
- list7.add(lightTaskDto);
- break;
- default:
- }
- }
- }
-
- Integer currentWeekValue = now.getDayOfWeek().getValue();
- Map map;
- List<Map> temp = new ArrayList<>();
- //鑾峰彇褰撳墠鏃ユ湡 鏍煎紡涓簓yyy-MM-dd
- LocalDateTime localDateTime = now.with(LocalTime.MIN);
-
-
- for (int i = 1; i < 8; i++) {
- currentWeekValue--;
- if (currentWeekValue < 1) {
- currentWeekValue = 7;
- }
- map = new LinkedHashMap();
- map.put("time", localDateTime.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- map.put("value", getlistEnergy(currentWeekValue));
- temp.add(map);
- }
-
-
- return temp;
- }
-
public BigDecimal getlist(Integer week) {
@@ -636,7 +493,7 @@
*
* @return
*/
- public BigDecimal jisuan(LightTaskDto Task) {
+ public BigDecimal jisuan(LightTaskDto Task, LightTaskPoleRelation bean) {
final BigDecimal[] bigDecimalResult = {new BigDecimal(0.00)};
/**
* 鑺傝兘鐜囪绠楀紑濮�
@@ -758,9 +615,10 @@
* 涓�澶╃殑鑳借��
*
* @param
+ * @param bean
* @return
*/
- public BigDecimal jisuanEnergy(LightTaskDto Task) {
+ public BigDecimal jisuanEnergy(LightTaskDto Task, LightTaskPoleRelation bean) {
//瀛樻斁鑳借��
final BigDecimal[] bigEnergy = {new BigDecimal(0.00)};
@@ -779,9 +637,21 @@
}
/**
- * 鑺傝兘鐜囪绠楀紑濮�
+ * 鑳借�楄绠楀紑濮�
*/
- List<PoleTaskLightPowerBo> poleTaskLightPowerBos = SpringContextHolder.getBean(LightTaskMapper.class).listLightTaskByTaskId(Task.getTaskId());
+// List<PoleTaskLightPowerBo> poleTaskLightPowerBos = SpringContextHolder.getBean(LightTaskMapper.class).listLightTaskByTaskId(Task.getTaskId());
+ List<PoleTaskLightPowerBo> poleTaskLightPowerBos = new ArrayList<>();
+ PoleTaskLightPowerBo poleTaskLightPowerBo = new PoleTaskLightPowerBo();
+ Light one = getOne(Wrappers.lambdaQuery(Light.class).eq(Light::getDeviceCode, bean.getDeviceCode()));
+
+ if (one != null) {
+ if ("0001".equals(bean.getLightAddress())) {
+ poleTaskLightPowerBo.setPower1(one.getPower1());
+ } else {
+ poleTaskLightPowerBo.setPower2(one.getPower2());
+ }
+ }
+ poleTaskLightPowerBos.add(poleTaskLightPowerBo);
ControlLightCommandVO startTime = parseSwitchLightCommand(Task.getOpenOrder());
ControlLightCommandVO endTime = parseSwitchLightCommand(Task.getCloseOrder());
//鑾峰彇鍒板崟鐏换鍔$殑鑺傝兘鐜�
@@ -1009,14 +879,14 @@
/**
* 鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鐮�
*/
- public CommonPage<String> listDeviceCode(int pageNo, int pageSize, String keyword, String deviceCode) {
+ public CommonPage<String> listDeviceCode(int pageNo, int pageSize, String keyword, String deviceCode, String orderBy) {
List<String> list;
if (SecurityUtils.getClientId() != null) {
PageHelper.startPage(pageNo, pageSize);
list = baseMapper.listCode(SecurityUtils.getUserId(), keyword, deviceCode);
} else {
- PageHelper.startPage(pageNo, pageSize);
+ PageHelper.startPage(pageNo, pageSize, orderBy);
list = baseMapper.listCode(null, keyword, deviceCode);
}
@@ -1031,8 +901,64 @@
lights.forEach(light -> {
light.setPower1(lightPowerSettingParam.getPower1());
light.setPower2(lightPowerSettingParam.getPower2());
+ //瀛樺湪闈�0鍔熺巼 鍗充负瀛樺湪璇ョ伅澶�
+ if (lightPowerSettingParam.getPower1() != null || lightPowerSettingParam.getPower1() != 0) {
+ light.setLight1(1);
+ } else if (lightPowerSettingParam.getPower1() == 0) {
+ //鎵嬪姩璁剧疆鐏ご鍔熺巼涓�0 鍗充笉瀛樺湪璇ョ伅澶�
+ light.setLight1(0);
+ } else {
+ light.setLight1(0);
+ }
+ //瀛樺湪闈�0鍔熺巼 鍗充负瀛樺湪璇ョ伅澶�
+ if (lightPowerSettingParam.getPower2() != null || lightPowerSettingParam.getPower2() != 0) {
+ light.setLight2(1);
+ } else if (lightPowerSettingParam.getPower2() == 0) {
+ //鎵嬪姩璁剧疆鐏ご鍔熺巼涓�0 鍗充笉瀛樺湪璇ョ伅澶�
+ light.setLight2(0);
+ } else {
+ light.setLight2(0);
+ }
light.setLightCount(lightPowerSettingParam.getLightCount());
});
return updateBatchById(lights);
}
+
+
+ /**
+ * 鍚慠edis涓瓨鍏ヨ澶囩姸鎬�
+ */
+ public void setCacheData() {
+
+ List<String> collect = list().stream().map(Light::getDeviceCode).collect(Collectors.toList());
+ List<List<String>> split = CollectionUtil.split(collect, 100);
+
+ List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses = null;
+ List<RedisDeviceStatus> statusList = null;
+ for (List<String> splist : split) {
+ deviceStatuses = MainBoardInvokeSyncService.getInstance().batchGetDeviceState(splist);
+ if (deviceStatuses != null) {
+ for (BatchGetDeviceStateResponse.DeviceStatus deviceStatus : deviceStatuses) {
+ RedisDeviceStatus device = new RedisDeviceStatus();
+ device.setDeviceId(deviceStatus.getDeviceName());
+ if ("ONLINE".equals(deviceStatus.getStatus())) {
+ device.setStatus(0);
+ } else if ("OFFLINE".equals(deviceStatus.getStatus())) {
+ device.setStatus(1);
+ } else {
+ device.setStatus(2);
+ }
+ statusList.add(device);
+ }
+
+ }
+ }
+
+ statusList.forEach(status -> {
+ redisUtils.set(DeviceRedisKey.LIGHT_DEVICE + status.getDeviceId(), status);
+ });
+
+ }
+
+
}
--
Gitblit v1.9.3