1、修复昨日95值不显示问题。

2、开发frpc端口自动分配功能。
This commit is contained in:
gaoyutao
2025-12-22 18:51:48 +08:00
parent 4e7a30ed61
commit 1af9d3fbc5
22 changed files with 1365 additions and 52 deletions
@@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@@ -157,16 +156,16 @@ public class RmResourceRegistrationController extends BaseController
@GetMapping("/getAlarmFlag")
public AjaxResult getAlarmFlag()
{
List<RmResourceRegistration> list = rmResourceRegistrationService.selectRmResourceRegistrationList(new RmResourceRegistration());
for (RmResourceRegistration item : list) {
boolean isAlarm = (item.getCpuUtil() != null && item.getCpuUtil().compareTo(BigDecimal.valueOf(80)) >= 0) ||
(item.getMemUtil() != null && item.getMemUtil().compareTo(BigDecimal.valueOf(60)) >= 0);
if (isAlarm) {
return success(true); // 只要有一个告警就返回
}
}
// List<RmResourceRegistration> list = rmResourceRegistrationService.selectRmResourceRegistrationList(new RmResourceRegistration());
// for (RmResourceRegistration item : list) {
//
// boolean isAlarm = (item.getCpuUtil() != null && item.getCpuUtil().compareTo(BigDecimal.valueOf(80)) >= 0) ||
// (item.getMemUtil() != null && item.getMemUtil().compareTo(BigDecimal.valueOf(60)) >= 0);
//
// if (isAlarm) {
// return success(true); // 只要有一个告警就返回
// }
// }
return success(false);
}
@@ -174,45 +174,89 @@ public class EpsServerRevenueConfigServiceImpl implements IEpsServerRevenueConfi
epsInitialTrafficData.setStartTime(epsServerRevenueConfig.getStartTime());
epsInitialTrafficData.setEndTime(epsServerRevenueConfig.getEndTime());
List<EpsInitialTrafficData> dataList = epsInitialTrafficDataService.getAllTraficMsg(epsInitialTrafficData);
if (dataList == null || dataList.isEmpty()) {
return R.ok("没有需要处理的数据");
}
List<EpsInitialTrafficData> batchList = new ArrayList<>();
for (EpsInitialTrafficData initialTrafficData : dataList) {
// 根据clientId查询业务名称
RmResourceRegistration rmResourceRegistration = new RmResourceRegistration();
rmResourceRegistration.setClientId(initialTrafficData.getClientId());
List<RmResourceRegistration> registerLst = rmResourceRegistrationMapper.selectRmResourceRegistrationList(rmResourceRegistration);
if(registerLst != null && !registerLst.isEmpty()){
RmResourceRegistration registerMsg = registerLst.get(0);
// 赋值
if(registerMsg != null){
String businessName = registerMsg.getBusinessName();
if(businessName != null){
initialTrafficData.setBusinessName(businessName);
// 根据业务名称查询业务代码
EpsBusiness epsBusiness = epsBusinessMapper.selectEpsBusinessByName(businessName);
if(epsBusiness != null){
initialTrafficData.setBusinessId(epsBusiness.getId());
int batchSize = 1000; // 每批处理数量
int totalCount = 0;
int successCount = 0;
int batchNumber = 0;
try {
for (EpsInitialTrafficData initialTrafficData : dataList) {
// 根据clientId查询业务名称
RmResourceRegistration rmResourceRegistration = new RmResourceRegistration();
rmResourceRegistration.setClientId(initialTrafficData.getClientId());
List<RmResourceRegistration> registerLst = rmResourceRegistrationMapper.selectRmResourceRegistrationList(rmResourceRegistration);
if(registerLst != null && !registerLst.isEmpty()){
RmResourceRegistration registerMsg = registerLst.get(0);
// 赋值
if(registerMsg != null){
String businessName = registerMsg.getBusinessName();
if(businessName != null){
initialTrafficData.setBusinessName(businessName);
// 根据业务名称查询业务代码
EpsBusiness epsBusiness = epsBusinessMapper.selectEpsBusinessByName(businessName);
if(epsBusiness != null){
initialTrafficData.setBusinessId(epsBusiness.getId());
}
}
initialTrafficData.setServiceSn(registerMsg.getHardwareSn());
initialTrafficData.setRevenueMethod("1");
}
initialTrafficData.setServiceSn(registerMsg.getHardwareSn());
initialTrafficData.setRevenueMethod("1");
}
// id自增
initialTrafficData.setId(null);
batchList.add(initialTrafficData);
// 达到批次大小时保存
if (batchList.size() >= batchSize) {
batchNumber++;
totalCount += batchList.size();
epsInitialTrafficData.setDataList(batchList);
epsInitialTrafficDataService.saveBatch(epsInitialTrafficData);
log.info("第{}批流量数据批量入库成功,数据量:{}", batchNumber, batchList.size());
// 处理接口名称
processInterfaceNames(batchList);
successCount += batchList.size();
// 清空当前批次,准备下一批
batchList = new ArrayList<>();
}
}
// id自增
initialTrafficData.setId(null);
batchList.add(initialTrafficData);
}
epsInitialTrafficData.setDataList(batchList);
// 流量相关数据入库
try {
epsInitialTrafficDataService.saveBatch(epsInitialTrafficData);
log.info("流量数据批量入库成功,数据量:{}", batchList.size());
// 接口名称保存
processInterfaceNames(batchList);
return R.ok("数据保存成功");
// 处理最后一批不足1000条的数据
if (!batchList.isEmpty()) {
batchNumber++;
totalCount += batchList.size();
epsInitialTrafficData.setDataList(batchList);
epsInitialTrafficDataService.saveBatch(epsInitialTrafficData);
log.info("第{}批流量数据批量入库成功,数据量:{}", batchNumber, batchList.size());
// 处理最后一批的接口名称
processInterfaceNames(batchList);
successCount += batchList.size();
}
log.info("流量数据批量入库完成,总批次数:{},总数据量:{},成功数量:{}",
batchNumber, totalCount, successCount);
if (successCount == totalCount) {
return R.ok("数据保存成功,共处理" + successCount + "条数据");
} else {
return R.fail("数据保存部分成功,应处理" + totalCount + "条,实际成功" + successCount + "");
}
} catch (Exception e) {
log.error("流量数据入库失败,数量:{},错误原因:{}",
batchList.size(), e.getMessage(), e);
return R.fail("数据保存失败:" + e.getMessage());
log.error("流量数据入库失败,已处理批次:{},成功数量:{},当前批次数量:{},错误原因:{}",
batchNumber, successCount, batchList.size(), e.getMessage(), e);
return R.fail("数据保存失败:" + e.getMessage() + ",已成功保存" + successCount + "");
}
}
/**
@@ -261,7 +305,7 @@ public class EpsServerRevenueConfigServiceImpl implements IEpsServerRevenueConfi
records.sort(Comparator
.comparing(AllInterfaceName::getInterfaceName)
.thenComparing(AllInterfaceName::getClientId)
.thenComparing(AllInterfaceName::getSwitchIp)
.thenComparing(AllInterfaceName::getServerIp)
.thenComparing(AllInterfaceName::getResourceType));
allInterfaceNameMapper.batchInsert(records);
@@ -177,6 +177,10 @@ public class RmMonitorConfigServiceImpl implements IRmMonitorConfigService
rmMonitorConfig.setDeployDevice(clientIds.toString());
}
List<EpsInitialTrafficData> serverTrafficList = epsInitialTrafficDataService.getServerTrafficByMonitorView(rmMonitorConfig);
if(serverTrafficList == null || serverTrafficList.isEmpty()){
log.warn("该监控项暂无数据");
continue;
}
RmMonitorConfigDetails configDetailsQuery = new RmMonitorConfigDetails();
configDetailsQuery.setMonitorId(rmMonitorConfig.getId());
// 查询该数据是否存在
@@ -206,6 +210,10 @@ public class RmMonitorConfigServiceImpl implements IRmMonitorConfigService
}
}else{
List<InitialSwitchInfoDetails> switchInfoDetailsList = initialSwitchInfoDetailsService.getMonitorViewDetails(rmMonitorConfig);
if(switchInfoDetailsList == null || switchInfoDetailsList.isEmpty()){
log.warn("该监控项暂无数据");
continue;
}
RmMonitorConfigDetails configDetailsQuery = new RmMonitorConfigDetails();
configDetailsQuery.setMonitorId(rmMonitorConfig.getId());
// 查询该数据是否存在
@@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="reportedBandwidth" column="reported_bandwidth" />
<result property="delAarmTime" column="del_alarm_time" />
<result property="delAlarmTime" column="del_alarm_time" />
</resultMap>
<sql id="selectRmResourceRegistrationVo">