From ae319da053e4ceb807209cce41eb8b355fadd3da Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 20 九月 2023 16:42:37 +0800
Subject: [PATCH] 验收时间
---
src/main/java/com/ruoyi/doublePrevention/scheduls/ExecCJReportDateSchedule.java | 143 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 135 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 d1dda69..427c11e 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,11 @@
@Transactional
-// @Scheduled(cron = "0 0/1 * * * ?")
- //@Scheduled(cron = "0/30 * * * * ?")
+// @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("【####】上报数据开始...");
@@ -105,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)){
@@ -276,7 +290,7 @@
os.write(JSON.toJSONString(paraMap).getBytes());
//得到响应码
responseCode = con.getResponseCode();
- //本段日志,测试成功后,可注释掉
+ //确认响应流不为空
if (responseCode == HttpURLConnection.HTTP_OK) {
//得到响应流
InputStream inputStream = con.getInputStream();
@@ -467,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;
@@ -491,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());
//得到响应码
@@ -563,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());
@@ -759,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