From aa2051a2327c079105110f5424f3a44ffaa0c7bb Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 25 八月 2023 10:11:08 +0800 Subject: [PATCH] 延期整改 --- src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java | 142 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 134 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java b/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java index a465e18..0f3be9e 100644 --- a/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java +++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java @@ -10,6 +10,7 @@ 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; @@ -28,6 +29,7 @@ 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; @@ -56,6 +58,10 @@ private PreventCJReportDangerInfoService CJDangerInfoService; @Autowired private PreventCJReportPointService CJPointService; + @Autowired + private PreventCJReportOverhaulLogService CJOverhaulLogService; + @Autowired + private PreventReportConfigService preventReportConfigService; String token = "GT6gGJV7JV"; String key = "Bv+NeBolwqg2Pbc1yVwrZA=="; @@ -87,8 +93,10 @@ @Transactional -// @Scheduled(cron = "0 0 23 * * ?") //每天晚上23点执行一次 -// @Scheduled(cron = "0 0/2 * * * ? ") // 分钟 +// @Scheduled(cron = "0 0 23 * * ?") //每天晚上23点执行一次0 0 22,23 * * ? +// @Scheduled(cron = "0 0 22,23 * * ?") //每天晚上22、23点执行一次 +// @Scheduled(cron = "0 0/1 * * * ? ") // 分钟 + @Scheduled(cron = "0 0/20 * * * ? ") // 分钟 //@Scheduled(cron = "0/30 * * * * ?") public void execReportDateSchedule() throws UnsupportedEncodingException { logger.info("【####】上报数据开始..."); @@ -106,10 +114,15 @@ 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)){ @@ -277,7 +290,7 @@ os.write(JSON.toJSONString(paraMap).getBytes()); //得到响应码 responseCode = con.getResponseCode(); - //本段日志,测试成功后,可注释掉 + //确认响应流不为空 if (responseCode == HttpURLConnection.HTTP_OK) { //得到响应流 InputStream inputStream = con.getInputStream(); @@ -468,8 +481,10 @@ 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; @@ -492,7 +507,7 @@ con.setRequestProperty("X-Access-Token",token+formatDate.toString()); OutputStream os = con.getOutputStream(); Map paraMap = new HashMap(); - paraMap.put("data", AESReportTaskFromWork); /**封装数据*/ + paraMap.put("data", AESReportTaskFromWork); //组装入参,设置请求体 os.write(JSON.toJSONString(paraMap).getBytes()); //得到响应码 @@ -564,11 +579,14 @@ 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.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()); @@ -760,6 +778,114 @@ 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