From 307ac519ae05bc70bf6d18c0f679847288928c38 Mon Sep 17 00:00:00 2001 From: 16639036659 <577530412@qq.com> Date: 星期一, 11 十二月 2023 10:05:10 +0800 Subject: [PATCH] 暂时提交 --- src/main/java/com/ruoyi/doublePrevention/scheduls/CheckExecResultSchedule.java | 188 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 188 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ruoyi/doublePrevention/scheduls/CheckExecResultSchedule.java b/src/main/java/com/ruoyi/doublePrevention/scheduls/CheckExecResultSchedule.java new file mode 100644 index 0000000..47d6eed --- /dev/null +++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/CheckExecResultSchedule.java @@ -0,0 +1,188 @@ +package com.ruoyi.doublePrevention.scheduls; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.doublePrevention.entity.CJReport.ReportResultDTO; +import com.ruoyi.doublePrevention.entity.PreventReportConfig; +import com.ruoyi.doublePrevention.enums.SyncEnum; +import com.ruoyi.doublePrevention.service.baseService.*; +import com.ruoyi.doublePrevention.utilsCJ.AesGcm256Util; +import com.ruoyi.project.tr.report.service.ReportService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.*; + +@Component +public class CheckExecResultSchedule { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private ReportService reportService; + + @Autowired + private PreventCJReportRiskAnaUnitService CJRiskAnaUnitService; + @Autowired + private PreventCJReportRiskEventService CJEventService; + @Autowired + private PreventCJReportRiskControlMeasureService CJMeasureService; + @Autowired + private PreventCJReportCheckTaskFromWorkService CJTaskFromWorkService; + @Autowired + private PreventCJReportCheckRecordFromTaskService CJTaskRecordService; + @Autowired + private PreventCJReportDangerInfoService CJDangerInfoService; + @Autowired + private PreventCJReportPointService CJPointService; + @Autowired + private PreventCJReportOverhaulLogService CJOverhaulLogService; + @Autowired + private PreventReportConfigService preventReportConfigService; + + String token = "GT6gGJV7JV"; + String key = "Bv+NeBolwqg2Pbc1yVwrZA=="; + String iv = "4QC9V8eAiB7tdlgBkMsTAw=="; + + public static final int MAC_BIT_SIZE = 128; + +// public static String encrypt(String plainText, byte[] key, byte[] iv) { +// String sr; +// try { +// byte[] plainBytes = plainText.getBytes(StandardCharsets.UTF_8); +// GCMBlockCipher cipher = new GCMBlockCipher(new +// AESFastEngine()); +// AEADParameters parameters = +// new AEADParameters(new KeyParameter(key), +// MAC_BIT_SIZE, iv, null); +// cipher.init(true, parameters); +// byte[] encryptedBytes = new +// byte[cipher.getOutputSize(plainBytes.length)]; +// int retLen = cipher.processBytes(plainBytes, 0, plainBytes.length, +// encryptedBytes, 0); +// cipher.doFinal(encryptedBytes, retLen); +// sr = Base64.getEncoder().encodeToString(encryptedBytes); +// } catch (Exception ex) { +// throw new RuntimeException(ex.getMessage()); +// } +// return sr; +// } +// + + + @Transactional +// @Scheduled(cron = "0 0 23 * * ?") //每天晚上23点执行一次0 0 22,23 * * ? +// @Scheduled(cron = "0 0 22,23 * * ?") //每天晚上22、23点执行一次 +// @Scheduled(cron = "0 0/1 * * * ? ") // 分钟 +// @Scheduled(cron = "0 0/20 * * * ? ") // 分钟 +// @Scheduled(cron = "0/10 * * * * ?") + public void execReportDateSchedule() throws UnsupportedEncodingException { + logger.info("【¥¥】检查上报结果..."); + + String token = "4348187236"; // todo token暂时使用众泰 + String key = "84702E415A73CE27077B5F726E7BDBB0"; + String iv = "1C7AA98593AA69F4AAE119BD5C01D9ED"; + + HttpURLConnection con = null; + BufferedReader buffer = null; + int responseCode = 200; + + SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); + + Date date = new Date(); + //格式化时间,作为token的时间戳 + SimpleDateFormat tokenDate= new SimpleDateFormat("yyyyMMddHHMMssSSS"); + String formatDate = tokenDate.format(date); + + //使用风险分析单元数据上报主配置,作为自动上报开关 + PreventReportConfig reportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode()); + if (reportConfig.getReportType() == 0){ + return; + } + + /** + * 1、处理安全风险分析单元数据 + * */ + logger.info("查询处理数据..."); + //加密数据 + StringBuffer unitResultBuffer = null; + + List<String> batchId = new ArrayList<>(); + batchId.add("e7272b6b-fb68-4db7-ad06-f763a43b351c"); + + //上报数据 + try { + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/getLog"); + //得到连接对象 + con = (HttpURLConnection) url.openConnection(); + //设置请求类型 + con.setRequestMethod("POST"); + //允许写出 + con.setDoOutput(true); + //允许读入 + con.setDoInput(true); + //不使用缓存 + con.setUseCaches(false); + con.setInstanceFollowRedirects(true); + //设置请求头 + con.setRequestProperty("Authorization",token + formatDate.toString()); + //设置Content-Type,此处根据实际情况确定 + con.setRequestProperty("Content-Type", "application/json;charset=utf8"); + + OutputStream os = con.getOutputStream(); + Map paraMap = new HashMap(); + paraMap.put("batchId", batchId); + /**封装数据*/ + //组装入参,设置请求体 + os.write(JSON.toJSONString(paraMap).getBytes()); + + //本段日志,测试成功后,可注释掉 + if (responseCode == HttpURLConnection.HTTP_OK) { + //得到响应流 + InputStream inputStream = con.getInputStream(); + //将响应流转换成字符串 + unitResultBuffer = new StringBuffer(); + String line; + buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); + while ((line = buffer.readLine()) != null) { + unitResultBuffer.append(line); + } + logger.info("result:" + unitResultBuffer.toString()); + } + + } catch (Exception e) { + e.printStackTrace(); + } + //接收返回值,保存返回值 + List<String> errorIdList= new ArrayList<>(); + + //拼接上报数据的uuid + StringBuffer idTextBuffer = new StringBuffer(); + + //接收参数,转为对象 + ReportResultDTO unitResult = JSONObject.parseObject(unitResultBuffer.toString(), ReportResultDTO.class); + + //设置所有数据上报成功 +// for (PreventCJReportRiskAnaUnit riskAnaUnit : CJRiskAnaUnits) { +// HandlerReportParam handlerReportParam = new HandlerReportParam(); +// //封装数据 +// handlerReportParam.setId(riskAnaUnit.getRiskUnitId()); +// handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); +// handlerReportParam.setReportTime(date); +// CJRiskAnaUnitService.updateReportStatus(handlerReportParam); +// idTextBuffer.append(riskAnaUnit.getId() + ";"); +// } + + + } + +} -- Gitblit v1.9.2