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);![](C:/Users/Ad![](C:/Users/Admin/Desktop/所有桌面文件存放/9}AM56M10$6WX){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