package com.gkhy.safePlatform.doublePrevention.scheduls; import com.gkhy.safePlatform.account.rpc.apimodel.AccountAuthService; import com.gkhy.safePlatform.account.rpc.apimodel.model.resp.UserRPCRespDTO; import com.gkhy.safePlatform.commons.enums.E; import com.gkhy.safePlatform.commons.exception.AusinessException; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.doublePrevention.entity.*; import com.gkhy.safePlatform.doublePrevention.entity.CJReport.*; import com.gkhy.safePlatform.doublePrevention.enums.StatusEnum; import com.gkhy.safePlatform.doublePrevention.enums.SyncEnum; import com.gkhy.safePlatform.doublePrevention.repository.param.HandlerReportParam; import com.gkhy.safePlatform.doublePrevention.repository.param.SearchReportDateParams; import com.gkhy.safePlatform.doublePrevention.service.baseService.*; import org.apache.commons.lang3.ObjectUtils; import org.apache.dubbo.config.annotation.DubboReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @Component public class SearchReportDateSchedule { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @DubboReference(check = false) private AccountAuthService accountAuthService; @Autowired private PreventReportConfigService preventReportConfigService; @Autowired private PreventReportConfigLogService preventReportConfigLogService; @Autowired private PreventReportRiskAnaUnitService riskAnaUnitService; @Autowired private PreventReportRiskEventService eventService; @Autowired private PreventReportRiskControlMeasureService measureService; @Autowired private PreventReportCheckTaskFromWorkService taskFromWorkService; @Autowired private PreventReportCheckRecordFromTaskService taskRecordService; @Autowired private PreventReportDangerInfoService dangerInfoService; @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 PreventRiskAnaUnitService preventRiskUnitService; @Autowired private PreventRiskEventService preventRiskEventService; @Autowired private PreventRiskControlMeasureService preventRiskControlMeasureService; @Autowired private PreventDangerCheckContentService preventDangerCheckContentService; @Autowired private PreventRiskControlTemplateService preventRiskControlTemplateService; @Autowired private PreventDangerCheckWorkService preventDangerCheckWorkService; @Autowired private PreventDangerCheckTaskService preventDangerCheckTaskService; @Autowired private PreventDangerManageService preventDangerManageService; @Autowired private PreventDangerRectifyService preventDangerRectifyService; @Autowired private PreventWorkAndMeasureService preventWorkAndMeasureService; @Autowired private PreventTaskAndMeasureService preventTaskAndMeasureService; @Transactional //@Scheduled(cron = "0 0/1 * * * ?") public void searchReportDate(){ logger.info("【双重预防】定时检索需要上报数据..."); int step = 1; String companyCode = "652310082"; /** * 1、检索风险分析单元 * */ //读取风险分析单元数据上报主配置信息 PreventReportConfig unitReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode()); //如果主配置开启上报,开始 if (unitReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ // logger.info("【##】1.检索风险分析单元..."); //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) List riskAnaUnitList = preventRiskUnitService.listRiskAnaUnit(); //获取上报数据list List unitLists = new ArrayList<>(); List CJUnitLists = new ArrayList<>(); if (ObjectUtils.isNotEmpty(riskAnaUnitList)){ HandlerReportParam handlerReportParam = new HandlerReportParam(); //遍历,封装数据 for (PreventRiskAnaUnit riskAnaUnit : riskAnaUnitList) { // String riskAnaUnitUuid = UUID.randomUUID().toString(); //获取上报数据对象 PreventCJReportRiskAnaUnit CJReportRiskAnaUnit = new PreventCJReportRiskAnaUnit(); PreventReportRiskAnaUnit reportRiskAnaUnit = new PreventReportRiskAnaUnit(); //封装上报应急厅的风险分析单元数据 reportRiskAnaUnit.setId(riskAnaUnit.getUuid()); reportRiskAnaUnit.setCompanyCode(companyCode); reportRiskAnaUnit.setRiskUnitName(riskAnaUnit.getRiskUnitName()); reportRiskAnaUnit.setHazardCode(riskAnaUnit.getRiskCode()); reportRiskAnaUnit.setHazardDep(riskAnaUnit.getLiableDep()); reportRiskAnaUnit.setHazardLiablePerson(riskAnaUnit.getLiablePerson()); if (riskAnaUnit.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJReportRiskAnaUnit.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJReportRiskAnaUnit.setDeleted(riskAnaUnit.getDeleteStatus().toString()); } reportRiskAnaUnit.setCreateBy(riskAnaUnit.getCreateByUserName()); reportRiskAnaUnit.setCreateDate(riskAnaUnit.getGmtCreate()); reportRiskAnaUnit.setUpdateBy(riskAnaUnit.getLastEditUserName()); reportRiskAnaUnit.setUpdateDate(riskAnaUnit.getGmtModitify()); reportRiskAnaUnit.setDataSource((byte) 1); reportRiskAnaUnit.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); reportRiskAnaUnit.setReportTime(null); reportRiskAnaUnit.setRiskUnitId(riskAnaUnit.getId()); //封装上报昌吉州的风险分析单元数据 CJReportRiskAnaUnit.setId(riskAnaUnit.getUuid()); CJReportRiskAnaUnit.setCompanyCode(companyCode); CJReportRiskAnaUnit.setRiskUnitName(riskAnaUnit.getRiskUnitName()); CJReportRiskAnaUnit.setHazardCode(riskAnaUnit.getRiskCode()); CJReportRiskAnaUnit.setHazardDep(riskAnaUnit.getLiableDep()); CJReportRiskAnaUnit.setHazardLiablePerson(riskAnaUnit.getLiablePerson()); if (riskAnaUnit.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJReportRiskAnaUnit.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJReportRiskAnaUnit.setDeleted(riskAnaUnit.getDeleteStatus().toString()); } CJReportRiskAnaUnit.setCreateBy(riskAnaUnit.getCreateByUserName()); CJReportRiskAnaUnit.setCreateDate(riskAnaUnit.getGmtCreate()); CJReportRiskAnaUnit.setUpdateBy(riskAnaUnit.getLastEditUserName()); CJReportRiskAnaUnit.setUpdateDate(riskAnaUnit.getGmtModitify()); CJReportRiskAnaUnit.setDataSource((byte) 1); CJReportRiskAnaUnit.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); CJReportRiskAnaUnit.setReportTime(null); CJReportRiskAnaUnit.setRiskUnitId(riskAnaUnit.getId()); //封装数据 unitLists.add(reportRiskAnaUnit); CJUnitLists.add(CJReportRiskAnaUnit); //修改原始数据状态为待上传 handlerReportParam.setId(riskAnaUnit.getId()); handlerReportParam.setReportTime(new Date()); handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); preventRiskUnitService.updateReportStatus(handlerReportParam); } }else { logger.info("【双重预防】当前无风险分析单元数据需要处理"); } //写入应急厅转换表 for (PreventReportRiskAnaUnit unitList : unitLists) { riskAnaUnitService.insertUnitList(unitList); logger.info("【双重预防】1.风险分析单元:数据处理..."); } //写入昌吉州转换表 for (PreventCJReportRiskAnaUnit CJUnit : CJUnitLists) { CJRiskAnaUnitService.insertUnitList(CJUnit); logger.info("【双重预防】1.风险分析单元CJ:数据处理..."); } step = 2; }else { step = 2; logger.info("风险分析单元数据上报已关闭"); } /** * 2、检索安全风险事件数据 * */ //读取风险分析单元数据上报主配置信息 PreventReportConfig eventReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_EVENT.getCode()); //如果风险事件主配置开启上报 if (eventReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ //logger.info("【##】2.检索安全风险事件..."); //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) List riskEvents = preventRiskEventService.listReportEvent(); //获取上报数据对象与list List eventLists = new ArrayList<>(); List CJEventLists = new ArrayList<>(); if (ObjectUtils.isNotEmpty(riskEvents)){ //遍历,封装数据 for (PreventRiskEvent riskEvent : riskEvents) { //String eventUuid = UUID.randomUUID().toString(); HandlerReportParam handlerReportParam = new HandlerReportParam(); PreventReportRiskEvent reportRiskEvent = new PreventReportRiskEvent(); PreventCJReportRiskEvent CJReportRiskEvent = new PreventCJReportRiskEvent(); //封装上报应急厅风险事件数据 reportRiskEvent.setId(riskEvent.getUuid()); reportRiskEvent.setCompanyCode(companyCode); if (riskEvent.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJReportRiskEvent.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJReportRiskEvent.setDeleted(riskEvent.getDeleteStatus().toString()); } reportRiskEvent.setCreateBy(riskEvent.getCreateByUserName()); reportRiskEvent.setCreateDate(riskEvent.getGmtCreate()); reportRiskEvent.setUpdateBy(riskEvent.getCreateByUserName()); reportRiskEvent.setUpdateDate(riskEvent.getGmtModitify()); reportRiskEvent.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); reportRiskEvent.setReportTime(null); reportRiskEvent.setDataSource((byte) 1); reportRiskEvent.setRiskUnitId(riskEvent.getRiskUnitUuid()); reportRiskEvent.setRiskEventName(riskEvent.getRiskEventName()); reportRiskEvent.setRiskEventId(riskEvent.getId()); //封装上报昌吉州风险事件数据 CJReportRiskEvent.setId(riskEvent.getUuid()); CJReportRiskEvent.setCompanyCode(companyCode); if (riskEvent.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJReportRiskEvent.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJReportRiskEvent.setDeleted(riskEvent.getDeleteStatus().toString()); } CJReportRiskEvent.setCreateBy(riskEvent.getCreateByUserName()); CJReportRiskEvent.setCreateDate(riskEvent.getGmtCreate()); CJReportRiskEvent.setUpdateBy(riskEvent.getCreateByUserName()); CJReportRiskEvent.setUpdateDate(riskEvent.getGmtModitify()); CJReportRiskEvent.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); CJReportRiskEvent.setReportTime(null); CJReportRiskEvent.setDataSource((byte) 1); CJReportRiskEvent.setRiskUnitId(riskEvent.getRiskUnitUuid()); CJReportRiskEvent.setRiskEventName(riskEvent.getRiskEventName()); CJReportRiskEvent.setRiskEventId(riskEvent.getId()); //封装数据 eventLists.add(reportRiskEvent); CJEventLists.add(CJReportRiskEvent); //设置原始数据上报状态 handlerReportParam.setId(riskEvent.getId()); handlerReportParam.setReportTime(new Date()); handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); preventRiskEventService.updateEventReportStatus(handlerReportParam); } }else { logger.info("【双重预防】当前无安全风险事件数据需要处理"); } //写入应急厅转换表 int eventTag; for (PreventReportRiskEvent eventList : eventLists) { int result = eventService.insertEventLists(eventList); logger.info("【双重预防】2.风险分析事件:数据处理..."); } //写入昌吉州转换表 for (PreventCJReportRiskEvent CJEvent : CJEventLists) { CJEventService.insertEventLists(CJEvent); logger.info("【双重预防】2.风险分析事件CJ:数据处理..."); } step = 3; }else { step = 3; logger.info("安全风险事件数据上报已关闭"); } /** * 3、检索安全风险管控措施数据 * */ //读取安全风险管控措施数据上报主配置信息 PreventReportConfig measureReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_MEASURE.getCode()); //如果安全风险管控措施主配置开启上报 if (measureReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ //logger.info("{【##】3.检索安全风险管控措施..."); //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) List measures = preventRiskControlMeasureService.listReportMeasure(); //获取上报数据list List measureLists = new ArrayList<>(); List CJMeasureLists = new ArrayList<>(); HandlerReportParam handlerReportParam = new HandlerReportParam(); if (ObjectUtils.isNotEmpty(measures)){ //遍历,封装数据 for (PreventRiskControlMeasure measure : measures) { String measureUuid = UUID.randomUUID().toString(); //获取上报数据对象 PreventReportRiskControlMeasure reportMeasure = new PreventReportRiskControlMeasure(); PreventCJReportRiskControlMeasure CJReportMeasure = new PreventCJReportRiskControlMeasure(); //转换数据 PreventRiskControlTemplate controlTemplateById = preventRiskControlTemplateService.getControlTemplateById(measure.getClassify2()); String classify2 = measure.getClassify1() + "-" + controlTemplateById.getOrderIndex(); //封装上报应急厅管控措施数据 reportMeasure.setId(measure.getUuid()); reportMeasure.setCompanyCode(companyCode); if (measure.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJReportMeasure.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJReportMeasure.setDeleted(measure.getDeleteStatus().toString()); } reportMeasure.setCreateBy(measure.getCreateByUserName()); reportMeasure.setCreateDate(measure.getGmtCreate()); reportMeasure.setUpdateBy(measure.getCreateByUserName()); reportMeasure.setUpdateDate(measure.getGmtModitify()); reportMeasure.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); reportMeasure.setReportTime(null); reportMeasure.setDataSource((byte) 1); reportMeasure.setRiskEventId(measure.getRiskEventUuid()); reportMeasure.setRiskMeasureDesc(measure.getMeasureDesc()); reportMeasure.setDataSrc(measure.getControlType().toString()); reportMeasure.setClassify1(measure.getClassify1().toString()); reportMeasure.setClassify2(classify2); reportMeasure.setClassify3(measure.getClassify3()); reportMeasure.setRiskMeasureId(measure.getId()); PreventDangerCheckContent contentByMeasureId = preventDangerCheckContentService.getCheckContentByMeasureId(measure.getId()); reportMeasure.setTroubleshootContent(contentByMeasureId.getCheckContent()); //封装上报昌吉州管控措施数据 CJReportMeasure.setId(measure.getUuid()); CJReportMeasure.setCompanyCode(companyCode); if (measure.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJReportMeasure.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJReportMeasure.setDeleted(measure.getDeleteStatus().toString()); } CJReportMeasure.setCreateBy(measure.getCreateByUserName()); CJReportMeasure.setCreateDate(measure.getGmtCreate()); CJReportMeasure.setUpdateBy(measure.getCreateByUserName()); CJReportMeasure.setUpdateDate(measure.getGmtModitify()); CJReportMeasure.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); CJReportMeasure.setReportTime(null); CJReportMeasure.setDataSource((byte) 1); CJReportMeasure.setRiskEventId(measure.getRiskEventUuid()); CJReportMeasure.setRiskMeasureDesc(measure.getMeasureDesc()); CJReportMeasure.setDataSrc(measure.getControlType().toString()); CJReportMeasure.setClassify1(measure.getClassify1().toString()); CJReportMeasure.setClassify2(classify2); CJReportMeasure.setClassify3(measure.getClassify3()); CJReportMeasure.setRiskMeasureId(measure.getId()); CJReportMeasure.setTroubleshootContent(contentByMeasureId.getCheckContent()); //封装数据 measureLists.add(reportMeasure); CJMeasureLists.add(CJReportMeasure); //设置原始数据上报状态 handlerReportParam.setId(measure.getId()); handlerReportParam.setReportTime(new Date()); handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); preventRiskControlMeasureService.updateMeasureReportStatus(handlerReportParam); } }else { logger.info("【双重预防】当前无安全风险管控措施数据需要处理"); } step = 4; //写入上报应急厅转换表 for (PreventReportRiskControlMeasure measureList : measureLists) { measureService.insertMeasureList(measureList); logger.info("【双重预防】3.安全风险管控措施:数据处理..."); } //写入上报昌吉州转换表 for (PreventCJReportRiskControlMeasure CJMeasure : CJMeasureLists) { CJMeasureService.insertMeasureList(CJMeasure); logger.info("【双重预防】3.安全风险管控措施CJ:数据处理..."); } }else { step = 4; logger.info("安全风险管控措施数据上报已关闭"); } /** * 4、检索 任务配置 数据 prevent_report_check_record_from_task * 本数据以 todo * */ //读取任务配置数据上报主配置信息 PreventReportConfig workReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_TASK_FROM_WORK.getCode()); //如果任务配置主配置开启上报 if (workReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ // logger.info("【##】4.检索任务配置..."); //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) List works = preventDangerCheckWorkService.listReportWork(); //获取上报数据对象与list List taskFromWorkLists = new ArrayList<>(); List CJTaskFromWorkLists = new ArrayList<>(); HandlerReportParam handlerReportParam = new HandlerReportParam(); if (ObjectUtils.isNotEmpty(works)){ //遍历,封装数据 for (PreventDangerCheckWork work : works) { List workAndMeasureLists = preventWorkAndMeasureService.getWorkAndMeasureByWorkUuid(work.getUuid()); for (PreventWorkAndMeasure workAndMeasure : workAndMeasureLists) { PreventReportCheckTaskFromWork taskFromWork = new PreventReportCheckTaskFromWork(); PreventCJReportCheckTaskFromWork CJTaskFromWork = new PreventCJReportCheckTaskFromWork(); //查询措施 PreventRiskControlMeasure controlMeasure = preventRiskControlMeasureService.getControlMeasureByUuid(workAndMeasure.getMeasureUuid()); String taskFromWorkUuid = UUID.randomUUID().toString(); PreventDangerCheckContent checkContent = preventDangerCheckContentService.getCheckContentByMeasureId(controlMeasure.getId()); //封装上报应急厅任务配置数据 taskFromWork.setId(work.getUuid()); taskFromWork.setCompanyCode(companyCode); if (work.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJTaskFromWork.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJTaskFromWork.setDeleted(work.getDeleteStatus().toString()); } taskFromWork.setCreateBy(work.getCreateByUserName()); taskFromWork.setCreateDate(work.getGmtCreate()); taskFromWork.setUpdateBy(work.getCreateByUserName()); taskFromWork.setUpdateDate(work.getGmtModitify()); taskFromWork.setCheckCycle(work.getCheckCycle()); taskFromWork.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); taskFromWork.setReportTime(null); taskFromWork.setDataSource((byte) 1); taskFromWork.setCheckCycleUnit(work.getCheckCycleUnit().toString()); taskFromWork.setRiskMeasureId(workAndMeasure.getMeasureUuid()); taskFromWork.setTroubleshootContent(checkContent.getCheckContent()); taskFromWork.setWorkId(work.getId()); //封装上报昌吉州任务配置数据 CJTaskFromWork.setId(work.getUuid()); CJTaskFromWork.setCompanyCode(companyCode); if (work.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJTaskFromWork.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJTaskFromWork.setDeleted(work.getDeleteStatus().toString()); } CJTaskFromWork.setCreateBy(work.getCreateByUserName()); CJTaskFromWork.setCreateDate(work.getGmtCreate()); CJTaskFromWork.setUpdateBy(work.getCreateByUserName()); CJTaskFromWork.setUpdateDate(work.getGmtModitify()); CJTaskFromWork.setCheckCycle(work.getCheckCycle()); CJTaskFromWork.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); CJTaskFromWork.setReportTime(null); CJTaskFromWork.setDataSource((byte) 1); CJTaskFromWork.setCheckCycleUnit(work.getCheckCycleUnit().toString()); CJTaskFromWork.setRiskMeasureId(workAndMeasure.getMeasureUuid()); CJTaskFromWork.setWorkId(work.getId()); //封装数据 taskFromWorkLists.add(taskFromWork); CJTaskFromWorkLists.add(CJTaskFromWork); //设置原始数据上报状态 handlerReportParam.setId(work.getId()); handlerReportParam.setReportTime(new Date()); handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); preventDangerCheckWorkService.updateWorkReportStatus(handlerReportParam); } } }else { logger.info("【双重预防】当前无任务配置数据需要处理"); } //写入上报应急厅数据转换表 for (PreventReportCheckTaskFromWork taskFromWorks : taskFromWorkLists) { taskFromWorkService.insertTaskFromWorkList(taskFromWorks); logger.info("【双重预防】任务配置:数据处理..."); } //写入上报昌吉州数据转换表 for (PreventCJReportCheckTaskFromWork CJTaskFromWorks : CJTaskFromWorkLists) { CJTaskFromWorkService.insertTaskFromWorkList(CJTaskFromWorks); logger.info("【双重预防】任务配置CJ:数据处理..."); } }else { step = 5; logger.info("任务配置数据上报已关闭"); } /** * 5、排查任务记录数据 PreventReportCheckRecordFromTask * */ //读取安全风险管控措施数据上报主配置信息 PreventReportConfig recordReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG__CHECK_RECORD.getCode()); //如果安全风险管控措施主配置开启上报 if (recordReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ //logger.info("【##】5.检索排查任务记录数据..."); //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) List tasks = preventDangerCheckTaskService.listReportTask(); //获取上报数据对象 List recordFromTaskLists = new ArrayList<>(); List CJRecordFromTaskLists = new ArrayList<>(); HandlerReportParam handlerReportParam = new HandlerReportParam(); if (ObjectUtils.isNotEmpty(tasks)){ //遍历,封装数据 for (PreventDangerCheckTask task : tasks) { //创建人 PreventDangerCheckWork workById = preventDangerCheckWorkService.getWorkById(task.getCheckWorkId()); ResultVO rpcCreateUserResult = accountAuthService.getUserById(workById.getCreateByUserId()); UserRPCRespDTO createUser = (UserRPCRespDTO)rpcCreateUserResult.getData(); //修改人-执行人 ResultVO rpcExecUserResult = accountAuthService.getUserById(task.getExecUserId()); UserRPCRespDTO execUser = (UserRPCRespDTO)rpcExecUserResult.getData(); //获取上报数据对象 PreventReportCheckRecordFromTask recordFromTask = new PreventReportCheckRecordFromTask(); PreventCJReportCheckRecordFromTask CJRecordFromTask = new PreventCJReportCheckRecordFromTask(); String recordFromTaskUuid = UUID.randomUUID().toString(); //转换检查结果 String checkStatus = null; if (ObjectUtils.isEmpty(task.getResult() )){ checkStatus = "2"; }else if (task.getResult() == 2){ checkStatus = "1"; }else if (task.getResult() == 1){ checkStatus = "0"; } //封装上报应急厅的任务数据 recordFromTask.setId(task.getUuid()); recordFromTask.setCompanyCode(companyCode); if (task.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJRecordFromTask.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJRecordFromTask.setDeleted(task.getDeleteStatus().toString()); } recordFromTask.setCreateBy(task.getCreateUserName()); recordFromTask.setCreateDate(task.getGmtCreate()); recordFromTask.setUpdateBy(task.getExecUserName()); recordFromTask.setUpdateDate(task.getGmtModitify()); recordFromTask.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); recordFromTask.setReportTime(null); recordFromTask.setDataSource((byte) 1); recordFromTask.setCheckTaskId(task.getCheckWorkUuid()); recordFromTask.setCheckStatus(checkStatus); recordFromTask.setCheckTime(task.getStartTime()); recordFromTask.setTaskId(task.getId()); if (ObjectUtils.isEmpty(execUser.getPhone())){ recordFromTask.setUpdateByMobile(null); }else { recordFromTask.setUpdateByMobile(execUser.getPhone()); } if (ObjectUtils.isEmpty(createUser.getPhone())){ recordFromTask.setCreateByMobile(null); }else { recordFromTask.setCreateByMobile(createUser.getPhone()); } //封装上报昌吉州的任务数据 CJRecordFromTask.setId(task.getUuid()); CJRecordFromTask.setCompanyCode(companyCode); CJRecordFromTask.setDeleted(task.getDeleteStatus().toString()); CJRecordFromTask.setCreateBy(task.getCreateUserName()); CJRecordFromTask.setCreateDate(task.getGmtCreate()); CJRecordFromTask.setUpdateBy(task.getExecUserName()); if (task.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJRecordFromTask.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJRecordFromTask.setDeleted(task.getDeleteStatus().toString()); } CJRecordFromTask.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); CJRecordFromTask.setReportTime(null); CJRecordFromTask.setDataSource((byte) 1); CJRecordFromTask.setCheckTaskId(task.getCheckWorkUuid()); CJRecordFromTask.setCheckStatus(checkStatus); CJRecordFromTask.setCheckTime(task.getStartTime()); CJRecordFromTask.setTaskId(task.getId()); if (ObjectUtils.isEmpty(execUser.getPhone())){ CJRecordFromTask.setUpdateByMobile(null); }else { CJRecordFromTask.setUpdateByMobile(execUser.getPhone()); } if (ObjectUtils.isEmpty(createUser.getPhone())){ CJRecordFromTask.setCreateByMobile(null); }else { CJRecordFromTask.setCreateByMobile(createUser.getPhone()); } //封装数据 recordFromTaskLists.add(recordFromTask); CJRecordFromTaskLists.add(CJRecordFromTask); //设置原始数据上报状态 handlerReportParam.setId(task.getId()); handlerReportParam.setReportTime(new Date()); handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); preventDangerCheckTaskService.updateTaskReportStatus(handlerReportParam); } }else { logger.info("【双重预防】当前无排查任务记录需要处理"); } //插入上报应急厅转换表 for (PreventReportCheckRecordFromTask recordFromTasks : recordFromTaskLists) { int result = taskRecordService.insert(recordFromTasks); if (result < 0){ throw new AusinessException(E.ADD_FAIL.getCode(), "排查任务记录插入失败"); } logger.info("【双重预防】排查任务记录:数据处理..."); } //插入上报昌吉州转换表 for (PreventCJReportCheckRecordFromTask CJRecordFromTasks : CJRecordFromTaskLists) { int result = CJTaskRecordService.insert(CJRecordFromTasks); if (result < 0){ throw new AusinessException(E.ADD_FAIL.getCode(), "排查任务记录插入失败"); } logger.info("【双重预防】排查任务记录CJ:数据处理..."); } step = 6; }else { step = 6; logger.info("排查任务记录数据上报已关闭"); } /** * 6、隐患信息数据 * */ //读取安全风险管控措施数据上报主配置信息 PreventReportConfig dangerReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_DANGER_INFO.getCode()); //如果安全风险管控措施主配置开启上报 if (dangerReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ //logger.info("【##】4.检索隐患信息数据..."); //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) List dangerManages = preventDangerManageService.listReportDanger(); //获取上报数据list List dangerInfoLists = new ArrayList<>(); List CJDangerInfoLists = new ArrayList<>(); if (ObjectUtils.isNotEmpty(dangerManages)){ HandlerReportParam handlerReportParam = new HandlerReportParam(); //遍历,封装数据 for (PreventDangerManage dangerManage : dangerManages) { String dangerInfoUuid = UUID.randomUUID().toString(); //获取上报数据对象 PreventReportDangerInfo dangerInfo = new PreventReportDangerInfo(); PreventCJReportDangerInfo CJDangerInfo = new PreventCJReportDangerInfo(); PreventDangerRectify rectify = preventDangerRectifyService.getRectifyByManageIdForReport(dangerManage.getId()); //DangerLevel转换,减一 Integer level = dangerManage.getDangerLevel() - 1; //DangerManageType = rectify.getRectifyType() Integer manageType = dangerManage.getDangerType() - 1; //封装上报应急厅的隐患数据 dangerInfo.setId(dangerManage.getUuid()); dangerInfo.setCompanyCode(companyCode); if (dangerManage.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJDangerInfo.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJDangerInfo.setDeleted(dangerManage.getDeleteStatus().toString()); } dangerInfo.setCreateBy(dangerManage.getCreateByUserName()); dangerInfo.setCreateDate(dangerManage.getGmtCreate()); dangerInfo.setUpdateBy(dangerManage.getLastEditUserName()); dangerInfo.setUpdateDate(dangerManage.getGmtModitify()); dangerInfo.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); dangerInfo.setReportTime(null); dangerInfo.setDataSource((byte) 1); if (dangerManage.getRiskUnitId() != null){ PreventRiskAnaUnit riskUnit = preventRiskUnitService.getRiskUnitById(dangerManage.getRiskUnitId()); //封装上报应急厅的隐患数据 dangerInfo.setHazardCode(riskUnit.getRiskCode());//风险分析对象编码 //封装上报昌吉州的隐患数据 CJDangerInfo.setHazardCode(riskUnit.getRiskCode());//风险分析对象编码 }else { //封装上报应急厅的隐患数据 dangerInfo.setHazardCode(null);//风险分析对象编码 //封装上报昌吉州的隐患数据 CJDangerInfo.setHazardCode(null);//风险分析对象编码 } PreventDangerCheckTask task = preventDangerCheckTaskService.getTaskById(dangerManage.getTaskId()); if (ObjectUtils.isNotEmpty(task)){ PreventTaskAndMeasure taskAndMeasureByTaskId = preventTaskAndMeasureService.getTaskAndMeasureByTaskId(task.getId()); PreventRiskControlMeasure controlMeasure = preventRiskControlMeasureService.getControlMeasureById(taskAndMeasureByTaskId.getControlMeasureId()); //封装上报应急厅的隐患数据 dangerInfo.setCheckRecordId(task.getUuid());//隐患排查任务记录uuid dangerInfo.setRiskMeasureId(controlMeasure.getUuid());//管控措施uuid //封装上报昌吉州的隐患数据 CJDangerInfo.setCheckRecordId(task.getUuid());//隐患排查任务记录uuid CJDangerInfo.setRiskMeasureId(controlMeasure.getUuid());//管控措施uuid }else { dangerInfo.setCheckRecordId(null);//隐患排查任务记录uuid dangerInfo.setRiskMeasureId(null);//管控措施uuid //封装上报昌吉州的隐患数据 CJDangerInfo.setCheckRecordId(null);//隐患排查任务记录uuid CJDangerInfo.setRiskMeasureId(null);//管控措施uuid } dangerInfo.setDangerName(dangerManage.getDangerCode());//隐患名称--DangerCode dangerInfo.setDangerLevel(level.toString());//隐患等级 dangerInfo.setDangerSrc(dangerManage.getDangerSource().toString());//隐患来源 dangerInfo.setDangerManageType(rectify.getRectifyType().toString());//隐患治理类型 dangerInfo.setDangerDesc(dangerManage.getDangerDesc());//隐患描述 dangerInfo.setDangerReason(dangerManage.getDangerReason());//隐患产生原因 dangerInfo.setControlMeasures(rectify.getRectifyDesc());//控制措施 ,整改措施 dangerInfo.setCost(rectify.getCost().toString());//资金 dangerInfo.setDangerManageDeadline(rectify.getRectifyTime());//治理期限 dangerInfo.setDangerState(dangerManage.getDangerStatus().toString());//隐患状态 dangerInfo.setHazardDangerType(dangerManage.getDangerType().toString());//隐患类型 dangerInfo.setRegistrant(dangerManage.getCreateByUserName());//登记人 dangerInfo.setRegistTime(dangerManage.getGmtCreate());//登记时间 dangerInfo.setLiablePerson(rectify.getLiablePerson());//整改责任人 dangerInfo.setCheckAcceptPerson(rectify.getCheckAcceptPerson());//验收人 dangerInfo.setCheckAcceptComment(rectify.getCheckAcceptDesc());//验收情况 dangerInfo.setCheckAcceptTime(rectify.getCheckAcceptTime());//验收时间 dangerInfo.setDangerManagerId(dangerManage.getId()); //封装上报昌吉州的隐患数据 CJDangerInfo.setId(dangerManage.getUuid()); CJDangerInfo.setCompanyCode(companyCode); if (dangerManage.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ CJDangerInfo.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 }else { CJDangerInfo.setDeleted(dangerManage.getDeleteStatus().toString()); } CJDangerInfo.setCreateBy(dangerManage.getCreateByUserName()); CJDangerInfo.setCreateDate(dangerManage.getGmtCreate()); CJDangerInfo.setUpdateBy(dangerManage.getLastEditUserName()); CJDangerInfo.setUpdateDate(dangerManage.getGmtModitify()); CJDangerInfo.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); CJDangerInfo.setReportTime(null); CJDangerInfo.setDataSource((byte) 1); CJDangerInfo.setDangerName(dangerManage.getDangerCode());//隐患名称--DangerCode CJDangerInfo.setDangerLevel(level.toString());//隐患等级 CJDangerInfo.setDangerSrc(dangerManage.getDangerSource().toString());//隐患来源 CJDangerInfo.setDangerManageType(rectify.getRectifyType().toString());//隐患治理类型 CJDangerInfo.setDangerDesc(dangerManage.getDangerDesc());//隐患描述 CJDangerInfo.setDangerReason(dangerManage.getDangerReason());//隐患产生原因 CJDangerInfo.setControlMeasures(rectify.getRectifyDesc());//控制措施 ,整改措施 CJDangerInfo.setCost(rectify.getCost().toString());//资金 CJDangerInfo.setDangerManageDeadline(rectify.getRectifyTime());//治理期限 CJDangerInfo.setDangerState(dangerManage.getDangerStatus().toString());//隐患状态 CJDangerInfo.setHazardDangerType(dangerManage.getDangerType().toString());//隐患类型 CJDangerInfo.setRegistrant(dangerManage.getCreateByUserName());//登记人 CJDangerInfo.setRegistTime(dangerManage.getGmtCreate());//登记时间 CJDangerInfo.setLiablePerson(rectify.getLiablePerson());//整改责任人 CJDangerInfo.setCheckAcceptPerson(rectify.getCheckAcceptPerson());//验收人 CJDangerInfo.setCheckAcceptComment(rectify.getCheckAcceptDesc());//验收情况 CJDangerInfo.setCheckAcceptTime(rectify.getCheckAcceptTime());//验收时间 CJDangerInfo.setDangerManagerId(dangerManage.getId()); //封装数据 dangerInfoLists.add(dangerInfo); CJDangerInfoLists.add(CJDangerInfo); //设置原始数据上报状态 handlerReportParam.setId(dangerManage.getId()); handlerReportParam.setReportTime(new Date()); handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); preventDangerManageService.updateManageReportStatus(handlerReportParam); preventDangerRectifyService.updateRectifyReportStatus(handlerReportParam); } }else { logger.info("【双重预防】当前无隐患信息需要处理"); } //插入上报应急厅转换表 for (PreventReportDangerInfo danger : dangerInfoLists) { logger.info("【双重预防】隐患信息插入..."); int result = dangerInfoService.insert(danger); if (result < 0){ throw new AusinessException(E.ADD_FAIL.getCode(), "隐患信息插入失败"); } logger.info("【双重预防】隐患信息:数据处理..."); } //插入上报昌吉州转换表 for (PreventCJReportDangerInfo CJDanger : CJDangerInfoLists) { logger.info("【双重预防】隐患信息插入..."); int result = CJDangerInfoService.insert(CJDanger); if (result < 0){ throw new AusinessException(E.ADD_FAIL.getCode(), "隐患信息插入失败"); } logger.info("【双重预防】隐患信息:数据处理..."); } }else { logger.info("隐患信息数据上报已关闭"); } // TODO 目前应急厅没有风险点概念,此处暂时不写。目前看,风险点概念,类似管控措施,对用某个具体的风险位置 // /** // * 7、检索风险点-(可能对应风险管控措施?)数据 // * */ // //读取风险分析单元数据上报主配置信息 // PreventReportConfig pointReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_POINT_INFO.getCode()); // //如果风险事件主配置开启上报 // if (pointReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ // //logger.info("【##】2.检索安全风险事件..."); // //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) // List riskEvents = preventRiskEventService.listReportEvent(); // //获取上报数据对象与list // List CJPointLists = new ArrayList<>(); // if (ObjectUtils.isNotEmpty(riskEvents)){ // //遍历,封装数据 // for (PreventRiskEvent riskEvent : riskEvents) { // String pointUuid = UUID.randomUUID().toString(); // HandlerReportParam handlerReportParam = new HandlerReportParam(); // PreventCJReportPoint CJReportPoint = new PreventCJReportPoint(); // //TODO 公司编码,暂时没有 // //封装上报昌吉州风险事件数据 // CJReportPoint.setId(pointUuid); // CJReportPoint.setCompanyCode("test001"); // CJReportPoint.setDeleted(riskEvent.getDeleteStatus().toString()); // CJReportPoint.setCreateBy(riskEvent.getCreateByUserName()); // CJReportPoint.setCreateDate(riskEvent.getGmtCreate()); // CJReportPoint.setUpdateBy(riskEvent.getCreateByUserName()); // CJReportPoint.setUpdateDate(riskEvent.getGmtModitify()); // CJReportPoint.setRiskUnitIds(); // CJReportPoint.setRiskEventIds(); // CJReportPoint.setRiskMeasureIds(); // CJReportPoint.setHazardDep(); // CJReportPoint.setHazardLiablePerson(); // CJReportPoint.setHazardCode(); // CJReportPoint.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); // CJReportPoint.setReportTime(null); // CJReportPoint.setDataSource((byte) 1); // CJReportPoint.setRiskEventId(riskEvent.getId()); // //封装数据 // CJPointLists.add(CJReportPoint); // //设置原始数据上报状态 // handlerReportParam.setId(riskEvent.getId()); // handlerReportParam.setReportTime(new Date()); // handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); // preventRiskEventService.updateEventReportStatus(handlerReportParam); // } // }else { // logger.info("【##】当前无安全风险事件数据需要处理"); // } // //写入昌吉州转换表 // for (PreventCJReportRiskEvent CJEvent : CJEventLists) { // CJEventService.insertEventLists(CJEvent); // logger.info("【##】2.风险分析事件CJ:数据处理..."); // } // step = 3; // }else { // step = 3; // logger.info("安全风险事件数据上报已关闭"); // } } }