From 6abc588e4d54459ae6ae672826a39e69af5b50b7 Mon Sep 17 00:00:00 2001 From: yu Date: Tue, 29 Oct 2024 09:37:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5-=E9=A3=8E=E6=9C=BA=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../page/controller/HomeController.java | 36 ++++++++ .../page/domian/HomeWindRealTimeVo.java | 35 ++++++++ .../das/modules/page/service/HomeService.java | 11 +++ .../page/service/impl/HomeServiceImpl.java | 82 +++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 das/src/main/java/com/das/modules/page/controller/HomeController.java create mode 100644 das/src/main/java/com/das/modules/page/domian/HomeWindRealTimeVo.java create mode 100644 das/src/main/java/com/das/modules/page/service/HomeService.java create mode 100644 das/src/main/java/com/das/modules/page/service/impl/HomeServiceImpl.java diff --git a/das/src/main/java/com/das/modules/page/controller/HomeController.java b/das/src/main/java/com/das/modules/page/controller/HomeController.java new file mode 100644 index 00000000..f5548baf --- /dev/null +++ b/das/src/main/java/com/das/modules/page/controller/HomeController.java @@ -0,0 +1,36 @@ +package com.das.modules.page.controller; + +import com.das.common.result.R; +import com.das.modules.page.domian.HomeWindRealTimeVo; +import com.das.modules.page.service.HomeService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 首页相关Controller + */ +@Slf4j +@RequestMapping("/api/home") +@RestController +public class HomeController { + + @Autowired + private HomeService homeService; + + /** + *风机实时数据 + */ + @PostMapping("/windRealTimeData") + public R> windRealTimeData() { + return R.success(homeService.queryWindRealTimeData()); + } + + + + +} diff --git a/das/src/main/java/com/das/modules/page/domian/HomeWindRealTimeVo.java b/das/src/main/java/com/das/modules/page/domian/HomeWindRealTimeVo.java new file mode 100644 index 00000000..9ade0fe7 --- /dev/null +++ b/das/src/main/java/com/das/modules/page/domian/HomeWindRealTimeVo.java @@ -0,0 +1,35 @@ +package com.das.modules.page.domian; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.util.Map; + +@Data +public class HomeWindRealTimeVo { + + @JsonSerialize(using = ToStringSerializer.class) + private Long irn; + + private String name; + + @JsonSerialize(using = ToStringSerializer.class) + private Long modelId; + + private String model; + + private String belongLine; + + /** + * 是否为标杆机组 + */ + private Integer standard; + + /** + * 额定容量 + */ + private Double nominalCapacity; + + private Map attributeMap; +} diff --git a/das/src/main/java/com/das/modules/page/service/HomeService.java b/das/src/main/java/com/das/modules/page/service/HomeService.java new file mode 100644 index 00000000..bdd08fab --- /dev/null +++ b/das/src/main/java/com/das/modules/page/service/HomeService.java @@ -0,0 +1,11 @@ +package com.das.modules.page.service; + +import com.das.modules.page.domian.HomeWindRealTimeVo; + +import java.util.List; + +public interface HomeService { + + List queryWindRealTimeData(); + +} diff --git a/das/src/main/java/com/das/modules/page/service/impl/HomeServiceImpl.java b/das/src/main/java/com/das/modules/page/service/impl/HomeServiceImpl.java new file mode 100644 index 00000000..51f737bb --- /dev/null +++ b/das/src/main/java/com/das/modules/page/service/impl/HomeServiceImpl.java @@ -0,0 +1,82 @@ +package com.das.modules.page.service.impl; + + +import com.das.modules.data.domain.SnapshotValueQueryParam; +import com.das.modules.data.service.DataService; +import com.das.modules.equipment.domain.dto.SysEquipmentDto; +import com.das.modules.equipment.domain.vo.SysEquipmentVo; +import com.das.modules.equipment.mapper.SysEquipmentMapper; +import com.das.modules.page.domian.HomeWindRealTimeVo; +import com.das.modules.page.service.HomeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +public class HomeServiceImpl implements HomeService { + + private static final Integer OBJECT_TYPE = 10002; + + @Autowired + SysEquipmentMapper sysEquipmentMapper; + + @Autowired + private DataService dataService; + + + /** + * + * 首页-风机实时数据 + * @return + */ + @Override + public List queryWindRealTimeData() { + SysEquipmentDto sysEquipmentDto = new SysEquipmentDto(); + sysEquipmentDto.setObjectType(OBJECT_TYPE); + //获取所有风机设备 + List sysEquipmentVos = sysEquipmentMapper.querySysEquipmentList(sysEquipmentDto); + //风机返回数据列表 + List homeWindRealTimeVoList = new ArrayList<>(); + List paramList = new ArrayList<>(); + //构建需要查询的物模型属 性 + List attributesList = new ArrayList<>(); + //风速 + attributesList.add("iwindspeed"); + //风机状态 + attributesList.add("iturbineoperationmode"); + //有功功率(MW) + attributesList.add("igenpower"); + //当天可利用率 + attributesList.add("iavailabillitytoday"); + //日发电量(kwh) + attributesList.add("ikwhthisday"); + //总发电量(万kwh) + attributesList.add("ikwhoverall"); + for (SysEquipmentVo item : sysEquipmentVos) { + //构建查询属性参数 + SnapshotValueQueryParam snapshotValueQueryParam = new SnapshotValueQueryParam(); + snapshotValueQueryParam.setAttributes(attributesList); + snapshotValueQueryParam.setDeviceId(item.getId().toString()); + paramList.add(snapshotValueQueryParam); + //构建风机数据返回 + HomeWindRealTimeVo homeWindRealTimeVoResult = new HomeWindRealTimeVo(); + homeWindRealTimeVoResult.setIrn(item.getId()); + homeWindRealTimeVoResult.setName(item.getName()); + homeWindRealTimeVoResult.setModel(item.getModel()); + homeWindRealTimeVoResult.setModelId(item.getIotModelId()); + homeWindRealTimeVoResult.setBelongLine(item.getBelongLine()); + homeWindRealTimeVoResult.setStandard(item.getStandard()); + homeWindRealTimeVoResult.setNominalCapacity(item.getNominalCapacity()); + homeWindRealTimeVoList.add(homeWindRealTimeVoResult); + } + //获取设备测点数据 + Map> map = dataService.querySnapshotValues(paramList); + for (HomeWindRealTimeVo item : homeWindRealTimeVoList) { + item.setAttributeMap(map.get(item.getIrn().toString())); + } + return homeWindRealTimeVoList; + } +}