新增采集器终端netty 服务
parent
200243f524
commit
5429d71ac9
Binary file not shown.
@ -0,0 +1,73 @@
|
||||
<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
|
||||
|
||||
<id>exe</id>
|
||||
<formats>
|
||||
<format>dir</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<fileSets>
|
||||
|
||||
<fileSet>
|
||||
<outputDirectory>/lib</outputDirectory>
|
||||
<directory>${basedir}/target/lib</directory>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<outputDirectory>/config</outputDirectory>
|
||||
<directory>${basedir}/target/resources</directory>
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>*.xml</include>
|
||||
<include>*.yml</include>
|
||||
<include>*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<outputDirectory>/dataConfig</outputDirectory>
|
||||
<directory>${basedir}/target/dataConfig</directory>
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>*.json</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<directory>${basedir}/target/resources/bin</directory>
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>*.bat</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<directory>${basedir}/target/resources/bin</directory>
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>*.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<directory>${basedir}</directory>
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>*.exe</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<!-- 将项目启动jar打包到boot目录中 -->
|
||||
<fileSet>
|
||||
<directory>${basedir}/target</directory>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>${project.build.finalName}.jar</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</assembly>
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server;
|
||||
|
||||
import com.docus.infrastructure.WebConfig;
|
||||
import com.docus.infrastructure.web.json.JsonSerializerModule;
|
||||
import com.docus.server.common.serializer.DefJsonSerializerModule;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class DefaultWebConfig extends WebConfig {
|
||||
|
||||
@Override
|
||||
public JsonSerializerModule jsonSerializerModu1e() {
|
||||
super.jsonSerializerModu1e();
|
||||
return new DefJsonSerializerModule();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.docus.server;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
@EnableAsync
|
||||
@EnableFeignClients(basePackages = {"com.docus.core.excel.feign", "com.docus.server.api.taskdistribute"})
|
||||
@SpringBootApplication(scanBasePackages = {"com.docus"})
|
||||
public class TerminalBootstrap {
|
||||
public static void main(String[] args) {
|
||||
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
|
||||
SpringApplication.run(TerminalBootstrap.class, args);
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
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();
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.docus.server.common;
|
||||
|
||||
import com.docus.infrastructure.redis.listener.RedisKeyExpirationListener;
|
||||
import com.docus.server.service.impl.RedisKeyExpirationService;
|
||||
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
public class RedisCollectorTaskKeyExpirationListener extends RedisKeyExpirationListener {
|
||||
|
||||
@Resource
|
||||
private RedisKeyExpirationService redisKeyExpirationService;
|
||||
|
||||
public RedisCollectorTaskKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
|
||||
super(listenerContainer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processExpireKey(String expireKey) {
|
||||
redisKeyExpirationService.expired(expireKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean validExpireKey(String expireKey) {
|
||||
return expireKey.startsWith("schCollectorRecord:noRetryTask:expireKey:")
|
||||
|| expireKey.startsWith("schCollectorRecord:isRetryTask:expireKey:");
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.docus.server.common;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchTerminator;
|
||||
import com.docus.server.enums.BusyStateEnum;
|
||||
import com.docus.server.enums.OnlineStateEnum;
|
||||
import com.docus.server.service.ISchTerminatorService;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 重启置空
|
||||
*/
|
||||
@Component
|
||||
public class TerminatorListener implements ApplicationListener<ContextRefreshedEvent> {
|
||||
@Resource
|
||||
private ISchTerminatorService iSchTerminatorService;
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||
List<SchTerminator> terminators = iSchTerminatorService.findAll();
|
||||
terminators.forEach(p -> {
|
||||
p.setBusyState(BusyStateEnum.IDLE);
|
||||
p.setOnlineState(OnlineStateEnum.OFFLINE);
|
||||
});
|
||||
iSchTerminatorService.batchUpdate(terminators);
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.docus.server.common.netty;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Data
|
||||
public class CommMsg<MSG_CONTENT extends Serializable> implements Serializable {
|
||||
|
||||
public String messageType;
|
||||
|
||||
public String messageTime;
|
||||
|
||||
public MSG_CONTENT content;
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,71 @@
|
||||
package com.docus.server.common.netty.client;
|
||||
|
||||
import com.docus.core.util.json.JSON;
|
||||
import com.docus.server.common.netty.CommMsg;
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelOption;
|
||||
import io.netty.channel.EventLoopGroup;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import io.netty.channel.socket.SocketChannel;
|
||||
import io.netty.channel.socket.nio.NioSocketChannel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Created by 1-point at 2021/9/7
|
||||
* Netty客户端
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class NettyClient {
|
||||
|
||||
@Resource
|
||||
private NettyClientProperties nettyProperties;
|
||||
|
||||
@Value("${spring.application.name}")
|
||||
private String appName;
|
||||
|
||||
private SocketChannel socketChannel;
|
||||
|
||||
/**
|
||||
* 发送消息给服务端
|
||||
*
|
||||
* @param message 消息内容
|
||||
*/
|
||||
public void sendMessage(CommMsg message) {
|
||||
boolean success = socketChannel.writeAndFlush(JSON.toJSON(message)).isSuccess();
|
||||
if (success) {
|
||||
log.info("发送消息成功");
|
||||
}
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void start() {
|
||||
final EventLoopGroup group = new NioEventLoopGroup();
|
||||
Bootstrap bootstrap = new Bootstrap();
|
||||
bootstrap.group(group)
|
||||
.channel(NioSocketChannel.class)
|
||||
.remoteAddress(nettyProperties.getHost(), nettyProperties.getPort())
|
||||
.option(ChannelOption.SO_KEEPALIVE, true)
|
||||
.option(ChannelOption.TCP_NODELAY, true)
|
||||
.handler(new NettyClientInitializer(nettyProperties, this, appName));
|
||||
ChannelFuture future = bootstrap.connect();
|
||||
//客户端断线重连逻辑
|
||||
future.addListener((ChannelFutureListener) status -> {
|
||||
if (status.isSuccess()) {
|
||||
log.info("连接Netty服务端成功");
|
||||
} else {
|
||||
log.warn("连接失败,进行断线重连");
|
||||
status.channel().eventLoop().schedule(this::start, nettyProperties.getReconnectSeconds(), TimeUnit.SECONDS);
|
||||
}
|
||||
});
|
||||
socketChannel = (SocketChannel) future.channel();
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package com.docus.server.common.netty.client;
|
||||
|
||||
import com.docus.server.common.netty.client.handler.ClientHandler;
|
||||
import com.docus.server.common.netty.client.handler.HeartbeatHandler;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.handler.timeout.IdleStateHandler;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class NettyClientInitializer extends ChannelInitializer<Channel> {
|
||||
|
||||
private NettyClientProperties nettyProperties;
|
||||
|
||||
private NettyClient nettyClient;
|
||||
|
||||
private String appName;
|
||||
|
||||
@Override
|
||||
protected void initChannel(Channel channel) throws Exception {
|
||||
channel.pipeline()
|
||||
// 加载空闲监听器
|
||||
.addLast(new IdleStateHandler(nettyProperties.getReaderIdleTimeSeconds(),
|
||||
nettyProperties.getWriterIdleTimeSeconds(), nettyProperties.getAllIdleTimeSeconds()))
|
||||
// 加载加码解码处理器,同时解决粘包拆包问题
|
||||
// .addLast(new ProtobufVarint32FrameDecoder())
|
||||
// .addLast(new ProtobufDecoder(Payload.Message.getDefaultInstance()))
|
||||
// .addLast(new ProtobufVarint32LengthFieldPrepender())
|
||||
// .addLast(new ProtobufEncoder())
|
||||
// 加载心跳处理器
|
||||
.addLast(new HeartbeatHandler(nettyClient, nettyProperties, appName))
|
||||
// 加载业务处理器
|
||||
.addLast(new ClientHandler())
|
||||
.addLast();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.docus.server.common.netty.client;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = NettyClientProperties.PREFIX)
|
||||
public class NettyClientProperties {
|
||||
|
||||
public static final String PREFIX = "netty.client";
|
||||
|
||||
// 读空闲等待时间
|
||||
private int readerIdleTimeSeconds = 0;
|
||||
|
||||
// 写空闲等待时间
|
||||
private int writerIdleTimeSeconds = 10;
|
||||
|
||||
// 读写空闲等待时间
|
||||
private int allIdleTimeSeconds = 0;
|
||||
|
||||
// 服务主机
|
||||
private String host;
|
||||
|
||||
// 服务端口
|
||||
private Integer port;
|
||||
|
||||
// 重连时间/秒
|
||||
private int reconnectSeconds = 10;
|
||||
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package com.docus.server.common.netty.client.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 io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.SimpleChannelInboundHandler;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Slf4j
|
||||
public class ClientHandler extends SimpleChannelInboundHandler<ByteBuf> {
|
||||
|
||||
@Override
|
||||
protected void channelRead0(ChannelHandlerContext context, ByteBuf 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;
|
||||
}
|
||||
|
||||
CommMsg commMsg = JSON.fromJSON(message, CommMsg.class);
|
||||
|
||||
String messageType = commMsg.getMessageType();
|
||||
String messageTime = commMsg.getMessageTime();
|
||||
Serializable messageContent = commMsg.getContent();
|
||||
|
||||
log.info("======== 收到服务端消息, 消息时间={}, 消息类型={}, 消息内容={}", messageTime, messageType, messageContent + " ======== ");
|
||||
|
||||
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 exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
cause.printStackTrace();
|
||||
Channel channel = ctx.channel();
|
||||
if (channel.isActive()) {
|
||||
ctx.close();
|
||||
}
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
package com.docus.server.common.netty.client.handler;
|
||||
|
||||
import com.docus.core.util.DateUtil;
|
||||
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.client.NettyClient;
|
||||
import com.docus.server.common.netty.client.NettyClientProperties;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.channel.ChannelFutureListener;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.channel.EventLoop;
|
||||
import io.netty.handler.timeout.IdleState;
|
||||
import io.netty.handler.timeout.IdleStateEvent;
|
||||
import io.netty.util.CharsetUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 处理发送心跳逻辑
|
||||
*/
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class HeartbeatHandler extends ChannelInboundHandlerAdapter {
|
||||
|
||||
private NettyClient nettyClient;
|
||||
|
||||
private NettyClientProperties nettyProperties;
|
||||
|
||||
private String appName;
|
||||
|
||||
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
log.info("通道激活......");
|
||||
|
||||
// Payload.Message.Builder builder = Payload.Message.newBuilder()
|
||||
// .setClient(appName)
|
||||
// .setContent("我来了")
|
||||
// .setCmd(Payload.Message.type.AUTH);
|
||||
|
||||
CommMsg onlineRegister = CommMsg.builder()
|
||||
.messageType(MsgConstants.ONLINE_REGISTER)
|
||||
.messageTime(DateUtil.formatDateTime(new Date()))
|
||||
.content(appName + " 我来了")
|
||||
.build();
|
||||
|
||||
ctx.writeAndFlush(Unpooled.copiedBuffer(JSON.toJSON(onlineRegister), CharsetUtil.UTF_8));
|
||||
super.channelActive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
|
||||
if (evt instanceof IdleStateEvent) {
|
||||
IdleStateEvent idleStateEvent = (IdleStateEvent) evt;
|
||||
if (idleStateEvent.state() == IdleState.WRITER_IDLE) {
|
||||
// 一定时间内,通道内未传递消息,发送心跳,保证存活
|
||||
log.info("after {} seconds no message wrote", nettyProperties.getWriterIdleTimeSeconds());
|
||||
|
||||
// Payload.Message heartbeat = Payload.Message
|
||||
// .newBuilder()
|
||||
// .setCmd(Payload.Message.type.HEARTBEAT_REQUEST)
|
||||
// .build();
|
||||
|
||||
CommMsg heartbeat = CommMsg.builder()
|
||||
.messageType(MsgConstants.HEARTBEAT_REQUEST)
|
||||
.messageTime(DateUtil.formatDateTime(new Date()))
|
||||
.build();
|
||||
|
||||
//发送心跳消息,并在发送失败时关闭该接连
|
||||
ctx.writeAndFlush(Unpooled.copiedBuffer(JSON.toJSON(heartbeat), CharsetUtil.UTF_8)).addListener(ChannelFutureListener.CLOSE_ON_FAILURE);
|
||||
}
|
||||
} else {
|
||||
super.userEventTriggered(ctx, evt);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
||||
//如果运行过程中服务端挂了,执行重连机制
|
||||
log.info("通道释放==================");
|
||||
EventLoop eventLoop = ctx.channel().eventLoop();
|
||||
eventLoop.schedule(() -> nettyClient.start(), nettyProperties.getReconnectSeconds(), TimeUnit.SECONDS);
|
||||
super.channelInactive(ctx);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
cause.printStackTrace();
|
||||
log.error("捕获的异常:{}", cause.getMessage());
|
||||
ctx.close();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package com.docus.server.common.netty.server;
|
||||
|
||||
import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO;
|
||||
import com.docus.server.enums.BusyStateEnum;
|
||||
import com.docus.server.enums.OnlineStateEnum;
|
||||
import com.docus.server.service.ISchTerminatorService;
|
||||
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.util.AttributeKey;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 客户端IP和通信信道的映射
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ChannelRepository {
|
||||
@Resource
|
||||
private ISchTerminatorService iSchTerminatorService;
|
||||
|
||||
/**
|
||||
* <IP-Channel>
|
||||
*/
|
||||
private final static Map<String, Channel> IP_CHANNEL_CACHE_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* <IP-Terminator>
|
||||
*/
|
||||
private final static Map<String, NettyTerminatorDTO> IP_TERMINATOR_CACHE_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* 终端上线
|
||||
*/
|
||||
public void put(NettyTerminatorDTO nettyTerminatorDTO, Channel channel) {
|
||||
//客户端上线
|
||||
String terminatorIp = nettyTerminatorDTO.getTerminatorIp();
|
||||
|
||||
//更新数据库终端数据
|
||||
SchTerminatorVO schTerminatorVO = iSchTerminatorService.saveOrUpdate(terminatorIp, nettyTerminatorDTO);
|
||||
nettyTerminatorDTO.setId(schTerminatorVO.getId());
|
||||
|
||||
//缓存
|
||||
IP_CHANNEL_CACHE_MAP.put(terminatorIp, channel);
|
||||
IP_TERMINATOR_CACHE_MAP.put(terminatorIp, nettyTerminatorDTO);
|
||||
|
||||
AttributeKey<String> attributeKey = AttributeKey.valueOf("ip");
|
||||
channel.attr(attributeKey).set(terminatorIp);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public String getClientKey(Channel channel) {
|
||||
|
||||
AttributeKey<String> key = AttributeKey.valueOf("ip");
|
||||
|
||||
if (channel.hasAttr(key)) {
|
||||
return channel.attr(key).get();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Channel get(String key) {
|
||||
return IP_CHANNEL_CACHE_MAP.get(key);
|
||||
}
|
||||
|
||||
public NettyTerminatorDTO getTerminatorByIp(String key) {
|
||||
return IP_TERMINATOR_CACHE_MAP.get(key);
|
||||
}
|
||||
|
||||
public Map<String, Channel> getIpToChannelCacheMap() {
|
||||
return IP_CHANNEL_CACHE_MAP;
|
||||
}
|
||||
|
||||
public Map<String, NettyTerminatorDTO> getIpToTerminatorCacheMap() {
|
||||
return IP_TERMINATOR_CACHE_MAP;
|
||||
}
|
||||
|
||||
public List<NettyTerminatorDTO> getAvailTerminator() {
|
||||
if (!CollectionUtils.isEmpty(IP_TERMINATOR_CACHE_MAP)) {
|
||||
return IP_TERMINATOR_CACHE_MAP.values().stream().filter(p -> OnlineStateEnum.ONLINE.equals(p.getOnlineState())
|
||||
&& BusyStateEnum.IDLE.equals(p.getBusyState())).collect(Collectors.toList());
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 终端离线
|
||||
*/
|
||||
public void remove(String key) {
|
||||
IP_CHANNEL_CACHE_MAP.remove(key);
|
||||
|
||||
NettyTerminatorDTO nettyTerminatorDTO = new NettyTerminatorDTO();
|
||||
nettyTerminatorDTO.setOnlineState(OnlineStateEnum.OFFLINE);
|
||||
iSchTerminatorService.saveOrUpdate(key, nettyTerminatorDTO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.docus.server.common.netty.server;
|
||||
|
||||
import io.netty.bootstrap.ServerBootstrap;
|
||||
import io.netty.channel.ChannelFuture;
|
||||
import io.netty.channel.ChannelOption;
|
||||
import io.netty.channel.EventLoopGroup;
|
||||
import io.netty.channel.nio.NioEventLoopGroup;
|
||||
import io.netty.channel.socket.nio.NioServerSocketChannel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
import javax.annotation.Resource;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* netty服务端初始化
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class NettyServer {
|
||||
|
||||
/**
|
||||
* boss 线程组用于处理连接工作
|
||||
*/
|
||||
private EventLoopGroup boss;
|
||||
/**
|
||||
* worker 线程组用于数据处理
|
||||
*/
|
||||
private EventLoopGroup worker;
|
||||
|
||||
@Resource
|
||||
private NettyServerProperties serverProperties;
|
||||
|
||||
@Resource
|
||||
private NettyServerInitializer serverInitializer;
|
||||
|
||||
@PostConstruct
|
||||
public void start() throws InterruptedException {
|
||||
boss = new NioEventLoopGroup(serverProperties.getBossThreadCount());
|
||||
worker = new NioEventLoopGroup(serverProperties.getWorkerThreadCount());
|
||||
ServerBootstrap bootstrap = new ServerBootstrap();
|
||||
bootstrap.group(boss, worker)
|
||||
// 指定Channel
|
||||
.channel(NioServerSocketChannel.class)
|
||||
//使用指定的端口设置套接字地址
|
||||
.localAddress(new InetSocketAddress(serverProperties.getPort()))
|
||||
//服务端可连接队列数,对应TCP/IP协议listen函数中backlog参数
|
||||
.option(ChannelOption.SO_BACKLOG, 1024)
|
||||
//设置TCP长连接,一般如果两个小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
|
||||
.childOption(ChannelOption.SO_KEEPALIVE, true)
|
||||
//将小的数据包包装成更大的帧进行传送,提高网络的负载
|
||||
.childOption(ChannelOption.TCP_NODELAY, true)
|
||||
.childHandler(serverInitializer);
|
||||
ChannelFuture future = bootstrap.bind().sync();
|
||||
if (future.isSuccess()) {
|
||||
log.info("Start netty server successfully");
|
||||
} else {
|
||||
log.error("Start netty server failed");
|
||||
}
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void destroy() throws InterruptedException {
|
||||
boss.shutdownGracefully().sync();
|
||||
worker.shutdownGracefully().sync();
|
||||
log.info("关闭Netty");
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.docus.server.common.netty.server;
|
||||
|
||||
import com.docus.server.common.netty.server.handler.NettyBusinessHandler;
|
||||
import com.docus.server.common.netty.server.handler.NettyHeartbeatHandler;
|
||||
import io.netty.channel.Channel;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.handler.timeout.IdleStateHandler;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* netty服务端信道初始化
|
||||
*/
|
||||
@Component
|
||||
public class NettyServerInitializer extends ChannelInitializer<Channel> {
|
||||
|
||||
@Resource
|
||||
private NettyServerProperties serverProperties;
|
||||
|
||||
@Resource
|
||||
private NettyBusinessHandler businessHandler;
|
||||
|
||||
@Resource
|
||||
private ChannelRepository channelRepository;
|
||||
|
||||
@Override
|
||||
protected void initChannel(Channel channel) throws Exception {
|
||||
channel.pipeline()
|
||||
//空闲检测
|
||||
.addLast(new IdleStateHandler(serverProperties.getReaderIdleTimeSeconds(),
|
||||
serverProperties.getWriterIdleTimeSeconds(),
|
||||
serverProperties.getAllIdleTimeSeconds(),
|
||||
TimeUnit.SECONDS)
|
||||
)
|
||||
// 加载加码解码处理器,同时解决粘包拆包问题
|
||||
// .addLast(new ProtobufVarint32FrameDecoder())
|
||||
// .addLast(new ProtobufDecoder(Payload.CommMsg.getDefaultInstance()))
|
||||
// .addLast(new ProtobufVarint32LengthFieldPrepender())
|
||||
// .addLast(new ProtobufEncoder())
|
||||
|
||||
// .addLast(new LineBasedFrameDecoder(2048))
|
||||
// .addLast(new StringDecoder())
|
||||
// .addLast(new StringEncoder())
|
||||
|
||||
// 加载业务处理器
|
||||
.addLast(new NettyHeartbeatHandler(channelRepository))
|
||||
.addLast(businessHandler);
|
||||
// .addLast(new EchoServerHandler());
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.docus.server.common.netty.server;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* netty服务端配置
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = NettyServerProperties.PREFIX)
|
||||
public class NettyServerProperties {
|
||||
|
||||
public static final String PREFIX = "netty.server";
|
||||
|
||||
// 读空闲等待时间
|
||||
private int readerIdleTimeSeconds = 30;
|
||||
|
||||
// 写空闲等待时间
|
||||
private int writerIdleTimeSeconds;
|
||||
|
||||
// 读写空闲等待时间
|
||||
private int allIdleTimeSeconds;
|
||||
|
||||
private Integer port;
|
||||
|
||||
private int bossThreadCount;
|
||||
|
||||
private int workerThreadCount;
|
||||
}
|
@ -0,0 +1,144 @@
|
||||
package com.docus.server.common.netty.server.handler;
|
||||
|
||||
import com.docus.core.util.Func;
|
||||
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.dto.scheduling.management.schterminator.NettyTerminatorDTO;
|
||||
import com.docus.server.enums.BusyStateEnum;
|
||||
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.SimpleChannelInboundHandler;
|
||||
import io.netty.channel.group.ChannelGroup;
|
||||
import io.netty.channel.group.DefaultChannelGroup;
|
||||
import io.netty.util.concurrent.GlobalEventExecutor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* 业务消息处理
|
||||
*/
|
||||
@Slf4j
|
||||
@ChannelHandler.Sharable
|
||||
@Component
|
||||
public class NettyBusinessHandler extends SimpleChannelInboundHandler<ByteBuf> {
|
||||
|
||||
private static final ChannelGroup DEFAULT_CHANNEL_GROUP = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
|
||||
|
||||
@Resource
|
||||
private ChannelRepository repository;
|
||||
|
||||
@Override
|
||||
protected void channelRead0(ChannelHandlerContext channelHandlerContext, ByteBuf 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;
|
||||
}
|
||||
|
||||
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.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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* netty client 上线
|
||||
*/
|
||||
@Override
|
||||
public void channelActive(ChannelHandlerContext ctx) throws Exception {
|
||||
ctx.fireChannelRegistered();
|
||||
|
||||
InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress();
|
||||
String clientIp = ipSocket.getAddress().getHostAddress();
|
||||
log.info("【采集器-终端IP】:{},连接上线,IP地址信息:{}", clientIp, clientIp);
|
||||
|
||||
String clientId = repository.getClientKey(ctx.channel());
|
||||
|
||||
if (Func.isBlank(clientId)) {
|
||||
|
||||
NettyTerminatorDTO nettyTerminatorDTO = new NettyTerminatorDTO();
|
||||
nettyTerminatorDTO.setTerminatorIp(clientIp);
|
||||
nettyTerminatorDTO.setBusyState(BusyStateEnum.IDLE);
|
||||
nettyTerminatorDTO.setOnlineState(OnlineStateEnum.OFFLINE);
|
||||
|
||||
repository.put(nettyTerminatorDTO, ctx.channel());
|
||||
}
|
||||
|
||||
DEFAULT_CHANNEL_GROUP.add(ctx.channel());
|
||||
|
||||
System.out.println(ctx.channel().remoteAddress() + " 上线," + "【采集器-终端】在线数量:" + DEFAULT_CHANNEL_GROUP.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* netty client 下线
|
||||
*/
|
||||
@Override
|
||||
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
|
||||
Channel channel = ctx.channel();
|
||||
System.out.println(channel.remoteAddress() + " 下线," + "【采集器-终端】在线数量:" + DEFAULT_CHANNEL_GROUP.size());
|
||||
String clientId = repository.getClientKey(channel);
|
||||
log.error("客户端下线,终端连接:{}", clientId);
|
||||
//移除终端,终端离线
|
||||
if (clientId != null) {
|
||||
repository.remove(clientId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* netty exception 通道异常
|
||||
*/
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
cause.printStackTrace();
|
||||
Channel channel = ctx.channel();
|
||||
if (channel.isActive()) {
|
||||
ctx.close();
|
||||
}
|
||||
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
package com.docus.server.common.netty.server.handler;
|
||||
|
||||
import com.docus.core.util.Func;
|
||||
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.dto.scheduling.management.schterminator.NettyTerminatorDTO;
|
||||
import com.docus.server.enums.BusyStateEnum;
|
||||
import com.docus.server.enums.OnlineStateEnum;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
/**
|
||||
* 客户端和服务端心跳
|
||||
*/
|
||||
@Slf4j
|
||||
@ChannelHandler.Sharable
|
||||
public class NettyHeartbeatHandler extends ChannelInboundHandlerAdapter {
|
||||
|
||||
@Override
|
||||
public void channelRead(ChannelHandlerContext ctx, 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;
|
||||
}
|
||||
|
||||
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) ctx.channel().remoteAddress();
|
||||
String clientIp = ipSocket.getAddress().getHostAddress();
|
||||
|
||||
log.info("【采集器-终端IP】:{},连接上线,IP地址信息:{}", clientIp, clientIp);
|
||||
|
||||
String clientKey = repository.getClientKey(ctx.channel());
|
||||
|
||||
if (Func.isNotBlank(clientKey)) {
|
||||
|
||||
NettyTerminatorDTO nettyTerminatorDTO = new NettyTerminatorDTO();
|
||||
nettyTerminatorDTO.setTerminatorIp(clientIp);
|
||||
nettyTerminatorDTO.setBusyState(BusyStateEnum.IDLE);
|
||||
nettyTerminatorDTO.setOnlineState(OnlineStateEnum.ONLINE);
|
||||
|
||||
//将ip和channel进行映射
|
||||
repository.put(nettyTerminatorDTO, ctx.channel());
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if (ctx.channel().isOpen()) {
|
||||
//触发下一个handler
|
||||
ctx.fireChannelRead(msg);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private ChannelRepository repository;
|
||||
|
||||
public NettyHeartbeatHandler(ChannelRepository repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
|
||||
cause.printStackTrace();
|
||||
String clientId = repository.getClientKey(ctx.channel());
|
||||
log.error("通道发生异常,终端连接:{}", clientId);
|
||||
//移除终端,终端离线
|
||||
if (clientId != null) {
|
||||
repository.remove(clientId);
|
||||
}
|
||||
if (ctx.channel().isActive()) {
|
||||
ctx.close();
|
||||
}
|
||||
super.exceptionCaught(ctx, cause);
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -0,0 +1,152 @@
|
||||
package com.docus.server.common.process;
|
||||
|
||||
import com.docus.core.util.Func;
|
||||
import com.docus.log.context.TrackContext;
|
||||
import com.docus.log.processor.AbstractProcessor;
|
||||
import com.docus.server.common.netty.server.ChannelRepository;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.EditSchCollectRecordDTO;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO;
|
||||
import com.docus.server.enums.BusyStateEnum;
|
||||
import com.docus.server.enums.RetryTaskEnum;
|
||||
import com.docus.server.enums.StateEnum;
|
||||
import com.docus.server.service.ISchCollectRecordRetryLogService;
|
||||
import com.docus.server.service.ISchCollectRecordService;
|
||||
import com.docus.server.service.ISchTerminatorService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectrecord.SchCollectRecordVO;
|
||||
import com.docus.server.vo.scheduling.management.schcollectrecordretrylog.SchCollectRecordRetryLogVO;
|
||||
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* channel 管理
|
||||
*/
|
||||
public class ChannelProcessor extends AbstractProcessor {
|
||||
@Resource
|
||||
private ChannelRepository channelRepository;
|
||||
@Resource
|
||||
private ISchTerminatorService iSchTerminatorService;
|
||||
@Resource
|
||||
private ISchCollectRecordService iSchCollectRecordService;
|
||||
@Resource
|
||||
private ISchCollectRecordRetryLogService iSchCollectRecordRetryLogService;
|
||||
|
||||
@Override
|
||||
protected Object doProcess(TrackContext context) {
|
||||
String group = context.getGroup();
|
||||
|
||||
switch (group) {
|
||||
case "SchCollectRecordController-edit":
|
||||
return doSchCollectRecordControllerEdit(context);
|
||||
case "SchTerminatorController":
|
||||
return doSchTerminatorController(context);
|
||||
case "RedisKeyExpirationService-expired":
|
||||
return doRedisKeyExpired(context);
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private Object doRedisKeyExpired(TrackContext context) {
|
||||
boolean error = context.isError();
|
||||
String expireKey = (String) context.getArgs()[0];
|
||||
|
||||
String recordId = expireKey.substring(expireKey.lastIndexOf(":") + 1);
|
||||
|
||||
if (!error) {
|
||||
|
||||
if (expireKey.startsWith("schCollectorRecord:isRetryTask:expireKey:")) {
|
||||
retryTask(recordId);
|
||||
}
|
||||
if (expireKey.startsWith("schCollectorRecord:noRetryTask:expireKey:")) {
|
||||
noRetryTask(recordId);
|
||||
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean doSchCollectRecordControllerEdit(TrackContext context) {
|
||||
return logCollectRecord(context);
|
||||
}
|
||||
|
||||
private boolean doSchTerminatorController(TrackContext context) {
|
||||
return logTerminator(context);
|
||||
}
|
||||
|
||||
private boolean logCollectRecord(TrackContext context) {
|
||||
boolean error = context.isError();
|
||||
|
||||
EditSchCollectRecordDTO collectRecordDTO = (EditSchCollectRecordDTO) context.getArgs()[0];
|
||||
|
||||
if (!error) {
|
||||
|
||||
if (RetryTaskEnum.NO_RETRY_TASK.equals(collectRecordDTO.getIsRetryTask())) {
|
||||
|
||||
noRetryTask(String.valueOf(collectRecordDTO.getId()));
|
||||
|
||||
} else if (RetryTaskEnum.RETRY_TASK.equals(collectRecordDTO.getIsRetryTask())) {
|
||||
|
||||
retryTask(String.valueOf(collectRecordDTO.getId()));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return error;
|
||||
|
||||
}
|
||||
|
||||
private void retryTask(String recordLogId) {
|
||||
SchCollectRecordRetryLogVO retryLogVO = iSchCollectRecordRetryLogService.findById(recordLogId);
|
||||
|
||||
updateTerminatorState(retryLogVO.getTerminatorId(), retryLogVO.getTaskExecState());
|
||||
|
||||
}
|
||||
|
||||
private void noRetryTask(String recordId) {
|
||||
|
||||
SchCollectRecordVO schCollectRecordVO = iSchCollectRecordService.findById(recordId);
|
||||
|
||||
updateTerminatorState(schCollectRecordVO.getTerminatorId(), schCollectRecordVO.getTaskExecState());
|
||||
}
|
||||
|
||||
private void updateTerminatorState(Long terminatorId, StateEnum taskExecState) {
|
||||
SchTerminatorVO schTerminatorVO = iSchTerminatorService.findById(String.valueOf(terminatorId));
|
||||
|
||||
NettyTerminatorDTO nettyTerminatorDTO = channelRepository.getTerminatorByIp(String.valueOf(schTerminatorVO.getTerminatorIp()));
|
||||
|
||||
if (Func.isEmpty(nettyTerminatorDTO)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<StateEnum> stateEnums = Arrays.asList(StateEnum.values());
|
||||
|
||||
if (stateEnums.contains(taskExecState)) {
|
||||
nettyTerminatorDTO.setBusyState(BusyStateEnum.IDLE);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean logTerminator(TrackContext context) {
|
||||
boolean error = context.isError();
|
||||
EditSchTerminatorDTO terminatorDTO = (EditSchTerminatorDTO) context.getArgs()[0];
|
||||
if (!error) {
|
||||
SchTerminatorVO terminatorVO = iSchTerminatorService.findById(String.valueOf(terminatorDTO.getId()));
|
||||
|
||||
NettyTerminatorDTO nettyTerminatorDTO = channelRepository.getTerminatorByIp(terminatorVO.getTerminatorIp());
|
||||
|
||||
if (Func.isNotBlank(terminatorDTO.getOnlyCollectorIds())) {
|
||||
List<String> onlyList = Arrays.stream(terminatorDTO.getOnlyCollectorIds().split(",")).map(String::valueOf).collect(Collectors.toList());
|
||||
nettyTerminatorDTO.setOnlyCollectorIds(onlyList);
|
||||
}
|
||||
if (Func.isNotBlank(terminatorDTO.getPriorityCollectorIds())) {
|
||||
List<String> priList = Arrays.stream(terminatorDTO.getPriorityCollectorIds().split(",")).map(String::valueOf).collect(Collectors.toList());
|
||||
nettyTerminatorDTO.setPriorityCollectorIds(priList);
|
||||
}
|
||||
}
|
||||
return error;
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package com.docus.server.common.process;
|
||||
|
||||
import com.docus.core.util.json.JSON;
|
||||
import com.docus.log.context.TrackContext;
|
||||
import com.docus.log.processor.AbstractProcessor;
|
||||
import com.docus.server.common.MsgConstants;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.UpdateSchCollectorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.CommMsgDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionFile;
|
||||
import com.docus.server.service.ICommMsgService;
|
||||
import com.docus.server.service.ISchCollectorVersionFileService;
|
||||
import com.docus.server.service.ISchCollectorVersionService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversion.SchCollectorVersionVO;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversion.TcpSchCollectorVersionContentVO;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* tcp 管理
|
||||
*/
|
||||
public class TcpProcessor extends AbstractProcessor {
|
||||
@Resource
|
||||
private ICommMsgService iCommMsgService;
|
||||
@Resource
|
||||
private ISchCollectorVersionFileService iSchCollectorVersionFileService;
|
||||
@Resource
|
||||
private ISchCollectorVersionService iSchCollectorVersionService;
|
||||
|
||||
@Override
|
||||
protected Object doProcess(TrackContext context) {
|
||||
return logProcess(context);
|
||||
}
|
||||
|
||||
private boolean logProcess(TrackContext context) {
|
||||
boolean error = context.isError();
|
||||
if (!error) {
|
||||
UpdateSchCollectorDTO updateSchCollectorDTO = (UpdateSchCollectorDTO) context.getArgs()[0];
|
||||
Long collectorId = updateSchCollectorDTO.getCollectorId();
|
||||
Long collectorVersionId = updateSchCollectorDTO.getCollectorVersionId();
|
||||
|
||||
SchCollectorVersionFile schCollectorVersionFile = iSchCollectorVersionFileService.findByCollectorIdAndVersionId(collectorId, collectorVersionId);
|
||||
SchCollectorVersionVO schCollectorVersionVO = iSchCollectorVersionService.findById(String.valueOf(collectorVersionId));
|
||||
|
||||
TcpSchCollectorVersionContentVO tcpSchCollectorVersionContentVO = new TcpSchCollectorVersionContentVO();
|
||||
tcpSchCollectorVersionContentVO.setCollectorId(collectorId);
|
||||
tcpSchCollectorVersionContentVO.setFilePath(schCollectorVersionFile.getFilePath());
|
||||
tcpSchCollectorVersionContentVO.setCollectorVersion(schCollectorVersionVO.getCollectVersion());
|
||||
|
||||
List<TcpSchCollectorVersionContentVO> tcpSchCollectorVersionContentVOList = Lists.newArrayList(tcpSchCollectorVersionContentVO);
|
||||
|
||||
CommMsgDTO commMsgDTO = CommMsgDTO.builder()
|
||||
.content(JSON.toJSON(tcpSchCollectorVersionContentVOList))
|
||||
.messageType(MsgConstants.UPDATE_COLLECTOR_FILE)
|
||||
.build();
|
||||
|
||||
iCommMsgService.clientsCommand(commMsgDTO);
|
||||
}
|
||||
return error;
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.docus.server.common.serializer;
|
||||
|
||||
import com.docus.core.util.Convert;
|
||||
import com.docus.infrastructure.web.json.JsonSerializerModule;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
|
||||
public class DefJsonSerializerModule extends JsonSerializerModule {
|
||||
public DefJsonSerializerModule() {
|
||||
|
||||
addSerializer(Date.class, new JsonSerializer<Date>() {
|
||||
@Override
|
||||
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
|
||||
jsonGenerator.writeString(date == null ? null : Convert.toString(date, Convert.DATA_FORMAT_DATETIME_SLASH, TimeZone.getTimeZone(ZoneId.systemDefault())));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.docus.server.common.serializer;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 全局handler前日期统一处理
|
||||
*/
|
||||
@Component
|
||||
public class StringToDateConverter implements Converter<String, Date> {
|
||||
|
||||
private static final List<String> DATE_FORMARTS = new ArrayList<>(4);
|
||||
|
||||
static {
|
||||
DATE_FORMARTS.add("yyyy-MM");
|
||||
DATE_FORMARTS.add("yyyy-MM-dd");
|
||||
DATE_FORMARTS.add("yyyy-MM-dd hh:mm");
|
||||
DATE_FORMARTS.add("yyyy-MM-dd hh:mm:ss");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date convert(String source) {
|
||||
String value = source.trim();
|
||||
if ("".equals(value)) {
|
||||
return null;
|
||||
}
|
||||
if (source.matches("^\\d{4}-\\d{1,2}$")) {
|
||||
return parseDate(source, DATE_FORMARTS.get(0));
|
||||
} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
|
||||
return parseDate(source, DATE_FORMARTS.get(1));
|
||||
} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
|
||||
return parseDate(source, DATE_FORMARTS.get(2));
|
||||
} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
|
||||
return parseDate(source, DATE_FORMARTS.get(3));
|
||||
} else {
|
||||
throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化日期
|
||||
*
|
||||
* @param dateStr String 字符型日期
|
||||
* @param format String 格式
|
||||
* @return Date 日期
|
||||
*/
|
||||
public Date parseDate(String dateStr, String format) {
|
||||
Date date = null;
|
||||
try {
|
||||
DateFormat dateFormat = new SimpleDateFormat(format);
|
||||
date = dateFormat.parse(dateStr);
|
||||
} catch (Exception e) {
|
||||
System.out.println(String.format("日期%s转换%s错误", dateStr, format));
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
package com.docus.server.common.test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DispatchService {
|
||||
|
||||
public void dispatch() {
|
||||
|
||||
|
||||
//获取所有空闲的终端
|
||||
List<Terminal> terminalList = new ArrayList<>();
|
||||
List<TaskInfo> taskInfos = this.getTaskInfos(terminalList.size());
|
||||
|
||||
|
||||
|
||||
//只采集,有优先级的
|
||||
for (Terminal terminal : terminalList) {
|
||||
for (TaskInfo taskInfo : taskInfos) {
|
||||
//先找出有只采集的任务。
|
||||
if (terminal.getOnlyTags().contains(taskInfo.getCollectType())) {
|
||||
//把这个任务派给这个终端,并且把这个终端设置成繁忙
|
||||
if (terminal.getPriorityTags().contains(taskInfo.getCollectType())) {
|
||||
//把这个任务派给这个终端
|
||||
terminal.setState(1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//只采集没有优先级
|
||||
for (Terminal terminal : terminalList) {
|
||||
//把刚才已经分配任务过的采集器排除
|
||||
if (terminal.getState() == 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (TaskInfo taskInfo : taskInfos) {
|
||||
//先找出有只采集的任务。
|
||||
if (terminal.getOnlyTags().contains(taskInfo.getCollectType())) {
|
||||
//把这个任务派给这个终端,并且把这个终端设置成繁忙
|
||||
|
||||
terminal.setState(1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//无只采集,有优先级
|
||||
for (Terminal terminal : terminalList) {
|
||||
|
||||
//把刚才已经分配任务过的采集器排除
|
||||
if (terminal.getState() == 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (TaskInfo taskInfo : taskInfos) {
|
||||
//先找出有只采集的任务。
|
||||
if (terminal.getPriorityTags().contains(taskInfo.getCollectType())) {
|
||||
//把这个任务派给这个终端
|
||||
terminal.setState(1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//无只采集,无优先级
|
||||
for (Terminal terminal : terminalList) {
|
||||
|
||||
//把刚才已经分配任务过的采集器排除
|
||||
if (terminal.getState() == 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (TaskInfo taskInfo : taskInfos) {
|
||||
//先找出有只采集的任务。
|
||||
//把这个任务派给这个终端
|
||||
terminal.setState(1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void dispatchTask(List<TaskInfo> taskInfos, Terminal terminal) {
|
||||
for (TaskInfo taskInfo : taskInfos) {
|
||||
//先找出有只采集的任务。
|
||||
if (terminal.getOnlyTags().contains(taskInfo.getCollectType())) {
|
||||
//把这个任务派给这个终端
|
||||
return;
|
||||
}
|
||||
if (terminal.getPriorityTags().contains(taskInfo.getCollectType())) {
|
||||
//把这个任务派给这个终端
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<TaskInfo> getTaskInfos(int size) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.docus.server.common.test;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TaskInfo {
|
||||
|
||||
private Long taskId;
|
||||
|
||||
private String collectType;
|
||||
|
||||
private String info;
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.docus.server.common.test;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class Terminal {
|
||||
|
||||
private String id;
|
||||
private String collectType;
|
||||
private List<String> priorityTags;
|
||||
private List<String> onlyTags;
|
||||
private Integer state;
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.server.api.scheduling.management.CommMsgApi;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.CommMsgDTO;
|
||||
import com.docus.server.service.ICommMsgService;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 通用消息体 TCP API
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class CommMsgController implements CommMsgApi {
|
||||
@Resource
|
||||
private ICommMsgService iCommMsgService;
|
||||
|
||||
@Override
|
||||
public void clientCommand(CommMsgDTO commMsgDTO) {
|
||||
iCommMsgService.clientCommand(commMsgDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.server.api.scheduling.management.FileApi;
|
||||
import com.docus.server.service.IFileUploadService;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 文件上传下载 API
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class FileController implements FileApi {
|
||||
@Resource
|
||||
private IFileUploadService iFileUploadService;
|
||||
|
||||
@Override
|
||||
public void downloadFile(String filePath, HttpServletResponse response) throws Exception {
|
||||
iFileUploadService.downloadFile(filePath, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadFile(MultipartFile[] multipartFiles, String pathKey) throws Exception {
|
||||
iFileUploadService.uploadFile(multipartFiles, pathKey);
|
||||
}
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchCollectErrorLogApi;
|
||||
import com.docus.server.dto.scheduling.management.schcollecterrorlog.AddSchCollectErrorLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollecterrorlog.DeleteSchCollectErrorLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollecterrorlog.EditSchCollectErrorLogDTO;
|
||||
import com.docus.server.service.ISchCollectErrorLogService;
|
||||
import com.docus.server.vo.scheduling.management.schcollecterrorlog.SchCollectErrorLogVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集器异常日志 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectErrorLogController implements SchCollectErrorLogApi {
|
||||
@Resource
|
||||
private ISchCollectErrorLogService iSchCollectErrorLogService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectErrorLogVO findById(String id) {
|
||||
return iSchCollectErrorLogService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectErrorLogVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectErrorLogService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectErrorLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchCollectErrorLogDTO addSchCollectErrorLogDTO, MultipartFile[] multipartFiles) throws Exception {
|
||||
return iSchCollectErrorLogService.add(addSchCollectErrorLogDTO, multipartFiles);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectErrorLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectErrorLogDTO editSchCollectErrorLogDTO) {
|
||||
return iSchCollectErrorLogService.edit(editSchCollectErrorLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectErrorLogDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectErrorLogDTO deleteSchCollectErrorLogDTO) {
|
||||
return iSchCollectErrorLogService.delete(deleteSchCollectErrorLogDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.core.util.ParamsUtils;
|
||||
import com.docus.core.util.json.JSON;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.log.annotation.TrackGroup;
|
||||
import com.docus.server.api.scheduling.management.SchCollectRecordApi;
|
||||
import com.docus.server.common.SchCollectorTask;
|
||||
import com.docus.server.common.process.ChannelProcessor;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.task.ReportDownTwoDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.AddSchCollectRecordDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.DeleteSchCollectRecordDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.EditSchCollectRecordDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.RetrySchCollectRecordDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecord;
|
||||
import com.docus.server.enums.RetryTaskEnum;
|
||||
import com.docus.server.service.ISchCollectRecordService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectrecord.SchCollectRecordVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集记录表 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectRecordController implements SchCollectRecordApi {
|
||||
@Resource
|
||||
private ISchCollectRecordService iSchCollectRecordService;
|
||||
@Resource
|
||||
private SchCollectorTask schedulerTask;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectRecordVO findById(String id) {
|
||||
return iSchCollectRecordService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectRecordVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectRecordService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectRecordDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public SchCollectRecord add(AddSchCollectRecordDTO addSchCollectRecordDTO) {
|
||||
return iSchCollectRecordService.add(addSchCollectRecordDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectRecordDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@TrackGroup(group = "SchCollectRecordController-edit", processor = ChannelProcessor.class)
|
||||
@Override
|
||||
public boolean edit(EditSchCollectRecordDTO editSchCollectRecordDTO) {
|
||||
return iSchCollectRecordService.edit(editSchCollectRecordDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectRecordDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectRecordDTO deleteSchCollectRecordDTO) {
|
||||
return iSchCollectRecordService.delete(deleteSchCollectRecordDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void retryTask(RetrySchCollectRecordDTO retrySchCollectRecordDTO) {
|
||||
ReportDownTwoDTO report = JSON.fromJSON(retrySchCollectRecordDTO.getTaskOriginJson(), ReportDownTwoDTO.class);
|
||||
|
||||
report.setParams(ParamsUtils
|
||||
.addParam("collectRecordId", retrySchCollectRecordDTO.getId())
|
||||
.addParam("isRetryTask", RetryTaskEnum.RETRY_TASK.getValue())
|
||||
.param());
|
||||
schedulerTask.addRetryTask(report);
|
||||
}
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchCollectRecordRetryLogApi;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecordretrylog.AddSchCollectRecordRetryLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecordretrylog.DeleteSchCollectRecordRetryLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecordretrylog.EditSchCollectRecordRetryLogDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecordRetryLog;
|
||||
import com.docus.server.service.ISchCollectRecordRetryLogService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectrecordretrylog.SchCollectRecordRetryLogVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集记录表重试表 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectRecordRetryLogController implements SchCollectRecordRetryLogApi {
|
||||
@Resource
|
||||
private ISchCollectRecordRetryLogService iSchCollectRecordRetryLogService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectRecordRetryLogVO findById(String id) {
|
||||
return iSchCollectRecordRetryLogService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectRecordRetryLogVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectRecordRetryLogService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectRecordRetryLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public SchCollectRecordRetryLog add(AddSchCollectRecordRetryLogDTO addSchCollectRecordRetryLogDTO) {
|
||||
return iSchCollectRecordRetryLogService.add(addSchCollectRecordRetryLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectRecordRetryLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectRecordRetryLogDTO editSchCollectRecordRetryLogDTO) {
|
||||
return iSchCollectRecordRetryLogService.edit(editSchCollectRecordRetryLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectRecordRetryLogDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectRecordRetryLogDTO deleteSchCollectRecordRetryLogDTO) {
|
||||
return iSchCollectRecordRetryLogService.delete(deleteSchCollectRecordRetryLogDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.core.util.json.JSON;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchCollectorConfigApi;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorconfig.AddSchCollectorConfigDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorconfig.DeleteSchCollectorConfigDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorconfig.EditSchCollectorConfigDTO;
|
||||
import com.docus.server.service.ISchCollectorConfigService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorconfig.SchCollectorConfigVO;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* 采集器配置 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectorConfigController implements SchCollectorConfigApi {
|
||||
@Resource
|
||||
private ISchCollectorConfigService iSchCollectorConfigService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectorConfigVO findById(String id) {
|
||||
return iSchCollectorConfigService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectorConfigVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectorConfigService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectorConfigDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchCollectorConfigDTO addSchCollectorConfigDTO) {
|
||||
return iSchCollectorConfigService.add(addSchCollectorConfigDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectorConfigDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectorConfigDTO editSchCollectorConfigDTO) {
|
||||
return iSchCollectorConfigService.edit(editSchCollectorConfigDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectorConfigDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectorConfigDTO deleteSchCollectorConfigDTO) {
|
||||
return iSchCollectorConfigService.delete(deleteSchCollectorConfigDTO);
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
HashMap<Object, Object> objectObjectHashMap = Maps.newHashMap();
|
||||
objectObjectHashMap.put("ocr.url", "http://192.168.2.13/ocr");
|
||||
objectObjectHashMap.put("ocr.name", "lin");
|
||||
objectObjectHashMap.put("ocr.pwd", "123");
|
||||
System.out.println(JSON.toJSON(objectObjectHashMap));
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.log.annotation.TrackLogGroup;
|
||||
import com.docus.server.api.scheduling.management.SchCollectorApi;
|
||||
import com.docus.server.common.process.CollectorVersionProcessor;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.AddSchCollectorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.DeleteSchCollectorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.EditSchCollectorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.UpdateSchCollectorDTO;
|
||||
import com.docus.server.service.ISchCollectorService;
|
||||
import com.docus.server.vo.scheduling.management.schcollector.SchCollectorVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集器管理 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectorController implements SchCollectorApi {
|
||||
@Resource
|
||||
private ISchCollectorService iSchCollectorService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectorVO findById(String id) {
|
||||
return iSchCollectorService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectorVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectorService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectorDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchCollectorDTO addSchCollectorDTO) {
|
||||
return iSchCollectorService.add(addSchCollectorDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectorDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectorDTO editSchCollectorDTO) {
|
||||
return iSchCollectorService.edit(editSchCollectorDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectorDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectorDTO deleteSchCollectorDTO) {
|
||||
return iSchCollectorService.delete(deleteSchCollectorDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 选为当前版本并更新
|
||||
*
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@TrackLogGroup(group = "采集器管理", action = "更新", desc = "更新采集器版本", processor = CollectorVersionProcessor.class)
|
||||
@Override
|
||||
public boolean updateVersion(UpdateSchCollectorDTO updateDTO) {
|
||||
return iSchCollectorService.updateVersion(updateDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchCollectorVersionApi;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversion.AddSchCollectorVersionDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversion.DeleteSchCollectorVersionDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversion.EditSchCollectorVersionDTO;
|
||||
import com.docus.server.service.ISchCollectorService;
|
||||
import com.docus.server.service.ISchCollectorVersionService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversion.SchCollectorVersionVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集器版本列表管理 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectorVersionController implements SchCollectorVersionApi {
|
||||
@Resource
|
||||
private ISchCollectorVersionService iSchCollectorVersionService;
|
||||
@Resource
|
||||
private ISchCollectorService iSchCollectorService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectorVersionVO findById(String id) {
|
||||
return iSchCollectorVersionService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectorVersionVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectorVersionService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectorVersionDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchCollectorVersionDTO addSchCollectorVersionDTO) {
|
||||
return iSchCollectorVersionService.add(addSchCollectorVersionDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectorVersionDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectorVersionDTO editSchCollectorVersionDTO) {
|
||||
return iSchCollectorVersionService.edit(editSchCollectorVersionDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectorVersionDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectorVersionDTO deleteSchCollectorVersionDTO) {
|
||||
return iSchCollectorVersionService.delete(deleteSchCollectorVersionDTO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.docus.core.util.Func;
|
||||
import com.docus.infrastructure.web.exception.ApiException;
|
||||
import com.docus.infrastructure.web.exception.ExceptionCode;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchCollectorVersionFileApi;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionfile.AddSchCollectorVersionFileDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionfile.DeleteSchCollectorVersionFileDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionfile.EditSchCollectorVersionFileDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersion;
|
||||
import com.docus.server.service.ISchCollectorVersionFileService;
|
||||
import com.docus.server.service.ISchCollectorVersionService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversionfile.SchCollectorVersionFileVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集器版本列表更新包管理 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
@Slf4j
|
||||
public class SchCollectorVersionFileController implements SchCollectorVersionFileApi {
|
||||
@Resource
|
||||
private ISchCollectorVersionFileService iSchCollectorVersionFileService;
|
||||
@Resource
|
||||
private ISchCollectorVersionService iSchCollectorVersionService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectorVersionFileVO findById(String id) {
|
||||
return iSchCollectorVersionFileService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectorVersionFileVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectorVersionFileService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchCollectorVersionFileDTO addDTO, MultipartFile[] multipartFiles) throws Exception {
|
||||
if (fileValid(multipartFiles, addDTO)) {
|
||||
throw new ApiException(ExceptionCode.ParamIllegal.getCode(), "请选择文件和填写上传文件信息!");
|
||||
}
|
||||
|
||||
SchCollectorVersion schCollectorVersion = iSchCollectorVersionService.findByVersion(addDTO.getCollectorId(), addDTO.getCollectorVersionNo());
|
||||
|
||||
if (null != schCollectorVersion) {
|
||||
throw new ApiException(ExceptionCode.ParamIllegal.getCode(), "当前采集器版本号已存在!");
|
||||
}
|
||||
|
||||
iSchCollectorVersionFileService.addVersionAndFile(addDTO, multipartFiles);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean fileValid(MultipartFile[] multipartFiles, AddSchCollectorVersionFileDTO addSchCollectorVersionFileDTO) {
|
||||
return multipartFiles == null
|
||||
|| multipartFiles.length == 0
|
||||
|| StrUtil.isBlank(addSchCollectorVersionFileDTO.getCollectorVersionNo())
|
||||
|| Func.isEmpty(addSchCollectorVersionFileDTO.getCollectorId());
|
||||
}
|
||||
|
||||
public boolean add(AddSchCollectorVersionFileDTO addSchCollectorVersionFileDTO) {
|
||||
return iSchCollectorVersionFileService.add(addSchCollectorVersionFileDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectorVersionFileDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectorVersionFileDTO editSchCollectorVersionFileDTO) {
|
||||
return iSchCollectorVersionFileService.edit(editSchCollectorVersionFileDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectorVersionFileDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectorVersionFileDTO deleteSchCollectorVersionFileDTO) {
|
||||
return iSchCollectorVersionFileService.delete(deleteSchCollectorVersionFileDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchCollectorVersionLogApi;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionlog.AddSchCollectorVersionLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionlog.DeleteSchCollectorVersionLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionlog.EditSchCollectorVersionLogDTO;
|
||||
import com.docus.server.service.ISchCollectorVersionLogService;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversionlog.SchCollectorVersionLogVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集器版本更新日志管理 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchCollectorVersionLogController implements SchCollectorVersionLogApi {
|
||||
@Resource
|
||||
private ISchCollectorVersionLogService iSchCollectorVersionLogService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchCollectorVersionLogVO findById(String id) {
|
||||
return iSchCollectorVersionLogService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchCollectorVersionLogVO> search(SearchDTO searchDTO) {
|
||||
return iSchCollectorVersionLogService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchCollectorVersionLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchCollectorVersionLogDTO addSchCollectorVersionLogDTO) {
|
||||
return iSchCollectorVersionLogService.add(addSchCollectorVersionLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchCollectorVersionLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchCollectorVersionLogDTO editSchCollectorVersionLogDTO) {
|
||||
return iSchCollectorVersionLogService.edit(editSchCollectorVersionLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchCollectorVersionLogDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchCollectorVersionLogDTO deleteSchCollectorVersionLogDTO) {
|
||||
return iSchCollectorVersionLogService.delete(deleteSchCollectorVersionLogDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchOperationLogApi;
|
||||
import com.docus.server.dto.scheduling.management.schoperationlog.AddSchOperationLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schoperationlog.DeleteSchOperationLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schoperationlog.EditSchOperationLogDTO;
|
||||
import com.docus.server.service.ISchOperationLogService;
|
||||
import com.docus.server.vo.scheduling.management.schoperationlog.SchOperationLogVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采集调度器操作日志 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchOperationLogController implements SchOperationLogApi {
|
||||
@Resource
|
||||
private ISchOperationLogService iSchOperationLogService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchOperationLogVO findById(String id) {
|
||||
return iSchOperationLogService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchOperationLogVO> search(SearchDTO searchDTO) {
|
||||
return iSchOperationLogService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchOperationLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchOperationLogDTO addSchOperationLogDTO) {
|
||||
return iSchOperationLogService.add(addSchOperationLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchOperationLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchOperationLogDTO editSchOperationLogDTO) {
|
||||
return iSchOperationLogService.edit(editSchOperationLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchOperationLogDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchOperationLogDTO deleteSchOperationLogDTO) {
|
||||
return iSchOperationLogService.delete(deleteSchOperationLogDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchSystemParamsApi;
|
||||
import com.docus.server.dto.scheduling.management.schsystemparams.AddSchSystemParamsDTO;
|
||||
import com.docus.server.dto.scheduling.management.schsystemparams.DeleteSchSystemParamsDTO;
|
||||
import com.docus.server.dto.scheduling.management.schsystemparams.EditSchSystemParamsDTO;
|
||||
import com.docus.server.service.ISchSystemParamsService;
|
||||
import com.docus.server.vo.scheduling.management.schsystemparams.SchSystemParamsVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 系统参数表 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchSystemParamsController implements SchSystemParamsApi {
|
||||
@Resource
|
||||
private ISchSystemParamsService iSchSystemParamsService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchSystemParamsVO findById(String id) {
|
||||
return iSchSystemParamsService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchSystemParamsVO> search(SearchDTO searchDTO) {
|
||||
return iSchSystemParamsService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchSystemParamsDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchSystemParamsDTO addSchSystemParamsDTO) {
|
||||
return iSchSystemParamsService.add(addSchSystemParamsDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchSystemParamsDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchSystemParamsDTO editSchSystemParamsDTO) {
|
||||
return iSchSystemParamsService.edit(editSchSystemParamsDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchSystemParamsDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchSystemParamsDTO deleteSchSystemParamsDTO) {
|
||||
return iSchSystemParamsService.delete(deleteSchSystemParamsDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.log.annotation.TrackGroup;
|
||||
import com.docus.server.api.scheduling.management.SchTerminatorApi;
|
||||
import com.docus.server.common.netty.server.ChannelRepository;
|
||||
import com.docus.server.common.process.ChannelProcessor;
|
||||
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.service.ISchTerminatorService;
|
||||
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 执行管理器 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchTerminatorController implements SchTerminatorApi {
|
||||
@Resource
|
||||
private ISchTerminatorService iSchTerminatorService;
|
||||
@Resource
|
||||
private ChannelRepository channelRepository;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchTerminatorVO findById(String id) {
|
||||
return iSchTerminatorService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchTerminatorVO> search(SearchDTO searchDTO) {
|
||||
return iSchTerminatorService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchTerminatorDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchTerminatorDTO addSchTerminatorDTO) {
|
||||
return iSchTerminatorService.add(addSchTerminatorDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchTerminatorDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@TrackGroup(group = "SchTerminatorController", processor = ChannelProcessor.class)
|
||||
@Override
|
||||
public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) {
|
||||
return iSchTerminatorService.edit(editSchTerminatorDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchTerminatorDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchTerminatorDTO deleteSchTerminatorDTO) {
|
||||
return iSchTerminatorService.delete(deleteSchTerminatorDTO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package com.docus.server.controller;
|
||||
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.api.scheduling.management.SchVirtualLogApi;
|
||||
import com.docus.server.dto.scheduling.management.schvirtuallog.AddSchVirtualLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schvirtuallog.DeleteSchVirtualLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schvirtuallog.EditSchVirtualLogDTO;
|
||||
import com.docus.server.service.ISchVirtualLogService;
|
||||
import com.docus.server.vo.scheduling.management.schvirtuallog.SchVirtualLogVO;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 虚拟机使用情况 控制器类
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@RestController
|
||||
public class SchVirtualLogController implements SchVirtualLogApi {
|
||||
@Resource
|
||||
private ISchVirtualLogService iSchVirtualLogService;
|
||||
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键Id
|
||||
* @return 实体
|
||||
*/
|
||||
@Override
|
||||
public SchVirtualLogVO findById(String id) {
|
||||
return iSchVirtualLogService.findById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SchVirtualLogVO> search(SearchDTO searchDTO) {
|
||||
return iSchVirtualLogService.search(searchDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param addSchVirtualLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean add(AddSchVirtualLogDTO addSchVirtualLogDTO) {
|
||||
return iSchVirtualLogService.add(addSchVirtualLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param editSchVirtualLogDTO 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(EditSchVirtualLogDTO editSchVirtualLogDTO) {
|
||||
return iSchVirtualLogService.edit(editSchVirtualLogDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param deleteSchVirtualLogDTO 删除参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
@Override
|
||||
public int delete(DeleteSchVirtualLogDTO deleteSchVirtualLogDTO) {
|
||||
return iSchVirtualLogService.delete(deleteSchVirtualLogDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.server.common.netty.CommMsg;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.CommMsgDTO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/**
|
||||
* 通用消息转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface CommMsgConvert {
|
||||
|
||||
CommMsgConvert INSTANCE = Mappers.getMapper(CommMsgConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
CommMsg convertDO(CommMsgDTO commMsgDTO);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectErrorLog;
|
||||
import com.docus.server.dto.scheduling.management.schcollecterrorlog.AddSchCollectErrorLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollecterrorlog.EditSchCollectErrorLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollecterrorlog.DeleteSchCollectErrorLogDTO;
|
||||
import com.docus.server.vo.scheduling.management.schcollecterrorlog.SchCollectErrorLogVO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器异常日志 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectErrorLogConvert {
|
||||
|
||||
SchCollectErrorLogConvert INSTANCE = Mappers.getMapper(SchCollectErrorLogConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectErrorLog convertDO(AddSchCollectErrorLogDTO addSchCollectErrorLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectErrorLog convertDO(EditSchCollectErrorLogDTO editSchCollectErrorLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectErrorLog> convertAddDOList(List<AddSchCollectErrorLogDTO> addSchCollectErrorLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectErrorLog> convertEditDOList(List<EditSchCollectErrorLogDTO> editSchCollectErrorLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectErrorLogVO convertVO(SchCollectErrorLog schCollectErrorLog);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectErrorLogVO> convertVO(List<SchCollectErrorLog> schCollectErrorLogList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectErrorLogVO> convertVO(PageResult<SchCollectErrorLog> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,47 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.AddSchCollectRecordDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.EditSchCollectRecordDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecord;
|
||||
import com.docus.server.vo.scheduling.management.schcollectrecord.SchCollectRecordVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集记录表 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectRecordConvert {
|
||||
|
||||
SchCollectRecordConvert INSTANCE = Mappers.getMapper(SchCollectRecordConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecord convertDO(AddSchCollectRecordDTO addSchCollectRecordDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecord convertDO(EditSchCollectRecordDTO editSchCollectRecordDTO, @MappingTarget SchCollectRecord schCollectRecord);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectRecord> convertAddDOList(List<AddSchCollectRecordDTO> addSchCollectRecordDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectRecord> convertEditDOList(List<EditSchCollectRecordDTO> editSchCollectRecordDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecordVO convertVO(SchCollectRecord schCollectRecord);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectRecordVO> convertVO(List<SchCollectRecord> schCollectRecordList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectRecordVO> convertVO(PageResult<SchCollectRecord> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,51 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecord.EditSchCollectRecordDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecordretrylog.AddSchCollectRecordRetryLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectrecordretrylog.EditSchCollectRecordRetryLogDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecordRetryLog;
|
||||
import com.docus.server.vo.scheduling.management.schcollectrecordretrylog.SchCollectRecordRetryLogVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集记录表重试表 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectRecordRetryLogConvert {
|
||||
|
||||
SchCollectRecordRetryLogConvert INSTANCE = Mappers.getMapper(SchCollectRecordRetryLogConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecordRetryLog convertDO(EditSchCollectRecordDTO editSchCollectRecordDTO, @MappingTarget SchCollectRecordRetryLog schCollectRecordRetryLog);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecordRetryLog convertDO(AddSchCollectRecordRetryLogDTO addSchCollectRecordRetryLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecordRetryLog convertDO(EditSchCollectRecordRetryLogDTO editSchCollectRecordRetryLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectRecordRetryLog> convertAddDOList(List<AddSchCollectRecordRetryLogDTO> addSchCollectRecordRetryLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectRecordRetryLog> convertEditDOList(List<EditSchCollectRecordRetryLogDTO> editSchCollectRecordRetryLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectRecordRetryLogVO convertVO(SchCollectRecordRetryLog schCollectRecordRetryLog);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectRecordRetryLogVO> convertVO(List<SchCollectRecordRetryLog> schCollectRecordRetryLogList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectRecordRetryLogVO> convertVO(PageResult<SchCollectRecordRetryLog> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,44 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorconfig.AddSchCollectorConfigDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorconfig.EditSchCollectorConfigDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorConfig;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorconfig.SchCollectorConfigVO;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorconfig.TcpSchCollectorConfigVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器配置 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorConfigConvert {
|
||||
|
||||
SchCollectorConfigConvert INSTANCE = Mappers.getMapper(SchCollectorConfigConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorConfig convertDO(AddSchCollectorConfigDTO addSchCollectorConfigDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorConfig convertDO(EditSchCollectorConfigDTO editSchCollectorConfigDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorConfigVO convertVO(SchCollectorConfig schCollectorConfig);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectorConfigVO> convertVO(PageResult<SchCollectorConfig> pageResult);
|
||||
|
||||
@Mappings({})
|
||||
List<TcpSchCollectorConfigVO> convertTcpVOList(List<SchCollectorConfig> publicConfig);
|
||||
|
||||
@Mappings({})
|
||||
TcpSchCollectorConfigVO convertTcpVO(SchCollectorConfig schCollectorConfig);
|
||||
}
|
||||
|
@ -0,0 +1,47 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.AddSchCollectorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollector.EditSchCollectorDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollector;
|
||||
import com.docus.server.vo.scheduling.management.schcollector.SchCollectorVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器管理 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorConvert {
|
||||
|
||||
SchCollectorConvert INSTANCE = Mappers.getMapper(SchCollectorConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollector convertDO(AddSchCollectorDTO addSchCollectorDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollector convertDO(EditSchCollectorDTO editSchCollectorDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollector> convertAddDOList(List<AddSchCollectorDTO> addSchCollectorDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollector> convertEditDOList(List<EditSchCollectorDTO> editSchCollectorDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVO convertVO(SchCollector schCollector);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVO> convertVO(List<SchCollector> schCollectorList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectorVO> convertVO(PageResult<SchCollector> pageResult);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,46 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversion.AddSchCollectorVersionDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversion.EditSchCollectorVersionDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersion;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversion.SchCollectorVersionVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器版本列表管理 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorVersionConvert {
|
||||
|
||||
SchCollectorVersionConvert INSTANCE = Mappers.getMapper(SchCollectorVersionConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersion convertDO(AddSchCollectorVersionDTO addSchCollectorVersionDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersion convertDO(EditSchCollectorVersionDTO editSchCollectorVersionDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersion> convertAddDOList(List<AddSchCollectorVersionDTO> addSchCollectorVersionDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersion> convertEditDOList(List<EditSchCollectorVersionDTO> editSchCollectorVersionDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionVO convertVO(SchCollectorVersion schCollectorVersion);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionVO> convertVO(List<SchCollectorVersion> schCollectorVersionList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectorVersionVO> convertVO(PageResult<SchCollectorVersion> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionFile;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionfile.AddSchCollectorVersionFileDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionfile.EditSchCollectorVersionFileDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionfile.DeleteSchCollectorVersionFileDTO;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversionfile.SchCollectorVersionFileVO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器版本列表更新包管理 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorVersionFileConvert {
|
||||
|
||||
SchCollectorVersionFileConvert INSTANCE = Mappers.getMapper(SchCollectorVersionFileConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionFile convertDO(AddSchCollectorVersionFileDTO addSchCollectorVersionFileDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionFile convertDO(EditSchCollectorVersionFileDTO editSchCollectorVersionFileDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionFile> convertAddDOList(List<AddSchCollectorVersionFileDTO> addSchCollectorVersionFileDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionFile> convertEditDOList(List<EditSchCollectorVersionFileDTO> editSchCollectorVersionFileDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionFileVO convertVO(SchCollectorVersionFile schCollectorVersionFile);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionFileVO> convertVO(List<SchCollectorVersionFile> schCollectorVersionFileList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectorVersionFileVO> convertVO(PageResult<SchCollectorVersionFile> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionLog;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionlog.AddSchCollectorVersionLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionlog.EditSchCollectorVersionLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schcollectorversionlog.DeleteSchCollectorVersionLogDTO;
|
||||
import com.docus.server.vo.scheduling.management.schcollectorversionlog.SchCollectorVersionLogVO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器版本更新日志管理 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorVersionLogConvert {
|
||||
|
||||
SchCollectorVersionLogConvert INSTANCE = Mappers.getMapper(SchCollectorVersionLogConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionLog convertDO(AddSchCollectorVersionLogDTO addSchCollectorVersionLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionLog convertDO(EditSchCollectorVersionLogDTO editSchCollectorVersionLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionLog> convertAddDOList(List<AddSchCollectorVersionLogDTO> addSchCollectorVersionLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionLog> convertEditDOList(List<EditSchCollectorVersionLogDTO> editSchCollectorVersionLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchCollectorVersionLogVO convertVO(SchCollectorVersionLog schCollectorVersionLog);
|
||||
|
||||
@Mappings({})
|
||||
List<SchCollectorVersionLogVO> convertVO(List<SchCollectorVersionLog> schCollectorVersionLogList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchCollectorVersionLogVO> convertVO(PageResult<SchCollectorVersionLog> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchOperationLog;
|
||||
import com.docus.server.dto.scheduling.management.schoperationlog.AddSchOperationLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schoperationlog.EditSchOperationLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schoperationlog.DeleteSchOperationLogDTO;
|
||||
import com.docus.server.vo.scheduling.management.schoperationlog.SchOperationLogVO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集调度器操作日志 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchOperationLogConvert {
|
||||
|
||||
SchOperationLogConvert INSTANCE = Mappers.getMapper(SchOperationLogConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchOperationLog convertDO(AddSchOperationLogDTO addSchOperationLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchOperationLog convertDO(EditSchOperationLogDTO editSchOperationLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchOperationLog> convertAddDOList(List<AddSchOperationLogDTO> addSchOperationLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchOperationLog> convertEditDOList(List<EditSchOperationLogDTO> editSchOperationLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchOperationLogVO convertVO(SchOperationLog schOperationLog);
|
||||
|
||||
@Mappings({})
|
||||
List<SchOperationLogVO> convertVO(List<SchOperationLog> schOperationLogList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchOperationLogVO> convertVO(PageResult<SchOperationLog> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchSystemParams;
|
||||
import com.docus.server.dto.scheduling.management.schsystemparams.AddSchSystemParamsDTO;
|
||||
import com.docus.server.dto.scheduling.management.schsystemparams.EditSchSystemParamsDTO;
|
||||
import com.docus.server.dto.scheduling.management.schsystemparams.DeleteSchSystemParamsDTO;
|
||||
import com.docus.server.vo.scheduling.management.schsystemparams.SchSystemParamsVO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 系统参数表 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchSystemParamsConvert {
|
||||
|
||||
SchSystemParamsConvert INSTANCE = Mappers.getMapper(SchSystemParamsConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchSystemParams convertDO(AddSchSystemParamsDTO addSchSystemParamsDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchSystemParams convertDO(EditSchSystemParamsDTO editSchSystemParamsDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchSystemParams> convertAddDOList(List<AddSchSystemParamsDTO> addSchSystemParamsDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchSystemParams> convertEditDOList(List<EditSchSystemParamsDTO> editSchSystemParamsDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchSystemParamsVO convertVO(SchSystemParams schSystemParams);
|
||||
|
||||
@Mappings({})
|
||||
List<SchSystemParamsVO> convertVO(List<SchSystemParams> schSystemParamsList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchSystemParamsVO> convertVO(PageResult<SchSystemParams> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminatorDTO;
|
||||
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchTerminator;
|
||||
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 执行管理器 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchTerminatorConvert {
|
||||
|
||||
SchTerminatorConvert INSTANCE = Mappers.getMapper(SchTerminatorConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchTerminator convertDO(AddSchTerminatorDTO addSchTerminatorDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchTerminator convertDO(EditSchTerminatorDTO editSchTerminatorDTO, @MappingTarget SchTerminator schTerminator1);
|
||||
|
||||
@Mappings({})
|
||||
SchTerminatorVO convertVO(SchTerminator schTerminator);
|
||||
|
||||
@Mappings({})
|
||||
List<SchTerminatorVO> convertVO(List<SchTerminator> schTerminatorList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchTerminatorVO> convertVO(PageResult<SchTerminator> pageResult);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,46 @@
|
||||
package com.docus.server.convert;
|
||||
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.dto.scheduling.management.schvirtuallog.AddSchVirtualLogDTO;
|
||||
import com.docus.server.dto.scheduling.management.schvirtuallog.EditSchVirtualLogDTO;
|
||||
import com.docus.server.entity.scheduling.management.SchVirtualLog;
|
||||
import com.docus.server.vo.scheduling.management.schvirtuallog.SchVirtualLogVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 虚拟机使用情况 服务转换器
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchVirtualLogConvert {
|
||||
|
||||
SchVirtualLogConvert INSTANCE = Mappers.getMapper(SchVirtualLogConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
SchVirtualLog convertDO(AddSchVirtualLogDTO addSchVirtualLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchVirtualLog convertDO(EditSchVirtualLogDTO editSchVirtualLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchVirtualLog> convertAddDOList(List<AddSchVirtualLogDTO> addSchVirtualLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
List<SchVirtualLog> convertEditDOList(List<EditSchVirtualLogDTO> editSchVirtualLogDTO);
|
||||
|
||||
@Mappings({})
|
||||
SchVirtualLogVO convertVO(SchVirtualLog schVirtualLog);
|
||||
|
||||
@Mappings({})
|
||||
List<SchVirtualLogVO> convertVO(List<SchVirtualLog> schVirtualLogList);
|
||||
|
||||
@Mappings({})
|
||||
PageResult<SchVirtualLogVO> convertVO(PageResult<SchVirtualLog> pageResult);
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
package com.docus.server.infrastructure.cache;
|
||||
|
||||
import com.docus.server.annotation.CacheLayer;
|
||||
|
||||
@CacheLayer("schetaskCacheLayer")
|
||||
public class TaskCacheLayer {
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.docus.server.infrastructure.client;
|
||||
|
||||
public class DownLoadAPI {
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectErrorLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器异常日志 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectErrorLogDao extends IBaseDao<SchCollectErrorLog> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectErrorLog findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectErrorLog 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectErrorLog schCollectErrorLog);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectErrorLog 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectErrorLog schCollectErrorLog);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectErrorLog> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecord;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集记录表 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectRecordDao extends IBaseDao<SchCollectRecord> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectRecord findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectRecord 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectRecord schCollectRecord);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectRecord 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectRecord schCollectRecord);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectRecord> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecordRetryLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集记录表重试表 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectRecordRetryLogDao extends IBaseDao<SchCollectRecordRetryLog> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectRecordRetryLog findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectRecordRetryLog 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectRecordRetryLog schCollectRecordRetryLog);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectRecordRetryLog 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectRecordRetryLog schCollectRecordRetryLog);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectRecordRetryLog> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorConfig;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器配置 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectorConfigDao extends IBaseDao<SchCollectorConfig> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectorConfig findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectorConfig 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectorConfig schCollectorConfig);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectorConfig 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectorConfig schCollectorConfig);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectorConfig> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollector;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器管理 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectorDao extends IBaseDao<SchCollector> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollector findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollector 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollector schCollector);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollector 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollector schCollector);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollector> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersion;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器版本列表管理 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectorVersionDao extends IBaseDao<SchCollectorVersion> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectorVersion findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectorVersion 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectorVersion schCollectorVersion);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectorVersion 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectorVersion schCollectorVersion);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectorVersion> search(SearchDTO searchDTO);
|
||||
|
||||
/**
|
||||
* 根据采集器id和版本号查询是否重复
|
||||
*
|
||||
* @param collectorId 采集器id
|
||||
* @param collectorVersionNo 版本号码
|
||||
* @return SchCollectorVersion
|
||||
*/
|
||||
SchCollectorVersion findByVersion(Long collectorId, String collectorVersionNo);
|
||||
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器版本列表更新包管理 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectorVersionFileDao extends IBaseDao<SchCollectorVersionFile> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectorVersionFile findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectorVersionFile 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectorVersionFile schCollectorVersionFile);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectorVersionFile 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectorVersionFile schCollectorVersionFile);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectorVersionFile> search(SearchDTO searchDTO);
|
||||
|
||||
SchCollectorVersionFile findByVersionIdAndCollectorId(Long collectorId, Long collectorVersionId);
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集器版本更新日志管理 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchCollectorVersionLogDao extends IBaseDao<SchCollectorVersionLog> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchCollectorVersionLog findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schCollectorVersionLog 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchCollectorVersionLog schCollectorVersionLog);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schCollectorVersionLog 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchCollectorVersionLog schCollectorVersionLog);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchCollectorVersionLog> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchOperationLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采集调度器操作日志 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchOperationLogDao extends IBaseDao<SchOperationLog> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchOperationLog findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schOperationLog 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchOperationLog schOperationLog);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schOperationLog 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchOperationLog schOperationLog);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchOperationLog> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchSystemParams;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 系统参数表 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchSystemParamsDao extends IBaseDao<SchSystemParams> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchSystemParams findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schSystemParams 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchSystemParams schSystemParams);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schSystemParams 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchSystemParams schSystemParams);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchSystemParams> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchTerminator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 执行管理器 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchTerminatorDao extends IBaseDao<SchTerminator> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchTerminator findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schTerminator 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchTerminator schTerminator);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schTerminator 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchTerminator schTerminator);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchTerminator> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.docus.server.infrastructure.dao;
|
||||
|
||||
import com.docus.infrastructure.core.db.dao.IBaseDao;
|
||||
import com.docus.infrastructure.web.request.SearchDTO;
|
||||
import com.docus.infrastructure.web.response.PageResult;
|
||||
import com.docus.server.entity.scheduling.management.SchVirtualLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 虚拟机使用情况 数据访问接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
public interface ISchVirtualLogDao extends IBaseDao<SchVirtualLog> {
|
||||
/**
|
||||
* 按主键查询
|
||||
*
|
||||
* @param id 主键id
|
||||
* @return 实体
|
||||
*/
|
||||
SchVirtualLog findById(String id);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param schVirtualLog 新增参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean add(SchVirtualLog schVirtualLog);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param schVirtualLog 编辑参数
|
||||
* @return 成功或失败
|
||||
*/
|
||||
boolean edit(SchVirtualLog schVirtualLog);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 主键ids
|
||||
* @return 成功或失败
|
||||
*/
|
||||
int delete(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 关键字搜索
|
||||
*
|
||||
* @param searchDTO 搜索参数
|
||||
* @return 分页列表
|
||||
*/
|
||||
PageResult<SchVirtualLog> search(SearchDTO searchDTO);
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectErrorLog;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集器异常日志 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectErrorLogMapper extends BaseMapper<SchCollectErrorLog> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集记录表 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectRecordMapper extends BaseMapper<SchCollectRecord> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectRecordRetryLog;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集记录表重试表 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectRecordRetryLogMapper extends BaseMapper<SchCollectRecordRetryLog> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorConfig;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集器配置 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorConfigMapper extends BaseMapper<SchCollectorConfig> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollector;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集器管理 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorMapper extends BaseMapper<SchCollector> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionFile;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集器版本列表更新包管理 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorVersionFileMapper extends BaseMapper<SchCollectorVersionFile> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersionLog;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集器版本更新日志管理 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorVersionLogMapper extends BaseMapper<SchCollectorVersionLog> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.docus.server.infrastructure.mapper;
|
||||
|
||||
import com.docus.server.entity.scheduling.management.SchCollectorVersion;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* 采集器版本列表管理 Mapper 接口
|
||||
*
|
||||
* @author AutoGenerator
|
||||
* @since 2023-07-15
|
||||
*/
|
||||
@Mapper
|
||||
public interface SchCollectorVersionMapper extends BaseMapper<SchCollectorVersion> {
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue