增加日志控制、优化金山95值自动计算方法

This commit is contained in:
gaoyutao
2025-11-03 18:51:00 +08:00
parent 841dd84a99
commit d1db8a5865
4 changed files with 138 additions and 24 deletions
@@ -1,8 +1,9 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.RmRegistrationMachine;
import java.util.List;
/**
* 绑定金山machinecodeMapper接口
*
@@ -58,4 +59,10 @@ public interface RmRegistrationMachineMapper
* @return 结果
*/
public int deleteRmRegistrationMachineByIds(Long[] ids);
/**
* 获取绑定的clientId
* @return
*/
List<RmRegistrationMachine> getAllMachineClientId();
}
@@ -49,6 +49,8 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
private EpsBusinessDeployMapper epsBusinessDeployMapper;
@Autowired
private RmEpsTopologyManagementMapper rmEpsTopologyManagementMapper;
@Autowired
private RmRegistrationMachineMapper rmRegistrationMachineMapper;
@Override
public void createNextMonthTables() {
LocalDate nextMonth = LocalDate.now().plusMonths(1);
@@ -271,32 +273,34 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
@Override
public void calculate95ByJinShan(EpsInitialTrafficData queryParam,
String dailyStartTime, String dailyEndTime, String calculationMode) {
// 获取所有设备SN列表
List<AllInterfaceName> snList = allInterfaceNameMapper.getAllDeviceSn(new AllInterfaceName());
// 遍历处理每个设备
snList.forEach(interfaceName -> {
queryParam.setServiceSn(interfaceName.getDeviceSn());
queryParam.setStartTime(dailyStartTime);
queryParam.setEndTime(dailyEndTime);
List<EpsInitialTrafficData> dataList = query(queryParam);
// 获取已绑定金山Code的clientId列表
List<RmRegistrationMachine> rmRegistrationMachineList = rmRegistrationMachineMapper.getAllMachineClientId();
if(rmRegistrationMachineList != null && !rmRegistrationMachineList.isEmpty()){
// 遍历处理每个设备
rmRegistrationMachineList.forEach(interfaceName -> {
queryParam.setClientId(interfaceName.getClientId());
queryParam.setStartTime(dailyStartTime);
queryParam.setEndTime(dailyEndTime);
List<EpsInitialTrafficData> dataList = query(queryParam);
if (!dataList.isEmpty()) {
// 1. 提取并转换带宽值
List<BigDecimal> speedsInMbps = dataList.stream()
.map(data -> CalculateUtil.parseSpeedToMbps(data.getMachineFlow(), calculationMode))
.sorted()
.collect(Collectors.toList());
if (!dataList.isEmpty()) {
// 1. 提取并转换带宽值
List<BigDecimal> speedsInMbps = dataList.stream()
.map(data -> CalculateUtil.parseSpeedToMbps(data.getMachineFlow(), calculationMode))
.sorted()
.collect(Collectors.toList());
// 2. 计算95百分位
BigDecimal percentile95 = CalculateUtil.calculatePercentile(speedsInMbps, 0.95);
// 2. 计算95百分位
BigDecimal percentile95 = CalculateUtil.calculatePercentile(speedsInMbps, 0.95);
// 3. 保存结果
EpsInitialTrafficData epsInitialTrafficData = dataList.get(0);
epsInitialTrafficData.setResourceType("1");
epsInitialTrafficData.setBandwidthType("8");
saveBandwidthResult(epsInitialTrafficData, percentile95, dailyStartTime, calculationMode);
}
});
// 3. 保存结果
EpsInitialTrafficData epsInitialTrafficData = dataList.get(0);
epsInitialTrafficData.setResourceType("1");
epsInitialTrafficData.setBandwidthType("8");
saveBandwidthResult(epsInitialTrafficData, percentile95, dailyStartTime, calculationMode);
}
});
}
}
/**
@@ -74,4 +74,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<select id="getAllMachineClientId" resultType="RmRegistrationMachine">
select client_id clientId from rm_registration_machine
<where>
and client_id != ''
</where>
group by client_id
</select>
</mapper>