修改netty编码解压规则

segment2.0
linrf 2 years ago
parent ec0d828ec3
commit 931194abcf

@ -1,33 +1,33 @@
package com.docus.server;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.docus.infrastructure.generator.BaseCodeGenerator;
import java.util.HashMap;
import java.util.Map;
public class CodeGenerator {
public static void main(String[] args) {
//字段名和枚举名的映射,不区分表名
Map<String, String> enumColumnMap = new HashMap<>();
enumColumnMap.put("PROFILE_ITЕM", "AdminProfileItemEnum");
enumColumnMap.put("ORGANIZATION_TYPE", "OrganizationTypeEnum ");
enumColumnMap.put("OPERATE_STATUS", "OperateStatusEnum");
enumColumnMap.put("STATE", "StateEnum");
enumColumnMap.put("PRIVILEGE_LEVEL", "PrivilegeLevelEnum");
enumColumnMap.put("FLAG", "FlagEnum");
enumColumnMap.put("collect_type", "CollectTypeEnum");
BaseCodeGenerator.setEnumColumnMap(enumColumnMap);
BaseCodeGenerator.setModuleName("collector-scheduling-management");//多个module需要指定modulename
//指定entity生成到独立module里并生成 api interface
BaseCodeGenerator.setClientInterfaceModuleName("docus-client-interface");
BaseCodeGenerator.setClientInterfaceSubFolder("scheduling.management");//文件夹
BaseCodeGenerator.setClientInterfaceBasePackage("com.docus.server");
AutoGenerator defaultConfig = BaseCodeGenerator.getDefaultConfig();
defaultConfig.getGlobalConfig().setSwagger2(true);
defaultConfig.getStrategy().setEntityLombokModel(true);
defaultConfig.getStrategy().setInclude("sch_virtual_log", "sch_collect_error_log", "sch_collect_record", "sch_collect_record_retry_log", "sch_collector", "sch_collector_config", "sch_collector_version", "sch_collector_version_file", "sch_collector_version_log", "sch_operation_log", "sch_system_params", "sch_terminator");//需要生成的表,可指定多个,留空为全部生成
BaseCodeGenerator.generate(defaultConfig);
}
}
//package com.docus.server;
//
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.docus.infrastructure.generator.BaseCodeGenerator;
//
//import java.util.HashMap;
//import java.util.Map;
//
//public class CodeGenerator {
// public static void main(String[] args) {
// //字段名和枚举名的映射,不区分表名
// Map<String, String> enumColumnMap = new HashMap<>();
// enumColumnMap.put("PROFILE_ITЕM", "AdminProfileItemEnum");
//
// enumColumnMap.put("ORGANIZATION_TYPE", "OrganizationTypeEnum ");
// enumColumnMap.put("OPERATE_STATUS", "OperateStatusEnum");
// enumColumnMap.put("STATE", "StateEnum");
// enumColumnMap.put("PRIVILEGE_LEVEL", "PrivilegeLevelEnum");
// enumColumnMap.put("FLAG", "FlagEnum");
// enumColumnMap.put("collect_type", "CollectTypeEnum");
// BaseCodeGenerator.setEnumColumnMap(enumColumnMap);
// BaseCodeGenerator.setModuleName("collector-scheduling-management");//多个module需要指定modulename
// //指定entity生成到独立module里并生成 api interface
// BaseCodeGenerator.setClientInterfaceModuleName("docus-client-interface");
// BaseCodeGenerator.setClientInterfaceSubFolder("scheduling.management");//文件夹
// BaseCodeGenerator.setClientInterfaceBasePackage("com.docus.server");
// AutoGenerator defaultConfig = BaseCodeGenerator.getDefaultConfig();
// defaultConfig.getGlobalConfig().setSwagger2(true);
// defaultConfig.getStrategy().setEntityLombokModel(true);
// defaultConfig.getStrategy().setInclude("sch_virtual_log", "sch_collect_error_log", "sch_collect_record", "sch_collect_record_retry_log", "sch_collector", "sch_collector_config", "sch_collector_version", "sch_collector_version_file", "sch_collector_version_log", "sch_operation_log", "sch_system_params", "sch_terminator");//需要生成的表,可指定多个,留空为全部生成
// BaseCodeGenerator.generate(defaultConfig);
// }
//}

