交换机收益图形分析、服务器注册优化

This commit is contained in:
gaoyutao
2025-10-28 18:51:08 +08:00
parent 46bf4c4114
commit 8c439013e1
48 changed files with 1037 additions and 106 deletions
@@ -1,5 +1,6 @@
package com.ruoyi.rocketmq.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -7,6 +8,7 @@ import com.ruoyi.common.core.web.page.PageDomain;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.rocketmq.domain.RmDeploymentPolicy;
import com.ruoyi.rocketmq.service.IRmDeploymentPolicyService;
@@ -109,4 +111,14 @@ public class RmDeploymentPolicyController extends BaseController
{
return success(rmDeploymentPolicyService.issueDeploymentPolicy(id));
}
/**
* 新增服务器脚本策略
*/
@InnerAuth
@PostMapping("/addDeployScript")
public R<Integer> addDeployScript(@RequestBody RmDeploymentPolicy rmDeploymentPolicy)
{
return R.ok(rmDeploymentPolicyService.insertRmDeploymentPolicy(rmDeploymentPolicy));
}
}
@@ -65,6 +65,8 @@ public class InitialSwitchInfo extends BaseEntity
private String startTime;
private String endTime;
/** 计算方式 */
private String calculationMode;
}
@@ -90,6 +90,8 @@ public class RmDeploymentPolicy extends BaseEntity
private String scriptPath;
/** 业务脚本参数 */
private String defaultParams;
/** 业务下发名称 */
private String taskName;
/** 不在线数量 */
private Integer offlineNum;
/** 执行成功数量 */
@@ -105,6 +105,213 @@ public class MessageHandler {
registerHandler(MsgEnum.挂载上报.getValue(), this::handleMountPointMessage);
registerHandler(MsgEnum.系统其他上报.getValue(), this::handleOtherSystemMessage);
registerHandler(MsgEnum.心跳上报.getValue(), this::handleHeartbeatMessage);
registerHandler(MsgEnum.多公网IP探测.getValue(), this::handleNetWorkDelectMessage);
}
/**
* 保存网卡信息
* @param message
*/
private void handleNetWorkDelectMessage(DeviceMessage message) {
List<RegisterMsgVo> interfaces = JsonDataParser.parseJsonData(message.getData(), RegisterMsgVo.class);
if(!interfaces.isEmpty()) {
RegisterMsgVo registerMsg = interfaces.get(0);
// 时间戳转换
long timestamp = registerMsg.getTimestamp();
long millis = timestamp * 1000;
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
List<NetworkInfo> networkInfoList = registerMsg.getNetworkInfo();
if(!networkInfoList.isEmpty()){
if(networkInfoList.size()==1){
NetworkInfo networkInfo = networkInfoList.get(0);
// 查询该网卡信息是否存在
RmNetworkInterface queryParam = new RmNetworkInterface();
queryParam.setMacAddress(networkInfo.getMac());
queryParam.setNewFlag(1);
List<RmNetworkInterface> exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
if(exits.isEmpty()){
// 保存网卡信息
RmNetworkInterface insertData = new RmNetworkInterface();
// 业务ip和管理网ip
insertData.setBindIp("3");
insertData.setClientId(registerMsg.getClientId());
insertData.setIsp(networkInfo.getCarrier());
insertData.setCity(networkInfo.getCity());
insertData.setGateway(networkInfo.getGateway());
insertData.setInterfaceName(networkInfo.getName());
insertData.setIpv4Address(networkInfo.getIpv4());
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
insertData.setCreateTime(createTime);
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else{
RmNetworkInterface oldInterfaceMsg = exits.get(0);
if(!StringUtils.equals(networkInfo.getName(),oldInterfaceMsg.getInterfaceName())
|| !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){
// 查询该网卡信息是否旧数据
RmNetworkInterface query = new RmNetworkInterface();
query.setMacAddress(networkInfo.getMac());
query.setNewFlag(999);
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
if(!oldExits.isEmpty()){
// 先删除旧数据
oldExits.forEach(oldMsg ->{
rmNetworkInterfaceService.deleteRmNetworkInterfaceById(oldMsg.getId());
});
}
// 先将已存在的改为旧数据
RmNetworkInterface oldData = new RmNetworkInterface();
oldData.setNewFlag(0);
oldData.setMacAddress(networkInfo.getMac());
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData);
RmNetworkInterface insertData = new RmNetworkInterface();
insertData.setMacAddress(networkInfo.getMac());
insertData.setIsp(networkInfo.getCarrier());
insertData.setCity(networkInfo.getCity());
insertData.setGateway(networkInfo.getGateway());
insertData.setInterfaceName(networkInfo.getName());
insertData.setIpv4Address(networkInfo.getIpv4());
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else {
RmNetworkInterface updateData = new RmNetworkInterface();
// 检查其他字段是否需要更新
boolean needUpdate = false;
// 逐个字段比较是否需要更新
if (!StringUtils.equals(networkInfo.getCity(), oldInterfaceMsg.getCity())) {
updateData.setCity(networkInfo.getCity());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getIpv4(), oldInterfaceMsg.getIpv4Address())) {
updateData.setIpv4Address(networkInfo.getIpv4());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getProvince(), oldInterfaceMsg.getProvince())) {
updateData.setProvince(networkInfo.getProvince());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getPublicIp(), oldInterfaceMsg.getPublicIp())) {
updateData.setPublicIp(networkInfo.getPublicIp());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getCarrier(), oldInterfaceMsg.getIsp())) {
updateData.setIsp(networkInfo.getCarrier());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) {
updateData.setInterfaceType(networkInfo.getType());
needUpdate = true;
}
// 只有有字段变化时才执行更新
if (needUpdate) {
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
}
}
}
}else{
for (NetworkInfo networkInfo : networkInfoList) {
// 查询该网卡信息是否存在
RmNetworkInterface queryParam = new RmNetworkInterface();
queryParam.setMacAddress(networkInfo.getMac());
List<RmNetworkInterface> exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
if(exits.isEmpty()){
// 保存网卡信息
RmNetworkInterface insertData = new RmNetworkInterface();
// 业务ip和管理网ip
insertData.setClientId(registerMsg.getClientId());
insertData.setIsp(networkInfo.getCarrier());
insertData.setCity(networkInfo.getCity());
insertData.setGateway(networkInfo.getGateway());
insertData.setInterfaceName(networkInfo.getName());
insertData.setIpv4Address(networkInfo.getIpv4());
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
insertData.setCreateTime(createTime);
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else{
RmNetworkInterface oldInterfaceMsg = exits.get(0);
if(!StringUtils.equals(networkInfo.getName(),oldInterfaceMsg.getInterfaceName())
|| !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){
// 查询该网卡信息是否旧数据
RmNetworkInterface query = new RmNetworkInterface();
query.setMacAddress(networkInfo.getMac());
query.setNewFlag(999);
List<RmNetworkInterface> oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam);
if(!oldExits.isEmpty()){
// 先删除旧数据
oldExits.forEach(oldMsg ->{
rmNetworkInterfaceService.deleteRmNetworkInterfaceById(oldMsg.getId());
});
}
// 先将已存在的改为旧数据
RmNetworkInterface oldData = new RmNetworkInterface();
oldData.setNewFlag(0);
oldData.setMacAddress(networkInfo.getMac());
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData);
RmNetworkInterface insertData = new RmNetworkInterface();
insertData.setMacAddress(networkInfo.getMac());
insertData.setIsp(networkInfo.getCarrier());
insertData.setCity(networkInfo.getCity());
insertData.setGateway(networkInfo.getGateway());
insertData.setInterfaceName(networkInfo.getName());
insertData.setIpv4Address(networkInfo.getIpv4());
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else {
RmNetworkInterface updateData = new RmNetworkInterface();
// 检查其他字段是否需要更新
boolean needUpdate = false;
// 逐个字段比较是否需要更新
if (!StringUtils.equals(networkInfo.getCity(), oldInterfaceMsg.getCity())) {
updateData.setCity(networkInfo.getCity());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getIpv4(), oldInterfaceMsg.getIpv4Address())) {
updateData.setIpv4Address(networkInfo.getIpv4());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getProvince(), oldInterfaceMsg.getProvince())) {
updateData.setProvince(networkInfo.getProvince());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getPublicIp(), oldInterfaceMsg.getPublicIp())) {
updateData.setPublicIp(networkInfo.getPublicIp());
needUpdate = true;
updateData.setBindIp("0");
// 修改绑定公网ip状态
RmResourceRegistrationRemote updateParam = new RmResourceRegistrationRemote();
updateParam.setClientId(registerMsg.getClientId());
updateParam.setMultiPublicIpStatus("0");
remoteRevenueConfigService.updateStatusByResource(updateParam, SecurityConstants.INNER);
}
if (!StringUtils.equals(networkInfo.getCarrier(), oldInterfaceMsg.getIsp())) {
updateData.setIsp(networkInfo.getCarrier());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) {
updateData.setInterfaceType(networkInfo.getType());
needUpdate = true;
}
// 只有有字段变化时才执行更新
if (needUpdate) {
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
}
}
}
}
}
}
}
}
/**
@@ -169,6 +376,7 @@ public class MessageHandler {
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
insertData.setCreateTime(createTime);
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else{
@@ -201,6 +409,7 @@ public class MessageHandler {
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else {
RmNetworkInterface updateData = new RmNetworkInterface();
@@ -227,6 +436,10 @@ public class MessageHandler {
updateData.setIsp(networkInfo.getCarrier());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) {
updateData.setInterfaceType(networkInfo.getType());
needUpdate = true;
}
// 只有有字段变化时才执行更新
if (needUpdate) {
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
@@ -252,6 +465,7 @@ public class MessageHandler {
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
insertData.setCreateTime(createTime);
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else{
@@ -284,6 +498,7 @@ public class MessageHandler {
insertData.setMacAddress(networkInfo.getMac());
insertData.setProvince(networkInfo.getProvince());
insertData.setPublicIp(networkInfo.getPublicIp());
insertData.setInterfaceType(networkInfo.getType());
rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
}else {
RmNetworkInterface updateData = new RmNetworkInterface();
@@ -316,6 +531,10 @@ public class MessageHandler {
updateData.setIsp(networkInfo.getCarrier());
needUpdate = true;
}
if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) {
updateData.setInterfaceType(networkInfo.getType());
needUpdate = true;
}
// 只有有字段变化时才执行更新
if (needUpdate) {
rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
@@ -325,7 +544,6 @@ public class MessageHandler {
}
}
}
}
}
@@ -566,6 +784,8 @@ public class MessageHandler {
RmResourceRegistrationRemote updateData = new RmResourceRegistrationRemote();
updateData.setClientId(message.getClientId());
updateData.setLogicalNodeId(heartbeat.getLogicalNode());
updateData.setAgentVersion(version);
updateData.setOnboardTime(DateUtils.getNowDate());
remoteRevenueConfigService.innerUpdateRegist(updateData, SecurityConstants.INNER);
// agent更新结果存储
RmAgentManagement query = new RmAgentManagement();
@@ -102,4 +102,5 @@ public interface IInitialSwitchInfoService
* @return
*/
Map<String, Object> switchNetErrDiscardsEcharts(InitialSwitchInfo initialSwitchInfo);
}
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialBandwidthTraffic;
import com.ruoyi.rocketmq.mapper.InitialBandwidthTrafficMapper;
import com.ruoyi.rocketmq.service.IInitialBandwidthTrafficService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.utils.TableRouterUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialCpuInfo;
import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
import com.ruoyi.rocketmq.service.IInitialCpuInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -16,7 +16,8 @@ import java.util.List;
import java.util.Map;
import java.util.function.Function;
import static com.ruoyi.rocketmq.utils.EchartsDataUtils.convertMicrosecondsToSeconds;
import static com.ruoyi.common.core.utils.EchartsDataUtils.convertMicrosecondsToSeconds;
/**
* CPU监控信息Service业务层处理
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialDiskInfo;
import com.ruoyi.rocketmq.mapper.InitialDiskInfoMapper;
import com.ruoyi.rocketmq.service.IInitialDiskInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialDockerInfo;
import com.ruoyi.rocketmq.mapper.InitialDockerInfoMapper;
import com.ruoyi.rocketmq.service.IInitialDockerInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialMemoryInfo;
import com.ruoyi.rocketmq.mapper.InitialMemoryInfoMapper;
import com.ruoyi.rocketmq.service.IInitialMemoryInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialMountPointInfo;
import com.ruoyi.rocketmq.mapper.InitialMountPointInfoMapper;
import com.ruoyi.rocketmq.service.IInitialMountPointInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,10 +1,12 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.common.core.utils.SpeedUtils;
import com.ruoyi.rocketmq.domain.InitialSwitchInfo;
import com.ruoyi.rocketmq.mapper.InitialSwitchInfoMapper;
import com.ruoyi.rocketmq.service.IInitialSwitchInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import com.ruoyi.system.api.RemoteRevenueConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -12,6 +14,8 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -29,6 +33,8 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService
{
@Autowired
private InitialSwitchInfoMapper initialSwitchInfoMapper;
@Autowired
private RemoteRevenueConfigService remoteRevenueConfigService;
/**
* 查询交换机流量监控信息
@@ -140,10 +146,26 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService
@Override
public Map<String, Object> switchNetSpeedEcharts(InitialSwitchInfo initialSwitchInfo) {
List<InitialSwitchInfo> list = initialSwitchInfoMapper.selectInitialSwitchInfoList(initialSwitchInfo);
Map<String, Function<InitialSwitchInfo, ?>> extractors = new LinkedHashMap<>();
extractors.put("netInSpeedData", info -> info.getInSpeed());
extractors.put("netOutSpeedData", info -> info.getOutSpeed());
return EchartsDataUtils.buildEchartsData(list, InitialSwitchInfo::getCreateTime, extractors);
try {
String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed");
BigDecimal divisor = SpeedUtils.getDivisor(unit);
Map<String, Function<InitialSwitchInfo, ?>> extractors = new LinkedHashMap<>();
extractors.put("netInSpeedData", info ->
info != null && info.getInSpeed() != null ?
info.getInSpeed().divide(divisor, 0, RoundingMode.HALF_UP) :
0);
extractors.put("netOutSpeedData", info ->
info != null && info.getOutSpeed() != null ?
info.getOutSpeed().divide(divisor, 0, RoundingMode.HALF_UP) :
0);
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsData(list, InitialSwitchInfo::getCreateTime, extractors);
resultMap.put("unit", unit);
return resultMap;
} catch (Exception e){
e.printStackTrace();
}
return new HashMap<>();
}
/**
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialSwitchMpuInfo;
import com.ruoyi.rocketmq.mapper.InitialSwitchMpuInfoMapper;
import com.ruoyi.rocketmq.service.IInitialSwitchMpuInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialSwitchOpticalModule;
import com.ruoyi.rocketmq.mapper.InitialSwitchOpticalModuleMapper;
import com.ruoyi.rocketmq.service.IInitialSwitchOpticalModuleService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,11 +1,11 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialSwitchOtherCollectData;
import com.ruoyi.rocketmq.enums.SwitchLogo;
import com.ruoyi.rocketmq.mapper.InitialSwitchOtherCollectDataMapper;
import com.ruoyi.rocketmq.service.IInitialSwitchOtherCollectDataService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,10 +1,10 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialSwitchPowerSupply;
import com.ruoyi.rocketmq.mapper.InitialSwitchPowerSupplyMapper;
import com.ruoyi.rocketmq.service.IInitialSwitchPowerSupplyService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,6 +1,7 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialCpuInfo;
import com.ruoyi.rocketmq.domain.InitialMemoryInfo;
import com.ruoyi.rocketmq.domain.InitialSystemInfo;
@@ -9,7 +10,6 @@ import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
import com.ruoyi.rocketmq.mapper.InitialMemoryInfoMapper;
import com.ruoyi.rocketmq.mapper.InitialSystemInfoMapper;
import com.ruoyi.rocketmq.service.IInitialSystemInfoService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1,13 +1,13 @@
package com.ruoyi.rocketmq.service.impl;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.EchartsDataUtils;
import com.ruoyi.rocketmq.domain.InitialCpuInfo;
import com.ruoyi.rocketmq.domain.InitialSystemOtherCollectData;
import com.ruoyi.rocketmq.enums.ServerLogoEnum;
import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
import com.ruoyi.rocketmq.mapper.InitialSystemOtherCollectDataMapper;
import com.ruoyi.rocketmq.service.IInitialSystemOtherCollectDataService;
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -77,6 +77,7 @@ public class RmDeploymentPolicyServiceImpl implements IRmDeploymentPolicyService
List<RmDeploymentPolicy> deploymentPolicyList = rmDeploymentPolicyMapper.selectRmDeploymentPolicyList(rmDeploymentPolicy);
// 包含设备名称赋值
deploymentPolicyList.forEach(policy -> {
getIncludeNameById(policy);
// 不在线数量赋值
String deviceMsg = policy.getDeployDevice();
@@ -109,8 +109,10 @@ public class RmResourceRemoteServiceImpl implements IRmResourceRemoteService
RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote();
queryParam.setHardwareSn(rmResourceRemote.getHardwareSn());
R<RmResourceRegistrationRemote> registrationRemote = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER);
RmResourceRegistrationRemote resourceMsg = registrationRemote.getData();
resultMap.put("resourceMsg", resourceMsg);
if(registrationRemote != null && registrationRemote.getData() != null){
RmResourceRegistrationRemote resourceMsg = registrationRemote.getData();
resultMap.put("resourceMsg", resourceMsg);
}
// 脚本执行结果构建
List<Map<String, Object>> scriptList = new ArrayList<>();
List<RmResourceRemote> reslutList = rmResourceRemoteMapper.selectRmResourceRemoteList(rmResourceRemote);
@@ -1,53 +0,0 @@
package com.ruoyi.rocketmq.utils;
import com.ruoyi.common.core.utils.DateUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
public class EchartsDataUtils {
/**
* 构建ECharts图表数据
* @param list 原始数据列表
* @param timeExtractor 时间字段提取函数
* @param dataExtractors 数据提取器Map (key: 数据名称, value: 数据提取函数)
* @param <T> 数据类型泛型
* @return 包含xData和yData的Map
*/
public static <T> Map<String, Object> buildEchartsData(
List<T> list,
Function<T, Date> timeExtractor,
Map<String, Function<T, ?>> dataExtractors) {
// 按时间排序
List<T> sortedList = list.stream()
.sorted(Comparator.comparing(timeExtractor))
.collect(Collectors.toList());
// 准备X轴数据
List<String> xAxisData = sortedList.stream()
.map(item -> DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", timeExtractor.apply(item)))
.collect(Collectors.toList());
// 准备Y轴数据
Map<String, Object> yData = new LinkedHashMap<>();
dataExtractors.forEach((name, extractor) -> {
yData.put(name, sortedList.stream().map(extractor).collect(Collectors.toList()));
});
// 构建返回结果
Map<String, Object> result = new HashMap<>();
result.put("xData", xAxisData);
result.put("yData", yData);
return result;
}
/**
* 微秒转秒
*/
public static double convertMicrosecondsToSeconds(long microseconds) {
return microseconds / 1_000_000.0;
}
}
@@ -35,7 +35,7 @@
<include refid="selectInitialSwitchInfoVo"/>
<where>
<if test="clientId != null and clientId != ''"> and client_id = #{clientId}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="name != null and name != ''"> and name = #{name}</if>
<if test="inBytes != null "> and in_bytes = #{inBytes}</if>
<if test="outBytes != null "> and out_bytes = #{outBytes}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
@@ -178,7 +178,7 @@
<select id="getSwitchNetDetailsMsg" parameterType="String" resultMap="InitialSwitchInfoResult">
<include refid="selectInitialSwitchInfoVo"/>
where client_id = #{clientId}
where client_id = #{clientId} and name = #{name}
limit 1
</select>
</mapper>
@@ -23,17 +23,15 @@
<result property="updateTime" column="update_time" />
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="deployDevice" column="deploy_device" />
<result property="scriptName" column="script_name" />
<result property="scriptPath" column="script_path" />
<result property="defaultParams" column="default_params" />
<result property="deployDevice" column="deploy_device" />
<result property="taskName" column="task_name" />
</resultMap>
<sql id="selectRmDeploymentPolicyVo">
select id, policy_name, description, resource_group_id, included_devices_id, source_file_path_type,
source_file_path, target_directory, command_content, execution_method, scheduled_time, policy_status,
deploy_time, script_type, create_time, update_time, create_by, update_by, script_name, script_path,
default_params, deploy_device from rm_deployment_policy
select id, policy_name, description, resource_group_id, included_devices_id, source_file_path_type, source_file_path, target_directory, command_content, execution_method, scheduled_time, policy_status, deploy_time, script_type, create_time, update_time, create_by, update_by, deploy_device, script_name, script_path, default_params, task_name from rm_deployment_policy
</sql>
<select id="selectRmDeploymentPolicyList" parameterType="RmDeploymentPolicy" resultMap="RmDeploymentPolicyResult">
@@ -47,14 +45,16 @@
<if test="sourceFilePath != null and sourceFilePath != ''"> and source_file_path = #{sourceFilePath}</if>
<if test="targetDirectory != null and targetDirectory != ''"> and target_directory = #{targetDirectory}</if>
<if test="commandContent != null and commandContent != ''"> and command_content = #{commandContent}</if>
<if test="executionMethod != null"> and execution_method = #{executionMethod}</if>
<if test="scheduledTime != null and scheduledTime != ''"> and scheduled_time = #{scheduledTime}</if>
<if test="executionMethod != null "> and execution_method = #{executionMethod}</if>
<if test="scheduledTime != null "> and scheduled_time = #{scheduledTime}</if>
<if test="policyStatus != null and policyStatus != ''"> and policy_status = #{policyStatus}</if>
<if test="deployTime != null "> and deploy_time = #{deployTime}</if>
<if test="scriptType != null and scriptType != ''"> and script_type = #{scriptType}</if>
<if test="scriptName != null and scriptName != ''"> and script_name = #{scriptName}</if>
<if test="deployDevice != null and deployDevice != ''"> and deploy_device = #{deployDevice}</if>
<if test="scriptName != null and scriptName != ''"> and script_name like concat('%', #{scriptName}, '%')</if>
<if test="scriptPath != null and scriptPath != ''"> and script_path = #{scriptPath}</if>
<if test="defaultParams != null and defaultParams != ''"> and default_params = #{defaultParams}</if>
<if test="taskName != null and taskName != ''"> and task_name like concat('%', #{taskName}, '%')</if>
</where>
</select>
@@ -83,10 +83,11 @@
<if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="deployDevice != null">deploy_device,</if>
<if test="scriptName != null">script_name,</if>
<if test="scriptPath != null">script_path,</if>
<if test="defaultParams != null">default_params,</if>
<if test="deployDevice != null">deploy_device,</if>
<if test="taskName != null">task_name,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="policyName != null and policyName != ''">#{policyName},</if>
@@ -106,10 +107,11 @@
<if test="updateTime != null">#{updateTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="deployDevice != null">#{deployDevice},</if>
<if test="scriptName != null">#{scriptName},</if>
<if test="scriptPath != null">#{scriptPath},</if>
<if test="defaultParams != null">#{defaultParams},</if>
<if test="deployDevice != null">#{deployDevice},</if>
<if test="taskName != null">#{taskName},</if>
</trim>
</insert>
@@ -119,7 +121,6 @@
<if test="policyName != null and policyName != ''">policy_name = #{policyName},</if>
<if test="description != null">description = #{description},</if>
<if test="resourceGroupId != null">resource_group_id = #{resourceGroupId},</if>
<if test="resourceGroupIdNull != null">resource_group_id = null,</if>
<if test="includedDevicesId != null">included_devices_id = #{includedDevicesId},</if>
<if test="sourceFilePathType != null">source_file_path_type = #{sourceFilePathType},</if>
<if test="sourceFilePath != null and sourceFilePath != ''">source_file_path = #{sourceFilePath},</if>
@@ -134,10 +135,11 @@
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="deployDevice != null">deploy_device = #{deployDevice},</if>
<if test="scriptName != null">script_name = #{scriptName},</if>
<if test="scriptPath != null">script_path = #{scriptPath},</if>
<if test="defaultParams != null">default_params = #{defaultParams},</if>
<if test="deployDevice != null">deploy_device = #{deployDevice},</if>
<if test="taskName != null">task_name = #{taskName},</if>
</trim>
where id = #{id}
</update>