优化执行结果根据失败关键字筛选

优化告警日志
监控看板概览功能
This commit is contained in:
gaoyutao
2025-11-14 18:48:27 +08:00
parent d9bd70860c
commit 1adc72032a
25 changed files with 752 additions and 178 deletions

View File

@@ -130,7 +130,7 @@ public interface RemoteRevenueConfigService
@PostMapping("/bandwidth/getEpsNodeBandWidthList")
public R<List<EpsNodeBandwidthRemote>> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidthRemote epsNodeBandwidthRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@GetMapping("/businessScript/{id}")
@GetMapping("/businessScript/inner/{id}")
public R<EpsBusinessScriptRemote> getBusinessScriptMsgByScriptId(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@@ -1,6 +1,7 @@
package com.ruoyi.system.config;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.mapper.RmResourceRegistrationMapper;
import com.ruoyi.system.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -8,6 +9,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -39,6 +41,12 @@ public class TableScheduleConfig {
private IRmEpsTopologyManagementService rmEpsTopologyManagementService;
@Autowired
private IEpsMethodChangeRecordService epsMethodChangeRecordService;
@Autowired
private IRmMonitorConfigService rmMonitorConfigService;
@Autowired
private IRmMonitorConfigDetailsService rmMonitorConfigDetailsService;
@Autowired
private RmResourceRegistrationMapper rmResourceRegistrationMapper;
// 每月25号创建下月表
@Scheduled(cron = "0 0 0 25 * ?")
@@ -46,6 +54,71 @@ public class TableScheduleConfig {
public void createNextMonthTables() {
epsInitialTrafficDataService.createNextMonthTables();
}
@Scheduled(cron = "0 1/5 * * * ?")
public void sumTrafficMyMonitorConfig() {
// 查询所有配置
List<RmMonitorConfig> rmMonitorConfigList = rmMonitorConfigService.selectRmMonitorConfigList(new RmMonitorConfig());
if (rmMonitorConfigList == null || rmMonitorConfigList.isEmpty()) {
return;
}
for (RmMonitorConfig rmMonitorConfig : rmMonitorConfigList) {
// 判断资源类型
if("1".equals(rmMonitorConfig.getResourceType()) || "3".equals(rmMonitorConfig.getResourceType())){
if("3".equals(rmMonitorConfig.getResourceType())){
if(rmMonitorConfig.getBusinessName() == null){
log.warn("不存在业务");
continue;
}
// 根据业务代码查询服务器clientId
RmResourceRegistration queryRegist = new RmResourceRegistration();
queryRegist.setBusinessName(rmMonitorConfig.getBusinessName());
List<RmResourceRegistration> registrationList = rmResourceRegistrationMapper.getRegistrationTableInfoList(queryRegist);
StringBuilder clientIds = new StringBuilder();
if (registrationList != null && !registrationList.isEmpty()) {
for (RmResourceRegistration registration : registrationList) {
if (registration.getClientId() != null) {
if (clientIds.length() > 0) {
clientIds.append("\n");
}
clientIds.append(registration.getClientId());
}
}
}
rmMonitorConfig.setDeployDevice(clientIds.toString());
}
List<EpsInitialTrafficData> serverTrafficList = epsInitialTrafficDataService.getServerTrafficByMonitorView(rmMonitorConfig);
// 计算结果落入临时表
for (EpsInitialTrafficData epsInitialTrafficData : serverTrafficList) {
RmMonitorConfigDetails configDetails = new RmMonitorConfigDetails();
configDetails.setMonitorId(rmMonitorConfig.getId());
configDetails.setCreateTime(epsInitialTrafficData.getCreateTime());
// 查询该数据是否存在
List<RmMonitorConfigDetails> exitsList = rmMonitorConfigDetailsService.selectRmMonitorConfigDetailsList(configDetails);
if(exitsList == null || exitsList.isEmpty()){
configDetails.setInSpeed(new BigDecimal(epsInitialTrafficData.getInSpeed() == null ? "0" : epsInitialTrafficData.getInSpeed()));
configDetails.setOutSpeed(new BigDecimal(epsInitialTrafficData.getOutSpeed() == null ? "0" : epsInitialTrafficData.getOutSpeed()));
configDetails.setDeployDevice(rmMonitorConfig.getDeployDevice());
rmMonitorConfigDetailsService.insertRmMonitorConfigDetails(configDetails);
}
}
}else{
List<InitialSwitchInfoDetails> switchInfoDetailsList = initialSwitchInfoDetailsService.getMonitorViewDetails(rmMonitorConfig);
for (InitialSwitchInfoDetails initialSwitchInfoDetails : switchInfoDetailsList) {
RmMonitorConfigDetails configDetails = new RmMonitorConfigDetails();
configDetails.setMonitorId(rmMonitorConfig.getId());
configDetails.setCreateTime(initialSwitchInfoDetails.getCreateTime());
// 查询该数据是否存在
List<RmMonitorConfigDetails> exitsList = rmMonitorConfigDetailsService.selectRmMonitorConfigDetailsList(configDetails);
if(exitsList == null || exitsList.isEmpty()){
configDetails.setInSpeed(initialSwitchInfoDetails.getInSpeed());
configDetails.setOutSpeed(initialSwitchInfoDetails.getOutSpeed());
configDetails.setDeployDevice(rmMonitorConfig.getDeployDevice());
rmMonitorConfigDetailsService.insertRmMonitorConfigDetails(configDetails);
}
}
}
}
}
// 每天0点执行 计算95带宽值/日
@Scheduled(cron = "0 4 0 * * ?", zone = "Asia/Shanghai")

View File

@@ -1,11 +1,13 @@
package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
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.system.domain.EpsBusinessScript;
import com.ruoyi.system.service.IEpsBusinessScriptService;
@@ -52,7 +54,15 @@ public class EpsBusinessScriptController extends BaseController
{
return success(epsBusinessScriptService.selectEpsBusinessScriptById(id));
}
/**
* 获取业务脚本管理详细信息
*/
@GetMapping(value = "/inner/{id}")
@InnerAuth
public R<EpsBusinessScript> innerGetInfo(@PathVariable("id") Long id)
{
return R.ok(epsBusinessScriptService.selectEpsBusinessScriptById(id));
}
/**
* 新增业务脚本管理
*/

View File

@@ -82,11 +82,11 @@ public class EpsInitialTrafficDataController {
/**
* 监控看板-详情视图 出入流量
*/
@RequiresPermissions("system:bandwidth:list")
@PostMapping("/getServerTrafficByMonitorView")
public AjaxResult getServerTrafficByMonitorView(@RequestBody EpsInitialTrafficData queryParam)
{
Map<String, Object> echartsData = epsInitialTrafficDataService.getServerTrafficByMonitorView(queryParam);
return success(echartsData);
}
// @RequiresPermissions("system:bandwidth:list")
// @PostMapping("/getServerTrafficByMonitorView")
// public AjaxResult getServerTrafficByMonitorView(@RequestBody EpsInitialTrafficData queryParam)
// {
// Map<String, Object> echartsData = epsInitialTrafficDataService.getServerTrafficByMonitorView(queryParam);
// return success(echartsData);
// }
}

View File

@@ -130,13 +130,13 @@ public class InitialSwitchInfoDetailsController extends BaseController
/**
* 监控看板-详情视图 出入流量
*/
@RequiresPermissions("system:bandwidth:list")
@PostMapping("/getSwitchTrafficByMonitorView")
public AjaxResult getSwitchTrafficByMonitorView(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails)
{
Map<String, Object> echartsData = initialSwitchInfoDetailsService.getMonitorViewDetails(initialSwitchInfoDetails);
return success(echartsData);
}
// @RequiresPermissions("system:bandwidth:list")
// @PostMapping("/getSwitchTrafficByMonitorView")
// public AjaxResult getSwitchTrafficByMonitorView(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails)
// {
// Map<String, Object> echartsData = initialSwitchInfoDetailsService.getMonitorViewDetails(initialSwitchInfoDetails);
// return success(echartsData);
// }
/**
* 监控看板-详情视图 出入流量列表
*/

View File

@@ -0,0 +1,109 @@
package com.ruoyi.system.controller;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
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.RequiresPermissions;
import com.ruoyi.system.domain.RmMonitorConfigDetails;
import com.ruoyi.system.service.IRmMonitorConfigDetailsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 监控看板详情Controller
*
* @author gyt
* @date 2025-11-14
*/
@RestController
@RequestMapping("/monitorConfigDetails")
public class RmMonitorConfigDetailsController extends BaseController
{
@Autowired
private IRmMonitorConfigDetailsService rmMonitorConfigDetailsService;
/**
* 查询监控看板详情列表
*/
@RequiresPermissions("system:monitorConfigDetails:list")
@GetMapping("/list")
public TableDataInfo list(RmMonitorConfigDetails rmMonitorConfigDetails)
{
startPage();
List<RmMonitorConfigDetails> list = rmMonitorConfigDetailsService.selectRmMonitorConfigDetailsList(rmMonitorConfigDetails);
return getDataTable(list);
}
/**
* 导出监控看板详情列表
*/
@RequiresPermissions("system:monitorConfigDetails:export")
@Log(title = "监控看板详情", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, RmMonitorConfigDetails rmMonitorConfigDetails)
{
List<RmMonitorConfigDetails> list = rmMonitorConfigDetailsService.selectRmMonitorConfigDetailsList(rmMonitorConfigDetails);
ExcelUtil<RmMonitorConfigDetails> util = new ExcelUtil<RmMonitorConfigDetails>(RmMonitorConfigDetails.class);
util.exportExcel(response, list, "监控看板详情数据");
}
/**
* 获取监控看板详情详细信息
*/
@RequiresPermissions("system:monitorConfigDetails:query")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(rmMonitorConfigDetailsService.selectRmMonitorConfigDetailsById(id));
}
/**
* 新增监控看板详情
*/
@RequiresPermissions("system:monitorConfigDetails:add")
@Log(title = "监控看板详情", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody RmMonitorConfigDetails rmMonitorConfigDetails)
{
return toAjax(rmMonitorConfigDetailsService.insertRmMonitorConfigDetails(rmMonitorConfigDetails));
}
/**
* 修改监控看板详情
*/
@RequiresPermissions("system:monitorConfigDetails:edit")
@Log(title = "监控看板详情", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody RmMonitorConfigDetails rmMonitorConfigDetails)
{
return toAjax(rmMonitorConfigDetailsService.updateRmMonitorConfigDetails(rmMonitorConfigDetails));
}
/**
* 删除监控看板详情
*/
@RequiresPermissions("system:monitorConfigDetails:remove")
@Log(title = "监控看板详情", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(rmMonitorConfigDetailsService.deleteRmMonitorConfigDetailsByIds(ids));
}
/**
* 监控看板-详情视图 出入流量
*/
@RequiresPermissions("system:bandwidth:list")
@PostMapping("/getTrafficByMonitorView")
public AjaxResult getTrafficByMonitorView(@RequestBody RmMonitorConfigDetails queryParam)
{
Map<String, Object> echartsData = rmMonitorConfigDetailsService.getTrafficByMonitorView(queryParam);
return success(echartsData);
}
}

View File

@@ -1,9 +1,8 @@
package com.ruoyi.system.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
/**
* 监控配置对象 rm_monitor_config
@@ -11,6 +10,7 @@ import com.ruoyi.common.core.web.domain.BaseEntity;
* @author gyt
* @date 2025-11-12
*/
@Data
public class RmMonitorConfig extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -29,73 +29,16 @@ public class RmMonitorConfig extends BaseEntity
/** 资源类型 */
@Excel(name = "资源类型")
private String resourceType;
/** 业务代码 */
@Excel(name = "业务代码")
private String businessCode;
/** 业务名称 */
@Excel(name = "业务名称")
private String businessName;
/** 部署设备 */
@Excel(name = "部署设备")
private String deployDevice;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setConfigName(String configName)
{
this.configName = configName;
}
public String getConfigName()
{
return configName;
}
public void setMonitorStartTime(String monitorStartTime)
{
this.monitorStartTime = monitorStartTime;
}
public String getMonitorStartTime()
{
return monitorStartTime;
}
public void setResourceType(String resourceType)
{
this.resourceType = resourceType;
}
public String getResourceType()
{
return resourceType;
}
public void setDeployDevice(String deployDevice)
{
this.deployDevice = deployDevice;
}
public String getDeployDevice()
{
return deployDevice;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("configName", getConfigName())
.append("monitorStartTime", getMonitorStartTime())
.append("resourceType", getResourceType())
.append("deployDevice", getDeployDevice())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("createBy", getCreateBy())
.append("updateBy", getUpdateBy())
.toString();
}
}

View File

@@ -0,0 +1,53 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
* 监控看板详情对象 rm_monitor_config_details
*
* @author gyt
* @date 2025-11-14
*/
@Data
public class RmMonitorConfigDetails extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 自增主键ID */
private Long id;
/** 监控id */
@Excel(name = "监控id")
private Long monitorId;
/** 包含设备 */
@Excel(name = "包含设备")
private String deployDevice;
/** 接收流量(字节) */
@Excel(name = "接收流量(字节)")
private BigDecimal inBytes;
/** 发送流量(字节) */
@Excel(name = "发送流量(字节)")
private BigDecimal outBytes;
/** 接收流量bit/s */
@Excel(name = "接收流量", readConverterExp = "b=it/s")
private BigDecimal inSpeed;
/** 发送流量bit/s */
@Excel(name = "发送流量", readConverterExp = "b=it/s")
private BigDecimal outSpeed;
/** 开始时间 */
private String startTime;
/** 结束时间 */
private String endTime;
/** 单位 */
private String unit;
}

View File

@@ -304,4 +304,8 @@ public class RmResourceRegistration extends BaseEntity
private Date onboardTime;
/** 服务器列表 */
private String deployDevice;
/** 业务空标识 */
private boolean businessEmpty;
/** 逻辑节点空标识 */
private boolean logicalNodeEmpty;
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.RmMonitorConfigDetails;
/**
* 监控看板详情Mapper接口
*
* @author gyt
* @date 2025-11-14
*/
public interface RmMonitorConfigDetailsMapper
{
/**
* 查询监控看板详情
*
* @param id 监控看板详情主键
* @return 监控看板详情
*/
public RmMonitorConfigDetails selectRmMonitorConfigDetailsById(Long id);
/**
* 查询监控看板详情列表
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 监控看板详情集合
*/
public List<RmMonitorConfigDetails> selectRmMonitorConfigDetailsList(RmMonitorConfigDetails rmMonitorConfigDetails);
/**
* 新增监控看板详情
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 结果
*/
public int insertRmMonitorConfigDetails(RmMonitorConfigDetails rmMonitorConfigDetails);
/**
* 修改监控看板详情
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 结果
*/
public int updateRmMonitorConfigDetails(RmMonitorConfigDetails rmMonitorConfigDetails);
/**
* 删除监控看板详情
*
* @param id 监控看板详情主键
* @return 结果
*/
public int deleteRmMonitorConfigDetailsById(Long id);
/**
* 批量删除监控看板详情
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteRmMonitorConfigDetailsByIds(Long[] ids);
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.system.service;
import com.ruoyi.system.domain.EpsInitialTrafficData;
import com.ruoyi.system.domain.EpsNodeBandwidth;
import com.ruoyi.system.domain.RmMonitorConfig;
import java.math.BigDecimal;
import java.util.List;
@@ -93,5 +94,5 @@ public interface EpsInitialTrafficDataService {
* @param queryParam
* @return
*/
Map<String, Object> getServerTrafficByMonitorView(EpsInitialTrafficData queryParam);
List<EpsInitialTrafficData> getServerTrafficByMonitorView(RmMonitorConfig queryParam);
}