@ -0,0 +1,56 @@
package com.docus.server.common;
public class MsgConstants {
/**
*
*/
public static final String HEARTBEAT_REQUEST = "0".trim();
/**
* 线
*/
public static final String ONLINE_REGISTER = "1".trim();
/**
* 线
*/
public static final String OFFLINE_REMOVE = "2".trim();
/**
*
*/
public static final String EXCEPTION_REMOVE = "3".trim();
/**
*
*/
public static final String TERMINATOR_RESTART = "4".trim();
/**
*
*/
public static final String COLLECTOR_RESTART = "5".trim();
/**
*
*/
public static final String VIRTUAL_RESTART = "6".trim();
/**
*
*/
public static final String UPDATE_COLLECTOR_FILE = "7".trim();
/**
*
*/
public static final String UPDATE_COLLECTOR_CONFIG = "8".trim();
/**
*
*/
public static final String SCH_DISTRIBUTE_TASKS = "9".trim();
}

@ -1,10 +1,13 @@
package com.docus.server.common.netty.server;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.service.ISchTerminatorService;
import io.netty.channel.Channel;
import io.netty.util.AttributeKey;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -14,22 +17,23 @@ import java.util.concurrent.ConcurrentHashMap;
@Component
@Slf4j
public class ChannelRepository {
@Resource
private ISchTerminatorService iSchTerminatorService;
/**
* <IP-Channel>
*/
private final static Map<String, Channel> CHANNEL_CACHE_MAP = new ConcurrentHashMap<>();
/**
* 线
*
* @param key
* @param value
* 线
*/
public void put(String key, Channel value) {
public void put(String key, Channel value, OnlineStateEnum onlineState) {
//客户端上线
CHANNEL_CACHE_MAP.put(key, value);
AttributeKey<String> attributeKey = AttributeKey.valueOf("user");
value.attr(attributeKey).set(key);
//todo 数据库更新工控机状态上线
iSchTerminatorService.saveOrUpdate(key, onlineState);
}
public String getClientKey(Channel channel) {
@ -49,13 +53,11 @@ public class ChannelRepository {
}
/**
* 线,线
*
* @param key
* 线
*/
public void remove(String key) {
CHANNEL_CACHE_MAP.remove(key);
//todo 数据库更新工控机状态离线
iSchTerminatorService.saveOrUpdate(key, OnlineStateEnum.OFFLINE);
}
}

@ -51,7 +51,7 @@ public class EchoServerHandler extends ChannelInboundHandlerAdapter {
//将byte[]转成字符串用于打印
String str = new String(barray);
CommMsg<Test> commMsg = JSON.fromJSONWithGeneric(str, new TypeReference<CommMsg<Test>>() {
CommMsg<TerminatorContent> commMsg = JSON.fromJSONWithGeneric(str, new TypeReference<CommMsg<TerminatorContent>>() {
});
if (str.length() > 0) {

@ -2,9 +2,10 @@ package com.docus.server.common.netty.server.handler;
import com.docus.core.util.StringUtils;
import com.docus.core.util.json.JSON;
import com.docus.server.common.MsgConstants;
import com.docus.server.common.netty.CommMsg;
import com.docus.server.common.netty.Payload;
import com.docus.server.common.netty.server.ChannelRepository;
import com.docus.server.enums.OnlineStateEnum;
import com.fasterxml.jackson.core.type.TypeReference;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
@ -28,33 +29,13 @@ import java.net.InetSocketAddress;
@Component
public class NettyBusinessHandler extends SimpleChannelInboundHandler<ByteBuf> {
private static final ChannelGroup GROUP = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
private static final ChannelGroup DEFAULT_CHANNEL_GROUP = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
@Resource
private ChannelRepository repository;
protected void channelRead0(ChannelHandlerContext channelHandlerContext, Payload.Message message) {
if (message.getCmd() == Payload.Message.type.AUTH) {
log.info("接受到工控机<{}>的认证消息:{}", message.getClient(), message.getContent());
InetSocketAddress ipSocket = (InetSocketAddress) channelHandlerContext.channel().remoteAddress();
String clientIp = ipSocket.getAddress().getHostAddress();
log.info("工控机:{},连接上线,IP地址信息:{}", message.getClient(), clientIp);
Channel channel = repository.get(message.getClient());
if (channel != null && channel.isOpen()) {
channel.close();
}
repository.put(message.getClient(), channelHandlerContext.channel());
}
if (message.getCmd() == Payload.Message.type.PRINT_DONE) {
log.info("接受到打印回馈指令,内容{}", message.getContent());
}
if (message.getCmd() == Payload.Message.type.WHATEVER) {
log.info("收到测试消息:{}", message.getContent());
}
}
@Override
protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
protected void channelRead0(ChannelHandlerContext channelHandlerContext, ByteBuf msg) throws Exception {
ByteBuf buf = (ByteBuf) msg;
//创建目标大小的数组
byte[] barray = new byte[buf.readableBytes()];
@ -68,47 +49,76 @@ public class NettyBusinessHandler extends SimpleChannelInboundHandler<ByteBuf> {
return;
}
CommMsg<Test> commMsg = JSON.fromJSONWithGeneric(message, new TypeReference<CommMsg<Test>>() {
CommMsg<TerminatorContent> commMsg = JSON.fromJSONWithGeneric(message, new TypeReference<CommMsg<TerminatorContent>>() {
});
String messageType = commMsg.getMessageType();
String messageTime = commMsg.getMessageTime();
TerminatorContent messageContent = commMsg.getContent();
// if (message.getCmd() == Payload.Message.type.AUTH) {
// log.info("接受到工控机<{}>的认证消息:{}", message.getClient(), message.getContent());
// if (messageType.equals(MsgConstants.ONLINE_REGISTER)) {
// log.info("接受到【采集器-终端】的上线注册消息:消息类型={},消息时间={},消息内容={}", messageType, messageTime, messageContent);
// InetSocketAddress ipSocket = (InetSocketAddress) channelHandlerContext.channel().remoteAddress();
// String clientIp = ipSocket.getAddress().getHostAddress();
// log.info("工控机:{},连接上线,IP地址信息:{}", message.getClient(), clientIp);
// Channel channel = repository.get(message.getClient());
// log.info("【采集器-终端IP】:{},连接上线,IP地址信息:{}", clientIp, clientIp);
// Channel channel = repository.get(clientIp);
// if (channel != null && channel.isOpen()) {
// channel.close();
// }
// repository.put(message.getClient(), channelHandlerContext.channel());
// }
// if (message.getCmd() == Payload.Message.type.PRINT_DONE) {
// log.info("接受到打印回馈指令,内容{}", message.getContent());
// }
// if (message.getCmd() == Payload.Message.type.WHATEVER) {
// log.info("收到测试消息:{}", message.getContent());
//
// /*
// * 将ip和channel进行映射
// */
// repository.put(clientIp, channelHandlerContext.channel(), OnlineStateEnum.OFFLINE);
// }
//心跳
//注册
//业务消息
if (messageType.equals(MsgConstants.TERMINATOR_RESTART)) {
log.info("接受到终端重启命令,内容{}", messageContent);
}
if (messageType.equals(MsgConstants.COLLECTOR_RESTART)) {
log.info("收到采集器重启命令,内容{}", messageContent);
}
if (messageType.equals(MsgConstants.VIRTUAL_RESTART)) {
log.info("收到虚拟机重启命令,内容{}", messageContent);
}
if (messageType.equals(MsgConstants.UPDATE_COLLECTOR_FILE)) {
log.info("收到更新采集器文件命令,内容{}", messageContent);
}
if (messageType.equals(MsgConstants.UPDATE_COLLECTOR_CONFIG)) {
log.info("收到更新采集器配置命令,内容{}", messageContent);
}
if (messageType.equals(MsgConstants.SCH_DISTRIBUTE_TASKS)) {
log.info("收到采集调度器下发任务命令,内容{}", messageContent);
}
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
Channel channel = ctx.channel();
ctx.fireChannelRegistered();
InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
String clientIp = ipSocket.getAddress().getHostAddress();
log.info("【采集器-终端IP】:{},连接上线,IP地址信息:{}", clientIp, clientIp);
Channel channel = repository.get(clientIp);
if (channel != null && channel.isOpen()) {
channel.close();
}
GROUP.add(channel);
System.out.println(channel.remoteAddress() + " 上线," + "在线数量:" + GROUP.size());
repository.put(clientIp, ctx.channel(), OnlineStateEnum.OFFLINE);
DEFAULT_CHANNEL_GROUP.add(ctx.channel());
System.out.println(ctx.channel().remoteAddress() + " 上线," + "在线数量:" + DEFAULT_CHANNEL_GROUP.size());
}
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
// 获取到当前要断开连接的Channel
Channel channel = ctx.channel();
System.out.println(channel.remoteAddress() + "下线," + "在线数量:" + GROUP.size());
System.out.println(channel.remoteAddress() + " 下线," + "在线数量:" + DEFAULT_CHANNEL_GROUP.size());
}
@Override
@ -118,6 +128,7 @@ public class NettyBusinessHandler extends SimpleChannelInboundHandler<ByteBuf> {
if (channel.isActive()) {
ctx.close();
}
super.exceptionCaught(ctx, cause);
}

@ -1,14 +1,21 @@
package com.docus.server.common.netty.server.handler;
import com.docus.core.util.StringUtils;
import com.docus.core.util.json.JSON;
import com.docus.server.common.MsgConstants;
import com.docus.server.common.netty.CommMsg;
import com.docus.server.common.netty.server.ChannelRepository;
import com.docus.server.enums.OnlineStateEnum;
import com.fasterxml.jackson.core.type.TypeReference;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.handler.timeout.IdleState;
import io.netty.handler.timeout.IdleStateEvent;
import io.netty.util.ReferenceCountUtil;
import lombok.extern.slf4j.Slf4j;
import java.net.InetSocketAddress;
/**
*
*/
@ -17,19 +24,54 @@ import lombok.extern.slf4j.Slf4j;
public class NettyHeartbeatHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
// Payload.Message message = (Payload.Message) msg;
// if (message.getCmd().equals(Payload.Message.type.HEARTBEAT_REQUEST)) {
log.info("接收到客户端的心跳");
// } else {
if (ctx.channel().isOpen()) {
//触发下一个handler
ctx.fireChannelRead(msg);
public void channelRead(ChannelHandlerContext channelHandlerContext, Object msg) throws Exception {
ByteBuf buf = (ByteBuf) msg;
//创建目标大小的数组
byte[] barray = new byte[buf.readableBytes()];
//把数据从bytebuf转移到byte[]
buf.getBytes(0, barray);
//将byte[]转成字符串用于打印
String message = new String(barray);
//空消息不处理
if (!StringUtils.hasText(message)) {
return;
}
// }
ReferenceCountUtil.release(msg);
//
CommMsg<TerminatorContent> commMsg = JSON.fromJSONWithGeneric(message, new TypeReference<CommMsg<TerminatorContent>>() {
});
String messageType = commMsg.getMessageType();
String messageTime = commMsg.getMessageTime();
TerminatorContent messageContent = commMsg.getContent();
if (messageType.equals(MsgConstants.HEARTBEAT_REQUEST)) {
log.info("接收到客户端的心跳");
log.info("接受到【采集器-终端】的心跳消息:消息类型={},消息时间={},消息内容={}", messageType, messageTime, messageContent);
InetSocketAddress ipSocket = (InetSocketAddress) channelHandlerContext.channel().remoteAddress();
String clientIp = ipSocket.getAddress().getHostAddress();
log.info("【采集器-终端IP】:{},连接上线,IP地址信息:{}", clientIp, clientIp);
Channel channel = repository.get(clientIp);
if (channel != null && channel.isOpen()) {
channel.close();
}
/*
* ipchannel
*/
repository.put(clientIp, channelHandlerContext.channel(), OnlineStateEnum.ONLINE);
} else {
if (channelHandlerContext.channel().isOpen()) {
//触发下一个handler
channelHandlerContext.fireChannelRead(msg);
}
}
// ReferenceCountUtil.release(msg);
}
private ChannelRepository repository;
@ -38,21 +80,21 @@ public class NettyHeartbeatHandler extends ChannelInboundHandlerAdapter {
this.repository = repository;
}
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof IdleStateEvent) {
IdleStateEvent event = (IdleStateEvent) evt;
if (event.state() == IdleState.READER_IDLE) {
String clientId = repository.getClientKey(ctx.channel());
//移除工控机缓存,设备离线
repository.remove(clientId);
log.info("{},关闭这个不活跃通道=================>", clientId);
ctx.channel().close();
}
} else {
super.userEventTriggered(ctx, evt);
}
}
// @Override
// public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
// if (evt instanceof IdleStateEvent) {
// IdleStateEvent event = (IdleStateEvent) evt;
// if (event.state() == IdleState.READER_IDLE) {
// String clientId = repository.getClientKey(ctx.channel());
// //移除工控机缓存,设备离线
// repository.remove(clientId);
// log.info("{},关闭这个不活跃通道=================>", clientId);
// ctx.channel().close();
// }
// } else {
// super.userEventTriggered(ctx, evt);
// }
// }
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {

@ -0,0 +1,22 @@
package com.docus.server.common.netty.server.handler;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class TerminatorContent implements Serializable {
/*终端IP*/
private String terminatorIp;
/*终端名称*/
private String terminatorName;
}

@ -1,32 +0,0 @@
package com.docus.server.common.netty.server.handler;
import java.io.Serializable;
public class Test implements Serializable {
private int age;
private String name;
public Test() {
}
public Test(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

@ -1,12 +1,10 @@
package com.docus.server.convert;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.entity.scheduling.management.SchTerminator;
import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO;
import com.docus.server.entity.scheduling.management.SchTerminator;
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

@ -86,15 +86,12 @@ public class SchTerminatorDaoImpl extends BaseDaoImpl<SchTerminatorMapper, SchTe
Date endTime = searchDTO.getEndTime();
query.le(SchTerminator::getCreateTime, endTime);
}
//关键字比较多个列or
//if (!StringUtils.isEmpty(searchDTO.getKeyword())) {
//单个列用like
//query. like(SchTerminator::getxxx, searchDTO.getKeyword());
//多个列用like
//query. and(sub -> sub.like(SchTerminator::getxx1, searchDTO.getKeyword())
// оr(). like(SchTerminator::getXX2, searchDTO.getKeyword()))
//);
//}
//在线状态
if (searchDTO.getParams("onlineState") != null) {
query.eq(SchTerminator::getOnlineState, searchDTO.getParams("onlineState"));
}
//默认createTime倒序排序
query.orderByDesc(SchTerminator::getCreateTime);
List<SchTerminator> list = super.find(query);

@ -5,6 +5,7 @@ import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
/**
@ -53,4 +54,12 @@ public interface ISchTerminatorService {
* @return
*/
PageResult<SchTerminatorVO> search(SearchDTO searchDTO);
/**
*
*
* @param terminatorIp
* @param onlineState
*/
void saveOrUpdate(String terminatorIp, OnlineStateEnum onlineState);
}

@ -1,5 +1,7 @@
package com.docus.server.service.impl;
import com.docus.core.util.Func;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.infrastructure.web.request.SearchDTO;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.convert.SchTerminatorConvert;
@ -7,12 +9,15 @@ import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminator
import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
import com.docus.server.entity.scheduling.management.SchTerminator;
import com.docus.server.enums.BusyStateEnum;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.infrastructure.dao.ISchTerminatorDao;
import com.docus.server.service.ISchTerminatorService;
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
*
@ -24,6 +29,8 @@ import javax.annotation.Resource;
public class SchTerminatorServiceImpl implements ISchTerminatorService {
@Resource
private ISchTerminatorDao iSchTerminatorDao;
@Resource
private IdService idService;
/**
*
@ -47,6 +54,31 @@ public class SchTerminatorServiceImpl implements ISchTerminatorService {
return SchTerminatorConvert.INSTANCE.convertVO(iSchTerminatorDao.search(searchDTO));
}
@Override
public void saveOrUpdate(String terminatorIp, OnlineStateEnum onlineStateEnum) {
SchTerminator schTerminator = iSchTerminatorDao.findOneBy("terminatorIp", terminatorIp);
if (Func.isNull(schTerminator)) {
SchTerminator schTerminatorVO = new SchTerminator();
schTerminatorVO.setId(idService.getDateSeq());
schTerminatorVO.setTerminatorIp(terminatorIp);
schTerminatorVO.setTerminatorName(terminatorIp);
schTerminatorVO.setOnlineState(onlineStateEnum);
schTerminatorVO.setBusyState(BusyStateEnum.IDLE);
iSchTerminatorDao.save(schTerminatorVO);
} else {
schTerminator.setBusyState(BusyStateEnum.IDLE);
schTerminator.setOnlineState(onlineStateEnum);
schTerminator.setUpdateTime(new Date());
iSchTerminatorDao.updateById(schTerminator);
}
}
/**
*
*

@ -1,15 +1,16 @@
package com.docus.server.dto.scheduling.management.schterminator;
import com.baomidou.mybatisplus.annotation.TableField;
import com.docus.server.enums.BusyStateEnum;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.enums.RestrictStateEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.docus.server.enums.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
@ -22,44 +23,59 @@ import java.time.LocalDateTime;
@ApiModel(value="AddSchTerminatorDTO对象", description="执行管理器")
public class AddSchTerminatorDTO implements Serializable {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "终端IP")
@TableField("terminator_ip")
private String terminatorIp;
@ApiModelProperty(value = "资源管理器名称")
@TableField("terminator_name")
private String terminatorName;
@ApiModelProperty(value = "只干某些任务,任务偏好属性")
@TableField("only_collector_ids")
private String onlyCollectorIds;
@ApiModelProperty(value = "优先干某些任务,任务偏好属性(优先给哪个采集器,若不空闲再给任意采集器)")
@TableField("priority_collector_ids")
private String priorityCollectorIds;
@ApiModelProperty(value = "是否限制采集器类型01是")
private String restrictState;
@TableField("restrict_state")
private RestrictStateEnum restrictState;
@ApiModelProperty(value = "忙闲状态0空闲1繁忙")
private String busyState;
@TableField("busy_state")
private BusyStateEnum busyState;
@ApiModelProperty(value = "在线状态0离线1在线")
private String onlineState;
@TableField("online_state")
private OnlineStateEnum onlineState;
@ApiModelProperty(value = "最近任务执行时间")
private LocalDateTime lastTaskExecTime;
@TableField("last_task_exec_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastTaskExecTime;
@ApiModelProperty(value = "正在执行任务的名称")
@TableField("executing_task_name")
private String executingTaskName;
@ApiModelProperty(value = "最近一次任务执行失败原因")
@TableField("last_task_error_msg")
private String lastTaskErrorMsg;
@ApiModelProperty(value = "入库时间")
private LocalDateTime createTime;
@TableField("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "入库更新时间")
private LocalDateTime updateTime;
@TableField("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

@ -1,65 +1,80 @@
package com.docus.server.dto.scheduling.management.schterminator;
import com.baomidou.mybatisplus.annotation.TableField;
import com.docus.server.enums.BusyStateEnum;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.enums.RestrictStateEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.docus.server.enums.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
* EditDTO
*
* @author AutoGenerator
* @since 2023-07-15
*/
* EditDTO
*
* @author AutoGenerator
* @since 2023-07-15
*/
@Data
@ApiModel(value="EditSchTerminatorDTO对象", description="执行管理器")
@ApiModel(value = "EditSchTerminatorDTO对象", description = "执行管理器")
public class EditSchTerminatorDTO implements Serializable {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "终端IP")
@TableField("terminator_ip")
private String terminatorIp;
@ApiModelProperty(value = "资源管理器名称")
@TableField("terminator_name")
private String terminatorName;
@ApiModelProperty(value = "只干某些任务,任务偏好属性")
@TableField("only_collector_ids")
private String onlyCollectorIds;
@ApiModelProperty(value = "优先干某些任务,任务偏好属性(优先给哪个采集器,若不空闲再给任意采集器)")
@TableField("priority_collector_ids")
private String priorityCollectorIds;
@ApiModelProperty(value = "是否限制采集器类型01是")
private String restrictState;
@TableField("restrict_state")
private RestrictStateEnum restrictState;
@ApiModelProperty(value = "忙闲状态0空闲1繁忙")
private String busyState;
@TableField("busy_state")
private BusyStateEnum busyState;
@ApiModelProperty(value = "在线状态0离线1在线")
private String onlineState;
@TableField("online_state")
private OnlineStateEnum onlineState;
@ApiModelProperty(value = "最近任务执行时间")
private LocalDateTime lastTaskExecTime;
@TableField("last_task_exec_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastTaskExecTime;
@ApiModelProperty(value = "正在执行任务的名称")
@TableField("executing_task_name")
private String executingTaskName;
@ApiModelProperty(value = "最近一次任务执行失败原因")
@TableField("last_task_error_msg")
private String lastTaskErrorMsg;
@ApiModelProperty(value = "入库时间")
private LocalDateTime createTime;
@TableField("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "入库更新时间")
private LocalDateTime updateTime;
@TableField("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

@ -1,30 +1,31 @@
package com.docus.server.entity.scheduling.management;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.docus.server.enums.BusyStateEnum;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.enums.RestrictStateEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.docus.server.enums.*;
import java.io.Serializable;
import java.util.Date;
/**
*
*
*
* @author AutoGenerator
* @since 2023-07-15
*/
*
*
* @author AutoGenerator
* @since 2023-07-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sch_terminator")
@ApiModel(value="SchTerminator对象", description="执行管理器")
@ApiModel(value = "SchTerminator对象", description = "执行管理器")
public class SchTerminator implements Serializable {
@ApiModelProperty(value = "主键")
@ -49,19 +50,20 @@ public class SchTerminator implements Serializable {
@ApiModelProperty(value = "是否限制采集器类型01是")
@TableField("restrict_state")
private String restrictState;
private RestrictStateEnum restrictState;
@ApiModelProperty(value = "忙闲状态0空闲1繁忙")
@TableField("busy_state")
private String busyState;
private BusyStateEnum busyState;
@ApiModelProperty(value = "在线状态0离线1在线")
@TableField("online_state")
private String onlineState;
private OnlineStateEnum onlineState;
@ApiModelProperty(value = "最近任务执行时间")
@TableField("last_task_exec_time")
private LocalDateTime lastTaskExecTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastTaskExecTime;
@ApiModelProperty(value = "正在执行任务的名称")
@TableField("executing_task_name")
@ -73,11 +75,13 @@ public class SchTerminator implements Serializable {
@ApiModelProperty(value = "入库时间")
@TableField("create_time")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "入库更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

@ -0,0 +1,31 @@
package com.docus.server.enums;
import com.docus.infrastructure.core.db.enums.IIntegerEnum;
/**
*
*/
public enum BusyStateEnum implements IIntegerEnum {
IDLE(0, "空闲"),
BUSY(1, "繁忙");
private Integer value;
private String display;
BusyStateEnum(Integer value, String display) {
this.value = value;
this.display = display;
}
@Override
public Integer getValue() {
return value;
}
@Override
public String getDisplay() {
return display;
}
}

@ -0,0 +1,31 @@
package com.docus.server.enums;
import com.docus.infrastructure.core.db.enums.IIntegerEnum;
/**
* 线
*/
public enum OnlineStateEnum implements IIntegerEnum {
OFFLINE(0, "离线"),
ONLINE(1, "在线");
private Integer value;
private String display;
OnlineStateEnum(Integer value, String display) {
this.value = value;
this.display = display;
}
@Override
public Integer getValue() {
return value;
}
@Override
public String getDisplay() {
return display;
}
}

@ -0,0 +1,31 @@
package com.docus.server.enums;
import com.docus.infrastructure.core.db.enums.IIntegerEnum;
/**
*
*/
public enum RestrictStateEnum implements IIntegerEnum {
NO(0, "否"),
YES(1, "是");
private Integer value;
private String display;
RestrictStateEnum(Integer value, String display) {
this.value = value;
this.display = display;
}
@Override
public Integer getValue() {
return value;
}
@Override
public String getDisplay() {
return display;
}
}

@ -1,65 +1,79 @@
package com.docus.server.vo.scheduling.management.schterminator;
import com.baomidou.mybatisplus.annotation.TableField;
import com.docus.server.enums.BusyStateEnum;
import com.docus.server.enums.OnlineStateEnum;
import com.docus.server.enums.RestrictStateEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.docus.server.enums.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
* VO
*
* @author AutoGenerator
* @since 2023-07-15
*/
* VO
*
* @author AutoGenerator
* @since 2023-07-15
*/
@Data
@ApiModel(value="SchTerminatorVO对象", description="执行管理器")
@ApiModel(value = "SchTerminatorVO对象", description = "执行管理器")
public class SchTerminatorVO implements Serializable {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "终端IP")
@TableField("terminator_ip")
private String terminatorIp;
@ApiModelProperty(value = "资源管理器名称")
@TableField("terminator_name")
private String terminatorName;
@ApiModelProperty(value = "只干某些任务,任务偏好属性")
@TableField("only_collector_ids")
private String onlyCollectorIds;
@ApiModelProperty(value = "优先干某些任务,任务偏好属性(优先给哪个采集器,若不空闲再给任意采集器)")
@TableField("priority_collector_ids")
private String priorityCollectorIds;
@ApiModelProperty(value = "是否限制采集器类型01是")
private String restrictState;
@TableField("restrict_state")
private RestrictStateEnum restrictState;
@ApiModelProperty(value = "忙闲状态0空闲1繁忙")
private String busyState;
@TableField("busy_state")
private BusyStateEnum busyState;
@ApiModelProperty(value = "在线状态0离线1在线")
private String onlineState;
@TableField("online_state")
private OnlineStateEnum onlineState;
@ApiModelProperty(value = "最近任务执行时间")
private LocalDateTime lastTaskExecTime;
@TableField("last_task_exec_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastTaskExecTime;
@ApiModelProperty(value = "正在执行任务的名称")
@TableField("executing_task_name")
private String executingTaskName;
@ApiModelProperty(value = "最近一次任务执行失败原因")
@TableField("last_task_error_msg")
private String lastTaskErrorMsg;
@ApiModelProperty(value = "入库时间")
private LocalDateTime createTime;
@TableField("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "入库更新时间")
private LocalDateTime updateTime;
@TableField("update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

Loading…
Cancel
Save