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); } } }