提交 4fae9266 authored 作者: zjm's avatar zjm

Initial commit

上级
流水线 #194 已失败 于阶段
# dir files
/target/
/log/*
/file
/files
# Compiled class file
*.class
# Log file
*.log
.log
**/.log
# publisher file
schemes.json
# BlueJ files
*.ctxt
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# other files
!.mvn/wrapper/maven-wrapper.jar
*#
*.iml
*.ipr
*.iws
*.jar
*.sw?
*~
.#*
.*.md.html
.DS_Store
.classpath
.factorypath
.gradle
.idea
.metadata
.project
.recommenders
.settings
.springBeans
/build
/code
MANIFEST.MF
_site/
activemq-data
bin
build
build.log
dependency-reduced-pom.xml
dump.rdb
interpolated*.xml
lib/
manifest.yml
overridedb.*
settings.xml
target
transaction-logs
.flattened-pom.xml
secrets.yml
.gradletasknamecache
.sts4-cache
\ No newline at end of file
stages:
- build
- test
- deploy
variables:
JAR_LOCATION: 'acq-union/target/acq-union-0.0.1-SNAPSHOT.jar'
REMOTE_USER: 'root'
REMOTE_IP: '192.168.1.159'
REMOTE_LOCATION: '/root/projects/fp-acq'
# 缓存jar 文件
cache:
paths:
- $JAR_LOCATION
api-build-159:
stage: build
only:
- master
tags:
- fp-acq
script:
- mvn clean package -DskipTests=true -P prod
artifacts:
name: "$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-prod"
when: on_success
expire_in: 1 days
paths:
- acq-union/target/*.jar
api-build-A3:
stage: build
only:
- master
tags:
- fp-acq
environment:
name: A3-env
when: manual
script:
- mvn clean package -DskipTests=true -P deploy
artifacts:
name: "$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-deploy"
when: on_success
expire_in: 1 days
paths:
- acq-union/target/*.jar
api-test:
stage: test
only:
- master
tags:
- fp-acq
script:
- export
- echo "This is just a test example echo!"
api-deploy-159:
stage: deploy
only:
- master
tags:
- fp-acq
environment:
name: production
# 可选执行
# when: manual
script:
# 将jar包上传到指定的远程服务器的指定目录
- scp -r $JAR_LOCATION $REMOTE_USER@$REMOTE_IP:$REMOTE_LOCATION
# 通过ssh远程执行
- ssh $REMOTE_USER@$REMOTE_IP sh /root/projects/fp-acq/start-up.sh 8086
#- ssh $REMOTE_USER@$REMOTE_IP service fp-api start
#- ssh zjm@192.168.1.244 sh /home/zjm/acq/start-up.sh
# - sh /home/zjm/acq/start-up.sh 8086
api-rebuild-deploy-159:
stage: deploy
only:
- master
tags:
- fp-acq
environment:
name: production
# 可选执行
when: manual
script:
- mvn clean package -DskipTests=true -P prod
# 将jar包上传到指定的远程服务器的指定目录
- scp -r $JAR_LOCATION $REMOTE_USER@$REMOTE_IP:$REMOTE_LOCATION
# 通过ssh远程执行
- ssh $REMOTE_USER@$REMOTE_IP sh /root/projects/fp-acq/start-up.sh 8087
# 融合平台 acq 服务器
## 说明
暂时没有说明.
## 模块
- acq-misc
- acq-ndss
- acq-nsrs
- acq-stms
- acq-vomp
- acq-union
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project 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/maven-4.0.0.xsd">
<parent>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>acq-misc</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.zjty.fp.acq.misc.utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import java.io.*;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* <p>Description : vompout
* <p>Date : 2018/9/27 17:12
* <p>@author : C
*/
@Slf4j
@Scope("prototype")
@Component
public class FileCreator {
public File createFile(String subName, String catalog, String data) {
String pathname = "files/" + subName + "/" + catalog + "/";
String filename = getFileNameByDate(subName, catalog);
Path path = Paths.get(pathname + filename);
boolean make = createFilePath(new File(pathname));
if (make) {
try {
Files.write(path, data.getBytes());
} catch (IOException e) {
log.info("生成文件时出现异常:" + e);
}
}
return new File(pathname + filename);
}
public File createFileNoTime(String subName, String catalog, String data) {
String pathname = "files/" + subName + "/" + catalog + "/";
String filename = subName + "-" + catalog + ".txt";
Path path = Paths.get(pathname + filename);
boolean make = createFilePath(new File(pathname));
if (make) {
try {
Files.write(path, data.getBytes());
} catch (IOException e) {
log.info("生成文件时出现异常:" + e);
}
}
return new File(pathname + filename);
}
public File createFileInUTF(String subName, String catalog,Long index, List<String> list){
String pathname = "files/" + subName + "/" + catalog + "/";
String filename = subName + "-" + catalog + "-" +index+".txt";
Path path = Paths.get(pathname + filename);
boolean make = createFilePath(new File(pathname));
if (make) {
try {
Files.write(path,list);
} catch (IOException e) {
log.info("生成文件时出现异常:{}" + e);
}
}
return new File(pathname + filename);
}
public File createFile(String subName, String catalog, List<String> list) {
String pathname = "files/" + subName + "/" + catalog + "/";
String filename = getFileNameByDate(subName, catalog);
Path path = Paths.get(pathname + filename);
boolean make = createFilePath(new File(pathname));
if (make) {
try {
Files.write(path,list);
} catch (IOException e) {
log.info("生成文件时出现异常:" + e.getMessage());
}
}
return new File(pathname + filename);
}
public File createFileStms(String subName, String catalog, List<String> list){
String pathname = "files/" + subName + "/" + catalog + "/";
String filename = getFileNameByDateStms(subName, catalog);
String fileNameTmp=getFileNameByDateStmsTmp(subName, catalog);
Path path = Paths.get(pathname + filename);
boolean make = createFilePath(new File(pathname));
if (make) {
try {
File file= File.createTempFile(filename,".tmp",new File(pathname));
Files.write(path,list);
new File(pathname + filename).renameTo(new File(pathname+fileNameTmp));
file.delete();
} catch (IOException e) {
log.info("生成文件时出现异常:" + e.getMessage());
}
}
return new File(pathname + filename);
}
public File createFileStms(String subName, String catalog, List<String> list,int count){
String pathname = "files/" + subName + "/" + catalog + "/";
String filename = getFileNameByDateStms(subName, catalog,count);
String fileNameTmp=getFileNameByDateStmsTmp(subName, catalog,count);
Path path = Paths.get(pathname + filename);
boolean make = createFilePath(new File(pathname));
if (make) {
try {
File file= File.createTempFile(filename,".tmp",new File(pathname));
Files.write(path,list);
new File(pathname + filename).renameTo(new File(pathname+fileNameTmp));
file.delete();
} catch (IOException e) {
log.info("生成文件时出现异常:" + e.getMessage());
}
}
return new File(pathname + filename);
}
/**
* 根据日期生成文件名
* 以天为单位
* 文件名格式:平台名-种类-时间(yyyyMMdd).txt
*/
private String getFileNameByDate(String subName, String catalog) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return subName + "-" + catalog + "-" + sdf.format(new Date()) + ".txt";
}
private String getFileNameByDateStms(String subName, String catalog,int count) {
return subName + "-" + catalog + count+".tmp";
}
private String getFileNameByDateStmsTmp(String subName, String catalog,int count) {
return subName + "-" + catalog + count +".txt";
}
private String getFileNameByDateStms(String subName, String catalog) {
return subName + "-" + catalog +".tmp";
}
private String getFileNameByDateStmsTmp(String subName, String catalog) {
return subName + "-" + catalog +".txt";
}
/**
* 生成指定的文件夹路径
* 若文件夹不存在则创建
*/
private boolean createFilePath(File file) {
return file.exists() || file.mkdirs();
}
}
package com.zjty.fp.acq.misc.utils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
@SuppressWarnings("unused")
public final class JacksonUtil {
private static ObjectMapper objectMapper;
/**
* 使用泛型方法,把json字符串转换为相应的JavaBean对象。
* (1)转换为普通JavaBean:readValue(json,Student.class)
* (2)转换为List,如List<Student>,将第二个参数传递为Student
* [].class.然后使用Arrays.asList();方法把得到的数组转换为特定类型的List
*/
public static <T> T readValue(String jsonStr, Class<T> valueType) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.readValue(jsonStr, valueType);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* json数组转List
*/
public static <T> T readValue(String jsonStr, TypeReference<T> valueTypeRef){
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.readValue(jsonStr, valueTypeRef);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 把JavaBean转换为json字符串
*/
public static String toJSon(Object object) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.writeValueAsString(object);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
package com.zjty.fp.acq.misc.utils.httpclientutil;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.ParseException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
/**
* @author LJJ
* on 18-12-19
*/
public class HttpClientUtil {
/**
* 缺省超时时间 单位:ms
*/
private static final int TIMEOUT = 60000;
/**
* 是否重定向标识
*/
private static final boolean IS_REDIRECTS = false;
private static String EMPTY_STR = "";
/**
* 字符集编码格式
*/
private HttpClientUtil() {
}
/**
* 发送 get 请求
*
* @param url 请求地址
* @return String
*/
public static String httpGetRequest(String url) {
HttpGet httpGet = new HttpGet(url);
return execute(httpGet);
}
/**
* 执行 HTTP 请求 若重定向返回重定向地址
*
* @return String
*/
private static String execute(HttpRequestBase request) {
String result = EMPTY_STR;
request.setConfig(createConfig());
CloseableHttpClient httpClient = getHttpClient();
try {
CloseableHttpResponse response = httpClient.execute(request);
if (isRedirected(response)) {
result = getRedirectedUrl(response);
} else {
result = getEntityData(response);
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 创建HTTP请求配置
*
* @return RequestConfig
*/
private static RequestConfig createConfig() {
return RequestConfig.custom()
// 读取数据超时时间(毫秒)
.setSocketTimeout(HttpClientUtil.TIMEOUT)
// 建立连接超时时间(毫秒)
.setConnectTimeout(HttpClientUtil.TIMEOUT)
// 从连接池获取连接的等待时间(毫秒)
.setConnectionRequestTimeout(HttpClientUtil.TIMEOUT)
// 当响应状态码为302时,是否进行重定向
.setRedirectsEnabled(HttpClientUtil.IS_REDIRECTS)
.build();
}
/**
* 通过连接池获取 httpclient
*/
private static CloseableHttpClient getHttpClient() {
return HttpClients.custom().setConnectionManager(
HttpConnectionManager.POOLING_CONNECTION_MANAGER).build();
}
/**
* 判断发送请求是否重定向跳转过
*
* @param response 请求响应
* @return boolean
*/
private static boolean isRedirected(CloseableHttpResponse response) {
int statusCode = response.getStatusLine().getStatusCode();
return statusCode == HttpStatus.SC_MOVED_PERMANENTLY
|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY;
}
/**
* 获得重定向跳转地址
*
* @param response 请求响应
* @return String 重定向地址
*/
private static String getRedirectedUrl(CloseableHttpResponse response) {
String result = EMPTY_STR;
Header[] hs = response.getHeaders("Location");
if (hs.length > 0) {
result = hs[0].getValue();
}
return result;
}
/**
* 获得响应实体信息
*
* @param response 请求响应
* @return String 消息实体信息
*/
private static String getEntityData(CloseableHttpResponse response)
throws ParseException, IOException {
String result = EMPTY_STR;
HttpEntity entity = response.getEntity();
if (entity != null) {
result = EntityUtils.toString(entity);
response.close();
}
return result;
}
}
package com.zjty.fp.acq.misc.utils.httpclientutil;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.HttpClientConnectionManager;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
class HttpConnectionManager {
/**
* 普通连接管理器
*/
private static final HttpClientConnectionManager BASIC_CONNECTION_MANAGER;
/**
* 连接池管理器
*/
static final HttpClientConnectionManager POOLING_CONNECTION_MANAGER;
static {
Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", SslSelfSigned.SSL_CONNECTION_SOCKET_FACTORY).build();
// 普通连接管理器
BASIC_CONNECTION_MANAGER = new BasicHttpClientConnectionManager(r);
// 连接池管理器
PoolingHttpClientConnectionManager pooling = new PoolingHttpClientConnectionManager(r);
// 设置最大连接数
pooling.setMaxTotal(1000);
// 设置每个路由基础上的最大连接数
pooling.setDefaultMaxPerRoute(300);
POOLING_CONNECTION_MANAGER = pooling;
}
private HttpConnectionManager() {
}
}
package com.zjty.fp.acq.misc.utils.httpclientutil;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.SSLContext;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
class SslSelfSigned {
static final SSLConnectionSocketFactory SSL_CONNECTION_SOCKET_FACTORY;
private static final Logger logger = LoggerFactory.getLogger(SslSelfSigned.class);
static {
SSLContext sslContext = null;
try {
sslContext = SSLContexts.custom().loadTrustMaterial(TrustSelfSignedStrategy.INSTANCE).build();
} catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {
logger.error("{}", e);
}
assert sslContext != null;
SSL_CONNECTION_SOCKET_FACTORY = new SSLConnectionSocketFactory(sslContext,
NoopHostnameVerifier.INSTANCE);
}
private SslSelfSigned() {
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project 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/maven-4.0.0.xsd">
<parent>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>acq-ndss</artifactId>
<dependencies>
<dependency>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-misc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-ndss</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springboot-cache-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql 用于实际环境 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--h2内存数据库,用于测试-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.4</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.zjty.fp.acq.ndss;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* @author LJJ
* on 18-12-19
*/
@SpringBootApplication
@ComponentScan(basePackages = {
"com.zjty.fp.acq.misc",
"com.zjty.fp.acq.ndss"
})
@EnableScheduling
public class AcqNdssApplication {
public static void main(String[] args) {
SpringApplication.run(AcqNdssApplication.class, args);
}
}
package com.zjty.fp.acq.ndss.misc;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author LJJ
* on 18-12-19
*/
public final class JacksonUtil {
private static ObjectMapper objectMapper;
/**
* 使用泛型方法,把json字符串转换为相应的JavaBean对象。
* (1)转换为普通JavaBean:readValue(json,Student.class)
* (2)转换为List,如List<Student>,将第二个参数传递为Student
* [].class.然后使用Arrays.asList();方法把得到的数组转换为特定类型的List
*/
public static <T> T readValue(String jsonStr, Class<T> valueType) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.readValue(jsonStr, valueType);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 转换为指定类型的集合
*
* @param jsonStr 待转换的json字符串
* @param valueType 指定类型的Class对象
* @return 指定类型的集合
*/
public static <T> List<T> readValueToList(String jsonStr, Class<T> valueType) {
T[] arrays = readValue(jsonStr, new TypeReference<T[]>() {
});
List<T> list = Collections.emptyList();
if (arrays != null) {
list = Arrays.asList(arrays);
}
return list;
}
/**
* json数组转List
*
* @param jsonStr 待转换的json字符串
* @param valueTypeRef 指定类型的Class对象
* @return 指定类型的集合
*/
public static <T> T readValue(String jsonStr, TypeReference<T> valueTypeRef) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.readValue(jsonStr, valueTypeRef);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 把JavaBean转换为json字符串
*
*/
public static String toJSon(Object object) {
if (objectMapper == null) {
objectMapper = new ObjectMapper();
}
try {
return objectMapper.writeValueAsString(object);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
package com.zjty.fp.acq.ndss.misc;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
* @author LJJ
* on 18-12-19
*/
public class TimeUtil {
/**
* 获取上一小时时间string 用于拼接restful fp 的url
* @return yyyy-MM-dd%20HH
*/
public static String getMinusHoursTime() {
return LocalDateTime.now().minusHours(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd%20HH"));
}
/**
* 获取今日时间string
* @return yyyyMMdd
*/
public static String getToday() {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
}
/**
* 获取今天开始时间的时间戳
* @return long
*/
public static Long getTodayStartTime() {
String a = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + " 00:00:00";
return dateToStamp(a);
}
/**
* 获取今天结束事件的时间戳
* @return long 13
*/
public static Long getTodayEndTime() {
String a = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + " 23:59:59";
return dateToStamp(a);
}
/**
* 时间转时间戳 long
* @param s yyyy-MM-dd HH:mm:ss
* @return long 13
*/
public static Long dateToStamp(String s) {
Long res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
assert date != null;
res = date.getTime();
return res;
}
/**
* 时间戳转时间String
* @param s long
* @return yyyy-MM-dd HH:mm:ss
*/
public static String stampToDate(Long s){
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(s);
res = simpleDateFormat.format(date);
return res;
}
/**
* long 转 string yyyy-MM-dd
* @param s long 13位
* @return yyyy-MM-dd
*/
public static String stampToDate2(Long s){
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
long lt = s;
Date date = new Date(lt);
res = simpleDateFormat.format(date);
return res;
}
/**
* string -> date
* @param s yyyy-MM-dd HH:mm:ss
* @return date
*/
public static Date stringToDate(String s) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date utilDate = null;
try {
utilDate = sdf.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
assert utilDate != null;
return new Date(utilDate.getTime());
}
}
package com.zjty.fp.acq.ndss.misc.httpclientutil;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.ParseException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
/**
* @author LJJ
* on 18-12-19
*/
public class HttpClientUtil {
/**
* 缺省超时时间 单位:ms
*/
private static final int TIMEOUT = 60000;
/**
* 是否重定向标识
*/
private static final boolean IS_REDIRECTS = false;
private static String EMPTY_STR = "";
/**
* 字符集编码格式
*/
private HttpClientUtil() {
}
/**
* 发送 get 请求
*
* @param url 请求地址
* @return String
*/
public static String httpGetRequest(String url) {
HttpGet httpGet = new HttpGet(url);
return execute(httpGet);
}
/**
* 执行 HTTP 请求 若重定向返回重定向地址
*
* @return String
*/
private static String execute(HttpRequestBase request) {
String result = EMPTY_STR;
request.setConfig(createConfig());
CloseableHttpClient httpClient = getHttpClient();
try {
CloseableHttpResponse response = httpClient.execute(request);
if (isRedirected(response)) {
result = getRedirectedUrl(response);
} else {
result = getEntityData(response);
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 创建HTTP请求配置
*
* @return RequestConfig
*/
private static RequestConfig createConfig() {
return RequestConfig.custom()
// 读取数据超时时间(毫秒)
.setSocketTimeout(HttpClientUtil.TIMEOUT)
// 建立连接超时时间(毫秒)
.setConnectTimeout(HttpClientUtil.TIMEOUT)
// 从连接池获取连接的等待时间(毫秒)
.setConnectionRequestTimeout(HttpClientUtil.TIMEOUT)
// 当响应状态码为302时,是否进行重定向
.setRedirectsEnabled(HttpClientUtil.IS_REDIRECTS)
.build();
}
/**
* 通过连接池获取 httpclient
*/
private static CloseableHttpClient getHttpClient() {
return HttpClients.custom().setConnectionManager(
HttpConnectionManager.POOLING_CONNECTION_MANAGER).build();
}
/**
* 判断发送请求是否重定向跳转过
*
* @param response 请求响应
* @return boolean
*/
private static boolean isRedirected(CloseableHttpResponse response) {
int statusCode = response.getStatusLine().getStatusCode();
return statusCode == HttpStatus.SC_MOVED_PERMANENTLY
|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY;
}
/**
* 获得重定向跳转地址
*
* @param response 请求响应
* @return String 重定向地址
*/
private static String getRedirectedUrl(CloseableHttpResponse response) {
String result = EMPTY_STR;
Header[] hs = response.getHeaders("Location");
if (hs.length > 0) {
result = hs[0].getValue();
}
return result;
}
/**
* 获得响应实体信息
*
* @param response 请求响应
* @return String 消息实体信息
*/
private static String getEntityData(CloseableHttpResponse response)
throws ParseException, IOException {
String result = EMPTY_STR;
HttpEntity entity = response.getEntity();
if (entity != null) {
result = EntityUtils.toString(entity);
response.close();
}
return result;
}
}
package com.zjty.fp.acq.ndss.misc.httpclientutil;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.HttpClientConnectionManager;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
class HttpConnectionManager {
/**
* 普通连接管理器
*/
private static final HttpClientConnectionManager BASIC_CONNECTION_MANAGER;
/**
* 连接池管理器
*/
static final HttpClientConnectionManager POOLING_CONNECTION_MANAGER;
static {
Registry<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", SslSelfSigned.SSL_CONNECTION_SOCKET_FACTORY).build();
// 普通连接管理器
BASIC_CONNECTION_MANAGER = new BasicHttpClientConnectionManager(r);
// 连接池管理器
PoolingHttpClientConnectionManager pooling = new PoolingHttpClientConnectionManager(r);
// 设置最大连接数
pooling.setMaxTotal(1000);
// 设置每个路由基础上的最大连接数
pooling.setDefaultMaxPerRoute(300);
POOLING_CONNECTION_MANAGER = pooling;
}
private HttpConnectionManager() {
}
}
package com.zjty.fp.acq.ndss.misc.httpclientutil;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.SSLContext;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
class SslSelfSigned {
static final SSLConnectionSocketFactory SSL_CONNECTION_SOCKET_FACTORY;
private static final Logger logger = LoggerFactory.getLogger(SslSelfSigned.class);
static {
SSLContext sslContext = null;
try {
sslContext = SSLContexts.custom().loadTrustMaterial(TrustSelfSignedStrategy.INSTANCE).build();
} catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {
logger.error("{}", e);
}
assert sslContext != null;
SSL_CONNECTION_SOCKET_FACTORY = new SSLConnectionSocketFactory(sslContext,
NoopHostnameVerifier.INSTANCE);
}
private SslSelfSigned() {
}
}
package com.zjty.fp.acq.ndss.subject.controller;
import com.zjty.fp.acq.ndss.subject.service.TaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author LJJ
* on 18-12-19
*/
@RestController
@RequestMapping("/ndss")
@Slf4j
public class NdssFetchOldDataController {
private final TaskService taskService;
@Autowired
public NdssFetchOldDataController(TaskService taskService) {
this.taskService = taskService;
}
@GetMapping("/fetchOldData")
public ResponseEntity fetOldData(@RequestParam("startDate") String startDate,
@RequestParam("endDate") String endDate) {
taskService.getOldData(startDate,endDate);
log.info("{}-{}的历史数据抓取成功",startDate,endDate);
return ResponseEntity.ok("历史数据抓取成功");
}
}
package com.zjty.fp.acq.ndss.subject.controller;
import com.zjty.fp.acq.ndss.subject.service.OrgInfoService;
import com.zjty.fp.acq.ndss.subject.service.TaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* fp-acq.
*
* @author : Matrix [xhyrzldf@gmail.com]
* 18-11-5 .
*/
@RequestMapping("/ndss/test")
@RestController
public class NdssTestController {
private final OrgInfoService orgInfoService;
private final TaskService taskService;
@Autowired
public NdssTestController(OrgInfoService orgInfoService, TaskService taskService) {
this.orgInfoService = orgInfoService;
this.taskService = taskService;
}
@GetMapping("/orgMin")
public String fetchOrg(){
orgInfoService.getOrgInfo();
return "fetch start running";
}
@GetMapping("/taskMin")
public String fetchTask() {
taskService.getReceiveData();
return "fetch min task success";
}
}
package com.zjty.fp.acq.ndss.subject.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Id;
/**
* @author LJJ
* on 18-12-19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
class Children {
@Id
private String id;
/**
* 组织名称
*/
private String departmentName = "";
/**
* C_PRE_DEFINE系统预置 C_USER_DEFINE用户定义
*/
private String definitionType = "";
}
package com.zjty.fp.acq.ndss.subject.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Collections;
import java.util.Set;
/**
* @author LJJ
* on 18-12-19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "ndss_c_org_info")
public class OrgInfo {
/**
* 主键id
*/
@Id
private String id;
/**
* 组织名称
*/
private String departmentName;
/**
* C_PRE_DEFINE系统预置 C_USER_DEFINE用户定义
*/
private String definitionType;
/**
* 此组织下级组织信息
*/
private Set<Children> children = Collections.emptySet();
private String level;
private String loss;
private String importance;
private String exposedFace;
private String sensitivity;
/**
* 扫描信息
*/
private String description;
}
package com.zjty.fp.acq.ndss.subject.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author LJJ
* on 18-12-19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "ndss_c_center_info")
public class Task {
/**
* 主键ID
*/
@Id
private String id;
/**
* 任务名称
*/
private String name;
/**
* 任务类型
*/
private String type;
/**
* 扫描任务id
*/
private String jobId;
/**
* 任务开始时间
*/
private String startTime;
/**
* 任务结束时间
*/
private Long endTime;
/**
* 进度
*/
private String status;
/**
* 信息
*/
private String failReason;
/**
* 该任务最后一次执行结果
*/
private String isLast;
/**
* 扫描总大小
*/
private Integer size;
/**
* 组织id
*/
private String orgId;
/**
* 组织名称
*/
private String orgName;
/**
* 应用系统id
*/
private String systemId;
/**
* 应用系统名称
*/
private String systemName;
/**
* 应用系统类型
*/
private String systemType;
/**
* 应用系统扫描的ip
*/
private String systemIp;
/**
* 0未导出,1导出中,2导出成功,3导出失败,4已删除,5删除中
*/
private Integer dataState;
/**
* 已处理文件数
*/
private Integer succeFile;
/**
* 未处理文件数
*/
private Integer failedFile;
}
package com.zjty.fp.acq.ndss.subject.service;
/**
* @author LJJ
* on 18-12-19
*/
public interface OrgInfoService {
/**
* 每个小时抓取上一个小时的orgingfo信息
*/
void getOrgInfo();
}
package com.zjty.fp.acq.ndss.subject.service;
/**
* @author LJJ
* on 18-12-19
*/
public interface TaskService {
/**
* 获取上一个小时段里的采集端采集信息
*/
void getReceiveData();
/**
* 根据限定时间获取采集端采集进度数据
*
* @param startDate 2000-01-01
* @param endDate 2001-01-01
*/
void getOldData(String startDate, String endDate);
}
package com.zjty.fp.acq.ndss.subject.service.impl;
import com.zjty.fp.acq.misc.utils.FileCreator;
import com.zjty.fp.acq.ndss.misc.httpclientutil.HttpClientUtil;
import com.zjty.fp.acq.ndss.misc.TimeUtil;
import com.zjty.fp.acq.ndss.subject.service.OrgInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
/**
* @author LJJ
* on 18-12-19
*/
@Service
@Slf4j
public class OrgInfoServiceImpl implements OrgInfoService {
@Value("${ndss.ip}")
private String ip;
private final FileCreator fileCreator;
@Autowired
public OrgInfoServiceImpl( FileCreator fileCreator) {
this.fileCreator = fileCreator;
}
/**
* 定时任务:每小时获取组织信息
*
*/
@Override
public void getOrgInfo() {
String invalid = "DdIaXzD7+UMxYl2NTtQ88NtXiMFpFoqXr1hv3Pevsn6IaMObkFWJ7kFR1rIL56u/OoC44WO0pdIH2aUKjUg52a8vF/X5PWEEbGfJ7by8F2MlTeoCrRIOcypyIfW/KDNo2Y6tJtLlxtxmtqd53ZR4aXjd/tTE3ZAoDwIyn8DSnbY=";
//获取orgInfo的api地址
String url = ip + "/ws/system/taskCenterAndEvent/getOrgInfo?invalid=" + invalid;
//获取api内容
log.info("[ndss] originfo发起rest请求");
String jsonData = HttpClientUtil.httpGetRequest(url);
log.info("[ndss] 成功获取orginfo的json数据");
File file = fileCreator.createFile("ndss", "orginfo", jsonData);
log.info("[ndss] ndss-orginfo-{}.txt写入本地成功",TimeUtil.getToday());
}
}
package com.zjty.fp.acq.ndss.subject.service.impl;
import com.zjty.fp.acq.misc.utils.FileCreator;
import com.zjty.fp.acq.ndss.misc.TimeUtil;
import com.zjty.fp.acq.ndss.misc.httpclientutil.HttpClientUtil;
import com.zjty.fp.acq.ndss.subject.service.TaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
/**
* @author LJJ
* on 18-12-19
*/
@Service
@Slf4j
public class TaskServiceImpl implements TaskService {
private static String INVALID = "DdIaXzD7+UMxYl2NTtQ88NtXiMFpFoqXr1hv3Pevsn6IaMObkFWJ7kFR1rIL56u/OoC44WO0pdIH2aUKjUg52a8vF/X5PWEEbGfJ7by8F2MlTeoCrRIOcypyIfW/KDNo2Y6tJtLlxtxmtqd53ZR4aXjd/tTE3ZAoDwIyn8DSnbY=";
@Value("${ndss.ip}")
private String ip;
private final FileCreator fileCreator;
@Autowired
public TaskServiceImpl( FileCreator fileCreator) {
this.fileCreator = fileCreator;
}
/**
* 每小时采集端采集进度数据
*/
@Override
public void getReceiveData() {
// 获取前一小时按检查时间开始和结束的两种数据
StringBuilder start = getCollectionDataStart();
StringBuilder end = getCollectionDataEnd();
// 将数据保存到本地文件并上传至ftp
File file = fileCreator.createFile("ndss", "task", start.append(end) + "");
log.info("[ndss] 采集端采集进度数据抓取完成");
}
/**
* 根据指定事件获取采集端采集进度数据
* @param startDate 2000-01-01
* @param endDate 2001-01-01
*/
@Override
public void getOldData(String startDate, String endDate) {
// 获取指定时间的按检查时间开始和结束的两种数据
StringBuilder start = getOldStartData(startDate, endDate);
StringBuilder end = getOldEndData(startDate, endDate);
// 将数据保存到本地并上传至ftp
File file = fileCreator.createFile("ndss", "task", start.append(end) + "");
log.info("[ndss] 手动抓取历史数据完成");
}
/* private method ares */
private StringBuilder getOldStartData(String startTimeBegin, String startTimeEnd) {
// 根据事件结束时间获取指定时间段的数据
int page = 1;
int pageSize = 200;
boolean flag = true;
StringBuilder str = new StringBuilder();
while (flag) {
String url = ip + "/ws/system/taskCenterAndEvent/getTaskCenterInfo?invalid=" + INVALID +
"&startTime_begin=" + startTimeBegin + "%2000:00:00&startTime_end=" + startTimeEnd +
"%2023:59:59&currentPage=" + page + "&pageSize=" + pageSize;
String jsonData = HttpClientUtil.httpGetRequest(url);
if (jsonData.length() > 4) {
str.append(jsonData).append("\n");
page++;
} else {
flag = false;
}
}
return str;
}
private StringBuilder getOldEndData(String endTimeBegin, String endTimeEnd) {
// 根据事件结束时间获取指定时间段的数据
int page = 1;
int pageSize = 200;
boolean flag = true;
StringBuilder str = new StringBuilder();
while (flag) {
String url = ip + "/ws/system/taskCenterAndEvent/getTaskCenterInfo?invalid=" + INVALID +
"&endTime_begin=" + endTimeBegin + "%2000:00:00&endTime_end=" + endTimeEnd +
"%2023:59:59&currentPage=" + page + "&pageSize=" + pageSize;
String jsonData = HttpClientUtil.httpGetRequest(url);
if (jsonData.length() > 4) {
str.append(jsonData).append("\n");
page++;
} else {
flag = false;
}
}
return str;
}
private StringBuilder getCollectionDataStart() {
// 获取限定任务开始时间范围的数据
String time = TimeUtil.getMinusHoursTime();
int page = 1;
int pageSize = 200;
boolean flag = true;
StringBuilder str = new StringBuilder();
while (flag) {
//192.168.0.100
String url = ip + "/ws/system/taskCenterAndEvent/getTaskCenterInfo?invalid=" + INVALID +
"&startTime_begin=" + time + ":00:00&startTime_end=" + time +
":59:59&currentPage=" + page + "&pageSize=" + pageSize;
String jsonData = HttpClientUtil.httpGetRequest(url);
if (jsonData.length() > 4) {
str.append(jsonData).append("\n");
page++;
} else {
flag = false;
}
}
return str;
}
private StringBuilder getCollectionDataEnd() {
// 获取限定任务结束时间范围的数据
String time = TimeUtil.getMinusHoursTime();
int page = 1;
int pageSize = 200;
boolean flag = true;
StringBuilder str = new StringBuilder();
while (flag) {
String url = ip + "/ws/system/taskCenterAndEvent/getTaskCenterInfo?invalid=" + INVALID +
"&endTime_begin=" + time + ":00:00&endTime_end=" + time +
":59:59&currentPage=" + page + "&pageSize=" + pageSize;
String jsonData = HttpClientUtil.httpGetRequest(url);
if (jsonData.length() > 4) {
str.append(jsonData).append("\n");
page++;
} else {
flag = false;
}
}
return str;
}
}
package com.zjty.fp.acq.ndss.task;
import com.zjty.fp.acq.ndss.subject.service.OrgInfoService;
import com.zjty.fp.acq.ndss.subject.service.TaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* @author LJJ
* on 18-12-19
*/
@Component
@Slf4j
public class NdssTimeTask {
private final OrgInfoService orgInfoService;
private final TaskService taskService;
@Autowired
public NdssTimeTask(OrgInfoService orgInfoService, TaskService taskService) {
this.orgInfoService = orgInfoService;
this.taskService = taskService;
}
@Scheduled(cron = "0 5 * * * ?")
public void taskCollect() {
log.info("[ndss] 开始采集进度信息");
taskService.getReceiveData();
}
@Scheduled(cron = "0 5 * * * ?")
public void orgInfoCollect() {
log.info("[ndss] 开始采集组织信息");
orgInfoService.getOrgInfo();
}
}
spring.application.name=fp-ndss(acqndss)
server.port=8079
#ndss.ip=https://192.168.0.100:443
ndss.ip=http://192.168.1.158:8085
# 生成的文件夹路径(生成在平台内)
file.path=fp-acq-core
ftp.server.ip=192.168.1.158
ftp.server.port=2121
ftp.server.username=admin
ftp.server.password=123456
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project 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/maven-4.0.0.xsd">
<parent>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>acq-nsrs</artifactId>
<dependencies>
<dependency>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-misc</artifactId>
<exclusions>
<exclusion>
<groupId>com.zjty.fp</groupId>
<artifactId>acq-nsrs</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.github.wenhao</groupId>
<artifactId>jpa-spec</artifactId>
<version>3.2.3</version>
<exclusions>
<exclusion>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.zjty.fp.acq.nsrs;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* fusion-platform-api 启动类
*
* @author : Matrix [xhyrzldf@gmail.com]
* 18-11-26 .
*/
@SpringBootApplication
@ComponentScan(basePackages = {
"com.zjty.fp.acq.nsrs",
"com.zjty.fp.acq.misc.utils"
})
@EnableScheduling
public class NsrsAcqApplication {
public static void main(String[] args) {
SpringApplication.run(NsrsAcqApplication.class, args);
}
}
package com.zjty.fp.acq.nsrs.misc;
import com.zjty.fp.acq.nsrs.subject.entity.PageBean;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/29 16:14
* <p>@author : Mcj
*/
public class PageUtil {
/**
* 获得page对象
*
* @param bean 对象
* @return PageBean
*/
public static PageBean getPageBean(PageBean bean, int pageSize, int total) {
PageBean<Object> pageBean = new PageBean<>();
//35
int newTotal = bean.getTotal();
//5
int page = newTotal / pageSize;
int moreThan = newTotal % pageSize;
//本地
int start = total / pageSize;
//本地
int localMoreThan = total % pageSize;
page += 1;
start += 1;
pageBean.setTotal(newTotal);
pageBean.setPage(page);
pageBean.setMorethan(moreThan);
pageBean.setPageSize(pageSize);
pageBean.setStartPage(start);
pageBean.setLocalMorethan(localMoreThan);
return pageBean;
}
/**
* 获得page对象,全量查询
*
* @param bean 对象
* @return PageBean
*/
public static PageBean getPageBean(PageBean bean) {
int pageSize = 50;
PageBean<Object> pageBean = new PageBean<>();
//35491
int newTotal = bean.getTotal();
//5
int page = newTotal / pageSize;
int moreThan = newTotal % pageSize;
if(moreThan>0){
page = page+1;
}
pageBean.setTotal(newTotal);
pageBean.setPage(page);
pageBean.setPageSize(pageSize);
return pageBean;
}
public static void main(String[] args) {
int a = 3531;
int b = a%200;
PageBean<Object> objectPageBean = new PageBean<>();
objectPageBean.setTotal(123);
objectPageBean.setPageSize(200);
PageBean pageBean = PageUtil.getPageBean(objectPageBean,50,0);
System.out.println(pageBean);
}
}
package com.zjty.fp.acq.nsrs.misc;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/12/6 17:16
* <p>@author : Mcj
*/
public class TaskTotalUtil {
/**
* 目前一分钟能获取到4000数据,2分钟8000数据
* 以两分钟为单位开辟线程数量
* @param total 数据个数
* @return 开辟线程个数
*/
public static int taskTotal(int total){
int a = 8000;
int size = total/a;
if(total%a>0){
size++;
}
return size;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* 报警
* <p>Description : fusion-platform
* <p>Date : 2018/8/16 16:27
* <p>@author : Mcj
* {
* "AID": 0,
* "ADeviceID": "ADeviceID",
* "AisRead": "是否阅读",
* "ALevel": "报警级别",
* "ADeviceName": "来源",
* "AClassSubID": "AClassSubID",
* "AContent": "报警内容",
* "ADeviceIp": "来源IP",
* "InsertTime": "报警时间",
* "NewDeviceIp": "NewDeviceIp",
* "IP": "IP",
* "DevName": "DevName",
* "Type": "Type",
* "reALevel": "reALevel",
* "AClassName": "报警类型"
* },
* {
* "AID": "22107",
* "ADeviceID": "",
* "AisRead": "0",
* "ALevel": "提示",
* "ADeviceName": "杭州市(34.4.117.249)",
* "AClassSubID": "106",
* "AContent": "升级成功 搭建第三方webservice接口 20180824",
* "ADeviceIp": "34.4.117.249",
* "InsertTime": "2018-08-24 16:31:39",
* "NewDeviceIp": "34.4.117.249",
* "IP": "34.4.117.249",
* "DevName": "杭州市",
* "Type": "1",
* "reALevel": "1",
* "AClassName": "系统升级报警"
* }
*/
@Entity
@Table(name = "nsrs_alarm")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Alarm implements Serializable {
@Id
@GeneratedValue
@JsonIgnore
private Integer id;
/**
* 事件id
*/
@Column(length = 50)
private Integer alarmId;
/**
* 设备id
*/
@Column(length = 50)
private Integer deviceId;
/**
* 是否阅读
*/
@Column(length = 30)
private Integer isRead;
/**
* 报警级别
*/
@Column(length = 30)
private String level;
/**
* 来源
*/
@Column(length = 30)
private String deviceName;
@Column(length = 30)
private Integer classSubId;
/**
* 报警内容
*/
private String content;
@Column(length = 30)
private String deviceIp;
/**
* 报警时间
*/
@Column(length = 30)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date insertTime;
@Column(length = 30)
private String newDeviceIp;
/**
* ip地址
*/
@Column(length = 30)
private String ip;
/**
* 设备名称
*/
@Column(length = 30)
private String devName;
/**
* 类型
*/
@Column(length = 30)
private Integer type;
@Column(length = 30)
private Integer reLevel;
/**
* 报警名称
*/
@Column(length = 30)
private String className;
@JsonProperty("isRead")
public Alarm setIsRead(Integer isRead) {
this.isRead = isRead;
return this;
}
@JsonProperty("level")
public Alarm setLevel(String level) {
this.level = level;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/16 20:44
* <p>@author : Mcj
* {
* "AID": 22119,
* "ADeviceID": "1",
* "AisRead": "0",
* "ALevel": "提示",
* "ADeviceName": "杭州市(34.4.117.249)",
* "AClassSubID": "104",
* "AContent": "启动系统成功",
* "ADeviceIp": "34.4.117.249",
* "InsertTime": 1537861071000,
* "NewDeviceIp": "34.4.117.249",
* "IP": "34.4.117.249",
* "DevName": "杭州市",
* "Type": "1",
* "reALevel": "1",
* "AClassName": "系统开机报警"
* }
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AlarmForMesp {
/**
* 事件id(主键id)
*/
private Integer alarmId;
private String deviceId;
/**
* 是否阅读
*/
private String isRead;
/**
* 报警级别
*/
private String level;
/**
* 来源
*/
private String deviceName;
private String classSubId;
/**
* 报警内容
*/
private String content;
private String deviceIp;
/**
* 报警时间
*/
private String insertTime;
private String newDeviceIp;
/**
* 设备ip
*/
private String ip;
/**
* 设备名称
*/
private String devName;
private String type;
/**
* 报警等级
*/
private String reALevel;
/**
* 报警类型
*/
private String className;
@JsonProperty("alarmId")
public Integer getAlarmId() {
return alarmId;
}
@JsonProperty("AID")
public AlarmForMesp setAlarmId(Integer alarmId) {
this.alarmId = alarmId;
return this;
}
@JsonProperty("deviceId")
public String getDeviceId() {
return deviceId;
}
@JsonProperty("ADeviceID")
public AlarmForMesp setDeviceId(String deviceId) {
this.deviceId = deviceId;
return this;
}
@JsonProperty("isRead")
public String getIsRead() {
return isRead;
}
@JsonProperty("AisRead")
public AlarmForMesp setIsRead(String isRead) {
this.isRead = isRead;
return this;
}
@JsonProperty("level")
public String getLevel() {
return level;
}
@JsonProperty("ALevel")
public AlarmForMesp setLevel(String level) {
this.level = level;
return this;
}
@JsonProperty("deviceName")
public String getDeviceName() {
return deviceName;
}
@JsonProperty("ADeviceName")
public AlarmForMesp setDeviceName(String deviceName) {
this.deviceName = deviceName;
return this;
}
@JsonProperty("classSubId")
public String getClassSubId() {
return classSubId;
}
@JsonProperty("AClassSubID")
public AlarmForMesp setClassSubId(String classSubId) {
this.classSubId = classSubId;
return this;
}
@JsonProperty("content")
public String getContent() {
return content;
}
@JsonProperty("AContent")
public AlarmForMesp setContent(String content) {
this.content = content;
return this;
}
@JsonProperty("deviceIp")
public String getDeviceIp() {
return deviceIp;
}
@JsonProperty("ADeviceIp")
public AlarmForMesp setDeviceIp(String deviceIp) {
this.deviceIp = deviceIp;
return this;
}
@JsonProperty("insertTime")
public String getInsertTime() {
return insertTime;
}
@JsonProperty("InsertTime")
public AlarmForMesp setInsertTime(String insertTime) {
this.insertTime = insertTime;
return this;
}
@JsonProperty("newDeviceIp")
public String getNewDeviceIp() {
return newDeviceIp;
}
@JsonProperty("NewDeviceIp")
public AlarmForMesp setNewDeviceIp(String newDeviceIp) {
this.newDeviceIp = newDeviceIp;
return this;
}
@JsonProperty("ip")
public String getIp() {
return ip;
}
@JsonProperty("IP")
public AlarmForMesp setIp(String ip) {
this.ip = ip;
return this;
}
@JsonProperty("devName")
public String getDevName() {
return devName;
}
@JsonProperty("DevName")
public AlarmForMesp setDevName(String devName) {
this.devName = devName;
return this;
}
@JsonProperty("type")
public String getType() {
return type;
}
@JsonProperty("Type")
public AlarmForMesp setType(String type) {
this.type = type;
return this;
}
@JsonProperty("reLevel")
public String getReALevel() {
return reALevel;
}
@JsonProperty("reALevel")
public AlarmForMesp setReALevel(String reALevel) {
this.reALevel = reALevel;
return this;
}
@JsonProperty("className")
public String getClassName() {
return className;
}
@JsonProperty("AClassName")
public AlarmForMesp setClassName(String className) {
this.className = className;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* 部门表
* <p>Description : fusion-platform
* <p>Date : 2018/8/21 11:53
* <p>@author : Mcj
* {
* "DepartID": 0,
* "UpID": "父级ID",
* "DepartName": "部门名称",
* "AllDepartName": "部门全名称",
* "AllDepartID": "部门全ID",
* "Remark": "描述",
* "OrderIndex": "排序",
* "InsertTime": "记录时间",
* "IPSegment": "IP段"
* }
*/
@Data
@Entity
@Table(name = "nsrs_depatment")
@NoArgsConstructor
@AllArgsConstructor
public class Department implements Serializable {
/**
* 主键id
*/
@Id
@GeneratedValue
@JsonIgnore
private Integer id;
/**
* 部门id
*/
@Column(length = 30)
private Integer departId;
/**
* 父级id
*/
@Column(length = 30)
private String upId;
/**
* 部门名称
*/
@Column(length = 30)
private String departName;
/**
* 全部门名称
*/
@Column(length = 70)
private String allDepartName;
/**
* 上级部门id
*/
@Column(length = 30)
private String allDepartId;
/**
* 部门名称
*/
@Column(length = 30)
private String remark;
/**
* 排序
*/
@Column(length = 30)
private String orderIndex;
/**
* 记录时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date insertTime;
/**
* ip段
*/
@Column(length = 30)
private String ipSegment;
@JsonProperty("upId")
public Department setUpId(String upId) {
this.upId = upId;
return this;
}
@JsonProperty("departId")
public Department setDepartId(Integer departId) {
this.departId = departId;
return this;
}
@JsonProperty("allDepartId")
public Department setAllDepartId(String allDepartId) {
this.allDepartId = allDepartId;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/24 16:44
* <p>@author : Mcj
* {
* "DepartID": 0,
* "UpID": "父级ID",
* "DepartName": "部门名称",
* "AllDepartName": "部门全名称",
* "AllDepartID": "部门全ID",
* "Remark": "描述",
* "OrderIndex": "排序",
* "InsertTime": "记录时间",
* "IPSegment": "IP段"
* }
*/
@AllArgsConstructor
@NoArgsConstructor
public class DepartmentForMesp {
/**
* 部门id
*/
private Integer departId;
/**
* 父级id
*/
private String upId;
/**
* 部门名称
*/
private String departName;
/**
* 全部门名称
*/
private String allDepartName;
/**
* 部门全id
*/
private String allDepartId;
/**
* 部门描述
*/
private String remark;
/**
* 排序
*/
private String orderIndex;
/**
* 记录时间
*/
private String insertTime;
/**
* IP段
*/
private String ipsegment;
@JsonProperty("departId")
public Integer getDepartId() {
return departId;
}
@JsonProperty("DepartID")
public DepartmentForMesp setDepartId(Integer departId) {
this.departId = departId;
return this;
}
@JsonProperty("upId")
public String getUpId() {
return upId;
}
@JsonProperty("UpID")
public DepartmentForMesp setUpId(String upId) {
this.upId = upId;
return this;
}
@JsonProperty("departName")
public String getDepartName() {
return departName;
}
@JsonProperty("DepartName")
public DepartmentForMesp setDepartName(String departName) {
this.departName = departName;
return this;
}
@JsonProperty("allDepartName")
public String getAllDepartName() {
return allDepartName;
}
@JsonProperty("AllDepartName")
public DepartmentForMesp setAllDepartName(String allDepartName) {
this.allDepartName = allDepartName;
return this;
}
@JsonProperty("allDepartId")
public String getAllDepartId() {
return allDepartId;
}
@JsonProperty("AllDepartID")
public DepartmentForMesp setAllDepartId(String allDepartId) {
this.allDepartId = allDepartId;
return this;
}
@JsonProperty("remark")
public String getRemark() {
return remark;
}
@JsonProperty("Remark")
public DepartmentForMesp setRemark(String remark) {
this.remark = remark;
return this;
}
@JsonProperty("orderIndex")
public String getOrderIndex() {
return orderIndex;
}
@JsonProperty("OrderIndex")
public DepartmentForMesp setOrderIndex(String orderIndex) {
this.orderIndex = orderIndex;
return this;
}
@JsonProperty("insertTime")
public String getInsertTime() {
return insertTime;
}
@JsonProperty("InsertTime")
public DepartmentForMesp setInsertTime(String insertTime) {
this.insertTime = insertTime;
return this;
}
@JsonProperty("ipSegment")
public String getIpsegment() {
return ipsegment;
}
@JsonProperty("IPSegment")
public DepartmentForMesp setIpsegment(String ipsegment) {
this.ipsegment = ipsegment;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
/**
* <p>Description : ftpserver
* <p>Date : 2018/9/11 16:36
* <p>@author : Mcj
*/
public class Ftp {
private String ipAddr;//ip地址
private Integer port;//端口号
private String userName;//用户名
private String pwd;//密码
private String path;//aaa路径
public String getIpAddr() {
return ipAddr;
}
public void setIpAddr(String ipAddr) {
this.ipAddr = ipAddr;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* ipList
* <p>Description : fusion-platform
* <p>Date : 2018/8/16 17:37
* <p>@author : Mcj
{
"ID": "44218",
"DeviceID": "107",
"UserID": "0",
"DevName": "",
"IP": "192.168.11.203",
"AllDepartName": "杭州市",
"OnLineTime": "2018-08-17 10:40:39",
"OffLineTime": "2018-08-28 14:44:04",
"RunTime": "11天4小时3分钟25秒",
"UserName": "",
"DepartName": "杭州市",
"Mac": "68:F7:28:11:C4:3F",
"SwitchIP": "",
"SwitchPort": "",
"Type": "PC",
"Remark": "",
"InsertTime": "2018-08-28 15:01:04",
"Vlan": "0"
}
*/
@Data
@Table(name = "nsrs_iplist")
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class IpList implements Serializable {
@Id
@GeneratedValue
@JsonIgnore
private Integer id;
private Integer ipLogId;
/**
* 设备id (可能为主键)
*/
@Column(length = 20)
private Integer deviceId;
@Column(length = 20)
private String userId;
@Column(length = 60)
private String allDepartName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@Column(length = 30)
private Date onLineTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@Column(length = 30)
private Date offLineTime;
@Column(length = 30)
private String mac;
private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@Column(length = 30)
private Date insertTime;
/**
* 设备IP
*/
@Column(length = 30)
private String ip;
/**
* 设备名称
*/
@Column(length = 30)
private String devName;
/**
* 使用人名称
*/
@Column(length = 30)
private String userName;
/**
* 运行时长
*/
@Column(length = 50)
private String runTime;
private String switchIP;
private String switchPort;
private String vlan;
@Column(length = 60)
private String departName;
@Column(length = 30)
private String type;
@JsonProperty("id")
public Integer getIpLogId() {
return ipLogId;
}
@JsonProperty("userId")
public String getUserId() {
return userId;
}
@JsonProperty("ip")
public String getIp() {
return ip;
}
@JsonProperty("deviceId")
public Integer getDeviceId() {
return deviceId;
}
@JsonProperty("ipLogId")
public IpList setIpLogId(Integer ipLogId) {
this.ipLogId = ipLogId;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/9/29 10:44
* <p>@author : Mcj
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IpListAdd {
private List<IpList> newIpList = new ArrayList<>();
private List<Integer> oldIpList = new ArrayList<>();
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/17 17:36
* <p>@author : Mcj
{
"ID": 0,
"DeviceID": "DeviceID",
"UserID": "UserID",
"DevName": "设备名称",
"IP": "设备IP",
"AllDepartName": "所属部门",
"OnLineTime": "上线时间",
"OffLineTime": "离线时间",
"RunTime": "运行时长",
"UserName": "使用者",
"DepartName": "部门名称",
"Mac": "设备Mac",
"SwitchIP": "交换机IP",
"SwitchPort": "交换机端口",
"Type": "设备类型",
"Remark": "备注",
"InsertTime": "记录时间",
"Vlan": "Vlan号"
}
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IpListForMesp {
private String remark;
private String mac;
private String offLineTime;
private String allDepartName;
private String onLineTime;
private String userId;
private String insertTime;
private String ipLogId;
private String deviceId;
private String ip;
private String devName;
private String userName;
private String runTime;
private String switchIP;
private String switchPort;
private String vlan;
private String departName;
private String type;
@JsonProperty("remark")
public String getRemark() {
return remark;
}
@JsonProperty("Remark")
public IpListForMesp setRemark(String remark) {
this.remark = remark;
return this;
}
@JsonProperty("mac")
public String getMac() {
return mac;
}
@JsonProperty("Mac")
public IpListForMesp setMac(String mac) {
this.mac = mac;
return this;
}
@JsonProperty("offLineTime")
public String getOffLineTime() {
return offLineTime;
}
@JsonProperty("OffLineTime")
public IpListForMesp setOffLineTime(String offLineTime) {
this.offLineTime = offLineTime;
return this;
}
@JsonProperty("allDepartName")
public String getAllDepartName() {
return allDepartName;
}
@JsonProperty("AllDepartName")
public IpListForMesp setAllDepartName(String allDepartName) {
this.allDepartName = allDepartName;
return this;
}
@JsonProperty("onLineTime")
public String getOnLineTime() {
return onLineTime;
}
@JsonProperty("OnLineTime")
public IpListForMesp setOnLineTime(String onLineTime) {
this.onLineTime = onLineTime;
return this;
}
@JsonProperty("userId")
public String getUserId() {
return userId;
}
@JsonProperty("UserID")
public IpListForMesp setUserId(String userId) {
this.userId = userId;
return this;
}
@JsonProperty("deviceId")
public String getDeviceId() {
return deviceId;
}
@JsonProperty("DeviceID")
public IpListForMesp setDeviceId(String deviceId) {
this.deviceId = deviceId;
return this;
}
@JsonProperty("insertTime")
public String getInsertTime() {
return insertTime;
}
@JsonProperty("InsertTime")
public IpListForMesp setInsertTime(String insertTime) {
this.insertTime = insertTime;
return this;
}
@JsonProperty("ipLogId")
public String getIpLogId() {
return ipLogId;
}
@JsonProperty("ID")
public IpListForMesp setIpLogId(String ipLogId) {
this.ipLogId = ipLogId;
return this;
}
@JsonProperty("ip")
public String getIp() {
return ip;
}
@JsonProperty("IP")
public IpListForMesp setIp(String ip) {
this.ip = ip;
return this;
}
@JsonProperty("devName")
public String getDevName() {
return devName;
}
@JsonProperty("DevName")
public IpListForMesp setDevName(String devName) {
this.devName = devName;
return this;
}
@JsonProperty("userName")
public String getUserName() {
return userName;
}
@JsonProperty("UserName")
public IpListForMesp setUserName(String userName) {
this.userName = userName;
return this;
}
@JsonProperty("runTime")
public String getRunTime() {
return runTime;
}
@JsonProperty("RunTime")
public IpListForMesp setRunTime(String runTime) {
this.runTime = runTime;
return this;
}
@JsonProperty("switchIP")
public String getSwitchIP() {
return switchIP;
}
@JsonProperty("SwitchIP")
public IpListForMesp setSwitchIP(String switchIP) {
this.switchIP = switchIP;
return this;
}
@JsonProperty("switchPort")
public String getSwitchPort() {
return switchPort;
}
@JsonProperty("SwitchPort")
public IpListForMesp setSwitchPort(String switchPort) {
this.switchPort = switchPort;
return this;
}
@JsonProperty("vlan")
public String getVlan() {
return vlan;
}
@JsonProperty("Vlan")
public IpListForMesp setVlan(String vlan) {
this.vlan = vlan;
return this;
}
@JsonProperty("departName")
public String getDepartName() {
return departName;
}
@JsonProperty("DepartName")
public IpListForMesp setDepartName(String departName) {
this.departName = departName;
return this;
}
@JsonProperty("type")
public String getType() {
return type;
}
@JsonProperty("Type")
public IpListForMesp setType(String type) {
this.type = type;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/16 17:27
* <p>@author : Mcj
* {
* "DeviceID": "109",
* "IP": "192.168.1.93",
* "Mac": "00:0E:C6:D1:23:23",
* "MacStr": "00:0E:C6:D1:23:23",
* "DevName": "",
* "UserName": "",
* "adepartName": "杭州市",
* "DepartID": "",
* "status": "已关机",
* "OnlineStr": "0",
* "RunTime": "",
* "LocationId": "0",
* "Registered": "",
* "Type": "101",
* "OSVersion": "",
* "AgentLastTime": "",
* "OSVersionStr": "No",
* "aAuditStopTime": "9999-12-31 00:00:00",
* "departName": "杭州市",
* "GateIP": "",
* "VerifyUserName": "",
* "VerifyTime": "",
* "CheckResult": "",
* "IsBindUser": "不绑定",
* "CheckTime": "",
* "ForbidGuest": "允许",
* "CodeRight": "",
* "isAuth": "",
* "SwitchIpVal": "",
* "SwitchPortVal": "",
* "devRoleID": "",
* "AuthType": "",
* "RoleID": "",
* "AuthUserName": "",
* "AuthTime": "",
* "DoxVersion": "",
* "isCheckT": "0",
* "AllDepartName": "杭州市",
* "TypeName": "PC",
* "InsertTime": "2018-08-24 10:23:44",
* "Location": "",
* "IsTrustDev": "",
* "Tel": "",
* "EMail": "",
* "CPU": "",
* "DiskSize": "",
* "Memory": "",
* "CutOffStopTime": "未隔离",
* "AuditStopTime": "未审核",
* "AuditTime": "",
* "AllIP": "",
* "AllMac": "",
* "Mask": "255.255.255.0",
* "GateWay": "",
* "Hard": "da3d28d8ca8a3bb8d238bbd79bbc9983",
* "OSName": "",
* "SysBootTime": "",
* "SysInstallDate": "",
* "ShutDownTime": "2018-08-24 10:39:15",
* "IEVersion": "",
* "AuditUserName": "",
* "SwitchName": "",
* "Vlan": "",
* "GateIP_Copy": "",
* "isNat": "",
* "LastTime": "2018-08-24 10:39:15",
* "SwitchIp": "",
* "SwitchPort": "",
* "RegTime": "",
* "Expand_1": "",
* "Expand_2": "",
* "Expand_3": "",
* "Expand_4": "",
* "Expand_5": "",
* "Remark": "自动发现设备!"
* }
*/
@Table(name = "nsrs_networkclient")
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NetClient implements Serializable {
@Id
@GeneratedValue
@JsonIgnore
private Integer id;
/**
* IP地址
*/
@Column(length = 20)
private String ip;
/**
* mac地址
*/
@Column(length = 30)
private String mac;
@Column(length = 30)
private String macStr;
@Column(length = 5)
private Integer departId;
@Column(length = 30)
private String onlineStr;
@Column(length = 50)
private String runTime;
@Column(length = 10)
private Integer locationId;
@Column(length = 5)
private Integer type;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date agentLastTime;
@Column(length = 30)
private String osVersionStr;
@Column(length = 50)
private String auditStopTime;
@Column(length = 30)
private String departName;
@Column(length = 30)
private String gateIp;
@Column(length = 30)
private String verifyUserName;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date verifyTime;
@Column(length = 30)
private String checkResult;
@Column(length = 10)
private String isBindUser;
private String aAuditStopTime;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date checkTime;
@Column(length = 30)
private String forbidGuest;
@Column(length = 30)
private String codeRight;
@Column(length = 30)
private String isAuth;
@Column(length = 30)
private String switchIpVal;
@Column(length = 30)
private String switchPortVal;
@Column(length = 10)
private String devRoleId;
@Column(length = 10)
private String authType;
@Column(length = 10)
private String roleId;
@Column(length = 60)
private String authUserName;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date authTime;
@Column(length = 30)
private String doxVersion;
@Column(length = 10)
private Integer isCheckT;
@Column(length = 30)
private String location;
@Column(length = 20)
private String cutOffStopTime;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date auditTime;
@Column(length = 50)
private String allMac;
@Column(length = 30)
private String mask;
@Column(length = 30)
private String gateWay;
@Column(length = 70)
private String hard;
@Column(length = 50)
private String osName;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sysBootTime;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date sysInstallDate;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date shutDownTime;
@Column(length = 30)
private String ieVersion;
@Column(length = 50)
private String auditUserName;
@Column(length = 50)
private String switchName;
@Column(length = 50)
private String vlan;
@Column(length = 50)
private String gateIpCopy;
@Column(length = 10)
private String isNat;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date regTime;
private String expand1;
private String expand2;
private String expand3;
private String expand4;
private String expand5;
private String remark;
/**
* 设备名称
*/
@Column(length = 30)
private String devName;
/**
* 用户名
*/
@Column(length = 30)
private String userName;
/**
* 部门名
*/
@Column(length = 30)
private String adepartName;
/**
* 状态(是否开机)
*/
@Column(length = 30)
private String status;
/**
* 是否注册
*/
@Column(length = 20)
private String registered;
/**
* 图片前端代码
*/
private String osVersion;
/**
* 设备ID
*/
@Column(length = 30)
private Integer deviceId;
/**
* 所属部门
*/
@Column(length = 60)
private String allDepartName;
/**
* 设备类型
*/
@Column(length = 10)
private String typeName;
/**
* 发现时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date insertTime;
/**
* 是否可信
*/
@Column(length = 30)
private String isTrustDev;
/**
* 电话
*/
@Column(length = 30)
private String tel;
/**
* 邮箱地址
*/
@Column(length = 30)
private String email;
/**
* cpu型号
*/
@Column(length = 50)
private String cpu;
/**
* 硬盘容量
*/
@Column(length = 30)
private String diskSize;
/**
* 内存容量
*/
@Column(length = 30)
private String memory;
/**
* 所有ip
*/
@Column(length = 60)
private String allIp;
/**
* 最后在线时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(length = 60)
private Date lastTime;
/**
* 交换机ip
*/
@Column(length = 30)
private String switchIp;
/**
* 交换机端口
*/
@Column(length = 30)
private String switchPort;
@JsonProperty("aAuditStopTime")
public NetClient setaAuditStopTime(String aAuditStopTime) {
this.aAuditStopTime = aAuditStopTime;
return this;
}
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/16 16:26
* <p>@author : Mcj
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean<T> {
private int total = 0;
private int page =0;
private int startPage = 0;
@JsonProperty("pagesize")
private int pageSize=0;
private int morethan = 0;
private int localMorethan = 0;
private T rows;
}
package com.zjty.fp.acq.nsrs.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* <p>Description : fusion-platform
* <p>Date : 2018/8/23 17:04
* <p>@author : Mcj
* "ID": "18415",
* "DeviceID": "86",
* "AllDepartName": "杭州市/杭州市委办/信息处",
* "Registrant": "信息处",
* "DevIP": "34.4.117.37",
* "DepartID": "17",
* "DepartName": "信息处",
* "Description": "发现疑似违规文件:c:\\documents and settings\\lenovo\\桌面\\每日\\8.27\\【富阳 观点摘编】治疗医药卫生体制顽疾:看病难贵、以药养医.doc",
* "RepairedTime": "2018-08-27 16:30:03",
* "DealTime": "",
* "SynTime": "",
* "IsViolation": "0",
* "HandleStatus": "",
* "CoreID": "fdef1108-ad50-11e5-9fea-0010f339446a",
* "RealCoreID": "fdef1108-ad50-11e5-9fea-0010f339446a",
* "PolicyID": "102",
* "ModifTime": "",
* "InsertTime": "2018-08-27 16:30:03",
* "PolicyCoreID": "fdef1108-ad50-11e5-9fea-0010f339446a",
* "NextCoreID": "",
* "V1": "c:\\documents and settings\\lenovo\\桌面\\每日\\8.27\\【富阳 观点摘编】治疗医药卫生体制顽疾:看病难贵、以药养医.doc",
* "V2": "秘密",
* "V3": "秘密",
* "V4": "医生涉嫌收受药品回扣。央视《焦点访谈》播出《药单背后的秘密》,曝光高州人民医院医生开药收受回扣。包头市第六医院7名",
* "V5": "【富阳 观点摘编】治疗医药卫生体制顽疾:看病难贵、以药养医.doc",
* "V6": "询问用户",
* "V7": "2018-08-27 16:28:17",
* "V8": "61",
* "V9": "1",
* "V10": "防泄密算法1.6|2018-08-27 16:28:17",
* "Xml1": "医生涉嫌收受药品回扣。央视《焦点访谈》播出《药单背后的<span style=\"color:#f00;font-weight:700;\">秘密</span>》,曝光高州人民医院医生开药收受回扣。包头市第六医院7名<br>",
* "Xml2": "",
* "Xml3": "",
* "Content": "",
* "PreCoreID": "",
* "ProcessContent": "",
* "asRecordID": "18415",
* "EventID": "8FB34E68F8A2999D",
* "Tel": "",
* "CheckItem": "敏感信息检查",
* "ViolationTime": "2018-08-27 16:31:59"
* }
*/
@Table(name = "nsrs_violation")
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Violation implements Serializable {
@Id
@GeneratedValue
@JsonIgnore
private Integer violationId;
private Integer id;
@Column(length = 30)
private String departName;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date repairedTime;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date dealTime;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date synTime;
@Column(columnDefinition = "text")
private String handleStatus;
@Column(length = 100)
private String coreId;
@Column(length = 100)
private String realCoreId;
@Column(length = 100)
private String policyId;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date modifTime;
@Column(length = 50)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date insertTime;
@Column(length = 100)
private String policyCoreId;
@Column(length = 100)
private String nextCoreId;
private String v1;
private String v2;
private String v3;
private String v4;
private String v5;
private String v6;
private String v7;
private String v8;
private String v9;
private String v10;
@Column(columnDefinition = "text")
private String xml1;
private String xml2;
private String xml3;
@Column(columnDefinition = "text")
private String content;
private String preCoreId;
private String processContent;
@Column(length = 50)
private String asRecordId;
/**
*
*/
@Column(length = 50)
private String allDepartName;
/**
* 使用人
*/
@Column(length = 50)
private String registrant;
/**
* 设备id
*/
@Column(length = 50)
private Integer deviceId;
/**
* 部门id
*/
@Column(length = 50)
private Integer departId;
/**
* 设备地址
*/
@Column(length = 50)
private String devIp;
/**
* 违规说明
*/
private String description;
/**
* 事件状态
*/
@Column(length = 10)
private Integer isViolation;
/**
* 事件编号
*/
private String eventId;
/**
* 电话
*/
@Column(length = 30)
private String tel;
/**
* 违规类型
*/
@Column(length = 30)
private String checkItem;
/**
* 违规时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@Column(length = 50)
private Date violationTime;
public Violation clone(Violation violation){
BeanUtils.copyProperties(violation,this,"violationId");
return this;
}
}
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论