From 6dc27f2eda1d85e32f8f0ce4851ff52a6b26d95b Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Tue, 20 Jun 2023 08:55:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csdevice/pojo/vo/DataGroupTemplateVO.java | 27 ++++++++ .../csdevice/pojo/vo/EnergyTemplateVO.java | 46 +++++++++++++ cs-device/cs-device-boot/pom.xml | 15 +++++ .../csdevice/CsDeviceBootApplication.java | 2 + .../equipment/CsGroupController.java | 18 ++++++ .../EquipmentDeliveryController.java | 6 +- .../csdevice/mapper/CsDataArrayMapper.java | 2 + .../njcn/csdevice/mapper/CsGroupMapper.java | 5 ++ .../mapper/mapping/CsDataArrayMapper.xml | 24 +++++++ .../csdevice/mapper/mapping/CsGroupMapper.xml | 15 +++++ .../service/CsEquipmentDeliveryService.java | 5 +- .../csdevice/service/ICsGroupService.java | 8 +++ .../impl/CsEquipmentDeliveryServiceImpl.java | 19 +++--- .../service/impl/CsGroupServiceImpl.java | 64 +++++++++++++++++++ 14 files changed, 239 insertions(+), 17 deletions(-) create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupTemplateVO.java create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EnergyTemplateVO.java diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupTemplateVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupTemplateVO.java new file mode 100644 index 0000000..0617dd8 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupTemplateVO.java @@ -0,0 +1,27 @@ +package com.njcn.csdevice.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * + * @author xuyang + * @date 2023/6/19 + */ +@Data +public class DataGroupTemplateVO { + + private String id; + + private String pid; + + @ApiModelProperty("组名称") + private String name; + + private Integer sort; + + @ApiModelProperty("指标数据") + private List children; +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EnergyTemplateVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EnergyTemplateVO.java new file mode 100644 index 0000000..d5f1ce6 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/EnergyTemplateVO.java @@ -0,0 +1,46 @@ +package com.njcn.csdevice.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.Instant; + +/** + * + * @author xuyang + * @date 2023/6/19 + */ +@Data +public class EnergyTemplateVO { + + private String id; + + private String pid; + + @ApiModelProperty("字典id") + private String dataId; + + @ApiModelProperty("别名") + private String anotherName; + + @ApiModelProperty("指标名称") + private String name; + + @ApiModelProperty("数据类型") + private String statMethod; + + @ApiModelProperty("相别") + private String phase; + + @ApiModelProperty("数据查询表名") + private String classId; + + @ApiModelProperty("数据时间") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @ApiModelProperty("数据") + private Double dataValue; +} diff --git a/cs-device/cs-device-boot/pom.xml b/cs-device/cs-device-boot/pom.xml index bf1a6b9..5cabdf1 100644 --- a/cs-device/cs-device-boot/pom.xml +++ b/cs-device/cs-device-boot/pom.xml @@ -58,6 +58,21 @@ system-api ${project.version} + + com.njcn + pqs-influx + 0.0.1-SNAPSHOT + + + com.squareup.okhttp3 + okhttp + 4.9.0 + + + com.squareup.okhttp3 + logging-interceptor + 4.9.0 + diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/CsDeviceBootApplication.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/CsDeviceBootApplication.java index d19c7f7..d8a28d1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/CsDeviceBootApplication.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/CsDeviceBootApplication.java @@ -5,6 +5,7 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.DependsOn; /** @@ -16,6 +17,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @MapperScan("com.njcn.**.mapper") @EnableFeignClients(basePackages = "com.njcn") @SpringBootApplication(scanBasePackages = "com.njcn") +@DependsOn("proxyMapperRegister") public class CsDeviceBootApplication { public static void main(String[] args) { diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java index 0303c1a..cb8097e 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java @@ -1,16 +1,19 @@ package com.njcn.csdevice.controller.equipment; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO; import com.njcn.csdevice.service.ICsGroupService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -48,5 +51,20 @@ public class CsGroupController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/deviceRtData") + @ApiOperation("装置分组实时数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "tab选项id", required = true), + @ApiImplicitParam(name = "pageNum", value = "页码", required = true), + @ApiImplicitParam(name = "pageSize", value = "页面尺寸", required = true), + @ApiImplicitParam(name = "lineId", value = "监测点id", required = true) + }) + public HttpResult> getDeviceRtData(@RequestParam("id") String id, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize, @RequestParam(value = "lineId")String lineId){ + String methodDescribe = getMethodDescribe("getDeviceData"); + IPage list = csGroupService.getDeviceRtData(id, pageNum, pageSize,lineId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java index cd51cb9..a2518a1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java @@ -12,10 +12,7 @@ import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryQueryParm; import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; -import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO; -import com.njcn.csdevice.pojo.vo.CsLedgerVO; -import com.njcn.csdevice.pojo.vo.DeviceManagerVO; -import com.njcn.csdevice.pojo.vo.ProjectEquipmentVO; +import com.njcn.csdevice.pojo.vo.*; import com.njcn.csdevice.service.CsEquipmentDeliveryService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; @@ -140,4 +137,5 @@ public class EquipmentDeliveryController extends BaseController { DeviceManagerVO vo = csEquipmentDeliveryService.getDeviceData(deviceId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe); } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java index 014e807..fce37d0 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java @@ -3,6 +3,7 @@ package com.njcn.csdevice.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.csdevice.pojo.dto.DataArrayDTO; import com.njcn.csdevice.pojo.po.CsDataArray; +import com.njcn.csdevice.pojo.vo.EnergyTemplateVO; import com.njcn.csdevice.pojo.vo.LineTargetVO; import org.apache.ibatis.annotations.Param; @@ -26,4 +27,5 @@ public interface CsDataArrayMapper extends BaseMapper { List getGroupData(@Param("id") String id); + List getArrayByGroup(@Param("list") List list); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java index 64b1be8..746188c 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java @@ -1,8 +1,11 @@ package com.njcn.csdevice.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.csdevice.pojo.po.CsGroup; import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -24,4 +27,6 @@ public interface CsGroupMapper extends BaseMapper { List getArrayData(@Param("list") List list); void insertList(@Param("list") List list); + + Page getGroupDataList(IPage page, @Param("id") String id); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml index d42ee4b..93b7f80 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml @@ -65,4 +65,28 @@ phase order by min(sort) + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml index 333758d..8adeecc 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml @@ -71,4 +71,19 @@ + + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java index 749b395..a5f39cb 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java @@ -8,10 +8,7 @@ import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryQueryParm; import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; -import com.njcn.csdevice.pojo.vo.CsEquipmentDeliveryVO; -import com.njcn.csdevice.pojo.vo.CsLedgerVO; -import com.njcn.csdevice.pojo.vo.DeviceManagerVO; -import com.njcn.csdevice.pojo.vo.ProjectEquipmentVO; +import com.njcn.csdevice.pojo.vo.*; import java.util.List; diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java index 79eb7f1..00061ae 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java @@ -1,8 +1,10 @@ package com.njcn.csdevice.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.csdevice.pojo.po.CsGroup; import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO; import java.util.List; @@ -22,4 +24,10 @@ public interface ICsGroupService extends IService { */ List getGroupData(String dataSet); + /** + * 获取装置分组后的实时数据 + * @return + */ + IPage getDeviceRtData(String id, Integer pageNum, Integer pageSize, String lineId); + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index 63c7f6f..c0b7659 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.csdevice.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -12,19 +13,22 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.enums.LineBaseEnum; +import com.njcn.csdevice.mapper.CsDataArrayMapper; import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper; +import com.njcn.csdevice.mapper.CsGroupMapper; import com.njcn.csdevice.mapper.CsLedgerMapper; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAddParm; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryAuditParm; import com.njcn.csdevice.pojo.param.CsEquipmentDeliveryQueryParm; import com.njcn.csdevice.pojo.param.ProjectEquipmentQueryParm; -import com.njcn.csdevice.pojo.po.CsDataSet; -import com.njcn.csdevice.pojo.po.CsEngineeringPO; -import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; -import com.njcn.csdevice.pojo.po.CsLedger; +import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.vo.*; import com.njcn.csdevice.service.*; import com.njcn.db.constant.DbConstant; +import com.njcn.influx.pojo.dto.StatisticalDataDTO; +import com.njcn.influx.service.CommonService; +import com.njcn.system.api.EpdFeignClient; +import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.web.factory.PageFactory; import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; @@ -189,10 +193,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl getChildren(CsLedgerVO item, List all) { - return all.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList()); + private List getChildren(String tabId, List all) { + return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList()); } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java index e7a2a00..2d6ea65 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java @@ -2,16 +2,26 @@ package com.njcn.csdevice.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.csdevice.mapper.CsDataArrayMapper; import com.njcn.csdevice.mapper.CsGroupMapper; import com.njcn.csdevice.pojo.po.CsDataArray; import com.njcn.csdevice.pojo.po.CsGroArr; import com.njcn.csdevice.pojo.po.CsGroup; import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO; +import com.njcn.csdevice.pojo.vo.EnergyTemplateVO; import com.njcn.csdevice.service.ICsDataArrayService; import com.njcn.csdevice.service.ICsGroArrService; import com.njcn.csdevice.service.ICsGroupService; +import com.njcn.influx.pojo.dto.StatisticalDataDTO; +import com.njcn.influx.service.CommonService; +import com.njcn.system.api.EpdFeignClient; +import com.njcn.system.pojo.po.EleEpdPqd; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,6 +45,14 @@ public class CsGroupServiceImpl extends ServiceImpl impl private final ICsGroArrService csGroArrService; + private final CsGroupMapper csGroupMapper; + + private final CsDataArrayMapper csDataArrayMapper; + + private final CommonService commonService; + + private final EpdFeignClient epdFeignClient; + @Override @Transactional(rollbackFor = Exception.class) public List getGroupData(String dataSet) { @@ -53,6 +71,52 @@ public class CsGroupServiceImpl extends ServiceImpl impl return result; } + @Override + public IPage getDeviceRtData(String id, Integer pageNum, Integer pageSize, String lineId) { + IPage pageTurn = new Page<>(); + List arrayList = new ArrayList<>(); + IPage pageRes = csGroupMapper.getGroupDataList(new Page<>(pageNum, pageSize), id); + if (pageRes.getTotal() != 0) { + List groupList = pageRes.getRecords(); + List group = groupList.stream().map(DataGroupTemplateVO::getId).collect(Collectors.toList()); + //获取当前组的所有指标项 + List list = csDataArrayMapper.getArrayByGroup(group); + list.forEach(item->{ + EnergyTemplateVO vo = new EnergyTemplateVO(); + BeanUtils.copyProperties(item,vo); + EleEpdPqd eleEpdPqd = epdFeignClient.selectById(item.getDataId()).getData(); + vo.setClassId(eleEpdPqd.getClassId()); + StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,eleEpdPqd.getClassId(),item.getName(),item.getPhase(),item.getStatMethod()); + if (!Objects.isNull(statisticalDataDTO)){ + vo.setTime(statisticalDataDTO.getTime()); + vo.setDataValue(statisticalDataDTO.getValue()); + } else { + vo.setDataValue(3.1415926); + } + arrayList.add(vo); + }); + if (CollectionUtil.isNotEmpty(arrayList)){ + List grList = groupList.stream().peek((item) -> {item.setChildren(getChildren(item.getId(), arrayList));}).collect(Collectors.toList()); + pageTurn.setRecords(grList); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + } + } else { + pageTurn.setRecords(new ArrayList<>()); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + } + return pageTurn; + } + + private List getChildren(String tabId, List all) { + return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList()); + } + private List getChildrenes(String tabId, List all) { return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList()); }