智联信通对接安全态势平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
7.3 KiB

package com.example.upsecuritydata.task;
import cn.hutool.core.date.DateUtil;
import com.example.upsecuritydata.service.Method;
import com.example.upsecuritydata.service.NbmsEntApplyServcie;
import com.example.upsecuritydata.util.Constant;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;
import java.io.IOException;
import java.util.Date;
/**
* 三、 标识解析企业主体信息上报
*
* @author laifeng
* @since 2022/11/29
*/
@Component
@AllArgsConstructor
//@EnableScheduling
public class IdentificationUpTask {
private final NbmsEntApplyServcie nbmsEntApplyServcie;
private final Method method;
// @Scheduled(cron = "0/20 * * * * ? ")
@XxlJob("demoJobTest")
// @Scheduled(cron = "0 0/1 * * * ?")
public void refreshAliDeviceStatus() {
StopWatch stopWatch = new StopWatch("task");
stopWatch.start();
// 标识解析企业主体信息上报检测新增并上传
threePackMethod(0);
// 标识解析企业主体信息上报检测更新并上传
threePackMethod(1);
fourPackMethod(0);
fourPackMethod(1);
fivePackMethod(0);
fivePackMethod(1);
String yesterday = DateUtil.format(DateUtil.yesterday(), "yyyyMMdd");
// 注册数据上报
try {
method.creatSixUpFileAndUp(yesterday);
} catch (Exception e) {
throw new RuntimeException(e);
}
// 解析数据上报
try {
method.creatSevenUpFileAndUp(yesterday);
} catch (Exception e) {
throw new RuntimeException(e);
}
// 删除上传生成的文件
method.deletUpFile(Constant.localPackage);
stopWatch.stop();
double seconds = stopWatch.getTotalTimeSeconds();
XxlJobHelper.log("XXL-JOB, 上传日志成功! 共花费:" + seconds);
System.out.println("XXL-JOB, 上传日志成功! 共花费:" + seconds);
}
/**
* 三、 标识解析企业主体信息上报
*
* @param type 0 新增 1 更新
*/
private void threePackMethod(Integer type) {
// 时间格式化
Date date = DateUtil.yesterday();
String yyyyMMdd = DateUtil.format(date, "yyyyMMdd");
String yyyyMMddToday = DateUtil.format(DateUtil.date(), "yyyyMMdd");
Boolean temp = false;
try {
temp = method.creatIdentificationUpFile(type, yyyyMMdd, yyyyMMddToday);
} catch (IOException e) {
throw new RuntimeException(e);
}
// 如果没有生成文件,可直接结束
if (!temp) {
String logName = "";
if (type == 0) {
logName = "新增";
} else if (type == 1) {
logName = "更新";
} else {
logName = "全量";
}
XxlJobHelper.log("表1:昨日无" + logName + "数据日志!");
return;
}
String fileName = Constant.localNotEncryFileNamePath;
// 要上传的目录
String upSrc = "/001/" + yyyyMMdd;
// 表名(文件名的一部分)
String tableName = "ZLXT-basic_identification-";
String operationName = "";
if (type == 0) {
// 操作类型为新增
operationName = "-add.bin";
} else if (type == 1) {
// 操作类型为更新
operationName = "-update.bin";
} else {
// 操作类型为全量上传
operationName = "-all.bin";
}
try {
method.upMethod(fileName, upSrc, tableName, operationName);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* 四、 标识解析企业主体信息上报
*
* @param type 0 新增 1 更新
*/
private void fourPackMethod(Integer type) {
// 时间格式化
Date date = DateUtil.yesterday();
String yyyyMMdd = DateUtil.format(date, "yyyyMMdd");
String yyyyMMddToday = DateUtil.format(DateUtil.date(), "yyyyMMdd");
Boolean temp = false;
try {
temp = method.creatForUpFile(type, yyyyMMdd, yyyyMMddToday);
} catch (IOException e) {
throw new RuntimeException(e);
}
// 如果没有生成文件,可直接结束
if (!temp) {
String logName = "";
if (type == 0) {
logName = "新增";
} else if (type == 1) {
logName = "更新";
} else {
logName = "全量";
}
XxlJobHelper.log("表2:昨日无" + logName + "数据日志!");
return;
}
String fileName = Constant.localNotEncryFileNamePath;
// 要上传的目录
String upSrc = "/002/" + yyyyMMdd;
// 表名(文件名的一部分)
String tableName = "ZLXT-basic_identification_ip-";
String operationName = "";
if (type == 0) {
// 操作类型为新增
operationName = "-add.bin";
}
if (type == 1) {
// 操作类型为更新
operationName = "-update.bin";
} else if (type == 2) {
// 操作类型为全量
operationName = "-all.bin";
}
try {
method.upMethod(fileName, upSrc, tableName, operationName);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* 五、 标识注册企业主体信息上报
*
* @param type
*/
private void fivePackMethod(Integer type) {
// 时间格式化
Date date = DateUtil.yesterday();
String yyyyMMdd = DateUtil.format(date, "yyyyMMdd");
String yyyyMMddToday = DateUtil.format(DateUtil.date(), "yyyyMMdd");
Boolean temp = false;
try {
temp = method.creatFiveUpFile(type, yyyyMMdd, yyyyMMddToday);
} catch (IOException e) {
throw new RuntimeException(e);
}
// 如果没有生成文件,可直接结束
if (!temp) {
String logName = "";
if (type == 0) {
logName = "新增";
} else if (type == 1) {
logName = "更新";
} else {
logName = "全量";
}
XxlJobHelper.log("表3:昨日无" + logName + "数据日志!");
return;
}
String fileName = Constant.localNotEncryFileNamePath;
// 要上传的目录
String upSrc = "/003/" + yyyyMMdd;
// 表名(文件名的一部分)
String tableName = "ZLXT-basic_registered-";
String operationName = "";
if (type == 0) {
// 操作类型为新增
operationName = "-add.bin";
} else if (type == 1) {
// 操作类型为更新
operationName = "-update.bin";
} else {
// 操作类型为全量
operationName = "-all.bin";
}
try {
method.upMethod(fileName, upSrc, tableName, operationName);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}