冀北地图接口开发
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
package com.njcn.device.pms.pojo.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PmsLedgerStaticDTO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点统计
|
||||||
|
*/
|
||||||
|
private List<PmsSimpleDTO> monitorStatistics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 装置统计
|
||||||
|
*/
|
||||||
|
private List<PmsSimpleDTO> terminalStatistics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在线率统计
|
||||||
|
*/
|
||||||
|
private List<PmsSimpleDTO> OnlineRateStatistics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 完整性统计
|
||||||
|
*/
|
||||||
|
private List<PmsSimpleDTO> integrityStatistics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据单位统计监测点数量
|
||||||
|
*/
|
||||||
|
private HashMap<String,List<PmsSimpleDTO>> monitorStatisticsByDept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据单位统计终端数量
|
||||||
|
*/
|
||||||
|
private HashMap<String,List<PmsSimpleDTO>> terminalStatisticsByDept;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.device.pms.pojo.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PmsSimpleDTO implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "name", value = "名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "value", value = "数值")
|
||||||
|
private Double[] value;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "value", value = "数值")
|
||||||
|
private Double doubleValue;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "statistics", value = "数量")
|
||||||
|
private Integer statistics;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "classification", value = "分类")
|
||||||
|
private String classification;
|
||||||
|
|
||||||
|
private Integer sort;
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import java.io.Serializable;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsSimpleDTO;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,6 +61,8 @@ public class SubstationExpend implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String deptId;
|
private String deptId;
|
||||||
|
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关联台账变电站:pq_substation表主键
|
* 关联台账变电站:pq_substation表主键
|
||||||
*/
|
*/
|
||||||
@@ -72,7 +75,7 @@ public class SubstationExpend implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String connectType;
|
private String connectType;
|
||||||
|
|
||||||
private List<SimpleDTO> sites;
|
private List<PmsSimpleDTO> sites;
|
||||||
|
|
||||||
// public SubstationExpend(String name, String type, BigDecimal lng, BigDecimal lat, String deptId) {
|
// public SubstationExpend(String name, String type, BigDecimal lng, BigDecimal lat, String deptId) {
|
||||||
// this.name = name;
|
// this.name = name;
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
|||||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsLedgerStaticDTO;
|
||||||
import com.njcn.device.pms.pojo.param.PmsBaseParam;
|
import com.njcn.device.pms.pojo.param.PmsBaseParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
||||||
import com.njcn.device.pms.pojo.po.SubstationExpend;
|
import com.njcn.device.pms.pojo.po.SubstationExpend;
|
||||||
import com.njcn.device.pms.service.ISubstationExpendService;
|
import com.njcn.device.pms.service.ISubstationExpendService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -36,7 +38,7 @@ import java.util.Map;
|
|||||||
* @since 2023-05-08
|
* @since 2023-05-08
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "变电站地图信息")
|
@Api(tags = "冀北变电站地图信息")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pms/substationExpend")
|
@RequestMapping("/pms/substationExpend")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -47,14 +49,24 @@ public class SubstationExpendController extends BaseController {
|
|||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getSubstationExpendInfo")
|
@PostMapping("/getSubstationExpendInfo")
|
||||||
@ApiOperation("变电站信息")
|
@ApiOperation("冀北变电站地图信息")
|
||||||
@ApiImplicitParam(name = "param", value = "变电站信息参数", required = true)
|
@ApiImplicitParam(name = "param", value = "冀北变电站地图信息参数", required = true)
|
||||||
public HttpResult<Map<String, List<SubstationExpend>>> getSubstationExpendInfo(@RequestBody StatisticsBizBaseParam param) {
|
public HttpResult<Map<String, List<SubstationExpend>>> getSubstationExpendInfo(@RequestBody StatisticsBizBaseParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getSubstationExpendInfo");
|
String methodDescribe = getMethodDescribe("getSubstationExpendInfo");
|
||||||
Map<String, List<SubstationExpend>> result = substationExpendService.getSubstationExpendInfo(param);
|
Map<String, List<SubstationExpend>> result = substationExpendService.getSubstationExpendInfo(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getLedgerStatic")
|
||||||
|
@ApiOperation("冀北主网监测点台账统计")
|
||||||
|
@ApiImplicitParam(name = "param", value = "冀北主网监测点台账统计参数", required = true)
|
||||||
|
public HttpResult<PmsLedgerStaticDTO> getLedgerStatic(@RequestBody PmsDeviceInfoParam param) {
|
||||||
|
String methodDescribe = getMethodDescribe("getLedgerStatic");
|
||||||
|
PmsLedgerStaticDTO result = substationExpendService.getLedgerStatistics(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
// @PostMapping("/insert")
|
// @PostMapping("/insert")
|
||||||
// @ApiOperation("变电站信息")
|
// @ApiOperation("变电站信息")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsSimpleDTO;
|
||||||
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
||||||
import com.njcn.device.pms.pojo.param.TaiZhangParam;
|
import com.njcn.device.pms.pojo.param.TaiZhangParam;
|
||||||
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
||||||
@@ -67,6 +68,11 @@ public interface DistributionMonitorMapper extends BaseMapper<DistributionMonito
|
|||||||
List<DistributionMonitor> distributionMonitorListByCondition(@Param("deptIds")List<String> deptIds, @Param("monitorSort")String monitorSort);
|
List<DistributionMonitor> distributionMonitorListByCondition(@Param("deptIds")List<String> deptIds, @Param("monitorSort")String monitorSort);
|
||||||
|
|
||||||
|
|
||||||
|
List<PmsSimpleDTO> statisticMonitorWithMonitorSort(@Param("list") List<String> monitorIds);
|
||||||
|
|
||||||
|
List<PmsSimpleDTO> statisticTerminal(@Param("list") List<String> terminalIds);
|
||||||
|
|
||||||
|
List<PmsSimpleDTO> getOnlineRate(@Param("list") List<String> terminalIds);
|
||||||
|
|
||||||
|
List<PmsSimpleDTO> getIntegrity(@Param("list") List<String> terminalIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,7 +182,53 @@ AND EXISTS (
|
|||||||
a.Monitor_Id = temp.id
|
a.Monitor_Id = temp.id
|
||||||
)
|
)
|
||||||
</select>
|
</select>
|
||||||
|
<select id="statisticMonitorWithMonitorSort" resultType="com.njcn.device.pms.pojo.dto.PmsSimpleDTO">
|
||||||
|
SELECT
|
||||||
|
COUNT(pdm.Monitor_Id) AS statistics,
|
||||||
|
pdm.Monitor_Sort AS name
|
||||||
|
FROM pms_distribution_monitor pdm
|
||||||
|
WHERE pdm.Monitor_Id IN
|
||||||
|
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY pdm.Monitor_Sort
|
||||||
|
</select>
|
||||||
|
<select id="statisticTerminal" resultType="com.njcn.device.pms.pojo.dto.PmsSimpleDTO">
|
||||||
|
SELECT
|
||||||
|
COUNT(pdm.Terminal_Id) statistics,
|
||||||
|
pdm.Monitor_Sort name
|
||||||
|
FROM pms_distribution_monitor pdm
|
||||||
|
WHERE pdm.Terminal_Id IN
|
||||||
|
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY pdm.Monitor_Sort
|
||||||
|
</select>
|
||||||
|
<select id="getOnlineRate" resultType="com.njcn.device.pms.pojo.dto.PmsSimpleDTO">
|
||||||
|
SELECT
|
||||||
|
pdm.Monitor_Sort name,
|
||||||
|
SUM(rmded.dev_effective_rate) doubleValue
|
||||||
|
FROM pms_distribution_monitor pdm
|
||||||
|
LEFT JOIN r_mp_dev_evaluate_detail rmded ON pdm.Terminal_Id = rmded.device_id
|
||||||
|
WHERE pdm.Terminal_Id IN
|
||||||
|
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY pdm.Monitor_Sort
|
||||||
|
</select>
|
||||||
|
<select id="getIntegrity" resultType="com.njcn.device.pms.pojo.dto.PmsSimpleDTO">
|
||||||
|
SELECT
|
||||||
|
pdm.Monitor_Sort name,
|
||||||
|
SUM(romd.data_integrity_rate) doubleValue
|
||||||
|
FROM pms_distribution_monitor pdm
|
||||||
|
LEFT JOIN r_operating_monitor_d romd ON pdm.Monitor_Id = romd.measurement_point_id
|
||||||
|
WHERE pdm.Monitor_Id IN
|
||||||
|
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
GROUP BY pdm.Monitor_Sort
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|||||||
@@ -5,18 +5,13 @@
|
|||||||
|
|
||||||
<select id="getSubList" resultType="com.njcn.device.pms.pojo.po.SubstationExpend">
|
<select id="getSubList" resultType="com.njcn.device.pms.pojo.po.SubstationExpend">
|
||||||
SELECT pse.*,
|
SELECT pse.*,
|
||||||
sdd.Name typeName,
|
|
||||||
psr.Break_site,
|
psr.Break_site,
|
||||||
psr.connect_type
|
psr.connect_type
|
||||||
FROM pms_substation_expend pse
|
FROM pms_substation_expend pse
|
||||||
LEFT JOIN sys_dict_data sdd ON pse.Type = sdd.Id
|
|
||||||
LEFT JOIN pms_substation_relation psr ON psr.Start_Station_Id = pse.Id
|
LEFT JOIN pms_substation_relation psr ON psr.Start_Station_Id = pse.Id
|
||||||
WHERE pse.Dept_Id IN
|
WHERE pse.Dept_Id IN
|
||||||
<foreach item="item" collection="list" open="(" separator="," close=")">
|
<foreach item="item" collection="list" open="(" separator="," close=")">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
<if test="param.getType!=null and param.getType!=''">
|
|
||||||
AND sdd.Id = #{param.getType}
|
|
||||||
</if>
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -3,6 +3,8 @@ package com.njcn.device.pms.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsLedgerStaticDTO;
|
||||||
|
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
||||||
import com.njcn.device.pms.pojo.po.SubstationExpend;
|
import com.njcn.device.pms.pojo.po.SubstationExpend;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -22,4 +24,5 @@ public interface ISubstationExpendService extends IService<SubstationExpend> {
|
|||||||
Map<String, List<SubstationExpend>> getSubstationExpendInfo(StatisticsBizBaseParam param);
|
Map<String, List<SubstationExpend>> getSubstationExpendInfo(StatisticsBizBaseParam param);
|
||||||
|
|
||||||
|
|
||||||
|
PmsLedgerStaticDTO getLedgerStatistics(PmsDeviceInfoParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,14 @@ package com.njcn.device.pms.service.impl;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
|
||||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
|
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
|
||||||
import com.njcn.device.pms.mapper.SubstationExpendMapper;
|
import com.njcn.device.pms.mapper.SubstationExpendMapper;
|
||||||
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
|
import com.njcn.device.pms.mapper.majornetwork.DistributionMonitorMapper;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsLedgerStaticDTO;
|
||||||
|
import com.njcn.device.pms.pojo.dto.PmsSimpleDTO;
|
||||||
|
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
|
||||||
import com.njcn.device.pms.pojo.po.SubstationExpend;
|
import com.njcn.device.pms.pojo.po.SubstationExpend;
|
||||||
import com.njcn.device.pms.service.ISubstationExpendService;
|
import com.njcn.device.pms.service.ISubstationExpendService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -15,9 +19,9 @@ import com.njcn.user.api.DeptFeignClient;
|
|||||||
import com.njcn.user.pojo.dto.DeptDTO;
|
import com.njcn.user.pojo.dto.DeptDTO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@@ -39,36 +43,96 @@ public class SubstationExpendServiceImpl extends ServiceImpl<SubstationExpendMap
|
|||||||
|
|
||||||
private final SubstationExpendMapper substationExpendMapper;
|
private final SubstationExpendMapper substationExpendMapper;
|
||||||
|
|
||||||
|
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
|
||||||
|
|
||||||
|
private final DistributionMonitorMapper distributionMonitorMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, List<SubstationExpend>> getSubstationExpendInfo(StatisticsBizBaseParam param) {
|
public Map<String, List<SubstationExpend>> getSubstationExpendInfo(StatisticsBizBaseParam param) {
|
||||||
Map<String, List<SubstationExpend>> map = new HashMap<>();
|
Map<String, List<SubstationExpend>> map = new HashMap<>();
|
||||||
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getId(), Stream.of(0, 1).collect(Collectors.toList())).getData();
|
List<DeptDTO> deptInfos = deptFeignClient.getDeptDescendantIndexes(param.getId(), Stream.of(0, 1).collect(Collectors.toList())).getData();
|
||||||
|
Map<String, List<DeptDTO>> deptMap = deptInfos.stream().collect(Collectors.groupingBy(DeptDTO::getCode));
|
||||||
if (CollectionUtil.isNotEmpty(deptInfos)) {
|
if (CollectionUtil.isNotEmpty(deptInfos)) {
|
||||||
List<String> list = deptInfos.stream()
|
List<String> list = deptInfos.stream()
|
||||||
.map(DeptDTO::getId)
|
.map(DeptDTO::getCode)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
// 获取部门所属变电站
|
// 获取部门所属变电站
|
||||||
List<SubstationExpend> subList=substationExpendMapper.getSubList(list, param);
|
List<SubstationExpend> subList=substationExpendMapper.getSubList(list, param);
|
||||||
if (CollUtil.isNotEmpty(subList)) {
|
if (CollUtil.isNotEmpty(subList)) {
|
||||||
subList.forEach (
|
subList.forEach (
|
||||||
t -> {
|
t -> {
|
||||||
|
if (t.getDeptId()!=null){
|
||||||
|
t.setDeptName(deptMap.get(t.getDeptId()).get(0).getName());
|
||||||
|
}
|
||||||
if (t.getBreakSite()!=null) {
|
if (t.getBreakSite()!=null) {
|
||||||
List<SimpleDTO> simpleDTOS = new ArrayList<>();
|
List<PmsSimpleDTO> simpleDTOS = new ArrayList<>();
|
||||||
String[][] arr = JSON.parseObject(t.getBreakSite(), String[][].class);
|
String[][] arr = JSON.parseObject(t.getBreakSite(), String[][].class);
|
||||||
List<String[]> sites = Arrays.asList(arr);
|
List<String[]> sites = Arrays.asList(arr);
|
||||||
for (String[] site : sites) {
|
for (String[] site : sites) {
|
||||||
SimpleDTO simpleDTO = new SimpleDTO();
|
PmsSimpleDTO simpleDTO = new PmsSimpleDTO();
|
||||||
simpleDTO.setName("");
|
simpleDTO.setName("");
|
||||||
simpleDTO.setValue(Arrays.toString(site));
|
Double[] ds=new Double[site.length];
|
||||||
|
for(int i=0;i<site.length;i++){
|
||||||
|
ds[i]=Double.valueOf(site[i]);
|
||||||
|
}
|
||||||
|
simpleDTO.setValue(ds);
|
||||||
simpleDTOS.add(simpleDTO);
|
simpleDTOS.add(simpleDTO);
|
||||||
}
|
}
|
||||||
t.setSites(simpleDTOS);
|
t.setSites(simpleDTOS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
map = subList.stream().collect(Collectors.groupingBy(SubstationExpend::getDeptId));
|
map = subList.stream().collect(Collectors.groupingBy(SubstationExpend::getDeptName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsLedgerStaticDTO getLedgerStatistics(PmsDeviceInfoParam param) {
|
||||||
|
PmsLedgerStaticDTO ledgerStaticDTO = new PmsLedgerStaticDTO();
|
||||||
|
List<PmsGeneralDeviceDTO> generalDeviceDTOS = pmsGeneralDeviceInfoClient.getPwPmsDeviceInfoWithOrgId(param).getData();
|
||||||
|
// 统计监测点
|
||||||
|
List<String> monitorIds = new ArrayList<>();
|
||||||
|
generalDeviceDTOS.stream().forEach(e -> monitorIds.addAll(e.getMonitorIdList()));
|
||||||
|
List<PmsSimpleDTO> monitorStatistic = distributionMonitorMapper.statisticMonitorWithMonitorSort(monitorIds);
|
||||||
|
ledgerStaticDTO.setMonitorStatistics(monitorStatistic);
|
||||||
|
|
||||||
|
// 根据单位统计监测点数量
|
||||||
|
HashMap<String,List<PmsSimpleDTO>> monitorMap = new HashMap<>();
|
||||||
|
for (PmsGeneralDeviceDTO generalDeviceDTO : generalDeviceDTOS) {
|
||||||
|
List<PmsSimpleDTO> monitors = new ArrayList<>();
|
||||||
|
if (CollectionUtil.isNotEmpty(generalDeviceDTO.getMonitorIdList())) {
|
||||||
|
monitors = distributionMonitorMapper.statisticMonitorWithMonitorSort(generalDeviceDTO.getMonitorIdList());
|
||||||
|
}
|
||||||
|
|
||||||
|
monitorMap.put(generalDeviceDTO.getName(),monitors);
|
||||||
|
}
|
||||||
|
ledgerStaticDTO.setMonitorStatisticsByDept(monitorMap);
|
||||||
|
// 统计终端
|
||||||
|
List<String> terminalIds = new ArrayList<>();
|
||||||
|
generalDeviceDTOS.stream().forEach(e -> terminalIds.addAll(e.getTerminalIdList()));
|
||||||
|
List<PmsSimpleDTO> terminalNumStatistic = distributionMonitorMapper.statisticTerminal(terminalIds);
|
||||||
|
ledgerStaticDTO.setTerminalStatistics(terminalNumStatistic);
|
||||||
|
|
||||||
|
// 根据单位统计终端数量
|
||||||
|
HashMap<String,List<PmsSimpleDTO>> terminalsMap = new HashMap<>();
|
||||||
|
for (PmsGeneralDeviceDTO generalDeviceDTO : generalDeviceDTOS) {
|
||||||
|
List<PmsSimpleDTO> terminals = distributionMonitorMapper.statisticTerminal(terminalIds);
|
||||||
|
terminalsMap.put(generalDeviceDTO.getName(),terminals);
|
||||||
|
}
|
||||||
|
ledgerStaticDTO.setTerminalStatisticsByDept(terminalsMap);
|
||||||
|
|
||||||
|
// 统计在线率
|
||||||
|
List<PmsSimpleDTO> onlineRateStatistic = distributionMonitorMapper.getOnlineRate(terminalIds);
|
||||||
|
double sum = onlineRateStatistic.stream().mapToDouble(PmsSimpleDTO::getDoubleValue).sum();
|
||||||
|
onlineRateStatistic.forEach(dto -> dto.setDoubleValue(new BigDecimal(dto.getDoubleValue() * 100 / sum).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()));
|
||||||
|
ledgerStaticDTO.setTerminalStatistics(onlineRateStatistic);
|
||||||
|
|
||||||
|
// 完整性
|
||||||
|
List<PmsSimpleDTO> integrityStatistic = distributionMonitorMapper.getIntegrity(terminalIds);
|
||||||
|
double s = integrityStatistic.stream().mapToDouble(PmsSimpleDTO::getDoubleValue).sum();
|
||||||
|
integrityStatistic.forEach(dto -> dto.setDoubleValue(new BigDecimal(dto.getDoubleValue() * 100 / s).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()));
|
||||||
|
return ledgerStaticDTO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user