View File

@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.domain.EpsNodeBandwidth;
import com.ruoyi.system.domain.InitialSwitchInfoDetails;
import com.ruoyi.system.domain.RmMonitorConfig;
import java.math.BigDecimal;
import java.util.List;
@@ -115,7 +116,7 @@ public interface IInitialSwitchInfoDetailsService
* @param initialSwitchInfoDetails
* @return
*/
Map<String, Object> getMonitorViewDetails(InitialSwitchInfoDetails initialSwitchInfoDetails);
List<InitialSwitchInfoDetails> getMonitorViewDetails(RmMonitorConfig rmMonitorConfig);
/**
* 监控看板-详情视图 出入流量列表

View File

@@ -0,0 +1,70 @@
package com.ruoyi.system.service;
import com.ruoyi.system.domain.RmMonitorConfigDetails;
import java.util.List;
import java.util.Map;
/**
* 监控看板详情Service接口
*
* @author gyt
* @date 2025-11-14
*/
public interface IRmMonitorConfigDetailsService
{
/**
* 查询监控看板详情
*
* @param id 监控看板详情主键
* @return 监控看板详情
*/
public RmMonitorConfigDetails selectRmMonitorConfigDetailsById(Long id);
/**
* 查询监控看板详情列表
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 监控看板详情集合
*/
public List<RmMonitorConfigDetails> selectRmMonitorConfigDetailsList(RmMonitorConfigDetails rmMonitorConfigDetails);
/**
* 新增监控看板详情
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 结果
*/
public int insertRmMonitorConfigDetails(RmMonitorConfigDetails rmMonitorConfigDetails);
/**
* 修改监控看板详情
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 结果
*/
public int updateRmMonitorConfigDetails(RmMonitorConfigDetails rmMonitorConfigDetails);
/**
* 批量删除监控看板详情
*
* @param ids 需要删除的监控看板详情主键集合
* @return 结果
*/
public int deleteRmMonitorConfigDetailsByIds(Long[] ids);
/**
* 删除监控看板详情信息
*
* @param id 监控看板详情主键
* @return 结果
*/
public int deleteRmMonitorConfigDetailsById(Long id);
/**
* 监控看板-详情视图 出入流量
* @param queryParam
* @return
*/
Map<String, Object> getTrafficByMonitorView(RmMonitorConfigDetails queryParam);
}

