From e6ab9c2b7af85ac676ef9fbe616327eb20f04139 Mon Sep 17 00:00:00 2001 From: 16639036659 <577530412@qq.com> Date: 星期一, 11 十二月 2023 10:01:18 +0800 Subject: [PATCH] 暂时提交 --- src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java | 646 ++++++++++++++++++++++------------------------------------ 1 files changed, 244 insertions(+), 402 deletions(-) diff --git a/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java b/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java index 427c11e..b7a46fc 100644 --- a/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java +++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java @@ -14,7 +14,9 @@ import com.ruoyi.doublePrevention.enums.CJReportEnum; import com.ruoyi.doublePrevention.enums.SyncEnum; import com.ruoyi.doublePrevention.repository.param.HandlerCJReportParam; +import com.ruoyi.doublePrevention.repository.param.HandlerReportParam; import com.ruoyi.doublePrevention.service.baseService.*; +import com.ruoyi.doublePrevention.utilsCJ.AesGcm256Util; import com.ruoyi.project.tr.report.service.ReportService; import org.apache.commons.lang3.ObjectUtils; import org.bouncycastle.crypto.engines.AESFastEngine; @@ -33,8 +35,11 @@ import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; + +import static com.ruoyi.doublePrevention.utilsCJ.AesGcm256Util.encrypt; @Component public class ExecCJReportDateSchedule { @@ -69,27 +74,28 @@ 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; - } +// 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 @@ -97,50 +103,59 @@ // @Scheduled(cron = "0 0 22,23 * * ?") //每天晚上22、23点执行一次 // @Scheduled(cron = "0 0/1 * * * ? ") // 分钟 // @Scheduled(cron = "0 0/20 * * * ? ") // 分钟 -// @Scheduled(cron = "0/30 * * * * ?") + @Scheduled(cron = "0/10 * * * * ?") public void execReportDateSchedule() throws UnsupportedEncodingException { - logger.info("【####】上报数据开始..."); + 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"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); //格式化时间,作为token的时间戳 - SimpleDateFormat tokenDate= new SimpleDateFormat("yyyyMMddHHmmssSSS"); + SimpleDateFormat tokenDate = new SimpleDateFormat("yyyyMMddHHMMssSSS"); String formatDate = tokenDate.format(date); - - logger.info("【token时间】" + formatDate); //使用风险分析单元数据上报主配置,作为自动上报开关 PreventReportConfig reportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode()); - if (reportConfig.getReportType() == 0){ + if (reportConfig.getReportType() == 0) { return; } + /** * 1、处理安全风险分析单元数据 * */ logger.info("【1】安全风险分析单元-处理数据..."); List<PreventCJReportRiskAnaUnit> CJRiskAnaUnits = CJRiskAnaUnitService.listReportUnitDate(); - if (ObjectUtils.isNotEmpty(CJRiskAnaUnits)){ + if (ObjectUtils.isNotEmpty(CJRiskAnaUnits)) { + logger.info("【【原始数据】】" + JSONObject.toJSONString(CJRiskAnaUnits)); //封装上报数据,时间格式化 List<CJReportRiskAnaUnitDTO> list = new ArrayList<>(); for (PreventCJReportRiskAnaUnit cjRiskAnaUnit : CJRiskAnaUnits) { CJReportRiskAnaUnitDTO riskAnaUnit = BeanCopyUtils.copyBean(cjRiskAnaUnit, CJReportRiskAnaUnitDTO.class); + System.out.println("创建时间:" + dateFormat.format(cjRiskAnaUnit.getCreateDate())); riskAnaUnit.setCreateDate(dateFormat.format(cjRiskAnaUnit.getCreateDate())); riskAnaUnit.setUpdateDate(dateFormat.format(cjRiskAnaUnit.getUpdateDate())); list.add(riskAnaUnit); } + + logger.info("【【风险单元原始数据】】" + JSONObject.toJSONString(list)); + // logger.info("【【原始数据】】" + JSONObject.toJSONString(list)); - String AESReportUnitDate = encrypt(JSONObject.toJSONString(list), key.getBytes(), iv.getBytes()); -// logger.info("【【AES加密结果】】"+ AESReportUnitDate);{0JRK`$6X.jpg)min/Desktop/所有桌面文件存放/9}AM56M10$6WX){0JRK`$6X.jpg) + String AESReportUnitDate = AesGcm256Util.encrypt(JSONArray.toJSON(list).toString(), + AesGcm256Util.hexToByte(key), + AesGcm256Util.hexToByte(iv)); StringBuffer unitResultBuffer = null; //上报数据 try { - URL url = new URL("http://120.71.182.198:9999/v1/data/receive/unitMsg"); + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/receiveUnitList"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); //设置请求类型 @@ -153,14 +168,15 @@ con.setUseCaches(false); con.setInstanceFollowRedirects(true); //设置请求头 - con.setRequestProperty("X-Access-Token",token+formatDate.toString()); + 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("data", AESReportUnitDate); /**封装数据*/ - logger.info("【【加密请求体】】" + JSONArray.toJSON(paraMap).toString()); + paraMap.put("data", AESReportUnitDate); + /**封装数据*/ + logger.info("【【加密请求体】】" + JSONArray.toJSON(paraMap).toString()); //组装入参,设置请求体 os.write(JSON.toJSONString(paraMap).getBytes()); @@ -176,74 +192,33 @@ unitResultBuffer.append(line); } logger.info("result:" + unitResultBuffer.toString()); + System.out.println("result:" + unitResultBuffer.toString()); } } catch (Exception e) { e.printStackTrace(); } //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); + List<String> errorIdList = new ArrayList<>(); + + //拼接上报数据的uuid + StringBuffer idTextBuffer = new StringBuffer(); + //接收参数,转为对象 - CJReportResultData CJUnitResult = JSONObject.parseObject(unitResultBuffer.toString(), CJReportResultData.class); -// Object parse = JSON.parse(CJUnitResult.getData()); - //取出需要的data部分,再次转换为对象 - Data data = JSONObject.parseObject(CJUnitResult.getData(), Data.class); - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } + ReportResultDTO unitResult = JSONObject.parseObject(unitResultBuffer.toString(), ReportResultDTO.class); + //设置所有数据上报成功 + for (PreventCJReportRiskAnaUnit riskAnaUnit : CJRiskAnaUnits) { + HandlerCJReportParam handlerReportParam = new HandlerCJReportParam(); + //封装数据 + handlerReportParam.setId(riskAnaUnit.getId()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); + handlerReportParam.setReportTime(date); + CJRiskAnaUnitService.updateReportStatus(handlerReportParam); + idTextBuffer.append(riskAnaUnit.getId() + ";"); } - if (CJUnitResult.getCode().equals(CJReportEnum.SUCCESS.getCode())){ - logger.info("【#】RiskAnaUnit所有数据全部入库成功"); - for (PreventCJReportRiskAnaUnit CJRiskAnaUnit : CJRiskAnaUnits) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJRiskAnaUnit.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJRiskAnaUnitService.updateCJReportStatusById(handlerCJReportParam); - } - }else if (CJUnitResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - logger.info("【#】RiskAnaUnit部分数据上传失败原因" + CJUnitResult.getErrorMsg()); - - CJUnitResult.getData(); - //遍历数据,设置数据上报成功 - for (PreventCJReportRiskAnaUnit CJRiskAnaUnit : CJRiskAnaUnits) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJRiskAnaUnit.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJRiskAnaUnitService.updateCJReportStatusById(handlerCJReportParam); - } - //遍历失败数据,设置数据上报失败 - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJRiskAnaUnitService.updateCJReportStatusById(handlerCJReportParam); - } - } - else if (CJUnitResult.getCode().equals(CJReportEnum.FAIL.getCode())){ - logger.info("【#】RiskAnaUnit所有数据全部入库失败"); - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJRiskAnaUnitService.updateCJReportStatusById(handlerCJReportParam); - } - } - logger.info("【1】安全风险分析单元-数据处理完成"); }else { - logger.info("【1】风险分析单元-无数据上报昌吉州"); + logger.info("【1】风险单元-无数据上报昌吉州"); } - /** * 2、处理安全风险事件数据 @@ -262,12 +237,14 @@ } logger.info("【【风险事件原始数据】】" + JSONObject.toJSONString(eventList)); //加密数据 - String AESReportUnitDate = encrypt(JSONObject.toJSONString(eventList), key.getBytes(), iv.getBytes()); - +// String AESReportEventDate = encrypt(JSONObject.toJSONString(eventList), key.getBytes(), iv.getBytes()); + String AESReportEventDate = AesGcm256Util.encrypt(JSONArray.toJSON(eventList).toString(), + AesGcm256Util.hexToByte(key), + AesGcm256Util.hexToByte(iv)); StringBuffer eventResultBuffer = null; //上报数据 try { - URL url = new URL("http://120.71.182.198:9999/v1/data/receive/eventMsg"); + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/receiveEventList"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); //设置请求类型 @@ -281,11 +258,11 @@ //不使用缓存 con.setUseCaches(false); //设置请求头 - con.setRequestProperty("X-Access-Token",token+formatDate.toString()); + con.setRequestProperty("X-Access-Token",token + formatDate.toString()); con.setInstanceFollowRedirects(true); OutputStream os = con.getOutputStream(); Map paraMap = new HashMap(); - paraMap.put("data", AESReportUnitDate); /**封装数据*/ + paraMap.put("data", AESReportEventDate); /**封装数据*/ //组装入参,设置请求体 os.write(JSON.toJSONString(paraMap).getBytes()); //得到响应码 @@ -307,59 +284,14 @@ e.printStackTrace(); } - //接收返回值,保存返回值 - CJReportResultData CJEventResult = JSONObject.parseObject(eventResultBuffer.toString(), CJReportResultData.class); - - //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); - Data data = JSONObject.parseObject(CJEventResult.getData(), Data.class); - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } - } - if (CJEventResult.getCode().equals(CJReportEnum.SUCCESS.getCode())){ - logger.info("【#】Event所有数据全部入库成功"); - for (PreventCJReportRiskEvent CJEvent : CJEvents) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJEvent.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJEventService.updateCJReportStatusById(handlerCJReportParam); - } - }else if (CJEventResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - logger.info("【#】Event部分数据上传失败原因" + CJEventResult.getErrorMsg()); - //遍历数据,上报数据设置为成功状态 - for (PreventCJReportRiskEvent CJEvent : CJEvents) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJEvent.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJEventService.updateCJReportStatusById(handlerCJReportParam); - } - //遍历失败数据,设置为失败状态 - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJEventService.updateCJReportStatusById(handlerCJReportParam); - } - } else if (CJEventResult.getCode().equals(CJReportEnum.FAIL.getCode())){ - logger.info("【#】Event所有数据全部入库失败"); - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJEventService.updateCJReportStatusById(handlerCJReportParam); - } + //设置所有数据上报成功 + for (PreventCJReportRiskEvent cjEvent : CJEvents) { + HandlerCJReportParam handlerReportParam = new HandlerCJReportParam(); + //封装数据 + handlerReportParam.setId(cjEvent.getId()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); + handlerReportParam.setReportTime(date); + CJEventService.updateEventReportStatus(handlerReportParam); } logger.info("【2】安全风险事件-数据处理完成"); }else { @@ -382,14 +314,16 @@ reportMeasureList.add(cjReportRiskControlMeasureDTO); } //数据上报 - String AESReportMeasure = encrypt(JSONObject.toJSONString(reportMeasureList), key.getBytes(), iv.getBytes()); - +// String AESReportMeasure = encrypt(JSONObject.toJSONString(reportMeasureList), key.getBytes(), iv.getBytes()); + String AESReportMeasure = AesGcm256Util.encrypt(JSONArray.toJSON(reportMeasureList).toString(), + AesGcm256Util.hexToByte(key), + AesGcm256Util.hexToByte(iv)); logger.info("【原始数据】" + JSONObject.toJSONString(reportMeasureList)); StringBuffer measureResultBuffer = null; //上报数据 try { - URL url = new URL("http://120.71.182.198:9999/v1/data/receive/controlMeasuresMsg"); + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/receiveControlMeasuresList"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); //设置请求类型 @@ -403,7 +337,7 @@ //不使用缓存 con.setUseCaches(false); //设置请求头 - con.setRequestProperty("X-Access-Token",token+formatDate.toString()); + con.setRequestProperty("X-Access-Token",token + formatDate.toString()); OutputStream os = con.getOutputStream(); Map paraMap = new HashMap(); paraMap.put("data", AESReportMeasure); /**封装数据*/ @@ -428,40 +362,14 @@ e.printStackTrace(); } - //接收返回值,保存返回值 - CJReportResultData CJMeasureResult = JSONObject.parseObject(measureResultBuffer.toString(), CJReportResultData.class); - //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); - Data data = JSONObject.parseObject(CJMeasureResult.getData(), Data.class); - //保存失败结果 - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } - } - logger.info("【】管控措施-数据上报结果:" + CJMeasureResult.getCode()); //设置所有数据上报成功 - if (CJMeasureResult.getCode().equals(CJReportEnum.SUCCESS.getCode()) || CJMeasureResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (PreventCJReportRiskControlMeasure CJMeasure : CJMeasures) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJMeasure.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJMeasureService.updateCJReportStatusById(handlerCJReportParam); - } - } - //设置上报失败的数据,上报失败 - if (CJMeasureResult.getCode().equals(CJReportEnum.FAIL.getCode()) || CJMeasureResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJMeasureService.updateCJReportStatusById(handlerCJReportParam); - } + for (PreventCJReportRiskControlMeasure cjMeasure : CJMeasures) { + HandlerCJReportParam handlerReportParam = new HandlerCJReportParam(); + //封装数据 + handlerReportParam.setId(cjMeasure.getId()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); + handlerReportParam.setReportTime(date); + CJMeasureService.updateMeasureReportStatus(handlerReportParam); } logger.info("【3】风险管控措施-数据处理完成"); }else { @@ -486,11 +394,15 @@ } System.out.println(Arrays.toString(reportCheckTaskFromWorkList.toArray())); //数据上报 - String AESReportTaskFromWork = encrypt(JSONObject.toJSONString(reportCheckTaskFromWorkList), key.getBytes(), iv.getBytes()); +// String AESReportTaskFromWork = encrypt(JSONObject.toJSONString(reportCheckTaskFromWorkList), key.getBytes(), iv.getBytes()); + String AESReportTaskFromWork = AesGcm256Util.encrypt(JSONArray.toJSON(reportCheckTaskFromWorkList).toString(), + AesGcm256Util.hexToByte(key), + AesGcm256Util.hexToByte(iv)); + StringBuffer taskFromWorkResultBuffer = null; //上报数据 try { - URL url = new URL("http://120.71.182.198:9999/v1/data/receive/measuresTaskMsg"); + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/receiveMeasuresTaskList"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); //设置请求类型 @@ -504,7 +416,7 @@ //不使用缓存 con.setUseCaches(false); //设置请求头 - con.setRequestProperty("X-Access-Token",token+formatDate.toString()); + con.setRequestProperty("X-Access-Token",token + formatDate.toString()); OutputStream os = con.getOutputStream(); Map paraMap = new HashMap(); paraMap.put("data", AESReportTaskFromWork); @@ -529,41 +441,16 @@ e.printStackTrace(); } - //接收返回值,保存返回值 - CJReportResultData CJTaskFromWorkResult = JSONObject.parseObject(taskFromWorkResultBuffer.toString(), CJReportResultData.class); - //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); - Data data = JSONObject.parseObject(CJTaskFromWorkResult.getData(), Data.class); - //保存失败结果 - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } - } - logger.info("【】任务:数据上报结果:" + CJTaskFromWorkResult.getCode()); //设置所有数据上报成功 - if (CJTaskFromWorkResult.getCode().equals(CJReportEnum.SUCCESS.getCode()) || CJTaskFromWorkResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (PreventCJReportCheckTaskFromWork CJTaskFromWork : CJTaskFromWorks) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJTaskFromWork.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJTaskFromWorkService.updateCJReportStatusById(handlerCJReportParam); - } + for (PreventCJReportCheckTaskFromWork cjTaskFromWork : CJTaskFromWorks) { + HandlerCJReportParam handlerReportParam = new HandlerCJReportParam(); + //封装数据 + handlerReportParam.setId(cjTaskFromWork.getId()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); + handlerReportParam.setReportTime(date); + CJTaskFromWorkService.updateWorkReportStatus(handlerReportParam); } - //设置上报失败的数据,上报失败 - if (CJTaskFromWorkResult.getCode().equals(CJReportEnum.FAIL.getCode()) || CJTaskFromWorkResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJTaskFromWorkService.updateCJReportStatusById(handlerCJReportParam); - } - } + logger.info("【4】任务-数据处理完成"); }else { logger.info("【4】任务-无数据上报昌吉州"); @@ -588,12 +475,15 @@ } // System.out.println(Arrays.toString(reportRecordFromTaskList.toArray())); //数据加密 - String AESReportRecordFromTask = encrypt(JSONObject.toJSONString(reportRecordFromTaskList), key.getBytes(), iv.getBytes()); +// String AESReportRecordFromTask = encrypt(JSONObject.toJSONString(reportRecordFromTaskList), key.getBytes(), iv.getBytes()); + String AESReportRecordFromTask = AesGcm256Util.encrypt(JSONArray.toJSON(reportRecordFromTaskList).toString(), + AesGcm256Util.hexToByte(key), + AesGcm256Util.hexToByte(iv)); StringBuffer recordFromTaskResultBuffer = null; //上报数据 try { - URL url = new URL("http://120.71.182.198:9999/v1/data/receive/measuresTaskRecordMsg"); + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/receiveMeasuresTaskRecordList"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); //设置请求类型 @@ -607,7 +497,7 @@ //不使用缓存 con.setUseCaches(false); //设置请求头 - con.setRequestProperty("X-Access-Token",token+formatDate.toString()); + con.setRequestProperty("X-Access-Token",token + formatDate.toString()); OutputStream os = con.getOutputStream(); Map paraMap = new HashMap(); paraMap.put("data", AESReportRecordFromTask);/**封装数据*/ @@ -632,40 +522,14 @@ e.printStackTrace(); } - //接收返回值,保存返回值 - CJReportResultData CJRecordFromTaskResult = JSONObject.parseObject(recordFromTaskResultBuffer.toString(), CJReportResultData.class); - //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); - Data data = JSONObject.parseObject(CJRecordFromTaskResult.getData(), Data.class); - //保存失败结果 - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } - } - logger.info("【】CJRecordFromTask数据上报结果:" + CJRecordFromTaskResult.getCode()); //设置所有数据上报成功 - if (CJRecordFromTaskResult.getCode().equals(CJReportEnum.SUCCESS.getCode()) || CJRecordFromTaskResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (PreventCJReportCheckRecordFromTask CJRecordFromTask : CJRecordFromTasks) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJRecordFromTask.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJTaskRecordService.updateCJReportStatusById(handlerCJReportParam); - } - } - //设置上报失败的数据,上报失败 - if (CJRecordFromTaskResult.getCode().equals(CJReportEnum.FAIL.getCode()) || CJRecordFromTaskResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJTaskRecordService.updateCJReportStatusById(handlerCJReportParam); - } + for (PreventCJReportCheckRecordFromTask cjRecordFromTask : CJRecordFromTasks) { + HandlerCJReportParam handlerReportParam = new HandlerCJReportParam(); + //封装数据 + handlerReportParam.setId(cjRecordFromTask.getId()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); + handlerReportParam.setReportTime(date); + CJTaskRecordService.updateTaskReportStatus(handlerReportParam); } logger.info("【5】任务记录-数据处理完成"); }else { @@ -695,11 +559,15 @@ } //数据上报 logger.info("【原始数据】" + JSONObject.toJSONString(reportDangerInfoLists)); - String AESReportDangerInfo = encrypt(JSONObject.toJSONString(reportDangerInfoLists), key.getBytes(), iv.getBytes()); +// String AESReportDangerInfo = encrypt(JSONObject.toJSONString(reportDangerInfoLists), key.getBytes(), iv.getBytes()); + String AESReportDangerInfo = AesGcm256Util.encrypt(JSONArray.toJSON(reportDangerInfoLists).toString(), + AesGcm256Util.hexToByte(key), + AesGcm256Util.hexToByte(iv)); + StringBuffer dangerInfoResultBuffer = null; //上报数据 try { - URL url = new URL("http://120.71.182.198:9999/v1/data/receive/dangerInvestigationMsg"); + URL url = new URL("http://117.190.86.66:6022/v2/data/receive/receiveDangerInvestigationList"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); //设置请求类型 @@ -738,40 +606,14 @@ e.printStackTrace(); } - //接收返回值,保存返回值 - CJReportResultData CJDangerInfoResult = JSONObject.parseObject(dangerInfoResultBuffer.toString(), CJReportResultData.class); - //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); - Data data = JSONObject.parseObject(CJDangerInfoResult.getData(), Data.class); - //保存失败结果 - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } - } - logger.info("【】CJDangerInfo数据上报结果:" + CJDangerInfoResult.getCode()); //设置所有数据上报成功 - if (CJDangerInfoResult.getCode().equals(CJReportEnum.SUCCESS.getCode()) || CJDangerInfoResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (PreventCJReportDangerInfo CJDangerInfo : CJDangerInfos) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(CJDangerInfo.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJDangerInfoService.updateCJReportStatusById(handlerCJReportParam); - } - } - //设置上报失败的数据,上报失败 - if (CJDangerInfoResult.getCode().equals(CJReportEnum.FAIL.getCode()) || CJDangerInfoResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJDangerInfoService.updateCJReportStatusById(handlerCJReportParam); - } + for (PreventCJReportDangerInfo cjDangerInfo : CJDangerInfos) { + HandlerCJReportParam handlerReportParam = new HandlerCJReportParam(); + //封装数据 + handlerReportParam.setId(cjDangerInfo.getId()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); + handlerReportParam.setReportTime(date); + CJDangerInfoService.updateDangerInfoReportStatus(handlerReportParam); } logger.info("【6】隐患信息-数据处理完成"); }else { @@ -779,113 +621,113 @@ } - /** - * 7、检修停用记录信息数据 - * */ - logger.info("【7】检修停用记录-处理数据..."); - List<PreventCJReportOverhaulLog> CJOverhaulLogs = CJOverhaulLogService.listReportOverhaulDate(); - if (ObjectUtils.isNotEmpty(CJOverhaulLogs)){ - //封装上报数据 - List<CJReportOverhaulLogDTO> reportOverhaulLogDTOS = new ArrayList<>(); - for (PreventCJReportOverhaulLog cjOverhaulLog : CJOverhaulLogs) { - CJReportOverhaulLogDTO cjReportOverhaulLogDTO = BeanCopyUtils.copyBean(cjOverhaulLog, CJReportOverhaulLogDTO.class); - - cjReportOverhaulLogDTO.setCreateDate(dateFormat.format(cjOverhaulLog.getCreateDate())); - cjReportOverhaulLogDTO.setUpdateDate(dateFormat.format(cjOverhaulLog.getUpdateDate())); - cjReportOverhaulLogDTO.setStopStartTime(dateFormat.format(cjOverhaulLog.getStopStartTime())); - if (ObjectUtils.isNotEmpty(cjOverhaulLog.getStopEndTime())){ - cjReportOverhaulLogDTO.setStopEndTime(dateFormat.format(cjOverhaulLog.getStopEndTime())); - }else { - cjReportOverhaulLogDTO.setStopEndTime(null); - } - reportOverhaulLogDTOS.add(cjReportOverhaulLogDTO); - } - - //数据上报 - logger.info("【原始数据】" + JSONObject.toJSONString(reportOverhaulLogDTOS)); - String AESReportDangerInfo = encrypt(JSONObject.toJSONString(reportOverhaulLogDTOS), key.getBytes(), iv.getBytes()); - StringBuffer dangerInfoResultBuffer = null; - //上报数据 - try { - URL url = new URL("http://v1/data/receive/receiveUnitStop"); - //得到连接对象 - con = (HttpURLConnection) url.openConnection(); - //设置请求类型 - con.setRequestMethod("POST"); - //设置Content-Type,此处根据实际情况确定 - con.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); - //允许写出 - con.setDoOutput(true); - //允许读入 - con.setDoInput(true); - //不使用缓存 - con.setUseCaches(false); - //设置请求头 - con.setRequestProperty("X-Access-Token",token + formatDate.toString()); - OutputStream os = con.getOutputStream(); - Map paraMap = new HashMap(); - paraMap.put("data", AESReportDangerInfo);/**封装数据*/ - //组装入参,设置请求体 - os.write(JSON.toJSONString(paraMap).getBytes()); - //得到响应码 - responseCode = con.getResponseCode(); - //本段日志,测试成功后,可注释掉 - if (responseCode == HttpURLConnection.HTTP_OK) { - //得到响应流 - InputStream inputStream = con.getInputStream(); - //将响应流转换成字符串 - dangerInfoResultBuffer = new StringBuffer(); - String line; - buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); - while ((line = buffer.readLine()) != null) { - dangerInfoResultBuffer.append(line); - } - logger.info("result:" + dangerInfoResultBuffer.toString()); - } - } catch (Exception e) { - e.printStackTrace(); - } - - //接收返回值,保存返回值 - CJReportResultData CJOverhaulLogResult = JSONObject.parseObject(dangerInfoResultBuffer.toString(), CJReportResultData.class); - //接收返回值,保存返回值 - List<String> errorIdList= new ArrayList<>(); - Data data = JSONObject.parseObject(CJOverhaulLogResult.getData(), Data.class); - //保存失败结果 - if (ObjectUtils.isNotEmpty(data)){ - for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { - errorIdList.add(errorMsgDetail.getId()); - } - } - logger.info("【】CJOverhaulLog数据上报结果:" + CJOverhaulLogResult.getCode()); - //设置所有数据上报成功 - - if (CJOverhaulLogResult.getCode().equals(CJReportEnum.SUCCESS.getCode()) || CJOverhaulLogResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (PreventCJReportOverhaulLog cjOverhaulLog : CJOverhaulLogs) { - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(cjOverhaulLog.getId()); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); - handlerCJReportParam.setReportTime(date); - CJOverhaulLogService.updateCJReportStatusById(handlerCJReportParam); - } - } - //设置上报失败的数据,上报失败 - if (CJOverhaulLogResult.getCode().equals(CJReportEnum.FAIL.getCode()) || CJOverhaulLogResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ - for (String failId : errorIdList) { - //上报失败 - HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); - //封装数据 - handlerCJReportParam.setId(failId); - handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); - handlerCJReportParam.setReportTime(date); - CJOverhaulLogService.updateCJReportStatusById(handlerCJReportParam); - } - } - logger.info("【7】检修停用记录-数据处理完成"); - }else { - logger.info("【7】检修停用记录-无数据上报昌吉州"); - } +// /** +// * 7、检修停用记录信息数据 +// * */ +// logger.info("【7】检修停用记录-处理数据..."); +// List<PreventCJReportOverhaulLog> CJOverhaulLogs = CJOverhaulLogService.listReportOverhaulDate(); +// if (ObjectUtils.isNotEmpty(CJOverhaulLogs)){ +// //封装上报数据 +// List<CJReportOverhaulLogDTO> reportOverhaulLogDTOS = new ArrayList<>(); +// for (PreventCJReportOverhaulLog cjOverhaulLog : CJOverhaulLogs) { +// CJReportOverhaulLogDTO cjReportOverhaulLogDTO = BeanCopyUtils.copyBean(cjOverhaulLog, CJReportOverhaulLogDTO.class); +// +// cjReportOverhaulLogDTO.setCreateDate(dateFormat.format(cjOverhaulLog.getCreateDate())); +// cjReportOverhaulLogDTO.setUpdateDate(dateFormat.format(cjOverhaulLog.getUpdateDate())); +// cjReportOverhaulLogDTO.setStopStartTime(dateFormat.format(cjOverhaulLog.getStopStartTime())); +// if (ObjectUtils.isNotEmpty(cjOverhaulLog.getStopEndTime())){ +// cjReportOverhaulLogDTO.setStopEndTime(dateFormat.format(cjOverhaulLog.getStopEndTime())); +// }else { +// cjReportOverhaulLogDTO.setStopEndTime(null); +// } +// reportOverhaulLogDTOS.add(cjReportOverhaulLogDTO); +// } +// +// //数据上报 +// logger.info("【原始数据】" + JSONObject.toJSONString(reportOverhaulLogDTOS)); +// String AESReportDangerInfo = encrypt(JSONObject.toJSONString(reportOverhaulLogDTOS), key.getBytes(), iv.getBytes()); +// StringBuffer dangerInfoResultBuffer = null; +// //上报数据 +// try { +// URL url = new URL("http://117.190.86.66:6022/v1/data/receive/receiveUnitStop"); +// //得到连接对象 +// con = (HttpURLConnection) url.openConnection(); +// //设置请求类型 +// con.setRequestMethod("POST"); +// //设置Content-Type,此处根据实际情况确定 +// con.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); +// //允许写出 +// con.setDoOutput(true); +// //允许读入 +// con.setDoInput(true); +// //不使用缓存 +// con.setUseCaches(false); +// //设置请求头 +// con.setRequestProperty("X-Access-Token",token + formatDate.toString()); +// OutputStream os = con.getOutputStream(); +// Map paraMap = new HashMap(); +// paraMap.put("data", AESReportDangerInfo);/**封装数据*/ +// //组装入参,设置请求体 +// os.write(JSON.toJSONString(paraMap).getBytes()); +// //得到响应码 +// responseCode = con.getResponseCode(); +// //本段日志,测试成功后,可注释掉 +// if (responseCode == HttpURLConnection.HTTP_OK) { +// //得到响应流 +// InputStream inputStream = con.getInputStream(); +// //将响应流转换成字符串 +// dangerInfoResultBuffer = new StringBuffer(); +// String line; +// buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); +// while ((line = buffer.readLine()) != null) { +// dangerInfoResultBuffer.append(line); +// } +// logger.info("result:" + dangerInfoResultBuffer.toString()); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// //接收返回值,保存返回值 +// CJReportResultData CJOverhaulLogResult = JSONObject.parseObject(dangerInfoResultBuffer.toString(), CJReportResultData.class); +// //接收返回值,保存返回值 +// List<String> errorIdList= new ArrayList<>(); +// Data data = JSONObject.parseObject(CJOverhaulLogResult.getData(), Data.class); +// //保存失败结果 +// if (ObjectUtils.isNotEmpty(data)){ +// for (ErrorMsgDetails errorMsgDetail : data.getErrorMsgDetails()) { +// errorIdList.add(errorMsgDetail.getId()); +// } +// } +// logger.info("【】CJOverhaulLog数据上报结果:" + CJOverhaulLogResult.getCode()); +// //设置所有数据上报成功 +// +// if (CJOverhaulLogResult.getCode().equals(CJReportEnum.SUCCESS.getCode()) || CJOverhaulLogResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ +// for (PreventCJReportOverhaulLog cjOverhaulLog : CJOverhaulLogs) { +// HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); +// //封装数据 +// handlerCJReportParam.setId(cjOverhaulLog.getId()); +// handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); +// handlerCJReportParam.setReportTime(date); +// CJOverhaulLogService.updateCJReportStatusById(handlerCJReportParam); +// } +// } +// //设置上报失败的数据,上报失败 +// if (CJOverhaulLogResult.getCode().equals(CJReportEnum.FAIL.getCode()) || CJOverhaulLogResult.getCode().equals(CJReportEnum.SUCESS_AND_FAIL.getCode())){ +// for (String failId : errorIdList) { +// //上报失败 +// HandlerCJReportParam handlerCJReportParam = new HandlerCJReportParam(); +// //封装数据 +// handlerCJReportParam.setId(failId); +// handlerCJReportParam.setReportStatus(SyncEnum.SYNC_EXEC_FAIL.getCode()); +// handlerCJReportParam.setReportTime(date); +// CJOverhaulLogService.updateCJReportStatusById(handlerCJReportParam); +// } +// } +// logger.info("【7】检修停用记录-数据处理完成"); +// }else { +// logger.info("【7】检修停用记录-无数据上报昌吉州"); +// } } } -- Gitblit v1.9.2