1.完成异常终端详情
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
package com.njcn.device.pq.pojo.param;
|
||||||
|
|
||||||
|
import com.njcn.web.constant.ValidMessage;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.hibernate.validator.constraints.Range;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author wr
|
||||||
|
* @createTime: 2023-04-03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel
|
||||||
|
public class DevRunEvaluateParam {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "orgId", value = "部门id")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0-电网侧
|
||||||
|
* 1-非电网侧
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("电网侧标识")
|
||||||
|
@Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
|
||||||
|
private Integer powerFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "ids", value = "设备id")
|
||||||
|
private List<String> ids;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "startTime", value = "开始时间")
|
||||||
|
private String startTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "endTime", value = "结束时间")
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.njcn.device.pq.pojo.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wr
|
||||||
|
* @description
|
||||||
|
* @date 2025/5/9 11:26
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class DevDetailVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "lineId",value = "监测点索引")
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "lineName",value = "监测点名称")
|
||||||
|
private String lineName;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "devId",value = "终端id")
|
||||||
|
private String devId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "devName",value = "终端名称")
|
||||||
|
private String devName;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "subName",value = "变电站名称")
|
||||||
|
private String subName;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "subName",value = "对象id(新能源用户)")
|
||||||
|
private String ObjId;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wr
|
* @author wr
|
||||||
@@ -16,6 +17,8 @@ public class DeviceRunEvaluateVO {
|
|||||||
@ApiModelProperty("名称")
|
@ApiModelProperty("名称")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("变电站名称")
|
||||||
|
private String subName;
|
||||||
@ApiModelProperty("评价")
|
@ApiModelProperty("评价")
|
||||||
private BigDecimal evaluate;
|
private BigDecimal evaluate;
|
||||||
|
|
||||||
@@ -28,5 +31,9 @@ public class DeviceRunEvaluateVO {
|
|||||||
@ApiModelProperty("合格率")
|
@ApiModelProperty("合格率")
|
||||||
private BigDecimal passRate;
|
private BigDecimal passRate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Info extends DeviceRunEvaluateVO{
|
||||||
|
@ApiModelProperty("终端id集合")
|
||||||
|
private List<String> devIds;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.njcn.common.pojo.enums.common.LogEnum;
|
|||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
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.pq.pojo.param.DevRunEvaluateParam;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
@@ -51,12 +52,20 @@ public class DeviceRunEvaluateController extends BaseController {
|
|||||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||||
@PostMapping("/getRunEvaluate")
|
@PostMapping("/getRunEvaluate")
|
||||||
@ApiOperation("终端运行评价")
|
@ApiOperation("终端运行评价")
|
||||||
public HttpResult<List<DeviceRunEvaluateVO>> getRunEvaluate(@RequestBody @Validated DeviceInfoParam.CompareBusinessParam param) {
|
public HttpResult<List<DeviceRunEvaluateVO.Info>> getRunEvaluate(@RequestBody @Validated DeviceInfoParam.CompareBusinessParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getRunEvaluate");
|
String methodDescribe = getMethodDescribe("getRunEvaluate");
|
||||||
List<DeviceRunEvaluateVO> runEvaluate = deviceRunEvaluateService.getRunEvaluate(param);
|
List<DeviceRunEvaluateVO.Info> runEvaluate = deviceRunEvaluateService.getRunEvaluate(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runEvaluate, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runEvaluate, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||||
|
@PostMapping("/getRunEvaluateDetail")
|
||||||
|
@ApiOperation("终端运行评价")
|
||||||
|
public HttpResult<List<DeviceRunEvaluateVO>> getRunEvaluateDetail(@RequestBody @Validated DevRunEvaluateParam param) {
|
||||||
|
String methodDescribe = getMethodDescribe("getRunEvaluateDetail");
|
||||||
|
List<DeviceRunEvaluateVO> runEvaluate = deviceRunEvaluateService.getRunEvaluateDetail(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, runEvaluate, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||||
|
|||||||
@@ -573,4 +573,9 @@ public interface LineMapper extends BaseMapper<Line> {
|
|||||||
List<MonitorInfo> getLineByDeviceId(@Param("id") String id);
|
List<MonitorInfo> getLineByDeviceId(@Param("id") String id);
|
||||||
|
|
||||||
List<TerminalTree> getLineAndLineDetail();
|
List<TerminalTree> getLineAndLineDetail();
|
||||||
|
|
||||||
|
|
||||||
|
List<DevDetailVO> getLineDeviceByDevIds(@Param("powerFlag") Integer powerFlag,
|
||||||
|
@Param("lineIds") List<String> lineIds,
|
||||||
|
@Param("devIds") List<String> devIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1834,4 +1834,39 @@
|
|||||||
pq_line t1 inner join pq_line_detail t2 on t1.id = t2.id
|
pq_line t1 inner join pq_line_detail t2 on t1.id = t2.id
|
||||||
where t1.state = 1
|
where t1.state = 1
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getLineDeviceByDevIds" resultType="com.njcn.device.pq.pojo.vo.DevDetailVO">
|
||||||
|
SELECT
|
||||||
|
t.id lineId,
|
||||||
|
t.NAME lineName,
|
||||||
|
dev.id devId,
|
||||||
|
dev.NAME devName,
|
||||||
|
sub.NAME subName,
|
||||||
|
td.Obj_Id objId
|
||||||
|
FROM
|
||||||
|
pq_line t,
|
||||||
|
pq_line_detail td,
|
||||||
|
pq_line subv,
|
||||||
|
pq_line dev,
|
||||||
|
pq_line sub
|
||||||
|
WHERE
|
||||||
|
subv.id = t.pid
|
||||||
|
AND t.id = td.id
|
||||||
|
AND dev.id = subv.pid
|
||||||
|
AND sub.id = dev.pid
|
||||||
|
<if test="powerFlag!=null ">
|
||||||
|
AND td.Power_Flag =#{powerFlag}
|
||||||
|
</if>
|
||||||
|
<if test="lineIds!=null and lineIds.size()!=0">
|
||||||
|
AND t.id in
|
||||||
|
<foreach item="item" collection="lineIds" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="devIds!=null and devIds.size()!=0">
|
||||||
|
AND dev.id in
|
||||||
|
<foreach item="item" collection="devIds" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.njcn.device.biz.pojo.dto.SubGetBase;
|
|||||||
import com.njcn.device.biz.pojo.dto.TerminalGetBase;
|
import com.njcn.device.biz.pojo.dto.TerminalGetBase;
|
||||||
import com.njcn.device.biz.pojo.param.SubstationParam;
|
import com.njcn.device.biz.pojo.param.SubstationParam;
|
||||||
import com.njcn.device.pq.pojo.po.DeptLine;
|
import com.njcn.device.pq.pojo.po.DeptLine;
|
||||||
|
import com.njcn.device.pq.pojo.vo.DevDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
|
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
|
||||||
import com.njcn.web.pojo.param.DeptLineParam;
|
import com.njcn.web.pojo.param.DeptLineParam;
|
||||||
|
|
||||||
@@ -128,4 +129,15 @@ public interface DeptLineService extends IService<DeptLine> {
|
|||||||
DeptLine getLineByLineIds(String ids);
|
DeptLine getLineByLineIds(String ids);
|
||||||
|
|
||||||
List<LineDeviceStateVO> getLineDetailByDeptId(String id);
|
List<LineDeviceStateVO> getLineDetailByDeptId(String id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据部门id和终端id筛选信息
|
||||||
|
* @param orgId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<DevDetailVO> getLineDetailByDeptIdAndDevIds(String orgId,Integer powerFlag, List<String> devIds);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.device.pq.service;
|
package com.njcn.device.pq.service;
|
||||||
|
|
||||||
|
import com.njcn.device.pq.pojo.param.DevRunEvaluateParam;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
||||||
|
|
||||||
@@ -20,7 +21,12 @@ public interface DeviceRunEvaluateService {
|
|||||||
* @param deviceInfoParam
|
* @param deviceInfoParam
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<DeviceRunEvaluateVO> getRunEvaluate(DeviceInfoParam.CompareBusinessParam deviceInfoParam);
|
List<DeviceRunEvaluateVO.Info> getRunEvaluate(DeviceInfoParam.CompareBusinessParam deviceInfoParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取终端信息
|
||||||
|
*/
|
||||||
|
List<DeviceRunEvaluateVO> getRunEvaluateDetail(DevRunEvaluateParam param);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,11 @@ import com.njcn.device.pq.mapper.LineDetailMapper;
|
|||||||
import com.njcn.device.pq.mapper.LineMapper;
|
import com.njcn.device.pq.mapper.LineMapper;
|
||||||
import com.njcn.device.pq.pojo.po.DeptLine;
|
import com.njcn.device.pq.pojo.po.DeptLine;
|
||||||
import com.njcn.device.pq.pojo.po.LineDetail;
|
import com.njcn.device.pq.pojo.po.LineDetail;
|
||||||
|
import com.njcn.device.pq.pojo.vo.DevDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
|
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
|
||||||
import com.njcn.device.pq.service.DeptLineService;
|
import com.njcn.device.pq.service.DeptLineService;
|
||||||
|
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||||
|
import com.njcn.supervision.pojo.vo.user.NewUserReportVO;
|
||||||
import com.njcn.system.api.DictTreeFeignClient;
|
import com.njcn.system.api.DictTreeFeignClient;
|
||||||
import com.njcn.system.enums.DicTreeEnum;
|
import com.njcn.system.enums.DicTreeEnum;
|
||||||
import com.njcn.system.pojo.vo.DictTreeVO;
|
import com.njcn.system.pojo.vo.DictTreeVO;
|
||||||
@@ -32,8 +35,10 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,6 +55,7 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
|
|||||||
private final LineMapper lineMapper;
|
private final LineMapper lineMapper;
|
||||||
private final DictTreeFeignClient dictTreeFeignClient;
|
private final DictTreeFeignClient dictTreeFeignClient;
|
||||||
private final LineDetailMapper detailMapper;
|
private final LineDetailMapper detailMapper;
|
||||||
|
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -195,5 +201,30 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
|
|||||||
return lineDeviceStateVO;
|
return lineDeviceStateVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DevDetailVO> getLineDetailByDeptIdAndDevIds(String orgId,Integer powerFlag, List<String> devIds) {
|
||||||
|
List<String> lineByDeptId = this.getLineNodeByDeptId(orgId);
|
||||||
|
List<DevDetailVO> lineDeviceByDevIds = lineMapper.getLineDeviceByDevIds(powerFlag,lineByDeptId, devIds);
|
||||||
|
if(CollUtil.isNotEmpty(lineDeviceByDevIds)){
|
||||||
|
List<String> objIds = lineDeviceByDevIds.stream()
|
||||||
|
.filter(x -> StrUtil.isNotBlank(x.getObjId()))
|
||||||
|
.map(DevDetailVO::getObjId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if(CollUtil.isNotEmpty(objIds)){
|
||||||
|
List<NewUserReportVO> data = userLedgerFeignClient.getUserReportByIds(objIds).getData();
|
||||||
|
Map<String, String> userMap = data.stream().collect(Collectors.toMap(NewUserReportVO::getId, NewUserReportVO::getProjectName));
|
||||||
|
for (DevDetailVO lineDeviceByDevId : lineDeviceByDevIds) {
|
||||||
|
if(StrUtil.isNotBlank(lineDeviceByDevId.getObjId())){
|
||||||
|
if(userMap.containsKey(lineDeviceByDevId.getObjId())){
|
||||||
|
lineDeviceByDevId.setSubName(userMap.get(lineDeviceByDevId.getObjId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return lineDeviceByDevIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.njcn.device.pq.mapper.RStatIntegrityDMapper;
|
import com.njcn.device.pq.mapper.RStatIntegrityDMapper;
|
||||||
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
|
import com.njcn.device.pq.pojo.param.DevRunEvaluateParam;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||||
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||||
|
import com.njcn.device.pq.pojo.vo.DevDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.njcn.device.pq.enums.LineBaseEnum;
|
import com.njcn.device.pq.enums.LineBaseEnum;
|
||||||
@@ -19,6 +21,7 @@ import com.njcn.device.pq.enums.RunFlagEnum;
|
|||||||
import com.njcn.device.pq.mapper.LineMapper;
|
import com.njcn.device.pq.mapper.LineMapper;
|
||||||
import com.njcn.device.pq.pojo.dto.MonitorInfoDTO;
|
import com.njcn.device.pq.pojo.dto.MonitorInfoDTO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalEvaluateAreaVO;
|
import com.njcn.device.pq.pojo.vo.TerminalEvaluateAreaVO;
|
||||||
|
import com.njcn.device.pq.service.DeptLineService;
|
||||||
import com.njcn.device.pq.service.DeviceRunEvaluateService;
|
import com.njcn.device.pq.service.DeviceRunEvaluateService;
|
||||||
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
||||||
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
||||||
@@ -31,12 +34,9 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@@ -55,6 +55,7 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
private final RStatIntegrityDMapper integrityDMapper;
|
private final RStatIntegrityDMapper integrityDMapper;
|
||||||
private final LineMapper lineMapper;
|
private final LineMapper lineMapper;
|
||||||
private final UserLedgerFeignClient userLedgerFeignClient;
|
private final UserLedgerFeignClient userLedgerFeignClient;
|
||||||
|
private final DeptLineService deptLineService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据完整性:50%
|
* 数据完整性:50%
|
||||||
@@ -71,8 +72,8 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DeviceRunEvaluateVO> getRunEvaluate(DeviceInfoParam.CompareBusinessParam param) {
|
public List<DeviceRunEvaluateVO.Info> getRunEvaluate(DeviceInfoParam.CompareBusinessParam param) {
|
||||||
List<DeviceRunEvaluateVO> info = new ArrayList<>();
|
List<DeviceRunEvaluateVO.Info> info = new ArrayList<>();
|
||||||
List<GeneralDeviceDTO> deptDeviceInfos = generalDeviceService.getDeviceInfo(param, Arrays.asList(0), Arrays.asList(1));
|
List<GeneralDeviceDTO> deptDeviceInfos = generalDeviceService.getDeviceInfo(param, Arrays.asList(0), Arrays.asList(1));
|
||||||
//监测点id集合
|
//监测点id集合
|
||||||
List<String> lineIds = deptDeviceInfos.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
List<String> lineIds = deptDeviceInfos.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
@@ -83,94 +84,18 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
List<RStatIntegrityD> onIntegrityList = new ArrayList<>();
|
List<RStatIntegrityD> onIntegrityList = new ArrayList<>();
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(lineIds)) {
|
if (CollUtil.isNotEmpty(lineIds)) {
|
||||||
RStatLimitQueryParam limitQueryParam = new RStatLimitQueryParam();
|
setList(param.getSearchBeginTime(), param.getSearchEndTime(), devIds, lineIds, limitRateList, onIntegrityList, onlineRateList);
|
||||||
limitQueryParam.setIds(lineIds);
|
|
||||||
limitQueryParam.setDate(param.getSearchBeginTime());
|
|
||||||
limitQueryParam.setEndDate(param.getSearchEndTime());
|
|
||||||
limitRateList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(limitQueryParam).getData());
|
|
||||||
|
|
||||||
//监测点完整性
|
|
||||||
onIntegrityList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
|
||||||
.select("sum(real_time) as realTime,sum(due_time) as dueTime,line_index as lineIndex")
|
|
||||||
.in(CollUtil.isNotEmpty(lineIds), "line_index", lineIds)
|
|
||||||
.ge(StrUtil.isNotBlank(param.getSearchBeginTime()), "time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())))
|
|
||||||
.le(StrUtil.isNotBlank(param.getSearchEndTime()), "time_id", DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))
|
|
||||||
.groupBy("line_index")));
|
|
||||||
//终端在线率
|
|
||||||
onlineRateList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
|
||||||
.select("sum(online_min) as onlineMin,sum(offline_min) as offlineMin,dev_index as devIndex")
|
|
||||||
.in(CollUtil.isNotEmpty(devIds), "dev_index", devIds)
|
|
||||||
.ge(StrUtil.isNotBlank(param.getSearchBeginTime()), "time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())))
|
|
||||||
.le(StrUtil.isNotBlank(param.getSearchEndTime()), "time_id", DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))
|
|
||||||
.groupBy("dev_index")));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DeviceRunEvaluateVO evaluateVO;
|
DeviceRunEvaluateVO.Info evaluateVO;
|
||||||
for (GeneralDeviceDTO deptDeviceInfo : deptDeviceInfos) {
|
for (GeneralDeviceDTO deptDeviceInfo : deptDeviceInfos) {
|
||||||
List<String> lineIndexes = deptDeviceInfo.getLineIndexes();
|
List<String> lineIndexes = deptDeviceInfo.getLineIndexes();
|
||||||
|
List<String> devIndexes = deptDeviceInfo.getLineIndexes();
|
||||||
if (CollUtil.isNotEmpty(lineIndexes)) {
|
if (CollUtil.isNotEmpty(lineIndexes)) {
|
||||||
evaluateVO = new DeviceRunEvaluateVO();
|
evaluateVO = new DeviceRunEvaluateVO.Info();
|
||||||
evaluateVO.setName(deptDeviceInfo.getName());
|
evaluateVO.setName(deptDeviceInfo.getName());
|
||||||
//监测完整率
|
evaluateVO.setDevIds(deptDeviceInfo.getDeviceIndexes());
|
||||||
List<RStatIntegrityD> integrityDS = onIntegrityList.stream().filter(x -> lineIndexes.contains(x.getLineIndex())).collect(Collectors.toList());
|
setEvaluate(devIndexes, lineIndexes, onIntegrityList, evaluateVO, onlineRateList, limitRateList);
|
||||||
if (CollUtil.isNotEmpty(integrityDS)) {
|
|
||||||
double realTime = integrityDS.stream().mapToDouble(RStatIntegrityD::getRealTime).sum();
|
|
||||||
double dueTime = integrityDS.stream().mapToDouble(RStatIntegrityD::getDueTime).sum();
|
|
||||||
evaluateVO.setIntegrityRate(NumberUtil.round(realTime * 100 / dueTime, 2));
|
|
||||||
} else {
|
|
||||||
evaluateVO.setIntegrityRate(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
//终端在线率
|
|
||||||
List<RStatOnlinerateD> onlineRateDS = onlineRateList.stream().filter(x -> deptDeviceInfo.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList());
|
|
||||||
if (CollUtil.isNotEmpty(onlineRateDS)) {
|
|
||||||
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateD::getOnlineMin).sum();
|
|
||||||
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateD::getOfflineMin).sum();
|
|
||||||
evaluateVO.setOnLineRate(NumberUtil.round(onlineTime * 100.0 / (onlineTime + offlineTime), 2));
|
|
||||||
} else {
|
|
||||||
evaluateVO.setOnLineRate(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
//终端在线率
|
|
||||||
List<RStatLimitRateDPO> limitRateDPOS = limitRateList.stream().filter(x -> lineIndexes.contains(x.getLineId())).collect(Collectors.toList());
|
|
||||||
if (CollUtil.isNotEmpty(limitRateDPOS)) {
|
|
||||||
double overTime = limitRateDPOS.stream().mapToDouble(x -> (x.getUaberranceOvertime() +
|
|
||||||
x.getUharm2Overtime() +
|
|
||||||
x.getUharm3Overtime() +
|
|
||||||
x.getUharm4Overtime() +
|
|
||||||
x.getUharm5Overtime() +
|
|
||||||
x.getUharm6Overtime() +
|
|
||||||
x.getUharm7Overtime() +
|
|
||||||
x.getUharm8Overtime() +
|
|
||||||
x.getUharm9Overtime() +
|
|
||||||
x.getUharm10Overtime() +
|
|
||||||
x.getUharm11Overtime() +
|
|
||||||
x.getUharm12Overtime() +
|
|
||||||
x.getUharm13Overtime() +
|
|
||||||
x.getUharm14Overtime() +
|
|
||||||
x.getUharm15Overtime() +
|
|
||||||
x.getUharm16Overtime() +
|
|
||||||
x.getUharm17Overtime() +
|
|
||||||
x.getUharm18Overtime() +
|
|
||||||
x.getUharm19Overtime() +
|
|
||||||
x.getUharm20Overtime() +
|
|
||||||
x.getUharm21Overtime() +
|
|
||||||
x.getUharm22Overtime() +
|
|
||||||
x.getUharm23Overtime() +
|
|
||||||
x.getUharm24Overtime() +
|
|
||||||
x.getUharm25Overtime())).sum();
|
|
||||||
double allTime = limitRateDPOS.stream().mapToDouble(x -> x.getAllTime() * 25.0).sum();
|
|
||||||
if (allTime == 0) {
|
|
||||||
evaluateVO.setPassRate(new BigDecimal(0));
|
|
||||||
} else {
|
|
||||||
evaluateVO.setPassRate(NumberUtil.round(overTime * 100.0 / allTime, 2));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
evaluateVO.setPassRate(new BigDecimal(0));
|
|
||||||
}
|
|
||||||
evaluateVO.setEvaluate(
|
|
||||||
ONINTEGRITY.multiply(evaluateVO.getIntegrityRate())
|
|
||||||
.add(ONLINERATE.multiply(evaluateVO.getOnLineRate())
|
|
||||||
.add(LIMITRATE.multiply(evaluateVO.getPassRate()))).stripTrailingZeros()
|
|
||||||
);
|
|
||||||
info.add(evaluateVO);
|
info.add(evaluateVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,6 +104,119 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setEvaluate(List<String> devIds, List<String> lineIds, List<RStatIntegrityD> onIntegrityList, DeviceRunEvaluateVO evaluateVO, List<RStatOnlinerateD> onlineRateList, List<RStatLimitRateDPO> limitRateList) {
|
||||||
|
//监测完整率
|
||||||
|
List<RStatIntegrityD> integrityDS = onIntegrityList.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(integrityDS)) {
|
||||||
|
double realTime = integrityDS.stream().mapToDouble(RStatIntegrityD::getRealTime).sum();
|
||||||
|
double dueTime = integrityDS.stream().mapToDouble(RStatIntegrityD::getDueTime).sum();
|
||||||
|
evaluateVO.setIntegrityRate(NumberUtil.round(realTime * 100 / dueTime, 2));
|
||||||
|
} else {
|
||||||
|
evaluateVO.setIntegrityRate(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
//终端在线率
|
||||||
|
List<RStatOnlinerateD> onlineRateDS = onlineRateList.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(onlineRateDS)) {
|
||||||
|
double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateD::getOnlineMin).sum();
|
||||||
|
double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateD::getOfflineMin).sum();
|
||||||
|
evaluateVO.setOnLineRate(NumberUtil.round(onlineTime * 100.0 / (onlineTime + offlineTime), 2));
|
||||||
|
} else {
|
||||||
|
evaluateVO.setOnLineRate(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
//超标信息
|
||||||
|
List<RStatLimitRateDPO> limitRateDPOS = limitRateList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(limitRateDPOS)) {
|
||||||
|
double overTime = limitRateDPOS.stream().mapToDouble(x -> (x.getUaberranceOvertime() +
|
||||||
|
x.getUharm2Overtime() +
|
||||||
|
x.getUharm3Overtime() +
|
||||||
|
x.getUharm4Overtime() +
|
||||||
|
x.getUharm5Overtime() +
|
||||||
|
x.getUharm6Overtime() +
|
||||||
|
x.getUharm7Overtime() +
|
||||||
|
x.getUharm8Overtime() +
|
||||||
|
x.getUharm9Overtime() +
|
||||||
|
x.getUharm10Overtime() +
|
||||||
|
x.getUharm11Overtime() +
|
||||||
|
x.getUharm12Overtime() +
|
||||||
|
x.getUharm13Overtime() +
|
||||||
|
x.getUharm14Overtime() +
|
||||||
|
x.getUharm15Overtime() +
|
||||||
|
x.getUharm16Overtime() +
|
||||||
|
x.getUharm17Overtime() +
|
||||||
|
x.getUharm18Overtime() +
|
||||||
|
x.getUharm19Overtime() +
|
||||||
|
x.getUharm20Overtime() +
|
||||||
|
x.getUharm21Overtime() +
|
||||||
|
x.getUharm22Overtime() +
|
||||||
|
x.getUharm23Overtime() +
|
||||||
|
x.getUharm24Overtime() +
|
||||||
|
x.getUharm25Overtime())).sum();
|
||||||
|
double allTime = limitRateDPOS.stream().mapToDouble(x -> x.getAllTime() * 25.0).sum();
|
||||||
|
if (allTime == 0) {
|
||||||
|
evaluateVO.setPassRate(new BigDecimal(0));
|
||||||
|
} else {
|
||||||
|
evaluateVO.setPassRate(NumberUtil.round((1 - (overTime * 1.0 / allTime)) * 100, 2));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
evaluateVO.setPassRate(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
evaluateVO.setEvaluate(
|
||||||
|
ONINTEGRITY.multiply(evaluateVO.getIntegrityRate())
|
||||||
|
.add(ONLINERATE.multiply(evaluateVO.getOnLineRate())
|
||||||
|
.add(LIMITRATE.multiply(evaluateVO.getPassRate()))).stripTrailingZeros()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setList(String beginTime, String endTime, List<String> devIds, List<String> lineIds, List<RStatLimitRateDPO> limitRateList, List<RStatIntegrityD> onIntegrityList, List<RStatOnlinerateD> onlineRateList) {
|
||||||
|
RStatLimitQueryParam limitQueryParam = new RStatLimitQueryParam();
|
||||||
|
limitQueryParam.setIds(lineIds);
|
||||||
|
limitQueryParam.setDate(beginTime);
|
||||||
|
limitQueryParam.setEndDate(endTime);
|
||||||
|
limitRateList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(limitQueryParam).getData());
|
||||||
|
//监测点完整性
|
||||||
|
onIntegrityList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
||||||
|
.select("sum(real_time) as realTime,sum(due_time) as dueTime,line_index as lineIndex")
|
||||||
|
.in(CollUtil.isNotEmpty(lineIds), "line_index", lineIds)
|
||||||
|
.ge(StrUtil.isNotBlank(beginTime), "time_id", DateUtil.beginOfDay(DateUtil.parse(beginTime)))
|
||||||
|
.le(StrUtil.isNotBlank(endTime), "time_id", DateUtil.endOfDay(DateUtil.parse(endTime)))
|
||||||
|
.groupBy("line_index")));
|
||||||
|
//终端在线率
|
||||||
|
onlineRateList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
||||||
|
.select("sum(online_min) as onlineMin,sum(offline_min) as offlineMin,dev_index as devIndex")
|
||||||
|
.in(CollUtil.isNotEmpty(devIds), "dev_index", devIds)
|
||||||
|
.ge(StrUtil.isNotBlank(beginTime), "time_id", DateUtil.beginOfDay(DateUtil.parse(beginTime)))
|
||||||
|
.le(StrUtil.isNotBlank(endTime), "time_id", DateUtil.endOfDay(DateUtil.parse(endTime)))
|
||||||
|
.groupBy("dev_index")));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DeviceRunEvaluateVO> getRunEvaluateDetail(DevRunEvaluateParam param) {
|
||||||
|
List<DeviceRunEvaluateVO> info = new ArrayList<>();
|
||||||
|
List<DevDetailVO> devDetailVOList = deptLineService.getLineDetailByDeptIdAndDevIds(param.getOrgId(), param.getPowerFlag(), param.getIds());
|
||||||
|
if (CollUtil.isNotEmpty(devDetailVOList)) {
|
||||||
|
List<RStatLimitRateDPO> limitRateList = new ArrayList<>();
|
||||||
|
List<RStatOnlinerateD> onlineRateList = new ArrayList<>();
|
||||||
|
List<RStatIntegrityD> onIntegrityList = new ArrayList<>();
|
||||||
|
List<String> devIds = devDetailVOList.stream().map(DevDetailVO::getDevId).distinct().collect(Collectors.toList());
|
||||||
|
List<String> lineIds = devDetailVOList.stream().map(DevDetailVO::getLineId).distinct().collect(Collectors.toList());
|
||||||
|
setList(param.getStartTime(), param.getEndTime(), devIds, lineIds, limitRateList, onIntegrityList, onlineRateList);
|
||||||
|
Map<String, List<DevDetailVO>> devDetailMap = devDetailVOList.stream()
|
||||||
|
.collect(Collectors.groupingBy(x -> x.getDevId() + "_" + x.getDevName() + "_" + x.getSubName()));
|
||||||
|
devDetailMap.forEach((key, value) -> {
|
||||||
|
String[] split = key.split("_");
|
||||||
|
DeviceRunEvaluateVO vo = new DeviceRunEvaluateVO();
|
||||||
|
vo.setName(split[1]);
|
||||||
|
vo.setSubName(split[2]);
|
||||||
|
setEvaluate(Arrays.asList(split[0]),
|
||||||
|
value.stream().map(DevDetailVO::getLineId).distinct().collect(Collectors.toList()),
|
||||||
|
onIntegrityList, vo, onlineRateList, limitRateList);
|
||||||
|
info.add(vo);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TerminalEvaluateAreaVO> areaTerminalStatistic(DeviceInfoParam.BusinessParam businessParam) {
|
public List<TerminalEvaluateAreaVO> areaTerminalStatistic(DeviceInfoParam.BusinessParam businessParam) {
|
||||||
@@ -193,22 +231,22 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
List<MonitorInfoDTO> detailList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
List<MonitorInfoDTO> detailList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(detailList)) {
|
if (CollUtil.isNotEmpty(detailList)) {
|
||||||
List<String> ids = detailList.stream().map(MonitorInfoDTO::getId).distinct().collect(Collectors.toList());
|
List<String> ids = detailList.stream().map(MonitorInfoDTO::getId).distinct().collect(Collectors.toList());
|
||||||
List<String> devIds = detailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList());
|
List<String> devIds = detailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
||||||
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
||||||
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
||||||
getData(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,ids,devIds,businessParam.getSearchBeginTime(),businessParam.getSearchEndTime());
|
getData(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, ids, devIds, businessParam.getSearchBeginTime(), businessParam.getSearchEndTime());
|
||||||
Map<String, List<MonitorInfoDTO>> map = detailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId));
|
Map<String, List<MonitorInfoDTO>> map = detailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId));
|
||||||
map.forEach((objId, list) -> {
|
map.forEach((objId, list) -> {
|
||||||
UserLedgerVO userLedgerVO = userReportVOMap.get(objId);
|
UserLedgerVO userLedgerVO = userReportVOMap.get(objId);
|
||||||
List<String> lineIds = list.stream().map(MonitorInfoDTO::getId).collect(Collectors.toList());
|
List<String> lineIds = list.stream().map(MonitorInfoDTO::getId).collect(Collectors.toList());
|
||||||
List<String> devList = list.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList());
|
List<String> devList = list.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList());
|
||||||
List<RStatIntegrityD> temIntegrityList = rStatIntegrityDList.stream().filter(it->lineIds.contains(it.getLineIndex())).collect(Collectors.toList());
|
List<RStatIntegrityD> temIntegrityList = rStatIntegrityDList.stream().filter(it -> lineIds.contains(it.getLineIndex())).collect(Collectors.toList());
|
||||||
List<RStatLimitRateDPO> temlimitList = rStatLimitRateDPOList.stream().filter(it->lineIds.contains(it.getLineId())).collect(Collectors.toList());
|
List<RStatLimitRateDPO> temlimitList = rStatLimitRateDPOList.stream().filter(it -> lineIds.contains(it.getLineId())).collect(Collectors.toList());
|
||||||
List<RStatOnlinerateD> onlineList = rStatOnlinerateDList.stream().filter(it->devList.contains(it.getDevIndex())).collect(Collectors.toList());
|
List<RStatOnlinerateD> onlineList = rStatOnlinerateDList.stream().filter(it -> devList.contains(it.getDevIndex())).collect(Collectors.toList());
|
||||||
|
|
||||||
result.add(getScoreData(userLedgerVO.getProjectName(),devList,temIntegrityList,onlineList,temlimitList));
|
result.add(getScoreData(userLedgerVO.getProjectName(), devList, temIntegrityList, onlineList, temlimitList));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -216,15 +254,15 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
||||||
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
||||||
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
||||||
getData(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,generalDeviceDTO.getLineIndexes(),generalDeviceDTO.getDeviceIndexes(),businessParam.getSearchBeginTime(),businessParam.getSearchEndTime());
|
getData(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, generalDeviceDTO.getLineIndexes(), generalDeviceDTO.getDeviceIndexes(), businessParam.getSearchBeginTime(), businessParam.getSearchEndTime());
|
||||||
result.add(getScoreData(generalDeviceDTO.getName(),generalDeviceDTO.getDeviceIndexes(),rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList));
|
result.add(getScoreData(generalDeviceDTO.getName(), generalDeviceDTO.getDeviceIndexes(), rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private TerminalEvaluateAreaVO getScoreData(String name,List<String> devIds,List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList) {
|
private TerminalEvaluateAreaVO getScoreData(String name, List<String> devIds, List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList) {
|
||||||
double integrityRate = 0;
|
double integrityRate = 0;
|
||||||
double onlineRate = 0;
|
double onlineRate = 0;
|
||||||
double qualifiedRate = 0;
|
double qualifiedRate = 0;
|
||||||
@@ -233,11 +271,11 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
terminalEvaluateAreaVO.setCount(devIds.size());
|
terminalEvaluateAreaVO.setCount(devIds.size());
|
||||||
if (CollectionUtil.isNotEmpty(rStatIntegrityDList)) {
|
if (CollectionUtil.isNotEmpty(rStatIntegrityDList)) {
|
||||||
integrityRate = rStatIntegrityDList.stream().mapToDouble(it -> (double) it.getRealTime() / it.getDueTime()).average().orElse(0);
|
integrityRate = rStatIntegrityDList.stream().mapToDouble(it -> (double) it.getRealTime() / it.getDueTime()).average().orElse(0);
|
||||||
terminalEvaluateAreaVO.setIntegrity(NumberUtil.round(integrityRate*100,2).doubleValue());
|
terminalEvaluateAreaVO.setIntegrity(NumberUtil.round(integrityRate * 100, 2).doubleValue());
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(rStatOnlinerateDList)) {
|
if (CollectionUtil.isNotEmpty(rStatOnlinerateDList)) {
|
||||||
onlineRate = rStatOnlinerateDList.stream().mapToDouble(it -> (double) it.getOnlineRate() / it.getOnlineRate() + it.getOfflineMin()).average().orElse(0);
|
onlineRate = rStatOnlinerateDList.stream().mapToDouble(it -> (double) it.getOnlineRate() / it.getOnlineRate() + it.getOfflineMin()).average().orElse(0);
|
||||||
terminalEvaluateAreaVO.setOnline(NumberUtil.round(onlineRate*100,2).doubleValue());
|
terminalEvaluateAreaVO.setOnline(NumberUtil.round(onlineRate * 100, 2).doubleValue());
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) {
|
if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) {
|
||||||
qualifiedRate = rStatLimitRateDPOList.stream().mapToDouble(it -> {
|
qualifiedRate = rStatLimitRateDPOList.stream().mapToDouble(it -> {
|
||||||
@@ -252,20 +290,20 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
return 1 - ((double) (limit) / it.getAllTime() * 25);
|
return 1 - ((double) (limit) / it.getAllTime() * 25);
|
||||||
}
|
}
|
||||||
}).average().orElse(0);
|
}).average().orElse(0);
|
||||||
terminalEvaluateAreaVO.setQualified(NumberUtil.round(qualifiedRate*100,2).doubleValue());
|
terminalEvaluateAreaVO.setQualified(NumberUtil.round(qualifiedRate * 100, 2).doubleValue());
|
||||||
double pingFen = integrityRate * 0.5 + onlineRate * 0.2 + qualifiedRate * 0.3;
|
double pingFen = integrityRate * 0.5 + onlineRate * 0.2 + qualifiedRate * 0.3;
|
||||||
terminalEvaluateAreaVO.setScore(BigDecimal.valueOf(pingFen*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
terminalEvaluateAreaVO.setScore(BigDecimal.valueOf(pingFen * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
}
|
}
|
||||||
return terminalEvaluateAreaVO;
|
return terminalEvaluateAreaVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void getData(List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList,List<String> lineIds,List<String> devIds,String startTime,String endTime){
|
private void getData(List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList, List<String> lineIds, List<String> devIds, String startTime, String endTime) {
|
||||||
if(CollUtil.isNotEmpty(lineIds)){
|
if (CollUtil.isNotEmpty(lineIds)) {
|
||||||
rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
||||||
.select("sum(real_time) as realTime,sum(due_time) as dueTime,line_index as lineIndex")
|
.select("sum(real_time) as realTime,sum(due_time) as dueTime,line_index as lineIndex")
|
||||||
.in(CollUtil.isNotEmpty(lineIds), "line_index", lineIds)
|
.in(CollUtil.isNotEmpty(lineIds), "line_index", lineIds)
|
||||||
.between("time_id",startTime,endTime)
|
.between("time_id", startTime, endTime)
|
||||||
.groupBy("line_index")));
|
.groupBy("line_index")));
|
||||||
RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam();
|
RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam();
|
||||||
rStatLimitQueryParam.setIds(lineIds);
|
rStatLimitQueryParam.setIds(lineIds);
|
||||||
@@ -273,11 +311,11 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
|||||||
rStatLimitQueryParam.setEndDate(endTime);
|
rStatLimitQueryParam.setEndDate(endTime);
|
||||||
rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData());
|
rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData());
|
||||||
}
|
}
|
||||||
if(CollectionUtil.isNotEmpty(devIds)) {
|
if (CollectionUtil.isNotEmpty(devIds)) {
|
||||||
rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
||||||
.select("sum(online_min) as onlineMin,sum(offline_min) as offlineMin,dev_index as devIndex")
|
.select("sum(online_min) as onlineMin,sum(offline_min) as offlineMin,dev_index as devIndex")
|
||||||
.in(CollUtil.isNotEmpty(devIds), "dev_index", devIds)
|
.in(CollUtil.isNotEmpty(devIds), "dev_index", devIds)
|
||||||
.between("time_id",startTime,endTime)
|
.between("time_id", startTime, endTime)
|
||||||
.groupBy("dev_index")));
|
.groupBy("dev_index")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user