View File

@@ -54,6 +54,8 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
private RmRegistrationMachineMapper rmRegistrationMachineMapper;
@Autowired
private IRmMonitorConfigService rmMonitorConfigService;
@Autowired
private RmResourceRegistrationMapper rmResourceRegistrationMapper;
@Override
public void createNextMonthTables() {
LocalDate nextMonth = LocalDate.now().plusMonths(1);
@@ -590,49 +592,43 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
/**
* 监控看板-详情视图 出入流量
* @param queryParam
* @param rmMonitorConfig
* @return
*/
@Override
public Map<String, Object> getServerTrafficByMonitorView(EpsInitialTrafficData queryParam) {
// 查询概览配置内容
RmMonitorConfig rmMonitorConfig = rmMonitorConfigService.selectRmMonitorConfigById(queryParam.getMonitorId());
public List<EpsInitialTrafficData> getServerTrafficByMonitorView(RmMonitorConfig rmMonitorConfig) {
if(rmMonitorConfig != null){
// 拿到开始时间
String startTime = rmMonitorConfig.getMonitorStartTime();
// 拿到结束时间
String endTime = DateUtils.dateTimeNow(DATE_TIME_FORMATTER);
// 拿到部署设备
String deoloyDevice = rmMonitorConfig.getDeployDevice();
if("3".equals(rmMonitorConfig.getResourceType())){
// 根据业务代码查询服务器clientId
RmResourceRegistration queryRegist = new RmResourceRegistration();
queryRegist.setBusinessName(rmMonitorConfig.getBusinessName());
List<RmResourceRegistration> registrationList = rmResourceRegistrationMapper.getRegistrationTableInfoList(queryRegist);
StringBuilder clientIds = new StringBuilder();
if (registrationList != null && !registrationList.isEmpty()) {
for (RmResourceRegistration registration : registrationList) {
if (registration.getClientId() != null) {
if (clientIds.length() > 0) {
clientIds.append("\n");
}
clientIds.append(registration.getClientId());
}
}
}
deoloyDevice = clientIds.toString();
}
String clientIds = deoloyDevice.replace("\n",",");
EpsInitialTrafficData queryParam = new EpsInitialTrafficData();
queryParam.setStartTime(startTime);
queryParam.setEndTime(endTime);
queryParam.setClientIds(clientIds);
List<EpsInitialTrafficData> list = getTrafficListByClientIds(queryParam);
if(list == null){
list = new ArrayList<>();
}
try {
String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed");
if(queryParam.getUnit() != null){
unit = queryParam.getUnit();
}
BigDecimal divisor = SpeedUtils.getDivisor(unit);
Map<String, Function<EpsInitialTrafficData, ?>> extractors = new LinkedHashMap<>();
extractors.put("netOutSpeedData", info ->
info != null && info.getOutSpeed() != null ?
new BigDecimal(info.getOutSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
0);
extractors.put("netMachineFlowData", info ->
info != null && info.getMachineFlow() != null ?
new BigDecimal(info.getMachineFlow()).divide(divisor, 2, RoundingMode.HALF_UP) :
0);
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
list, EpsInitialTrafficData::getCreateTime, extractors, queryParam.getStartTime(), queryParam.getEndTime()
);
resultMap.put("unit", unit);
return resultMap;
} catch (Exception e){
e.printStackTrace();
}
return list;
}
return null;
}

View File

@@ -926,19 +926,16 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
}
/**
* 监控看板-详情视图 出入流量
* @param initialSwitchInfoDetails
* @param rmMonitorConfig
* @return
*/
@Override
public Map<String, Object> getMonitorViewDetails(InitialSwitchInfoDetails initialSwitchInfoDetails) {
// 查询概览配置内容
RmMonitorConfig rmMonitorConfig = rmMonitorConfigService.selectRmMonitorConfigById(initialSwitchInfoDetails.getMonitorId());
public List<InitialSwitchInfoDetails> getMonitorViewDetails(RmMonitorConfig rmMonitorConfig) {
if(rmMonitorConfig != null){
// 拿到开始时间
String startTime = rmMonitorConfig.getMonitorStartTime();
// 拿到结束时间
String endTime = initialSwitchInfoDetails.getEndTime();
// 拿到选中的交换机
String endTime = DateUtils.dateTimeNow(DATE_TIME_FORMATTER);
String resources = rmMonitorConfig.getDeployDevice();
String clientIds = Arrays.stream(resources.split(","))
.map(msg -> msg.split(";"))
@@ -957,30 +954,7 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
queryParam.setClientIds(clientIds);
queryParam.setInterfaceNames(interfaceNames);
List<InitialSwitchInfoDetails> list = initialSwitchInfoDetailsMapper.sumSwitchTrafficByclientIds(queryParam);
try {
String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed");
if(initialSwitchInfoDetails.getUnit() != null){
unit = initialSwitchInfoDetails.getUnit();
}
BigDecimal divisor = SpeedUtils.getDivisor(unit);
Map<String, Function<InitialSwitchInfoDetails, ?>> extractors = new LinkedHashMap<>();
extractors.put("netInSpeedData", info ->
info != null && info.getInSpeed() != null ?
info.getInSpeed().divide(divisor, 2, RoundingMode.HALF_UP) :
0);
extractors.put("netOutSpeedData", info ->
info != null && info.getOutSpeed() != null ?
info.getOutSpeed().divide(divisor, 2, RoundingMode.HALF_UP) :
0);
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
list, InitialSwitchInfoDetails::getCreateTime, extractors,
queryParam.getStartTime(), queryParam.getEndTime());
resultMap.put("unit", unit);
return resultMap;
}catch (Exception e){
log.error(e.getMessage());
}
return list;
}
return null;
}

View File

@@ -0,0 +1,155 @@
package com.ruoyi.system.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.system.domain.RmMonitorConfig;
import com.ruoyi.system.domain.RmMonitorConfigDetails;
import com.ruoyi.system.mapper.RmMonitorConfigDetailsMapper;
import com.ruoyi.system.mapper.RmMonitorConfigMapper;
import com.ruoyi.system.service.IRmMonitorConfigDetailsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
/**
* 监控看板详情Service业务层处理
*
* @author gyt
* @date 2025-11-14
*/
@Service
public class RmMonitorConfigDetailsServiceImpl implements IRmMonitorConfigDetailsService
{
@Autowired
private RmMonitorConfigDetailsMapper rmMonitorConfigDetailsMapper;
@Autowired
private RmMonitorConfigMapper rmMonitorConfigMapper;
/**
* 查询监控看板详情
*
* @param id 监控看板详情主键
* @return 监控看板详情
*/
@Override
public RmMonitorConfigDetails selectRmMonitorConfigDetailsById(Long id)
{
return rmMonitorConfigDetailsMapper.selectRmMonitorConfigDetailsById(id);
}
/**
* 查询监控看板详情列表
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 监控看板详情
*/
@Override
public List<RmMonitorConfigDetails> selectRmMonitorConfigDetailsList(RmMonitorConfigDetails rmMonitorConfigDetails)
{
return rmMonitorConfigDetailsMapper.selectRmMonitorConfigDetailsList(rmMonitorConfigDetails);
}
/**
* 新增监控看板详情
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 结果
*/
@Override
public int insertRmMonitorConfigDetails(RmMonitorConfigDetails rmMonitorConfigDetails)
{
rmMonitorConfigDetails.setCreateTime(DateUtils.getNowDate());
return rmMonitorConfigDetailsMapper.insertRmMonitorConfigDetails(rmMonitorConfigDetails);
}
/**
* 修改监控看板详情
*
* @param rmMonitorConfigDetails 监控看板详情
* @return 结果
*/
@Override
public int updateRmMonitorConfigDetails(RmMonitorConfigDetails rmMonitorConfigDetails)
{
rmMonitorConfigDetails.setUpdateTime(DateUtils.getNowDate());
return rmMonitorConfigDetailsMapper.updateRmMonitorConfigDetails(rmMonitorConfigDetails);
}
/**
* 批量删除监控看板详情
*
* @param ids 需要删除的监控看板详情主键
* @return 结果
*/
@Override
public int deleteRmMonitorConfigDetailsByIds(Long[] ids)
{
return rmMonitorConfigDetailsMapper.deleteRmMonitorConfigDetailsByIds(ids);
}
/**
* 删除监控看板详情信息
*
* @param id 监控看板详情主键
* @return 结果
*/
@Override
public int deleteRmMonitorConfigDetailsById(Long id)
{
return rmMonitorConfigDetailsMapper.deleteRmMonitorConfigDetailsById(id);
}
/**
* 监控看板-详情视图 出入流量
* @param queryParam
* @return
*/
@Override
public Map<String, Object> getTrafficByMonitorView(RmMonitorConfigDetails queryParam) {
// 查询概览配置内容
RmMonitorConfig rmMonitorConfig = rmMonitorConfigMapper.selectRmMonitorConfigById(queryParam.getMonitorId());
if(rmMonitorConfig != null){
// 拿到开始时间
String startTime = rmMonitorConfig.getMonitorStartTime();
queryParam.setStartTime(startTime);
List<RmMonitorConfigDetails> list = rmMonitorConfigDetailsMapper.selectRmMonitorConfigDetailsList(queryParam);
if(list == null){
list = new ArrayList<>();
}
try {
String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed");
if(queryParam.getUnit() != null){
unit = queryParam.getUnit();
}
BigDecimal divisor = SpeedUtils.getDivisor(unit);
Map<String, Function<RmMonitorConfigDetails, ?>> extractors = new LinkedHashMap<>();
extractors.put("netOutSpeedData", info ->
info != null && info.getOutSpeed() != null ?
info.getOutSpeed().divide(divisor, 2, RoundingMode.HALF_UP) :
0);
extractors.put("netInSpeedData", info ->
info != null && info.getInSpeed() != null ?
info.getInSpeed().divide(divisor, 2, RoundingMode.HALF_UP) :
0);
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
list, RmMonitorConfigDetails::getCreateTime, extractors, queryParam.getStartTime(), queryParam.getEndTime()
);
resultMap.put("unit", unit);
return resultMap;
} catch (Exception e){
e.printStackTrace();
}
}
return null;
}
}

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.RmMonitorConfigDetailsMapper">
<resultMap type="RmMonitorConfigDetails" id="RmMonitorConfigDetailsResult">
<result property="id" column="id" />
<result property="monitorId" column="monitor_id" />
<result property="deployDevice" column="deploy_device" />
<result property="inBytes" column="in_bytes" />
<result property="outBytes" column="out_bytes" />
<result property="inSpeed" column="in_speed" />
<result property="outSpeed" column="out_speed" />
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectRmMonitorConfigDetailsVo">
select id, monitor_id, deploy_device, in_bytes, out_bytes, in_speed, out_speed, create_by, update_by, create_time, update_time from rm_monitor_config_details
</sql>
<select id="selectRmMonitorConfigDetailsList" parameterType="RmMonitorConfigDetails" resultMap="RmMonitorConfigDetailsResult">
<include refid="selectRmMonitorConfigDetailsVo"/>
<where>
<if test="monitorId != null "> and monitor_id = #{monitorId}</if>
<if test="deployDevice != null and deployDevice != ''"> and deploy_device = #{deployDevice}</if>
<if test="inBytes != null "> and in_bytes = #{inBytes}</if>
<if test="outBytes != null "> and out_bytes = #{outBytes}</if>
<if test="inSpeed != null "> and in_speed = #{inSpeed}</if>
<if test="outSpeed != null "> and out_speed = #{outSpeed}</if>
</where>
</select>
<select id="selectRmMonitorConfigDetailsById" parameterType="Long" resultMap="RmMonitorConfigDetailsResult">
<include refid="selectRmMonitorConfigDetailsVo"/>
where id = #{id}
</select>
<insert id="insertRmMonitorConfigDetails" parameterType="RmMonitorConfigDetails" useGeneratedKeys="true" keyProperty="id">
insert into rm_monitor_config_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="monitorId != null">monitor_id,</if>
<if test="deployDevice != null">deploy_device,</if>
<if test="inBytes != null">in_bytes,</if>
<if test="outBytes != null">out_bytes,</if>
<if test="inSpeed != null">in_speed,</if>
<if test="outSpeed != null">out_speed,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="monitorId != null">#{monitorId},</if>
<if test="deployDevice != null">#{deployDevice},</if>
<if test="inBytes != null">#{inBytes},</if>
<if test="outBytes != null">#{outBytes},</if>
<if test="inSpeed != null">#{inSpeed},</if>
<if test="outSpeed != null">#{outSpeed},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateRmMonitorConfigDetails" parameterType="RmMonitorConfigDetails">
update rm_monitor_config_details
<trim prefix="SET" suffixOverrides=",">
<if test="monitorId != null">monitor_id = #{monitorId},</if>
<if test="deployDevice != null">deploy_device = #{deployDevice},</if>
<if test="inBytes != null">in_bytes = #{inBytes},</if>
<if test="outBytes != null">out_bytes = #{outBytes},</if>
<if test="inSpeed != null">in_speed = #{inSpeed},</if>
<if test="outSpeed != null">out_speed = #{outSpeed},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteRmMonitorConfigDetailsById" parameterType="Long">
delete from rm_monitor_config_details where id = #{id}
</delete>
<delete id="deleteRmMonitorConfigDetailsByIds" parameterType="String">
delete from rm_monitor_config_details where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.RmMonitorConfigMapper">
<resultMap type="RmMonitorConfig" id="RmMonitorConfigResult">
<result property="id" column="id" />
<result property="configName" column="config_name" />
<result property="monitorStartTime" column="monitor_start_time" />
<result property="resourceType" column="resource_type" />
<result property="businessCode" column="business_code" />
<result property="businessName" column="business_name" />
<result property="deployDevice" column="deploy_device" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
@@ -17,19 +19,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectRmMonitorConfigVo">
select id, config_name, monitor_start_time, resource_type, deploy_device, create_time, update_time, create_by, update_by from rm_monitor_config
select id, config_name, monitor_start_time, resource_type, business_code, business_name, deploy_device, create_time, update_time, create_by, update_by from rm_monitor_config
</sql>
<select id="selectRmMonitorConfigList" parameterType="RmMonitorConfig" resultMap="RmMonitorConfigResult">
<include refid="selectRmMonitorConfigVo"/>
<where>
<where>
<if test="configName != null and configName != ''"> and config_name = #{configName}</if>
<if test="monitorStartTime != null and monitorStartTime != ''"> and monitor_start_time = #{monitorStartTime}</if>
<if test="resourceType != null and resourceType != ''"> and resource_type = #{resourceType}</if>
<if test="businessCode != null and businessCode != ''"> and business_code = #{businessCode}</if>
<if test="businessName != null and businessName != ''"> and business_name like concat('%', #{businessName}, '%')</if>
<if test="deployDevice != null and deployDevice != ''"> and deploy_device = #{deployDevice}</if>
</where>
</select>
<select id="selectRmMonitorConfigById" parameterType="Long" resultMap="RmMonitorConfigResult">
<include refid="selectRmMonitorConfigVo"/>
where id = #{id}
@@ -41,22 +45,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="configName != null and configName != ''">config_name,</if>
<if test="monitorStartTime != null and monitorStartTime != ''">monitor_start_time,</if>
<if test="resourceType != null and resourceType != ''">resource_type,</if>
<if test="businessCode != null">business_code,</if>
<if test="businessName != null">business_name,</if>
<if test="deployDevice != null and deployDevice != ''">deploy_device,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
</trim>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="configName != null and configName != ''">#{configName},</if>
<if test="monitorStartTime != null and monitorStartTime != ''">#{monitorStartTime},</if>
<if test="resourceType != null and resourceType != ''">#{resourceType},</if>
<if test="businessCode != null">#{businessCode},</if>
<if test="businessName != null">#{businessName},</if>
<if test="deployDevice != null and deployDevice != ''">#{deployDevice},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
</trim>
</trim>
</insert>
<update id="updateRmMonitorConfig" parameterType="RmMonitorConfig">
@@ -65,6 +73,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="configName != null and configName != ''">config_name = #{configName},</if>
<if test="monitorStartTime != null and monitorStartTime != ''">monitor_start_time = #{monitorStartTime},</if>
<if test="resourceType != null and resourceType != ''">resource_type = #{resourceType},</if>
<if test="businessCode != null">business_code = #{businessCode},</if>
<if test="businessName != null">business_name = #{businessName},</if>
<if test="deployDevice != null and deployDevice != ''">deploy_device = #{deployDevice},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
@@ -79,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteRmMonitorConfigByIds" parameterType="String">
delete from rm_monitor_config where id in
delete from rm_monitor_config where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>

View File

@@ -412,6 +412,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="businessName != null and businessName != ''"> and a.business_name like concat('%', #{businessName}, '%')</if>
<if test="logicalNodeId != null and logicalNodeId != ''"> and a.logical_node_id = #{logicalNodeId}</if>
<if test="multiPublicIpStatus != null and multiPublicIpStatus != ''"> and a.multi_public_ip_status = #{multiPublicIpStatus}</if>
<if test="businessEmpty"> and a.business_name is null</if>
<if test="logicalNodeEmpty"> and a.logical_node_id is null</if>
</where>
order by a.create_time desc
</select>

View File

@@ -84,6 +84,8 @@ public class RmDeploymentPolicy extends BaseEntity
private Boolean resourceGroupIdNull;
/** 部署设备 */
private String deployDevice;
/** 业务脚本id */
private Long scriptId;
/** 业务脚本名称 */
private String scriptName;
/** 业务脚本文件地址 */

View File

@@ -4,7 +4,8 @@ import lombok.Getter;
@Getter
public enum AlarmTypeEnum {
服务器下线("1", "服务器下线");
服务器下线("1", "服务器下线"),
交换机下线("2", "交换机下线");
private final String code;
private final String msg;
AlarmTypeEnum(String code, String msg){

View File

@@ -103,10 +103,14 @@ public class RmDeploymentPolicyServiceImpl implements IRmDeploymentPolicyService
}
});
}
policy.setSucessNum(successList.size());
policy.setSucessClientIds(successList);
policy.setFailNum(failList.size());
policy.setFailClientIds(failList);
// 对三个list分别去重
List<String> successListDict = successList.stream().distinct().collect(Collectors.toList());
List<String> failListDict = failList.stream().distinct().collect(Collectors.toList());
offOnlineList = offOnlineList.stream().distinct().collect(Collectors.toList());
policy.setSucessNum(successListDict.size());
policy.setSucessClientIds(successListDict);
policy.setFailNum(failListDict.size());
policy.setFailClientIds(failListDict);
policy.setOfflineNum(offOnlineList.size());
policy.setOfflineClientIds(offOnlineList);
}
@@ -161,6 +165,18 @@ public class RmDeploymentPolicyServiceImpl implements IRmDeploymentPolicyService
{
rmDeploymentPolicy.setCreateTime(DateUtils.getNowDate());
rmDeploymentPolicy.setCreateBy(SecurityUtils.getUsername());
// 部署设备去重
String clientIds = rmDeploymentPolicy.getDeployDevice();
String[] clientIdArr = clientIds.split("\n");
// 去重并保持顺序
String distinctClientIds = Arrays.stream(clientIdArr)
.map(String::trim) // 去除前后空格
.filter(s -> !s.isEmpty()) // 过滤空行
.distinct() // 去重
.collect(Collectors.joining("\n")); // 用换行符重新拼接
// 设置回原对象
rmDeploymentPolicy.setDeployDevice(distinctClientIds);
return rmDeploymentPolicyMapper.insertRmDeploymentPolicy(rmDeploymentPolicy);
}

