From 135a322f44708b1187d37ea4b6859b5d82113e89 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期三, 14 八月 2024 11:00:30 +0800
Subject: [PATCH] update gitignore

---
 src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java | 1815 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 910 insertions(+), 905 deletions(-)

diff --git a/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java b/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java
index 1ed2ac6..fb4ff8d 100644
--- a/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java
+++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java
@@ -1,905 +1,910 @@
-package com.ruoyi.doublePrevention.scheduls;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-
-import com.ruoyi.common.utils.BeanCopyUtils;
-import com.ruoyi.doublePrevention.entity.CJReport.*;
-import com.ruoyi.doublePrevention.entity.CJReport.CJdto.CJReportResultData;
-import com.ruoyi.doublePrevention.entity.CJReport.CJdto.Data;
-import com.ruoyi.doublePrevention.entity.CJReport.CJdto.ErrorMsgDetails;
-import com.ruoyi.doublePrevention.entity.CJReport.CJdto.HandlerDO.*;
-import com.ruoyi.doublePrevention.entity.PreventReportConfig;
-import com.ruoyi.doublePrevention.enums.CJReportEnum;
-import com.ruoyi.doublePrevention.enums.SyncEnum;
-import com.ruoyi.doublePrevention.repository.param.HandlerCJReportParam;
-import com.ruoyi.doublePrevention.service.baseService.*;
-import com.ruoyi.project.tr.report.service.ReportService;
-import org.apache.commons.lang3.ObjectUtils;
-import org.bouncycastle.crypto.engines.AESFastEngine;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.crypto.params.AEADParameters;
-import org.bouncycastle.crypto.params.KeyParameter;
-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.lang.reflect.Array;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-@Component
-public class ExecCJReportDateSchedule {
-
-    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/10 * * * ? ")    // 分钟
-//    @Scheduled(cron = "0/30 * * * * ?")
-    public void execReportDateSchedule() throws UnsupportedEncodingException {
-        logger.info("【####】上报数据开始...");
-
-        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);
-
-        logger.info("【token时间】" + formatDate);
-
-        //使用风险分析单元数据上报主配置,作为自动上报开关
-        PreventReportConfig reportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode());
-        if (reportConfig.getReportType() == 0){
-            return;
-        }
-
-        /**
-         * 1、处理安全风险分析单元数据
-         * */
-        logger.info("【1】安全风险分析单元-处理数据...");
-        List<PreventCJReportRiskAnaUnit> CJRiskAnaUnits = CJRiskAnaUnitService.listReportUnitDate();
-        if (ObjectUtils.isNotEmpty(CJRiskAnaUnits)){
-            //封装上报数据,时间格式化
-            List<CJReportRiskAnaUnitDTO> list = new ArrayList<>();
-            for (PreventCJReportRiskAnaUnit cjRiskAnaUnit : CJRiskAnaUnits) {
-                CJReportRiskAnaUnitDTO riskAnaUnit = BeanCopyUtils.copyBean(cjRiskAnaUnit, CJReportRiskAnaUnitDTO.class);
-                riskAnaUnit.setCreateDate(dateFormat.format(cjRiskAnaUnit.getCreateDate()));
-                riskAnaUnit.setUpdateDate(dateFormat.format(cjRiskAnaUnit.getUpdateDate()));
-                list.add(riskAnaUnit);
-            }
-//            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)
-            StringBuffer unitResultBuffer = null;
-            //上报数据
-            try {
-                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/unitMsg");
-                //得到连接对象
-                con = (HttpURLConnection) url.openConnection();
-                //设置请求类型
-                con.setRequestMethod("POST");
-                //允许写出
-                con.setDoOutput(true);
-                //允许读入
-                con.setDoInput(true);
-                //不使用缓存
-                con.setUseCaches(false);
-                con.setInstanceFollowRedirects(true);
-                //设置请求头
-                con.setRequestProperty("X-Access-Token",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());
-                //组装入参,设置请求体
-                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<>();
-            //接收参数,转为对象
-            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());
-                }
-            }
-            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】风险分析单元-无数据上报昌吉州");
-        }
-
-
-        /**
-         * 2、处理安全风险事件数据
-         * */
-        logger.info("【2】安全风险事件-处理数据...");
-        List<PreventCJReportRiskEvent> CJEvents = CJEventService.listReportEventDate();
-        if (ObjectUtils.isNotEmpty(CJEvents)){
-            //封装上报数据
-            List<CJReportRiskEventDTO> eventList = new ArrayList<>();
-
-            for (PreventCJReportRiskEvent cjEvent : CJEvents) {
-                CJReportRiskEventDTO CJReportRiskEvent = BeanCopyUtils.copyBean(cjEvent, CJReportRiskEventDTO.class);
-                CJReportRiskEvent.setCreateDate(dateFormat.format(cjEvent.getCreateDate()));
-                CJReportRiskEvent.setUpdateDate(dateFormat.format(cjEvent.getUpdateDate()));
-                eventList.add(CJReportRiskEvent);
-            }
-            logger.info("【【风险事件原始数据】】" + JSONObject.toJSONString(eventList));
-            //加密数据
-            String AESReportUnitDate = encrypt(JSONObject.toJSONString(eventList), key.getBytes(), iv.getBytes());
-
-            StringBuffer eventResultBuffer = null;
-            //上报数据
-            try {
-                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/eventMsg");
-                //得到连接对象
-                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());
-                con.setInstanceFollowRedirects(true);
-                OutputStream os = con.getOutputStream();
-                Map paraMap = new HashMap();
-                paraMap.put("data", AESReportUnitDate); /**封装数据*/
-                //组装入参,设置请求体
-                os.write(JSON.toJSONString(paraMap).getBytes());
-                //得到响应码
-                responseCode = con.getResponseCode();
-                //确认响应流不为空
-                if (responseCode == HttpURLConnection.HTTP_OK) {
-                    //得到响应流
-                    InputStream inputStream = con.getInputStream();
-                    //将响应流转换成字符串
-                    eventResultBuffer = new StringBuffer();
-                    String line;
-                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
-                    while ((line = buffer.readLine()) != null) {
-                        eventResultBuffer.append(line);
-                    }
-                    logger.info("result:" + eventResultBuffer.toString());
-                }
-            } catch (Exception e) {
-                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);
-                }
-            }
-            logger.info("【2】安全风险事件-数据处理完成");
-        }else {
-            logger.info("【2】风险事件-无数据上报昌吉州");
-        }
-
-
-        /**
-         * 3、处理风险管控措施数据
-         * */
-        logger.info("【3】风险管控措施-处理数据...");
-        List<PreventCJReportRiskControlMeasure> CJMeasures = CJMeasureService.listReportMeasureDate();
-        //封装上报数据
-        List<CJReportRiskControlMeasureDTO> reportMeasureList = new ArrayList<>();
-        if (ObjectUtils.isNotEmpty(CJMeasures)){
-            for (PreventCJReportRiskControlMeasure cjMeasure : CJMeasures) {
-                CJReportRiskControlMeasureDTO cjReportRiskControlMeasureDTO = BeanCopyUtils.copyBean(cjMeasure, CJReportRiskControlMeasureDTO.class);
-                cjReportRiskControlMeasureDTO.setCreateDate(dateFormat.format(cjMeasure.getCreateDate()));
-                cjReportRiskControlMeasureDTO.setUpdateDate(dateFormat.format(cjMeasure.getUpdateDate()));
-                reportMeasureList.add(cjReportRiskControlMeasureDTO);
-            }
-            //数据上报
-            String AESReportMeasure = encrypt(JSONObject.toJSONString(reportMeasureList), key.getBytes(), iv.getBytes());
-
-            logger.info("【原始数据】" + JSONObject.toJSONString(reportMeasureList));
-
-            StringBuffer measureResultBuffer = null;
-            //上报数据
-            try {
-                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/controlMeasuresMsg");
-                //得到连接对象
-                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", AESReportMeasure); /**封装数据*/
-                //组装入参,设置请求体
-                os.write(JSON.toJSONString(paraMap).getBytes());
-                //得到响应码
-                responseCode = con.getResponseCode();
-                //本段日志,测试成功后,可注释掉
-                if (responseCode == HttpURLConnection.HTTP_OK) {
-                    //得到响应流
-                    InputStream inputStream = con.getInputStream();
-                    //将响应流转换成字符串
-                    measureResultBuffer = new StringBuffer();
-                    String line;
-                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
-                    while ((line = buffer.readLine()) != null) {
-                        measureResultBuffer.append(line);
-                    }
-                    logger.info("result:" + measureResultBuffer.toString());
-                }
-            } catch (Exception e) {
-                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);
-                }
-            }
-            logger.info("【3】风险管控措施-数据处理完成");
-        }else {
-            logger.info("【3】风险管控措施-无数据上报昌吉州");
-        }
-
-
-        /**
-         * 4、处理 任务-配置 数据
-         * */
-        logger.info("【4】任务-处理数据...");
-        List<PreventCJReportCheckTaskFromWork> CJTaskFromWorks = CJTaskFromWorkService.listReportTaskFromWorkDate();
-        if(ObjectUtils.isNotEmpty(CJTaskFromWorks)){
-            //封装上报数据
-            List<CJReportCheckTaskFromWorkDTO> reportCheckTaskFromWorkList = new ArrayList<>();
-            for (PreventCJReportCheckTaskFromWork cjTaskFromWork : CJTaskFromWorks) {
-                CJReportCheckTaskFromWorkDTO cjReportCheckTaskFromWorkDTO = BeanCopyUtils.copyBean(cjTaskFromWork, CJReportCheckTaskFromWorkDTO.class);
-                cjReportCheckTaskFromWorkDTO.setCreateDate(dateFormat.format(cjTaskFromWork.getCreateDate()));
-                cjReportCheckTaskFromWorkDTO.setUpdateDate(dateFormat.format(cjTaskFromWork.getUpdateDate()));
-                cjReportCheckTaskFromWorkDTO.setTaskStartTime(dateFormat.format(cjTaskFromWork.getCreateDate()));
-                reportCheckTaskFromWorkList.add(cjReportCheckTaskFromWorkDTO);
-            }
-            System.out.println(Arrays.toString(reportCheckTaskFromWorkList.toArray()));
-            //数据上报
-            String AESReportTaskFromWork = encrypt(JSONObject.toJSONString(reportCheckTaskFromWorkList), key.getBytes(), iv.getBytes());
-            StringBuffer taskFromWorkResultBuffer = null;
-            //上报数据
-            try {
-                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/measuresTaskMsg");
-                //得到连接对象
-                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", AESReportTaskFromWork);
-                //组装入参,设置请求体
-                os.write(JSON.toJSONString(paraMap).getBytes());
-                //得到响应码
-                responseCode = con.getResponseCode();
-                //本段日志,测试成功后,可注释掉
-                if (responseCode == HttpURLConnection.HTTP_OK) {
-                    //得到响应流
-                    InputStream inputStream = con.getInputStream();
-                    //将响应流转换成字符串
-                    taskFromWorkResultBuffer = new StringBuffer();
-                    String line;
-                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
-                    while ((line = buffer.readLine()) != null) {
-                        taskFromWorkResultBuffer.append(line);
-                    }
-                    logger.info("result:" + taskFromWorkResultBuffer.toString());
-                }
-            } catch (Exception e) {
-                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);
-                }
-            }
-            //设置上报失败的数据,上报失败
-            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】任务-无数据上报昌吉州");
-        }
-
-        /**
-         * 5、处理 任务-记录 数据
-         * */
-        logger.info("【5】任务记录-处理数据...");
-        List<PreventCJReportCheckRecordFromTask> CJRecordFromTasks = CJTaskRecordService.listReportTaskRecordDate();
-        if (ObjectUtils.isNotEmpty(CJRecordFromTasks)){
-            //封装上报数据
-            List<CJReportCheckRecordFromTaskDTO> reportRecordFromTaskList = new ArrayList<>();
-            for (PreventCJReportCheckRecordFromTask cjRecordFromTask : CJRecordFromTasks) {
-                CJReportCheckRecordFromTaskDTO cjReportCheckRecordFromTaskDTO = BeanCopyUtils.copyBean(cjRecordFromTask, CJReportCheckRecordFromTaskDTO.class);
-//                cjReportCheckRecordFromTaskDTO.setCreateDate(dateFormat.format(cjRecordFromTask.getCreateDate()));
-//                cjReportCheckRecordFromTaskDTO.setUpdateDate(dateFormat.format(cjRecordFromTask.getUpdateDate()));
-                cjReportCheckRecordFromTaskDTO.setCheckTime(dateFormat.format(cjRecordFromTask.getCheckTime()));
-                cjReportCheckRecordFromTaskDTO.setMobileMe(cjRecordFromTask.getMobileCode());
-                cjReportCheckRecordFromTaskDTO.setIsDefend(cjRecordFromTask.getDefend());
-                reportRecordFromTaskList.add(cjReportCheckRecordFromTaskDTO);
-            }
-//            System.out.println(Arrays.toString(reportRecordFromTaskList.toArray()));
-            //数据加密
-            String AESReportRecordFromTask = encrypt(JSONObject.toJSONString(reportRecordFromTaskList), key.getBytes(), iv.getBytes());
-            logger.info("【test】数据加密完成,开始上报数据");
-            StringBuffer recordFromTaskResultBuffer = null;
-            //上报数据
-            try {
-                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/measuresTaskRecordMsg");
-                //得到连接对象
-                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", AESReportRecordFromTask);/**封装数据*/
-                //组装入参,设置请求体
-                os.write(JSON.toJSONString(paraMap).getBytes());
-                //得到响应码
-                responseCode = con.getResponseCode();
-                //本段日志,测试成功后,可注释掉
-                if (responseCode == HttpURLConnection.HTTP_OK) {
-                    //得到响应流
-                    InputStream inputStream = con.getInputStream();
-                    //将响应流转换成字符串
-                    recordFromTaskResultBuffer = new StringBuffer();
-                    String line;
-                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
-                    while ((line = buffer.readLine()) != null) {
-                        recordFromTaskResultBuffer.append(line);
-                    }
-                    logger.info("result:" + recordFromTaskResultBuffer.toString());
-                }else {
-                    logger.info("Http结果:" + responseCode);
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-
-            logger.info("【test】接收返回值");
-            CJReportResultData CJRecordFromTaskResult = new CJReportResultData();
-            try {
-                CJRecordFromTaskResult =  JSONObject.parseObject(recordFromTaskResultBuffer.toString(), CJReportResultData.class);
-                if (ObjectUtils.isEmpty(CJRecordFromTaskResult)){
-                    throw new RuntimeException("返回值为空");
-                }
-            }catch (Exception e){
-                e.printStackTrace();
-                logger.info("【test】接收返回值异常");
-            }
-
-            //接收返回值,保存返回值
-//            CJReportResultData CJRecordFromTaskResult = JSONObject.parseObject(recordFromTaskResultBuffer.toString(), CJReportResultData.class);
-            //接收返回值,保存返回值
-            logger.info("【test】保存上报结果");
-            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);
-                }
-            }
-            logger.info("【5】任务记录-数据处理完成");
-        }else {
-            logger.info("【5】任务记录-无数据上报昌吉州");
-        }
-
-        /**
-         * 6、处理隐患信息数据
-         * */
-        logger.info("【6】隐患信息-处理数据...");
-        List<PreventCJReportDangerInfo> CJDangerInfos = CJDangerInfoService.listReportDangerDate();
-       if (ObjectUtils.isNotEmpty(CJDangerInfos)){
-           //封装上报数据
-           List<CJReportDangerInfoDTO> reportDangerInfoLists = new ArrayList<>();
-           for (PreventCJReportDangerInfo cjDangerInfo : CJDangerInfos) {
-               CJReportDangerInfoDTO cjReportDangerInfoDTO = BeanCopyUtils.copyBean(cjDangerInfo, CJReportDangerInfoDTO.class);
-               cjReportDangerInfoDTO.setCreateDate(dateFormat.format(cjDangerInfo.getCreateDate()));
-               cjReportDangerInfoDTO.setUpdateDate(dateFormat.format(cjDangerInfo.getUpdateDate()));
-               if (ObjectUtils.isNotEmpty(cjDangerInfo.getCheckAcceptTime())){
-                   cjReportDangerInfoDTO.setCheckAcceptTime(dateFormat.format(cjDangerInfo.getCheckAcceptTime()));
-               }else {
-                   cjReportDangerInfoDTO.setCheckAcceptTime(null);
-               }
-               cjReportDangerInfoDTO.setRegistTime(dateFormat.format(cjDangerInfo.getRegistTime()));
-               cjReportDangerInfoDTO.setDangerManageDeadline(dateFormat.format(cjDangerInfo.getDangerManageDeadline()));
-               reportDangerInfoLists.add(cjReportDangerInfoDTO);
-           }
-           //数据上报
-           logger.info("【原始数据】" + JSONObject.toJSONString(reportDangerInfoLists));
-           String AESReportDangerInfo = encrypt(JSONObject.toJSONString(reportDangerInfoLists), key.getBytes(), iv.getBytes());
-           StringBuffer dangerInfoResultBuffer = null;
-           //上报数据
-           try {
-               URL url = new URL("http://120.71.182.198:9999/v1/data/receive/dangerInvestigationMsg");
-               //得到连接对象
-               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 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);
-               }
-           }
-           logger.info("【6】隐患信息-数据处理完成");
-       }else {
-           logger.info("【6】隐患信息-无数据上报昌吉州");
-       }
-
-
-        /**
-         * 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】检修停用记录-无数据上报昌吉州");
-        }
-
-    }
-}
+package com.ruoyi.doublePrevention.scheduls;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.utils.BeanCopyUtils;
+import com.ruoyi.doublePrevention.entity.CJReport.CJdto.CJReportResultData;
+import com.ruoyi.doublePrevention.entity.CJReport.CJdto.Data;
+import com.ruoyi.doublePrevention.entity.CJReport.CJdto.ErrorMsgDetails;
+import com.ruoyi.doublePrevention.entity.CJReport.CJdto.HandlerDO.*;
+import com.ruoyi.doublePrevention.entity.CJReport.*;
+import com.ruoyi.doublePrevention.entity.PreventReportConfig;
+import com.ruoyi.doublePrevention.enums.CJReportEnum;
+import com.ruoyi.doublePrevention.enums.SyncEnum;
+import com.ruoyi.doublePrevention.repository.param.HandlerCJReportParam;
+import com.ruoyi.doublePrevention.service.baseService.*;
+import com.ruoyi.project.tr.report.service.ReportService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.bouncycastle.crypto.engines.AESFastEngine;
+import org.bouncycastle.crypto.modes.GCMBlockCipher;
+import org.bouncycastle.crypto.params.AEADParameters;
+import org.bouncycastle.crypto.params.KeyParameter;
+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.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Component
+public class ExecCJReportDateSchedule {
+
+    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/5 * * * ? ")    // 分钟
+   // @Scheduled(cron = "0 0/5 * * * ? ")
+    @Scheduled(cron = "0 0/1 * * * ? ")
+    public void execReportDateSchedule() throws UnsupportedEncodingException {
+        logger.info("【####】上报数据开始...");
+
+        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);
+
+        logger.info("【token时间】" + formatDate);
+
+        //使用风险分析单元数据上报主配置,作为自动上报开关
+        PreventReportConfig reportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode());
+        if (reportConfig.getReportType() == 0){
+            return;
+        }
+
+        /**
+         * 1、处理安全风险分析单元数据
+         * */
+        logger.info("【1】安全风险分析单元-处理数据...");
+        List<PreventCJReportRiskAnaUnit> CJRiskAnaUnits = CJRiskAnaUnitService.listReportUnitDate();
+        if (ObjectUtils.isNotEmpty(CJRiskAnaUnits)){
+            //封装上报数据,时间格式化
+            List<CJReportRiskAnaUnitDTO> list = new ArrayList<>();
+            for (PreventCJReportRiskAnaUnit cjRiskAnaUnit : CJRiskAnaUnits) {
+                CJReportRiskAnaUnitDTO riskAnaUnit = BeanCopyUtils.copyBean(cjRiskAnaUnit, CJReportRiskAnaUnitDTO.class);
+                riskAnaUnit.setCreateDate(dateFormat.format(cjRiskAnaUnit.getCreateDate()));
+                riskAnaUnit.setUpdateDate(dateFormat.format(cjRiskAnaUnit.getUpdateDate()));
+                list.add(riskAnaUnit);
+            }
+//            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)
+            StringBuffer unitResultBuffer = null;
+            //上报数据
+            try {
+                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/unitMsg");
+                //得到连接对象
+                con = (HttpURLConnection) url.openConnection();
+                //设置请求类型
+                con.setRequestMethod("POST");
+                //允许写出
+                con.setDoOutput(true);
+                //允许读入
+                con.setDoInput(true);
+                //不使用缓存
+                con.setUseCaches(false);
+                con.setInstanceFollowRedirects(true);
+                //设置请求头
+                con.setRequestProperty("X-Access-Token",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());
+                //组装入参,设置请求体
+                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<>();
+            //接收参数,转为对象
+            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());
+                }
+            }
+            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】风险分析单元-无数据上报昌吉州");
+        }
+
+
+        /**
+         * 2、处理安全风险事件数据
+         * */
+        logger.info("【2】安全风险事件-处理数据...");
+        List<PreventCJReportRiskEvent> CJEvents = CJEventService.listReportEventDate();
+        if (ObjectUtils.isNotEmpty(CJEvents)){
+            //封装上报数据
+            List<CJReportRiskEventDTO> eventList = new ArrayList<>();
+
+            for (PreventCJReportRiskEvent cjEvent : CJEvents) {
+                CJReportRiskEventDTO CJReportRiskEvent = BeanCopyUtils.copyBean(cjEvent, CJReportRiskEventDTO.class);
+                CJReportRiskEvent.setCreateDate(dateFormat.format(cjEvent.getCreateDate()));
+                CJReportRiskEvent.setUpdateDate(dateFormat.format(cjEvent.getUpdateDate()));
+                eventList.add(CJReportRiskEvent);
+            }
+            logger.info("【【风险事件原始数据】】" + JSONObject.toJSONString(eventList));
+            //加密数据
+            String AESReportUnitDate = encrypt(JSONObject.toJSONString(eventList), key.getBytes(), iv.getBytes());
+
+            StringBuffer eventResultBuffer = null;
+            //上报数据
+            try {
+                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/eventMsg");
+                //得到连接对象
+                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());
+                con.setInstanceFollowRedirects(true);
+                OutputStream os = con.getOutputStream();
+                Map paraMap = new HashMap();
+                paraMap.put("data", AESReportUnitDate); /**封装数据*/
+                //组装入参,设置请求体
+                os.write(JSON.toJSONString(paraMap).getBytes());
+                //得到响应码
+                responseCode = con.getResponseCode();
+                //确认响应流不为空
+                if (responseCode == HttpURLConnection.HTTP_OK) {
+                    //得到响应流
+                    InputStream inputStream = con.getInputStream();
+                    //将响应流转换成字符串
+                    eventResultBuffer = new StringBuffer();
+                    String line;
+                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+                    while ((line = buffer.readLine()) != null) {
+                        eventResultBuffer.append(line);
+                    }
+                    logger.info("result:" + eventResultBuffer.toString());
+                }
+            } catch (Exception e) {
+                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);
+                }
+            }
+            logger.info("【2】安全风险事件-数据处理完成");
+        }else {
+            logger.info("【2】风险事件-无数据上报昌吉州");
+        }
+
+
+        /**
+         * 3、处理风险管控措施数据
+         * */
+        logger.info("【3】风险管控措施-处理数据...");
+        List<PreventCJReportRiskControlMeasure> CJMeasures = CJMeasureService.listReportMeasureDate();
+        //封装上报数据
+        List<CJReportRiskControlMeasureDTO> reportMeasureList = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(CJMeasures)){
+            for (PreventCJReportRiskControlMeasure cjMeasure : CJMeasures) {
+                CJReportRiskControlMeasureDTO cjReportRiskControlMeasureDTO = BeanCopyUtils.copyBean(cjMeasure, CJReportRiskControlMeasureDTO.class);
+                cjReportRiskControlMeasureDTO.setCreateDate(dateFormat.format(cjMeasure.getCreateDate()));
+                cjReportRiskControlMeasureDTO.setUpdateDate(dateFormat.format(cjMeasure.getUpdateDate()));
+                reportMeasureList.add(cjReportRiskControlMeasureDTO);
+            }
+            //数据上报
+            String AESReportMeasure = encrypt(JSONObject.toJSONString(reportMeasureList), key.getBytes(), iv.getBytes());
+
+            logger.info("【原始数据】" + JSONObject.toJSONString(reportMeasureList));
+
+            StringBuffer measureResultBuffer = null;
+            //上报数据
+            try {
+                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/controlMeasuresMsg");
+                //得到连接对象
+                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", AESReportMeasure); /**封装数据*/
+                //组装入参,设置请求体
+                os.write(JSON.toJSONString(paraMap).getBytes());
+                //得到响应码
+                responseCode = con.getResponseCode();
+                //本段日志,测试成功后,可注释掉
+                if (responseCode == HttpURLConnection.HTTP_OK) {
+                    //得到响应流
+                    InputStream inputStream = con.getInputStream();
+                    //将响应流转换成字符串
+                    measureResultBuffer = new StringBuffer();
+                    String line;
+                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+                    while ((line = buffer.readLine()) != null) {
+                        measureResultBuffer.append(line);
+                    }
+                    logger.info("result:" + measureResultBuffer.toString());
+                }
+            } catch (Exception e) {
+                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);
+                }
+            }
+            logger.info("【3】风险管控措施-数据处理完成");
+        }else {
+            logger.info("【3】风险管控措施-无数据上报昌吉州");
+        }
+
+
+        /**
+         * 4、处理 任务-配置 数据
+         * */
+        logger.info("【4】任务-处理数据...");
+        List<PreventCJReportCheckTaskFromWork> CJTaskFromWorks = CJTaskFromWorkService.listReportTaskFromWorkDate();
+        if(ObjectUtils.isNotEmpty(CJTaskFromWorks)){
+            //封装上报数据
+            List<CJReportCheckTaskFromWorkDTO> reportCheckTaskFromWorkList = new ArrayList<>();
+            for (PreventCJReportCheckTaskFromWork cjTaskFromWork : CJTaskFromWorks) {
+                CJReportCheckTaskFromWorkDTO cjReportCheckTaskFromWorkDTO = BeanCopyUtils.copyBean(cjTaskFromWork, CJReportCheckTaskFromWorkDTO.class);
+                cjReportCheckTaskFromWorkDTO.setCreateDate(dateFormat.format(cjTaskFromWork.getCreateDate()));
+                cjReportCheckTaskFromWorkDTO.setUpdateDate(dateFormat.format(cjTaskFromWork.getUpdateDate()));
+                cjReportCheckTaskFromWorkDTO.setTaskStartTime(dateFormat.format(cjTaskFromWork.getCreateDate()));
+                reportCheckTaskFromWorkList.add(cjReportCheckTaskFromWorkDTO);
+            }
+            System.out.println(Arrays.toString(reportCheckTaskFromWorkList.toArray()));
+            //数据上报
+            String AESReportTaskFromWork = encrypt(JSONObject.toJSONString(reportCheckTaskFromWorkList), key.getBytes(), iv.getBytes());
+            StringBuffer taskFromWorkResultBuffer = null;
+            //上报数据
+            try {
+                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/measuresTaskMsg");
+                //得到连接对象
+                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", AESReportTaskFromWork);
+                //组装入参,设置请求体
+                os.write(JSON.toJSONString(paraMap).getBytes());
+                //得到响应码
+                responseCode = con.getResponseCode();
+                //本段日志,测试成功后,可注释掉
+                if (responseCode == HttpURLConnection.HTTP_OK) {
+                    //得到响应流
+                    InputStream inputStream = con.getInputStream();
+                    //将响应流转换成字符串
+                    taskFromWorkResultBuffer = new StringBuffer();
+                    String line;
+                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+                    while ((line = buffer.readLine()) != null) {
+                        taskFromWorkResultBuffer.append(line);
+                    }
+                    logger.info("result:" + taskFromWorkResultBuffer.toString());
+                }
+            } catch (Exception e) {
+                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);
+                }
+            }
+            //设置上报失败的数据,上报失败
+            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】任务-无数据上报昌吉州");
+        }
+
+        /**
+         * 5、处理 任务-记录 数据
+         * */
+        logger.info("【5】任务记录-处理数据...");
+        List<PreventCJReportCheckRecordFromTask> CJRecordFromTasks = CJTaskRecordService.listReportTaskRecordDate();
+        if (ObjectUtils.isNotEmpty(CJRecordFromTasks)){
+            //封装上报数据
+            List<CJReportCheckRecordFromTaskDTO> reportRecordFromTaskList = new ArrayList<>();
+            for (PreventCJReportCheckRecordFromTask cjRecordFromTask : CJRecordFromTasks) {
+                CJReportCheckRecordFromTaskDTO cjReportCheckRecordFromTaskDTO = BeanCopyUtils.copyBean(cjRecordFromTask, CJReportCheckRecordFromTaskDTO.class);
+//                cjReportCheckRecordFromTaskDTO.setCreateDate(dateFormat.format(cjRecordFromTask.getCreateDate()));
+//                cjReportCheckRecordFromTaskDTO.setUpdateDate(dateFormat.format(cjRecordFromTask.getUpdateDate()));
+                cjReportCheckRecordFromTaskDTO.setCheckTime(dateFormat.format(cjRecordFromTask.getCheckTime()));
+                cjReportCheckRecordFromTaskDTO.setMobileMe(cjRecordFromTask.getMobileCode());
+                cjReportCheckRecordFromTaskDTO.setIsDefend(cjRecordFromTask.getDefend());
+                reportRecordFromTaskList.add(cjReportCheckRecordFromTaskDTO);
+            }
+//            System.out.println(Arrays.toString(reportRecordFromTaskList.toArray()));
+            //数据加密
+            String AESReportRecordFromTask = encrypt(JSONObject.toJSONString(reportRecordFromTaskList), key.getBytes(), iv.getBytes());
+            logger.info("【test】数据加密完成,开始上报数据");
+
+            StringBuffer recordFromTaskResultBuffer = null;
+            //上报数据
+            try {
+               // URL url = new URL("http://120.71.182.198:9999/v1/data/receive/measuresTaskRecordMsg");
+                URL url = new URL("https://cjzjg.gtaq.com.cn:7004/v1/data/receive/measuresTaskRecordMsg");  //备用地址
+                //得到连接对象
+                con = (HttpURLConnection) url.openConnection();
+                //设置请求类型
+                con.setRequestMethod("POST");
+                //设置Content-Type,此处根据实际情况确定
+                con.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+            //    con.setRequestProperty(HTTP.CONN_DIRECTIVE,HTTP.CONN_CLOSE);
+                con.setConnectTimeout(600000);
+                con.setReadTimeout(600000);
+
+                //允许写出
+                con.setDoOutput(true);
+                //允许读入
+                con.setDoInput(true);
+                //不使用缓存
+                con.setUseCaches(false);
+                //设置请求头
+                con.setRequestProperty("X-Access-Token",token+tokenDate.format(new Date()).toString());
+                OutputStream os = con.getOutputStream();
+                Map paraMap = new HashMap();
+                paraMap.put("data", AESReportRecordFromTask);/**封装数据*/
+                //组装入参,设置请求体
+                os.write(JSON.toJSONString(paraMap).getBytes());
+                //得到响应码
+                responseCode = con.getResponseCode();
+                //本段日志,测试成功后,可注释掉
+                if (responseCode == HttpURLConnection.HTTP_OK) {
+                    //得到响应流
+                    InputStream inputStream = con.getInputStream();
+                    //将响应流转换成字符串
+                    recordFromTaskResultBuffer = new StringBuffer();
+                    String line;
+                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+                    while ((line = buffer.readLine()) != null) {
+                        recordFromTaskResultBuffer.append(line);
+                    }
+                    logger.info("result:" + recordFromTaskResultBuffer.toString());
+                }else {
+                    logger.info("Http结果:" + responseCode);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+            logger.info("【test】接收返回值");
+            CJReportResultData CJRecordFromTaskResult = new CJReportResultData();
+            try {
+                CJRecordFromTaskResult =  JSONObject.parseObject(recordFromTaskResultBuffer.toString(), CJReportResultData.class);
+                if (ObjectUtils.isEmpty(CJRecordFromTaskResult)){
+                    throw new RuntimeException("返回值为空");
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+                logger.info("【test】接收返回值异常");
+            }
+
+            //接收返回值,保存返回值
+//            CJReportResultData CJRecordFromTaskResult = JSONObject.parseObject(recordFromTaskResultBuffer.toString(), CJReportResultData.class);
+            //接收返回值,保存返回值
+            logger.info("【test】保存上报结果");
+            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);
+                }
+            }
+            logger.info("【5】任务记录-数据处理完成");
+        }else {
+            logger.info("【5】任务记录-无数据上报昌吉州");
+        }
+
+        /**
+         * 6、处理隐患信息数据
+         * */
+        logger.info("【6】隐患信息-处理数据...");
+        List<PreventCJReportDangerInfo> CJDangerInfos = CJDangerInfoService.listReportDangerDate();
+       if (ObjectUtils.isNotEmpty(CJDangerInfos)){
+           //封装上报数据
+           List<CJReportDangerInfoDTO> reportDangerInfoLists = new ArrayList<>();
+           for (PreventCJReportDangerInfo cjDangerInfo : CJDangerInfos) {
+               CJReportDangerInfoDTO cjReportDangerInfoDTO = BeanCopyUtils.copyBean(cjDangerInfo, CJReportDangerInfoDTO.class);
+               cjReportDangerInfoDTO.setCreateDate(dateFormat.format(cjDangerInfo.getCreateDate()));
+               cjReportDangerInfoDTO.setUpdateDate(dateFormat.format(cjDangerInfo.getUpdateDate()));
+               if (ObjectUtils.isNotEmpty(cjDangerInfo.getCheckAcceptTime())){
+                   cjReportDangerInfoDTO.setCheckAcceptTime(dateFormat.format(cjDangerInfo.getCheckAcceptTime()));
+               }else {
+                   cjReportDangerInfoDTO.setCheckAcceptTime(null);
+               }
+               cjReportDangerInfoDTO.setRegistTime(dateFormat.format(cjDangerInfo.getRegistTime()));
+               cjReportDangerInfoDTO.setDangerManageDeadline(dateFormat.format(cjDangerInfo.getDangerManageDeadline()));
+               reportDangerInfoLists.add(cjReportDangerInfoDTO);
+           }
+           //数据上报
+           logger.info("【原始数据】" + JSONObject.toJSONString(reportDangerInfoLists));
+           String AESReportDangerInfo = encrypt(JSONObject.toJSONString(reportDangerInfoLists), key.getBytes(), iv.getBytes());
+           StringBuffer dangerInfoResultBuffer = null;
+           //上报数据
+           try {
+               URL url = new URL("http://120.71.182.198:9999/v1/data/receive/dangerInvestigationMsg");
+               //得到连接对象
+               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 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);
+               }
+           }
+           logger.info("【6】隐患信息-数据处理完成");
+       }else {
+           logger.info("【6】隐患信息-无数据上报昌吉州");
+       }
+
+
+        /**
+         * 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】检修停用记录-无数据上报昌吉州");
+        }
+
+    }
+}

--
Gitblit v1.9.2