package com.ruoyi.doublePrevention.scheduls; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ImageToBase64; import com.ruoyi.doublePrevention.entity.CJReport.*; import com.ruoyi.doublePrevention.entity.CJReport.CJdto.HandlerDO.CJReportDangerInfoDTO; import com.ruoyi.doublePrevention.entity.ZDReport.*; import com.ruoyi.doublePrevention.enums.SyncEnum; import com.ruoyi.doublePrevention.service.baseService.*; import lombok.extern.slf4j.Slf4j; 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.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.*; import static com.ruoyi.common.utils.Threads.sleep; @Slf4j @Component /** * 华东 */ public class ZhunDongSchedule { private static final String TOKEN = "030B6744-EECB-4732-B679-280373E7E575"; private static final String URL = "http://218.31.50.112:8087"; private static final String TOKEN_PRE = "token"; @Autowired private PreventCJReportRiskAnaUnitService CJRiskAnaUnitService; @Autowired private PreventCJReportRiskEventService CJEventService; @Autowired private PreventCJReportRiskControlMeasureService CJMeasureService; @Autowired private PreventCJReportCheckTaskFromWorkService CJTaskFromWorkService; @Autowired private PreventCJReportCheckRecordFromTaskService CJTaskRecordService; @Autowired private PreventCJReportDangerInfoService CJDangerInfoService; @Scheduled(cron = "0 0/6 * * * ? ") public void updateHuaidongReportStatus() { log.info("开始推送准东数据..." + DateUtils.dateTimeNow()); //风险单元 riskAnaUnitsWork(); sleep(5000); //风险事件 HDEventsWork(); sleep(5000); //风险管控措施 riskControlMeasure(); //排查任务表 sleep(5000); HDTaskFromWorks(); //排查记录表 // sleep(5000); ZDRecordFromTasks(); sleep(5000); //治理信息表 ZDDangerInfos(); } /** * 安全风险分析单元 */ @Transactional public void riskAnaUnitsWork() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; log.info("【A】安全风险分析单元-处理数据..."); List CJRiskAnaUnits = CJRiskAnaUnitService.listReportUnitDateHuaiDong(); if (ObjectUtils.isNotEmpty(CJRiskAnaUnits)) { List list = new ArrayList<>(); //转化数据 for (PreventCJReportRiskAnaUnit cjRiskAnaUnit : CJRiskAnaUnits) { PreventZDReportRiskAnaUnit riskAnaUnit = new PreventZDReportRiskAnaUnit(); riskAnaUnit.setRISKUNIT_ID(cjRiskAnaUnit.getId()); riskAnaUnit.setRISK_UNIT_NAME(cjRiskAnaUnit.getRiskUnitName()); //todo 等级未知 riskAnaUnit.setRISK_CLASS("1"); riskAnaUnit.setHAZARD_DEP(cjRiskAnaUnit.getHazardDep()); riskAnaUnit.setHAZARD_CODE(cjRiskAnaUnit.getHazardCode()); riskAnaUnit.setHAZARD_LIABLE_PERSON(cjRiskAnaUnit.getHazardLiablePerson()); riskAnaUnit.setCREATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjRiskAnaUnit.getCreateDate())); riskAnaUnit.setUPDATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())); riskAnaUnit.setCREATE_BY(cjRiskAnaUnit.getCreateBy()); riskAnaUnit.setUPDATE_BY(cjRiskAnaUnit.getUpdateBy()); riskAnaUnit.setDELETE_MARK(cjRiskAnaUnit.getDeleted()); list.add(riskAnaUnit); } log.info("【A】安全风险分析单元开始推送数据...原始数据:" + JSON.toJSONString(list)); StringBuffer unitResultBuffer = null; //上报数据 try { URL url = new URL(URL + "/api/wwyt/t_aqfxfxdy_List"); con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", TOKEN); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(list).getBytes(StandardCharsets.UTF_8)); } responseCode = con.getResponseCode(); //本段日志,测试成功后,可注释掉 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); } log.info("【A】安全风险分析单元result:" + unitResultBuffer); JSONObject jsonObject = JSONObject.parseObject(unitResultBuffer.toString()); if (jsonObject.getInteger("status") == 200) { String message = jsonObject.getString("message"); if (message.contains("失效0条")) { //遍历数据,设置数据上报成功 for (PreventCJReportRiskAnaUnit CJRiskAnaUnit : CJRiskAnaUnits) { HandlerZDReportParam handlerZDReportParam = new HandlerZDReportParam(); //封装数据 handlerZDReportParam.setId(CJRiskAnaUnit.getId()); handlerZDReportParam.setZhunReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); handlerZDReportParam.setZhunReportTime(new Date()); CJRiskAnaUnitService.updateHDReportStatusById(handlerZDReportParam); } } } else { log.info("【A】安全风险分析单元推送数据失败..." + unitResultBuffer); } } log.info("【A】安全风险分析单元推送数据结束..."); } catch (Exception e) { e.printStackTrace(); } }else { log.info("【A】安全风险分析单元无可推数据"); } } @Transactional public void HDEventsWork() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; /** * 2、处理安全风险事件数据 * */ log.info("【B】安全风险事件-处理数据..."); List HDEvents = CJEventService.listReportEventDateHuaiDong(); if (ObjectUtils.isNotEmpty(HDEvents)) { List eventList = new ArrayList<>(); for (PreventCJReportRiskEvent hdEvent : HDEvents) { ZDReportRiskEventDTO ZDReportRiskEventDTO = new ZDReportRiskEventDTO(); ZDReportRiskEventDTO.setRISKEVENT_ID(hdEvent.getId()); ZDReportRiskEventDTO.setRISK_UNIT_ID(hdEvent.getRiskUnitId()); ZDReportRiskEventDTO.setRISK_EVENT_NAME(hdEvent.getRiskEventName()); ZDReportRiskEventDTO.setCREATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, hdEvent.getCreateDate())); ZDReportRiskEventDTO.setUPDATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())); ZDReportRiskEventDTO.setCREATE_BY(hdEvent.getCreateBy()); ZDReportRiskEventDTO.setUPDATE_BY(hdEvent.getUpdateBy()); ZDReportRiskEventDTO.setDELETE_MARK(hdEvent.getDeleted()); eventList.add(ZDReportRiskEventDTO); } log.info("【【风险事件原始数据】】" + JSONObject.toJSONString(eventList)); //加密数据 StringBuffer eventResultBuffer = null; //上报数据 try { URL url = new URL(URL + "/api/wwyt/t_aqfxsj_List"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", TOKEN); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(eventList).getBytes(StandardCharsets.UTF_8)); } //得到响应码 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); } log.info("【B】安全风险事件result:" + eventResultBuffer.toString()); JSONObject jsonObject = JSONObject.parseObject(eventResultBuffer.toString()); if (jsonObject.getInteger("status") == 200) { String message = jsonObject.getString("message"); if (message.contains("失效0条")) { for (PreventCJReportRiskEvent CJEvent : HDEvents) { HandlerZDReportParam handlerZDReportParam = new HandlerZDReportParam(); //封装数据 handlerZDReportParam.setId(CJEvent.getId()); handlerZDReportParam.setZhunReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); handlerZDReportParam.setZhunReportTime(new Date()); CJEventService.updateEventReportStatusHuaiDong(handlerZDReportParam); } } } else { log.info("【B】安全风险事件推送数据失败..." + eventResultBuffer); } } } catch (Exception e) { e.printStackTrace(); } log.info("【B】处理安全风险事件数据结束..."); }else { log.info("【B】处理安全风险无可推数据"); } } @Transactional public void riskControlMeasure() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; /** * 3、处理风险管控措施数据 * */ log.info("【C】风险管控措施-处理数据..."); List CJMeasures = CJMeasureService.listReportMeasureDateHuaiDong(); //封装上报数据 List reportMeasureList = new ArrayList<>(); if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(CJMeasures)) { for (PreventCJReportRiskControlMeasure cjMeasure : CJMeasures) { ZDReportRiskControlMeasureDTO ZDReportRiskControlMeasureDTO = new ZDReportRiskControlMeasureDTO(); ZDReportRiskControlMeasureDTO.setRISKMEASURE_ID(cjMeasure.getId()); ZDReportRiskControlMeasureDTO.setRISK_EVENT_ID(cjMeasure.getRiskEventId()); ZDReportRiskControlMeasureDTO.setDATA_SRC(cjMeasure.getDataSrc()); ZDReportRiskControlMeasureDTO.setRISK_MEASURE_DESC(cjMeasure.getRiskMeasureDesc()); ZDReportRiskControlMeasureDTO.setCLASSIFY1(cjMeasure.getClassify1()); ZDReportRiskControlMeasureDTO.setCLASSIFY2(cjMeasure.getClassify2()); //非必传 //ZDReportRiskControlMeasureDTO.setCLASSIFY3(cjMeasure.getClassify3()); ZDReportRiskControlMeasureDTO.setTROUBLESHOOT_CONTENT(cjMeasure.getTroubleshootContent()); ZDReportRiskControlMeasureDTO.setCREATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjMeasure.getCreateDate())); ZDReportRiskControlMeasureDTO.setUPDATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())); ZDReportRiskControlMeasureDTO.setCREATE_BY(cjMeasure.getCreateBy()); ZDReportRiskControlMeasureDTO.setUPDATE_BY(cjMeasure.getUpdateBy()); ZDReportRiskControlMeasureDTO.setDELETE_MARK(cjMeasure.getDeleted()); reportMeasureList.add(ZDReportRiskControlMeasureDTO); } log.info("【C】风险管控措施-处理数据【原始数据】" + JSONObject.toJSONString(reportMeasureList)); //数据上报 StringBuffer measureResultBuffer = null; //上报数据 try { URL url = new URL(URL + "/api/wwyt/t_aqfxgkcs_List"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", TOKEN); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(reportMeasureList).getBytes(StandardCharsets.UTF_8)); } //得到响应码 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); } log.info("【C】安全风险管控措施推result:" + measureResultBuffer.toString()); JSONObject jsonObject = JSONObject.parseObject(measureResultBuffer.toString()); if (jsonObject.getInteger("status") == 200) { String message = jsonObject.getString("message"); if (message.contains("失效0条")) { for (PreventCJReportRiskControlMeasure CJMeasure : CJMeasures) { HandlerZDReportParam handlerZDReportParam = new HandlerZDReportParam(); //封装数据 handlerZDReportParam.setId(CJMeasure.getId()); handlerZDReportParam.setZhunReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); handlerZDReportParam.setZhunReportTime(new Date()); CJMeasureService.updateHDReportStatusById(handlerZDReportParam); } } } else { log.info("【C】安全风险管控措施推送数据失败..." + measureResultBuffer); } log.info("【C】安全风险管控措施数据结束..."); } } catch (Exception e) { e.printStackTrace(); } }else { log.info("【C】安全风险管控措施无可推数据"); } } @Transactional public void HDTaskFromWorks() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; /** * 4、处理 任务-配置 数据 * */ log.info("【D】隐患排查任务-处理数据..."); List CJTaskFromWorks = CJTaskFromWorkService.listReportTaskFromWorkDateHuaiDong(); if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(CJTaskFromWorks)) { //封装上报数据 List reportCheckTaskFromWorkList = new ArrayList<>(); for (PreventCJReportCheckTaskFromWork cjTaskFromWork : CJTaskFromWorks) { ZDReportCheckTaskFromWorkDTO ZDReportCheckTaskFromWorkDTO = new ZDReportCheckTaskFromWorkDTO(); ZDReportCheckTaskFromWorkDTO.setCHECKTASK_ID(cjTaskFromWork.getId()); ZDReportCheckTaskFromWorkDTO.setRISK_MEASURE_ID(cjTaskFromWork.getRiskMeasureId()); ZDReportCheckTaskFromWorkDTO.setTROUBLESHOOT_CONTENT(cjTaskFromWork.getTroubleshootContent()); ZDReportCheckTaskFromWorkDTO.setWORK_START_TIME(cjTaskFromWork.getWorkStartTime()); ZDReportCheckTaskFromWorkDTO.setWORK_END_TIME(cjTaskFromWork.getWorkEndTime()); ZDReportCheckTaskFromWorkDTO.setWORK_DAY_TYPE(cjTaskFromWork.getWorkDayType()); ZDReportCheckTaskFromWorkDTO.setWORK_TYPE(cjTaskFromWork.getWorkType()); //非必传 if (cjTaskFromWork.getTaskNum() != null){ ZDReportCheckTaskFromWorkDTO.setTASK_NUM(cjTaskFromWork.getTaskNum() + ""); } //ZDReportCheckTaskFromWorkDTO.setTASK_NUM(cjTaskFromWork.getTaskNum() == null ? "0" : cjTaskFromWork.getTaskNum() + ""); ZDReportCheckTaskFromWorkDTO.setCHECK_CYCLE(cjTaskFromWork.getCheckCycle()); ZDReportCheckTaskFromWorkDTO.setCHECK_CYCLE_UNIT(cjTaskFromWork.getCheckCycleUnit()); ZDReportCheckTaskFromWorkDTO.setCREATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjTaskFromWork.getCreateDate())); ZDReportCheckTaskFromWorkDTO.setUPDATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())); ZDReportCheckTaskFromWorkDTO.setCREATE_BY(cjTaskFromWork.getCreateBy()); ZDReportCheckTaskFromWorkDTO.setUPDATE_BY(cjTaskFromWork.getUpdateBy()); ZDReportCheckTaskFromWorkDTO.setDELETE_MARK(cjTaskFromWork.getDeleted()); reportCheckTaskFromWorkList.add(ZDReportCheckTaskFromWorkDTO); } log.info("【D】隐患排查任务【原始数据】" + JSONObject.toJSONString(reportCheckTaskFromWorkList)); StringBuffer taskFromWorkResultBuffer = null; //上报数据 try { URL url = new URL(URL + "/api/wwyt/t_yhpcrwxx_List"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", TOKEN); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(reportCheckTaskFromWorkList).getBytes(StandardCharsets.UTF_8)); } //得到响应码 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); } log.info("【D】隐患排查任务-处理结果:" + taskFromWorkResultBuffer.toString()); JSONObject jsonObject = JSONObject.parseObject(taskFromWorkResultBuffer.toString()); if (jsonObject.getInteger("status") == 200) { String message = jsonObject.getString("message"); if (message.contains("失效0条")) { for (PreventCJReportCheckTaskFromWork CJTaskFromWork : CJTaskFromWorks) { HandlerZDReportParam handlerZDReportParam = new HandlerZDReportParam(); //封装数据 handlerZDReportParam.setId(CJTaskFromWork.getId()); handlerZDReportParam.setZhunReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); handlerZDReportParam.setZhunReportTime(new Date()); CJTaskFromWorkService.updateHDReportStatusById(handlerZDReportParam); } } } else if (jsonObject.getInteger("status") == 500) { log.info("【D】隐患排查任务-处理失败:" + taskFromWorkResultBuffer.toString()); } log.info("【D】隐患排查任务数据结束..."); } } catch (Exception e) { e.printStackTrace(); } }else { log.info("【D】隐患排查任务无可推数据"); } } @Transactional public void ZDRecordFromTasks() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; /** * 5、处理 任务-记录 数据 * */ log.info("【E】任务记录-处理数据..."); List CJRecordFromTasks = CJTaskRecordService.listReportTaskRecordDateHuaiDong(); if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(CJRecordFromTasks)){ //封装上报数据 List reportCheckRecordFromTaskDTOS = new ArrayList<>(); for (PreventCJReportCheckRecordFromTask cjRecordFromTask : CJRecordFromTasks) { ZDReportCheckRecordFromTaskDTO reportCheckRecordFromTaskDTO = new ZDReportCheckRecordFromTaskDTO(); reportCheckRecordFromTaskDTO.setRECORD_ID(cjRecordFromTask.getId()); reportCheckRecordFromTaskDTO.setCHECK_TASK_ID(cjRecordFromTask.getCheckTaskId()); reportCheckRecordFromTaskDTO.setCHECK_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjRecordFromTask.getCheckTime())); reportCheckRecordFromTaskDTO.setCHECK_STATUS(cjRecordFromTask.getCheckStatus()); reportCheckRecordFromTaskDTO.setMOBILE_ME(cjRecordFromTask.getMobileCode()); reportCheckRecordFromTaskDTO.setIS_DEFEND(cjRecordFromTask.getDefend()); reportCheckRecordFromTaskDTO.setCREATE_BY_MOBILE(cjRecordFromTask.getCreateByMobile()); reportCheckRecordFromTaskDTO.setUPDATE_BY_MOBILE(cjRecordFromTask.getUpdateByMobile()); reportCheckRecordFromTaskDTO.setCREATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjRecordFromTask.getCreateDate())); reportCheckRecordFromTaskDTO.setUPDATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjRecordFromTask.getUpdateDate())); reportCheckRecordFromTaskDTO.setCREATE_BY(cjRecordFromTask.getCreateBy()); reportCheckRecordFromTaskDTO.setUPDATE_BY(cjRecordFromTask.getUpdateBy()); reportCheckRecordFromTaskDTO.setDELETE_MARK(cjRecordFromTask.getDeleted()); reportCheckRecordFromTaskDTOS.add(reportCheckRecordFromTaskDTO); } //数据上报 log.info("【E】任务记录-处理数据【原始数据】" + JSONObject.toJSONString(reportCheckRecordFromTaskDTOS)); StringBuffer dangerInfoResultBuffer = null; //上报数据 try { URL url = new URL(URL+"/api/wwyt/t_yhpcjl_List"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", TOKEN); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(reportCheckRecordFromTaskDTOS).getBytes(StandardCharsets.UTF_8)); } //得到响应码 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); } log.info("【E】任务记录-处理数据result:" + dangerInfoResultBuffer); JSONObject jsonObject = JSONObject.parseObject(dangerInfoResultBuffer.toString()); if (jsonObject.getInteger("status") == 200) { String message = jsonObject.getString("message"); if (message.contains("失效0条")) { for (PreventCJReportCheckRecordFromTask cjRecordFromTask : CJRecordFromTasks) { HandlerZDReportParam handlerZDReportParam = new HandlerZDReportParam(); handlerZDReportParam.setId(cjRecordFromTask.getId()); handlerZDReportParam.setZhunReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); handlerZDReportParam.setZhunReportTime(new Date()); CJTaskRecordService.updateHDReportStatusById(handlerZDReportParam); } } }else { log.error("【E】任务记录-处理数据result:" + dangerInfoResultBuffer); } log.info("【E】任务记录推送数据结束..."); } } catch (Exception e) { e.printStackTrace(); } }else { log.info("【E】任务记录无可推数据"); } } @Transactional public void ZDDangerInfos() { HttpURLConnection con = null; BufferedReader buffer = null; int responseCode = 200; /** * 6、处理隐患信息数据 * */ log.info("【F】隐患信息-处理数据..."); List CJDangerInfos = CJDangerInfoService.listReportDangerDateZhunDong(); if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(CJDangerInfos)){ //封装上报数据 List reportDangerInfoLists = new ArrayList<>(); for (ZDPreventCJReportDangerInfo cjDangerInfo : CJDangerInfos) { ZDReportDangerInfoDTO cjReportDangerInfoDTO = new ZDReportDangerInfoDTO(); cjReportDangerInfoDTO.setDANGER_ID(cjDangerInfo.getId()); cjReportDangerInfoDTO.setREGIST_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjDangerInfo.getRegistTime())); cjReportDangerInfoDTO.setREGISTRANT(cjDangerInfo.getRegistrant()); cjReportDangerInfoDTO.setDANGER_NAME(cjDangerInfo.getDangerName()); cjReportDangerInfoDTO.setHAZARD_CODE(cjDangerInfo.getHazardCode()); cjReportDangerInfoDTO.setRISK_MEASURE_ID(cjDangerInfo.getRiskMeasureId()); cjReportDangerInfoDTO.setCHECK_RECORD_ID(cjDangerInfo.getCheckRecordId()); cjReportDangerInfoDTO.setDANGER_LEVEL(cjDangerInfo.getDangerLevel()); cjReportDangerInfoDTO.setDANGER_SRC(cjDangerInfo.getDangerSrc()); cjReportDangerInfoDTO.setDANGER_MANAGE_TYPE(cjDangerInfo.getDangerManageType()); cjReportDangerInfoDTO.setHAZARD_DANGER_TYPE(cjDangerInfo.getHazardDangerType() == null ? "0" : cjDangerInfo.getHazardDangerType()); cjReportDangerInfoDTO.setHAZARD_CATEGORY(cjDangerInfo.getHazardCategory()); cjReportDangerInfoDTO.setDANGER_DESC(cjDangerInfo.getDangerDesc()); //非必传 // cjReportDangerInfoDTO.setDANGER_REASON(cjDangerInfo.getDangerReason()); // cjReportDangerInfoDTO.setCONTROL_MEASURES(cjDangerInfo.getControlMeasures()); // cjReportDangerInfoDTO.setCOST(cjDangerInfo.getCost()); cjReportDangerInfoDTO.setLIABLE_PERSON(cjDangerInfo.getLiablePerson()); cjReportDangerInfoDTO.setDANGER_MANAGE_DEADLINE(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjDangerInfo.getDangerManageDeadline())); cjReportDangerInfoDTO.setCHECK_ACCEPT_PERSON(cjDangerInfo.getCheckAcceptPerson()); cjReportDangerInfoDTO.setCHECK_ACCEPT_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjDangerInfo.getCheckAcceptTime())); //非必传 // cjReportDangerInfoDTO.setCHECK_ACCEPT_COMMENT(cjDangerInfo.getCheckAcceptComment()); cjReportDangerInfoDTO.setDANGER_STATE(cjDangerInfo.getDangerState()); //非必传 // cjReportDangerInfoDTO.setMANAGEMENT_CLASSIFICATION(cjDangerInfo.getManagementClassification()); // cjReportDangerInfoDTO.setOCCURRENCE_LINK(cjDangerInfo.getOccurrenceLink()); // cjReportDangerInfoDTO.setATTACHMENTS1(ImageToBase64.convertImageToBase64(cjDangerInfo.getPreRectifyPhoto())); // cjReportDangerInfoDTO.setATTACHMENTS2(ImageToBase64.convertImageToBase64(cjDangerInfo.getPostRectifyPhoto())); // cjReportDangerInfoDTO.setFJ(cjDangerInfo.getRectifyAttachment()); cjReportDangerInfoDTO.setCREATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjDangerInfo.getCreateDate())); cjReportDangerInfoDTO.setUPDATE_TIME(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, cjDangerInfo.getUpdateDate())); cjReportDangerInfoDTO.setDELETE_MARK(cjDangerInfo.getDeleted()); cjReportDangerInfoDTO.setCREATE_BY(cjDangerInfo.getCreateBy()); cjReportDangerInfoDTO.setUPDATE_BY(cjDangerInfo.getUpdateBy()); reportDangerInfoLists.add(cjReportDangerInfoDTO); } //数据上报 log.info("【F】隐患信息-处理数据【原始数据】" + JSONObject.toJSONString(reportDangerInfoLists)); StringBuffer dangerInfoResultBuffer = null; //上报数据 try { URL url = new URL(URL+"/api/wwyt/t_yhzlxx_List"); //得到连接对象 con = (HttpURLConnection) url.openConnection(); // 设置请求方式和参数 con.setRequestMethod("POST"); con.setDoOutput(true); con.setDoInput(true); con.setUseCaches(false); con.setRequestProperty("token", TOKEN); con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); // 发送请求体 try (OutputStream os = con.getOutputStream()) { os.write(JSON.toJSONString(reportDangerInfoLists).getBytes(StandardCharsets.UTF_8)); } //得到响应码 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); } log.info("【F】隐患信息-处理数据result:" + dangerInfoResultBuffer.toString()); JSONObject jsonObject = JSONObject.parseObject(dangerInfoResultBuffer.toString()); if (jsonObject.getInteger("status") == 200) { String message = jsonObject.getString("message"); if (message.contains("失效0条")) { for (PreventCJReportDangerInfo dangerInfo : CJDangerInfos) { HandlerZDReportParam handlerCJReportParam = new HandlerZDReportParam(); handlerCJReportParam.setId(dangerInfo.getId()); handlerCJReportParam.setZhunReportStatus(SyncEnum.SYNC_EXEC_SUCCESS.getCode()); handlerCJReportParam.setZhunReportTime(new Date()); CJDangerInfoService.updateZDReportStatusById(handlerCJReportParam); } } }else { log.info("【】隐患信息推送数据失败..."+ dangerInfoResultBuffer); } log.info("【F】隐患信息推送数据结束..."); } } catch (Exception e) { e.printStackTrace(); } }else { log.info("【F】检查任务无可推数据"); } } }