View File

@@ -58,24 +58,10 @@
</filter>
</appender>
<!-- RocketMQ消息追踪日志 -->
<appender name="file_trace" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/trace.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/trace.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- RocketMQ模块日志级别控制 -->
<logger name="com.ruoyi.rocketmq" level="info" additivity="false">
<appender-ref ref="file_trace" />
<appender-ref ref="console" /> <!-- 显式添加控制台 -->
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</logger>
@@ -89,7 +75,5 @@
<!-- 根日志配置 -->
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
</configuration>

View File

@@ -24,6 +24,7 @@
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="deployDevice" column="deploy_device" />
<result property="scriptId" column="script_id" />
<result property="scriptName" column="script_name" />
<result property="scriptPath" column="script_path" />
<result property="defaultParams" column="default_params" />
@@ -31,7 +32,7 @@
</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, deploy_device, script_name, script_path, default_params, task_name 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_id, script_name, script_path, default_params, task_name from rm_deployment_policy
</sql>
<select id="selectRmDeploymentPolicyList" parameterType="RmDeploymentPolicy" resultMap="RmDeploymentPolicyResult">
@@ -51,6 +52,7 @@
<if test="deployTime != null "> and deploy_time = #{deployTime}</if>
<if test="scriptType != null and scriptType != ''"> and script_type = #{scriptType}</if>
<if test="deployDevice != null and deployDevice != ''"> and deploy_device = #{deployDevice}</if>
<if test="scriptId != null "> and script_id = #{scriptId}</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>
@@ -85,6 +87,7 @@
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="deployDevice != null">deploy_device,</if>
<if test="scriptId != null">script_id,</if>
<if test="scriptName != null">script_name,</if>
<if test="scriptPath != null">script_path,</if>
<if test="defaultParams != null">default_params,</if>
@@ -109,6 +112,7 @@
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="deployDevice != null">#{deployDevice},</if>
<if test="scriptId != null">#{scriptId},</if>
<if test="scriptName != null">#{scriptName},</if>
<if test="scriptPath != null">#{scriptPath},</if>
<if test="defaultParams != null">#{defaultParams},</if>
@@ -137,6 +141,7 @@
<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="scriptId != null">script_id = #{scriptId},</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>

View File

@@ -44,7 +44,14 @@
<if test="resultFlag != null "> and result_flag = #{resultFlag}</if>
<if test="scriptId != null "> and script_id = #{scriptId}</if>
</where>
order by result_flag asc,create_time desc
<choose>
<when test="clientId != null and clientId != ''">
order by create_time desc
</when>
<otherwise>
order by result_flag asc,create_time desc
</otherwise>
</choose>
</select>
<select id="selectRmResourceRemoteById" parameterType="Long" resultMap="RmResourceRemoteResult">