From 8e3dd5851dcedef5b21858dc1cfd5d11f1965ce6 Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期五, 04 七月 2025 13:38:25 +0800 Subject: [PATCH] 优化处理 --- src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java | 1793 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 954 insertions(+), 839 deletions(-) diff --git a/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java b/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java index 04bab21..b1d715c 100644 --- a/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java +++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java @@ -1,839 +1,954 @@ -package com.ruoyi.doublePrevention.scheduls; - - -import com.ruoyi.doublePrevention.entity.*; -import com.ruoyi.doublePrevention.entity.CJReport.*; -import com.ruoyi.doublePrevention.enums.E; -import com.ruoyi.doublePrevention.enums.SyncEnum; -import com.ruoyi.doublePrevention.exception.AusinessException; -import com.ruoyi.doublePrevention.repository.param.HandlerReportParam; -import com.ruoyi.doublePrevention.service.baseService.*; -import com.ruoyi.project.system.dept.domain.Dept; -import com.ruoyi.project.system.dept.service.IDeptService; -import com.ruoyi.project.system.user.domain.User; -import com.ruoyi.project.system.user.service.IUserService; -import com.ruoyi.project.tr.HiddenDangerCheckJob.domain.HiddenDangerCheckJob; -import com.ruoyi.project.tr.HiddenDangerCheckJob.service.IHiddenDangerCheckJobService; -import com.ruoyi.project.tr.hiddenDangerCheck.domain.HiddenDangerCheck; -import com.ruoyi.project.tr.hiddenDangerCheck.service.IHiddenDangerCheckService; -import com.ruoyi.project.tr.hiddenDangerCheckPoint.domain.HiddenDangerCheckPoint; -import com.ruoyi.project.tr.hiddenDangerCheckPoint.service.IHiddenDangerCheckPointService; -import com.ruoyi.project.tr.riskList.domain.RiskList; -import com.ruoyi.project.tr.riskList.service.IRiskListService; -import org.apache.commons.lang3.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -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()); - - - @Autowired - private PreventReportConfigService preventReportConfigService; - - @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 IDeptService trDeptService; //部门服务 - @Autowired - private IUserService trUserService; //用户服务 - - @Autowired - private IRiskListService trRiskAnaUnitService; //风险设备、分析单元 - @Autowired - private PreventRiskUnitUuidService preventRiskUnitUuidService; //风险设备、分析单元附属表 - - @Autowired - private PreventRiskEventService preventRiskEventService; - @Autowired - private PreventRiskControlMeasureService preventRiskControlMeasureService; - @Autowired - private PreventRiskControlTemplateService preventRiskControlTemplateService; - - @Autowired - private IHiddenDangerCheckJobService trHiddenDangerCheckJobService;//排查任务job - @Autowired - private PreventRiskJobAndMeasureService preventRiskJobAndMeasureService;//排查任务附属表 - - @Autowired - private IHiddenDangerCheckService trHiddenDangerCheckService;//排查任务记录 - @Autowired - private PreventRiskDangerCheckLogService preventRiskDangerCheckLogService;//排查任务记录附属表 - - @Autowired - private IHiddenDangerCheckPointService trHiddenDangerCheckPointService;//隐患信息上报、整改、验收 - @Autowired - private PreventRiskDangerInfoService preventRiskDangerInfoService;//隐患信息附属表 - - @Autowired - private PreventRiskCheckUnitService preventRiskCheckUnitService;//管控措施,任务清单对应关系。基础排查点附属表 - @Autowired - private PreventRiskDangerCheckAndMeasureService riskDangerCheckAndMeasureService;//管控措施,任务清单对应关系。基础排查点附属表 - - @Autowired - private PreventTaskTypeService taskTypeService;//管控措施,任务清单对应关系。基础排查点附属表 - - @Autowired - private PreventOverhaulLogService overhaulLogService;//隐患信息附属表 - @Autowired - private PreventCJReportOverhaulLogService reportOverhaulLogService;//隐患信息附属表 - - - @Transactional -// @Scheduled(cron = "0 0/1 * * * ? ") // 分钟 -// @Scheduled(cron = "0/30 * * * * ?") // 30秒 -// @Scheduled(cron = "0 0 0/2 * * ?") // 小时 - - 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<PreventRiskUnitUuid> riskUnitUuidList = preventRiskUnitUuidService.listRiskAnaUnit(); - //获取上报数据list -// List<PreventReportRiskAnaUnit> unitLists = new ArrayList<>(); - List<PreventCJReportRiskAnaUnit> CJUnitLists = new ArrayList<>(); - if (ObjectUtils.isNotEmpty(riskUnitUuidList)){ - HandlerReportParam handlerReportParam = new HandlerReportParam(); - //遍历,封装数据 - for (PreventRiskUnitUuid riskUnitUuid : riskUnitUuidList) { - //查询漯安表中对应数据 - RiskList infoByRiskId = trRiskAnaUnitService.getInfoByRiskListId(riskUnitUuid.getRiskUnitId()); - //获取上报数据对象 - PreventCJReportRiskAnaUnit CJReportRiskAnaUnit = new PreventCJReportRiskAnaUnit(); - - //此类方法已经修改,实际使用username - User createUser = trUserService.getUserByLoginName(infoByRiskId.getCreateBy()); - User updateUser = trUserService.getUserByLoginName(infoByRiskId.getUpdateBy()); - User userById = trUserService.getUserById(infoByRiskId.getUserId()); - Dept depById = trDeptService.getDepById(infoByRiskId.getDeptId()); - - //封装上报昌吉州的风险分析单元数据 - CJReportRiskAnaUnit.setId(riskUnitUuid.getRiskUnitUuid());//此处封装附属表的uuid - CJReportRiskAnaUnit.setCompanyCode(companyCode); - CJReportRiskAnaUnit.setRiskUnitName(infoByRiskId.getRiskListName()); - CJReportRiskAnaUnit.setHazardCode(infoByRiskId.getRiskListNum()); - CJReportRiskAnaUnit.setHazardDep(depById.getDeptName()); - CJReportRiskAnaUnit.setHazardLiablePerson(userById.getUserName()); - CJReportRiskAnaUnit.setDeleted("0"); -// if (riskUnitUuid.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ -// CJReportRiskAnaUnit.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 -// }else { -// CJReportRiskAnaUnit.setDeleted(riskAnaUnit.getDeleteStatus().toString()); -// } - CJReportRiskAnaUnit.setCreateBy(createUser.getUserName()); - CJReportRiskAnaUnit.setCreateDate(infoByRiskId.getCreateTime()); - if (ObjectUtils.isEmpty(updateUser)){ - CJReportRiskAnaUnit.setUpdateBy(createUser.getUserName()); - CJReportRiskAnaUnit.setUpdateDate(infoByRiskId.getUpdateTime()); - }else { - CJReportRiskAnaUnit.setUpdateBy(updateUser.getUserName()); - CJReportRiskAnaUnit.setUpdateDate(infoByRiskId.getCreateTime()); - } - CJReportRiskAnaUnit.setDataSource((byte) 1); - CJReportRiskAnaUnit.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - CJReportRiskAnaUnit.setReportTime(null); - CJReportRiskAnaUnit.setRiskUnitId(infoByRiskId.getRiskListId());//此处封装主表的id - //封装数据 - CJUnitLists.add(CJReportRiskAnaUnit); - //修改原始数据状态为待上传 - handlerReportParam.setId(riskUnitUuid.getId());//此处修改的是附属表 - handlerReportParam.setReportTime(new Date()); - handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - int result = preventRiskUnitUuidService.updateReportStatus(handlerReportParam); - } - }else { - logger.info("【双重预防】当前无风险分析单元数据需要处理"); - } - //写入昌吉州转换表 - 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<PreventRiskEvent> riskEvents = preventRiskEventService.listReportEvent(); - //获取上报数据对象与list - List<PreventCJReportRiskEvent> CJEventLists = new ArrayList<>(); - if (ObjectUtils.isNotEmpty(riskEvents)){ - //遍历,封装数据 - for (PreventRiskEvent riskEvent : riskEvents) { - //String eventUuid = UUID.randomUUID().toString(); - HandlerReportParam handlerReportParam = new HandlerReportParam(); - PreventCJReportRiskEvent CJReportRiskEvent = new PreventCJReportRiskEvent(); - //封装上报昌吉州风险事件数据 - 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("0"); - } - 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); - PreventRiskUnitUuid riskUnitUuidByUnitId = preventRiskUnitUuidService.getRiskUnitUuidByUnitId(riskEvent.getRiskUnitId()); - CJReportRiskEvent.setRiskUnitId(riskUnitUuidByUnitId.getRiskUnitUuid()); - CJReportRiskEvent.setRiskEventName(riskEvent.getRiskEventName()); - CJReportRiskEvent.setRiskEventId(riskEvent.getId()); - //封装数据 - CJEventLists.add(CJReportRiskEvent); - //设置原始数据上报状态 - 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("安全风险事件数据上报已关闭"); - } - - - /** - * 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<PreventRiskControlMeasure> measures = preventRiskControlMeasureService.listReportMeasure(); - //获取上报数据list - List<PreventCJReportRiskControlMeasure> CJMeasureLists = new ArrayList<>(); - HandlerReportParam handlerReportParam = new HandlerReportParam(); - - if (ObjectUtils.isNotEmpty(measures)){ - //遍历,封装数据 - for (PreventRiskControlMeasure measure : measures) { - String measureUuid = UUID.randomUUID().toString(); - //获取上报数据对象 - PreventCJReportRiskControlMeasure CJReportMeasure = new PreventCJReportRiskControlMeasure(); - //转换数据 - // todo 逻辑改变 - PreventRiskControlTemplate controlTemplateById = preventRiskControlTemplateService.getControlTemplateById(measure.getClassify2()); - String classify2 = measure.getClassify1() + "-" + controlTemplateById.getOrderIndex(); - - //封装上报昌吉州管控措施数据 - 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("0"); - } - 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(measure.getCheckContent()); - - //封装数据 - 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 (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<PreventRiskJobAndMeasure> works = preventRiskJobAndMeasureService.listReportWork(); - //获取上报数据对象与list - List<PreventCJReportCheckTaskFromWork> CJTaskFromWorkLists = new ArrayList<>(); - HandlerReportParam handlerReportParam = new HandlerReportParam(); - - if (ObjectUtils.isNotEmpty(works)){ - //遍历,封装数据 - for (PreventRiskJobAndMeasure work : works) { - //通过work中的信息,查询主表数据 - HiddenDangerCheckJob jobById = trHiddenDangerCheckJobService.getJobById(work.getJobId()); - //获取数据对象 - PreventCJReportCheckTaskFromWork CJTaskFromWork = new PreventCJReportCheckTaskFromWork(); - //转换时间周期单位 (1小时,2日,3周,4月,5年) - if (jobById.getTroubleshootTypeCycleType() == 1){ - CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); - CJTaskFromWork.setCheckCycleUnit("小时"); - }else if (jobById.getTroubleshootTypeCycleType() == 2){ - CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); - CJTaskFromWork.setCheckCycleUnit("天"); - }else if (jobById.getTroubleshootTypeCycleType() == 3){ - Long num = jobById.getTroubleshootTypeCycleNum() * 7; - CJTaskFromWork.setCheckCycle(Math.toIntExact(num)); - CJTaskFromWork.setCheckCycleUnit("天"); - }else if (jobById.getTroubleshootTypeCycleType() == 4){ - CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); - CJTaskFromWork.setCheckCycleUnit("月"); - }else if (jobById.getTroubleshootTypeCycleType() == 5){ - CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); - CJTaskFromWork.setCheckCycleUnit("年"); - } - //获取用户信息 - User createUser = trUserService.getUserByLoginName(jobById.getCreateBy()); - User updateUser = trUserService.getUserByLoginName(jobById.getUpdateBy()); - - //封装上报昌吉州任务配置数据 - CJTaskFromWork.setId(work.getJobUuid()); - CJTaskFromWork.setCompanyCode(companyCode); - if (work.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ - CJTaskFromWork.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 - }else { - CJTaskFromWork.setDeleted("0"); - } - CJTaskFromWork.setCreateBy(createUser.getUserName()); - CJTaskFromWork.setCreateDate(jobById.getCreateTime()); - if (ObjectUtils.isEmpty(updateUser)){ - CJTaskFromWork.setUpdateBy(createUser.getUserName()); - CJTaskFromWork.setUpdateDate(jobById.getCreateTime()); - }else { - CJTaskFromWork.setUpdateBy(updateUser.getUserName()); - CJTaskFromWork.setUpdateDate(jobById.getCreateTime()); - } - CJTaskFromWork.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - CJTaskFromWork.setReportTime(null); - CJTaskFromWork.setDataSource((byte) 1); - CJTaskFromWork.setRiskMeasureId(work.getMeasureUuid()); - CJTaskFromWork.setWorkId(jobById.getJobId()); - //封装数据 - CJTaskFromWorkLists.add(CJTaskFromWork); - //设置原始数据上报状态 - handlerReportParam.setId(work.getId()); - handlerReportParam.setReportTime(new Date()); - handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - preventRiskJobAndMeasureService.updateWorkReportStatus(handlerReportParam); - - } - }else { - 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<PreventRiskDangerCheckLog> tasks = preventRiskDangerCheckLogService.listReportTask(); - //获取上报数据对象 - List<PreventCJReportCheckRecordFromTask> CJRecordFromTaskLists = new ArrayList<>(); - HandlerReportParam handlerReportParam = new HandlerReportParam(); - - if (ObjectUtils.isNotEmpty(tasks)){ - //遍历,封装数据 - for (PreventRiskDangerCheckLog task : tasks) { - //获取任务记录主表信息 - HiddenDangerCheck hiddenDangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(task.getCheckId()); - //获取任务附属表信息 - PreventRiskJobAndMeasure jobAndMeasureByJobId = preventRiskJobAndMeasureService.getJobAndMeasureByJobId(task.getJobId()); - //转换检查结果 - /** - * examineUserName,checkTime 任务执行后,不为空 不使用; - * tr_hidden_danger_check 的 scheduleCheckStatus 0 未排查, 1已排查 - * 结果暂时不写入,需要后续处理 ---检查源任务相关的检查点结果 - * 1.找到每个点的提交接口,进行数据处理 - * 2.写一个定时任务处理(备用) - * */ - - /** - * todo 排查后的任务才上报 - * examineUserName,checkTime 任务执行后,不为空 不使用; - * tr_hidden_danger_check 的 scheduleCheckStatus 0 未排查, 1已排查 - * todo 先找到所有已经排查的任务,然后查询 tr_hidden_danger_check_point ,whether_danger 是否为隐患(0为正常 1为隐患) ,未处理的任务,该值为空 - * 部分查询结果为空,需要对tr_hidden_danger_check_point结果做判空 - * */ - //如果已经执行过,进入方法 - if (Integer.valueOf(hiddenDangerCheckById.getScheduleCheckStatus()) == 1){ - - List<HiddenDangerCheckPoint> hiddenDangerCheckPointList = trHiddenDangerCheckPointService.getHiddenDangerCheckPointByCheckId(task.getCheckId()); - - //避免个别任务无检查点的情况 - if (ObjectUtils.isEmpty(hiddenDangerCheckPointList)) { - logger.info("【双重预防】排查任务记录CJ:异常,无检查点..."); - }else { - for (HiddenDangerCheckPoint hiddenDangerCheckPoint : hiddenDangerCheckPointList) { - //获取上报数据对象 - PreventCJReportCheckRecordFromTask CJRecordFromTask = new PreventCJReportCheckRecordFromTask(); - CJRecordFromTask.setCheckStatus("0");// 0-正常;1-存在隐患;2-未处理;3-其他 - if (Integer.valueOf(hiddenDangerCheckPoint.getWhetherDanger()) == 1){ - CJRecordFromTask.setCheckStatus("1");// 0-正常;1-存在隐患;2-未处理;3-其他 - } - User createUser = new User(); - createUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getCreateBy()); - if(ObjectUtils.isEmpty(createUser)){ - createUser = trUserService.getUserByName(hiddenDangerCheckById.getCreateBy()); - } - User updateUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getUpdateBy()); - - //封装上报昌吉州的任务数据 todo taskUUid -// String taskUuid = UUID.randomUUID().toString(); - CJRecordFromTask.setId(UUID.randomUUID().toString()); - CJRecordFromTask.setCompanyCode(companyCode); - CJRecordFromTask.setCreateBy(createUser.getUserName()); - CJRecordFromTask.setCreateDate(hiddenDangerCheckById.getCreateTime()); - CJRecordFromTask.setCreateByMobile(createUser.getPhonenumber()); - if (ObjectUtils.isEmpty(updateUser)){ - CJRecordFromTask.setUpdateBy(createUser.getUserName()); - CJRecordFromTask.setUpdateDate(hiddenDangerCheckById.getCreateTime()); - CJRecordFromTask.setUpdateByMobile(createUser.getPhonenumber()); - }else { - CJRecordFromTask.setUpdateBy(updateUser.getUserName()); - CJRecordFromTask.setUpdateDate(hiddenDangerCheckById.getUpdateTime()); - CJRecordFromTask.setUpdateByMobile(updateUser.getPhonenumber()); - } - - if (task.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ - CJRecordFromTask.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 - }else { - CJRecordFromTask.setDeleted("0"); - } - CJRecordFromTask.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - CJRecordFromTask.setReportTime(null); - CJRecordFromTask.setDataSource((byte) 1); - List<PreventRiskDangerCheckAndMeasure> baseCheckPointAndMeasure = riskDangerCheckAndMeasureService.getByBaseCheckPointId(hiddenDangerCheckPoint.getCheckPointId()); - //获取该条记录对应的管控措施id, - Long controlMeasureId = 1L; - for (PreventRiskDangerCheckAndMeasure checkAndMeasure : baseCheckPointAndMeasure) { - controlMeasureId = checkAndMeasure.getControlMeasureId(); - } - //获取该条记录对应的管控措施uuid - PreventRiskControlMeasure preventRiskControlMeasureById = preventRiskControlMeasureService.getPreventRiskControlMeasureById(controlMeasureId); - //通过管控措施uuid ,jobId(workId),在任务上报表中,找到任务对应的uuid - PreventCJReportCheckTaskFromWork preventCJReportCheckTaskFromWork = CJTaskFromWorkService.geByMeasureUUidAndJobId(preventRiskControlMeasureById.getUuid(), task.getJobId()); - CJRecordFromTask.setCheckTaskId(preventCJReportCheckTaskFromWork.getId()); - CJRecordFromTask.setCheckTime(hiddenDangerCheckById.getCheckTime()); - CJRecordFromTask.setTaskId(task.getCheckId()); - - //封装数据 - CJRecordFromTaskLists.add(CJRecordFromTask); - } - } - - - //设置原始数据上报状态 - handlerReportParam.setId(task.getId()); - handlerReportParam.setReportTime(new Date()); - handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - preventRiskDangerCheckLogService.updateTaskReportStatus(handlerReportParam); - - } -// String checkStatus = null; -// if (ObjectUtils.isEmpty(task.getResult() )){ -// checkStatus = "2"; -// }else if (task.getResult() == 2){ -// checkStatus = "1"; -// }else if (task.getResult() == 1){ -// checkStatus = "0"; -// } - } - }else { - 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("【##】6.检索隐患数据..."); - - //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) - List<PreventRiskDangerInfo> dangerManages = preventRiskDangerInfoService.listReportDanger(); - //获取上报数据list - List<PreventCJReportDangerInfo> CJDangerInfoLists = new ArrayList<>(); - - if (ObjectUtils.isNotEmpty(dangerManages)){ - HandlerReportParam handlerReportParam = new HandlerReportParam(); - //遍历,封装数据 - for (PreventRiskDangerInfo dangerManage : dangerManages) { - - //获取隐患信息主表信息 - HiddenDangerCheckPoint hiddenDanger = trHiddenDangerCheckPointService.getHiddenDangerCheckPointById(dangerManage.getDangerCheckPointId()); - //获取上报数据对象 - PreventCJReportDangerInfo CJDangerInfo = new PreventCJReportDangerInfo(); - - //通过用户名,获取涉及到的各位用户的真实姓名 - User createUser = new User(); - createUser = trUserService.getUserByLoginName(hiddenDanger.getCreateBy()); - if(ObjectUtils.isEmpty(createUser)){ - createUser = trUserService.getUserByName(hiddenDanger.getCreateBy()); - } - User updateUser = trUserService.getUserByLoginName(hiddenDanger.getUpdateBy()); - if (ObjectUtils.isNotEmpty(hiddenDanger.getRegisterUserName())){ - User registerUser = trUserService.getUserByLoginName(hiddenDanger.getRegisterUserName()); - //登记人信息 - CJDangerInfo.setRegistrant(registerUser.getUserName());//登记人 - CJDangerInfo.setRegistTime(hiddenDanger.getRegisterCreateTime());//登记时间 - } - - if (ObjectUtils.isNotEmpty(hiddenDanger.getRectifyUserName())){ - User rectifyUser = trUserService.getUserByLoginName(hiddenDanger.getRectifyUserName()); - //整改人信息 - CJDangerInfo.setLiablePerson(rectifyUser.getUserName());//整改责任人 - } - - if (ObjectUtils.isNotEmpty(hiddenDanger.getAcceptUserName())){ - //验收人信息 - CJDangerInfo.setCheckAcceptPerson(hiddenDanger.getAcceptUserName());//验收人 - CJDangerInfo.setCheckAcceptComment(hiddenDanger.getAcceptOpinion());//验收情况 - CJDangerInfo.setCheckAcceptTime(hiddenDanger.getAcceptCreateTime());//验收时间 - } - //如果排查任务正常存在,封装任务相关数据 - if (Integer.parseInt(hiddenDanger.getDangerSources()) != 2){ - HiddenDangerCheck dangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(hiddenDanger.getCheckId()); - - PreventRiskDangerCheckLog dangerCheckLogByCheckId = preventRiskDangerCheckLogService.getByDangerCheckByCheckId(hiddenDanger.getCheckId()); - CJDangerInfo.setCheckRecordId(dangerCheckLogByCheckId.getUuid());//隐患排查任务记录uuid - //找排查点,然后查措施 - PreventRiskCheckUnit unit = preventRiskCheckUnitService.getUnitByBaseCheckPointId(hiddenDanger.getCheckPointId()); - //查管控措施 - PreventRiskControlMeasure controlMeasureById = preventRiskControlMeasureService.getPreventRiskControlMeasureById(unit.getControlMeasureId()); - CJDangerInfo.setRiskMeasureId(controlMeasureById.getUuid());//管控措施uuid - CJDangerInfo.setControlMeasures(controlMeasureById.getCheckContent());//控制措施 ,整改措施 - }else { - CJDangerInfo.setCheckRecordId(null);//隐患排查任务记录uuid - CJDangerInfo.setRiskMeasureId(null);//管控措施uuid - } - - if (dangerManage.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ - CJDangerInfo.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 - }else { - CJDangerInfo.setDeleted("0"); - } - CJDangerInfo.setId(dangerManage.getUuid()); - CJDangerInfo.setCompanyCode(companyCode); - CJDangerInfo.setHazardCode(dangerManage.getHazardCode());//风险分析对象编码 - CJDangerInfo.setCreateBy(createUser.getUserName()); - CJDangerInfo.setCreateDate(hiddenDanger.getCreateTime()); - - if (ObjectUtils.isEmpty(updateUser)){ - CJDangerInfo.setUpdateBy(createUser.getUserName()); - CJDangerInfo.setUpdateDate(hiddenDanger.getCreateTime()); - }else { - CJDangerInfo.setUpdateBy(updateUser.getUserName()); - CJDangerInfo.setUpdateDate(hiddenDanger.getUpdateTime()); - } - CJDangerInfo.setHazardCategory("0"); - if (dangerManage.getId() <= 383){ - PreventTaskType taskTypeInfo = taskTypeService.getInfoByTaskId(dangerManage.getId()); - int i = 1; - CJDangerInfo.setHazardCategory(taskTypeInfo.getType().toString()); - } - - CJDangerInfo.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - CJDangerInfo.setReportTime(null); - CJDangerInfo.setDataSource((byte) 1); - CJDangerInfo.setDangerName(hiddenDanger.getDangerName()); - CJDangerInfo.setDangerLevel(hiddenDanger.getDangerLevel());//隐患等级 - CJDangerInfo.setDangerSrc(dangerManage.getDangerSrc().toString());//隐患来源 - CJDangerInfo.setDangerManageType(hiddenDanger.getRectifyType());//隐患治理类型 - CJDangerInfo.setDangerDesc(hiddenDanger.getDangerDescription());//隐患描述 - CJDangerInfo.setDangerReason(dangerManage.getDangerReason());//隐患产生原因 - CJDangerInfo.setCost(hiddenDanger.getRectifyFund());//资金 - CJDangerInfo.setDangerManageDeadline(hiddenDanger.getRectifyDeadlineTime());//治理期限 - CJDangerInfo.setDangerState(dangerManage.getDangerState().toString());//隐患状态 - CJDangerInfo.setHazardDangerType(dangerManage.getHazardDangerType().toString());//隐患类型 - CJDangerInfo.setDangerManagerId(dangerManage.getId()); - //封装数据 - CJDangerInfoLists.add(CJDangerInfo); - //设置原始数据上报状态 - handlerReportParam.setId(dangerManage.getId()); - handlerReportParam.setReportTime(new Date()); - handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - //修改隐患信息附属表状态 - preventRiskDangerInfoService.updateDangerInfoReportStatus(handlerReportParam); - - } - - }else { - 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("隐患信息数据上报已关闭"); - } - - - - - /** - * 7、检索检修记录数据 - * */ - //读取风险分析单元数据上报主配置信息 - PreventReportConfig overhaulReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.OVERHAUL_LOG_DANGER_INFO.getCode()); - //如果风险事件主配置开启上报 - if (overhaulReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ - - //logger.info("【##】2.检索检修记录..."); - //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) - List<PreventOverhaulLog> preventOverhaulLogList = overhaulLogService.listReportOverhaulLog(); - //获取上报数据对象与list - List<PreventCJReportOverhaulLog> CJOverhaulLogLists = new ArrayList<>(); - if (ObjectUtils.isNotEmpty(preventOverhaulLogList)){ - //遍历,封装数据 - for (PreventOverhaulLog preventOverhaulLog : preventOverhaulLogList) { - HandlerReportParam handlerReportParam = new HandlerReportParam(); - PreventCJReportOverhaulLog CJOverhaulLog = new PreventCJReportOverhaulLog(); - - //封装上报昌吉州检修记录数据 - CJOverhaulLog.setId(preventOverhaulLog.getUuid()); - if (preventOverhaulLog.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ - CJOverhaulLog.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 - }else { - CJOverhaulLog.setDeleted("0"); - } - CJOverhaulLog.setCompanyCode(companyCode); - CJOverhaulLog.setHazardCode(preventOverhaulLog.getHazardCode()); - CJOverhaulLog.setRiskUnitId(preventOverhaulLog.getRiskUnitUuid()); - CJOverhaulLog.setStopStartTime(preventOverhaulLog.getStopStartTime()); - CJOverhaulLog.setStopEndTime(preventOverhaulLog.getStopEndTime()); - CJOverhaulLog.setStopReason(preventOverhaulLog.getStopReason()); - CJOverhaulLog.setCreateBy(preventOverhaulLog.getCreateByUserName()); - CJOverhaulLog.setCreateDate(preventOverhaulLog.getGmtCreate()); - CJOverhaulLog.setUpdateBy(preventOverhaulLog.getCreateByUserName()); - CJOverhaulLog.setUpdateDate(preventOverhaulLog.getGmtModitify()); - CJOverhaulLog.setReportTime(null); - CJOverhaulLog.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - CJOverhaulLog.setDataSource((byte) 1); - - //封装数据 - CJOverhaulLogLists.add(CJOverhaulLog); - //设置原始数据上报状态 - handlerReportParam.setId(preventOverhaulLog.getId()); - handlerReportParam.setReportTime(new Date()); - handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); - int result = overhaulLogService.updateOverhaulReportStatus(handlerReportParam); - if (result < 1){ - throw new AusinessException(E.ADD_FAIL.getCode(), "检修记录数据状态修改失败"); - } - } - }else { - logger.info("【检修记录】当前无检修记录数据需要处理"); - } - //写入昌吉州转换表 - for (PreventCJReportOverhaulLog cjOverhaulLog : CJOverhaulLogLists) { - int result = reportOverhaulLogService.insertCJOverhaulLists(cjOverhaulLog); - if (result < 1){ - throw new AusinessException(E.ADD_FAIL.getCode(), "检修记录数据状态修改失败"); - } - logger.info("【检修记录】2.检修记录CJ:数据处理..."); - } - step = 3; - }else { - step = 3; - 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<PreventRiskEvent> riskEvents = preventRiskEventService.listReportEvent(); -// //获取上报数据对象与list -// List<PreventCJReportPoint> 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("安全风险事件数据上报已关闭"); -// } - - - } -} +package com.ruoyi.doublePrevention.scheduls; + + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.doublePrevention.entity.*; +import com.ruoyi.doublePrevention.entity.CJReport.*; +import com.ruoyi.doublePrevention.enums.E; +import com.ruoyi.doublePrevention.enums.SyncEnum; +import com.ruoyi.doublePrevention.exception.AusinessException; +import com.ruoyi.doublePrevention.repository.param.HandlerReportParam; +import com.ruoyi.doublePrevention.service.baseService.*; +import com.ruoyi.project.system.dept.domain.Dept; +import com.ruoyi.project.system.dept.service.IDeptService; +import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.project.system.user.service.IUserService; +import com.ruoyi.project.tr.HiddenDangerCheckJob.domain.HiddenDangerCheckJob; +import com.ruoyi.project.tr.HiddenDangerCheckJob.service.IHiddenDangerCheckJobService; +import com.ruoyi.project.tr.hiddenDangerCheck.domain.HiddenDangerCheck; +import com.ruoyi.project.tr.hiddenDangerCheck.service.IHiddenDangerCheckService; +import com.ruoyi.project.tr.hiddenDangerCheckPoint.domain.HiddenDangerCheckPoint; +import com.ruoyi.project.tr.hiddenDangerCheckPoint.service.IHiddenDangerCheckPointService; +import com.ruoyi.project.tr.riskList.domain.RiskList; +import com.ruoyi.project.tr.riskList.service.IRiskListService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +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.text.SimpleDateFormat; +import java.util.*; + +@Slf4j +@Component +public class SearchReportDateSchedule { + + + public static SimpleDateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd 06:30:00"); + public static SimpleDateFormat endFormat = new SimpleDateFormat("yyyy-MM-dd 23:59:59"); + + public static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Autowired + private PreventReportConfigService preventReportConfigService; + + @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 IDeptService trDeptService; //部门服务 + @Autowired + private IUserService trUserService; //用户服务 + + @Autowired + private IRiskListService trRiskAnaUnitService; //风险设备、分析单元 + @Autowired + private PreventRiskUnitUuidService preventRiskUnitUuidService; //风险设备、分析单元附属表 + + @Autowired + private PreventRiskEventService preventRiskEventService; + @Autowired + private PreventRiskControlMeasureService preventRiskControlMeasureService; + @Autowired + private PreventRiskControlTemplateService preventRiskControlTemplateService; + + @Autowired + private IHiddenDangerCheckJobService trHiddenDangerCheckJobService;//排查任务job + @Autowired + private PreventRiskJobAndMeasureService preventRiskJobAndMeasureService;//排查任务附属表 + + @Autowired + private IHiddenDangerCheckService trHiddenDangerCheckService;//排查任务记录 + @Autowired + private PreventRiskDangerCheckLogService preventRiskDangerCheckLogService;//排查任务记录附属表 + + @Autowired + private IHiddenDangerCheckPointService trHiddenDangerCheckPointService;//隐患信息上报、整改、验收 + @Autowired + private PreventRiskDangerInfoService preventRiskDangerInfoService;//隐患信息附属表 + + @Autowired + private PreventRiskCheckUnitService preventRiskCheckUnitService;//管控措施,任务清单对应关系。基础排查点附属表 + @Autowired + private PreventRiskDangerCheckAndMeasureService riskDangerCheckAndMeasureService;//管控措施,任务清单对应关系。基础排查点附属表 + + @Autowired + private PreventTaskTypeService taskTypeService;//管控措施,任务清单对应关系。基础排查点附属表 + + @Autowired + private PreventOverhaulLogService overhaulLogService; + @Autowired + private PreventCJReportOverhaulLogService reportOverhaulLogService; + + + @Transactional + @Scheduled(cron = "0 0/2 * * * ? ") // 分钟 +// @Scheduled(cron = "0/10 * * * * ?") // 30秒 + // @Scheduled(cron = "0 0/25 * * * ? ") // 分钟 + public void searchReportDate() { + + log.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())) { + + log.info("【##】1.检索风险分析单元..."); + + //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) + List<PreventRiskUnitUuid> riskUnitUuidList = preventRiskUnitUuidService.listRiskAnaUnit(); + //获取上报数据list +// List<PreventReportRiskAnaUnit> unitLists = new ArrayList<>(); + List<PreventCJReportRiskAnaUnit> CJUnitLists = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(riskUnitUuidList)) { + HandlerReportParam handlerReportParam = new HandlerReportParam(); + //遍历,封装数据 + for (PreventRiskUnitUuid riskUnitUuid : riskUnitUuidList) { + //查询漯安表中对应数据 + RiskList infoByRiskId = trRiskAnaUnitService.getInfoByRiskListId(riskUnitUuid.getRiskUnitId()); + //获取上报数据对象 + PreventCJReportRiskAnaUnit CJReportRiskAnaUnit = new PreventCJReportRiskAnaUnit(); + + //此类方法已经修改,实际使用username + User createUser = trUserService.getUserByLoginName(infoByRiskId.getCreateBy()); + User updateUser = trUserService.getUserByLoginName(infoByRiskId.getUpdateBy()); + User userById = trUserService.getUserById(infoByRiskId.getUserId()); + Dept depById = trDeptService.getDepById(infoByRiskId.getDeptId()); + + //封装上报昌吉州的风险分析单元数据 + CJReportRiskAnaUnit.setId(riskUnitUuid.getRiskUnitUuid());//此处封装附属表的uuid + CJReportRiskAnaUnit.setCompanyCode(companyCode); + CJReportRiskAnaUnit.setRiskUnitName(infoByRiskId.getRiskListName()); + CJReportRiskAnaUnit.setHazardCode(infoByRiskId.getRiskListNum()); + CJReportRiskAnaUnit.setHazardDep(depById.getDeptName()); + CJReportRiskAnaUnit.setHazardLiablePerson(userById.getUserName()); + CJReportRiskAnaUnit.setDeleted("0"); +// if (riskUnitUuid.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ +// CJReportRiskAnaUnit.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 +// }else { +// CJReportRiskAnaUnit.setDeleted(riskAnaUnit.getDeleteStatus().toString()); +// } + CJReportRiskAnaUnit.setCreateBy(createUser.getUserName()); + CJReportRiskAnaUnit.setCreateDate(infoByRiskId.getCreateTime()); + if (ObjectUtils.isEmpty(updateUser)) { + CJReportRiskAnaUnit.setUpdateBy(createUser.getUserName()); + CJReportRiskAnaUnit.setUpdateDate(infoByRiskId.getUpdateTime()); + } else { + CJReportRiskAnaUnit.setUpdateBy(updateUser.getUserName()); + CJReportRiskAnaUnit.setUpdateDate(infoByRiskId.getCreateTime()); + } + CJReportRiskAnaUnit.setDataSource((byte) 1); + CJReportRiskAnaUnit.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJReportRiskAnaUnit.setReportTime(null); + CJReportRiskAnaUnit.setZhunReportTime(null); + CJReportRiskAnaUnit.setZhunReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJReportRiskAnaUnit.setRiskUnitId(infoByRiskId.getRiskListId());//此处封装主表的id + //封装数据 + CJUnitLists.add(CJReportRiskAnaUnit); + //修改原始数据状态为待上传 + handlerReportParam.setId(riskUnitUuid.getId());//此处修改的是附属表 + handlerReportParam.setReportTime(new Date()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + int result = preventRiskUnitUuidService.updateReportStatus(handlerReportParam); + } + } else { + log.info("【双重预防】当前无风险分析单元数据需要处理"); + } + //写入昌吉州转换表 + for (PreventCJReportRiskAnaUnit CJUnit : CJUnitLists) { + CJRiskAnaUnitService.insertUnitList(CJUnit); + log.info("【双重预防】1.风险分析单元CJ:数据处理..."); + } + step = 2; + } else { + step = 2; + log.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<PreventRiskEvent> riskEvents = preventRiskEventService.listReportEvent(); + //获取上报数据对象与list + List<PreventCJReportRiskEvent> CJEventLists = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(riskEvents)) { + //遍历,封装数据 + for (PreventRiskEvent riskEvent : riskEvents) { + //String eventUuid = UUID.randomUUID().toString(); + HandlerReportParam handlerReportParam = new HandlerReportParam(); + PreventCJReportRiskEvent CJReportRiskEvent = new PreventCJReportRiskEvent(); + //封装上报昌吉州风险事件数据 + 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("0"); + } + 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.setZhunReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJReportRiskEvent.setZhunReportTime(null); + CJReportRiskEvent.setDataSource((byte) 1); + PreventRiskUnitUuid riskUnitUuidByUnitId = preventRiskUnitUuidService.getRiskUnitUuidByUnitId(riskEvent.getRiskUnitId()); + CJReportRiskEvent.setRiskUnitId(riskUnitUuidByUnitId.getRiskUnitUuid()); + CJReportRiskEvent.setRiskEventName(riskEvent.getRiskEventName()); + CJReportRiskEvent.setRiskEventId(riskEvent.getId()); + //封装数据 + CJEventLists.add(CJReportRiskEvent); + //设置原始数据上报状态 + handlerReportParam.setId(riskEvent.getId()); + handlerReportParam.setReportTime(new Date()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + preventRiskEventService.updateEventReportStatus(handlerReportParam); + } + } else { + log.info("【双重预防】当前无安全风险事件数据需要处理"); + } + //写入昌吉州转换表 + for (PreventCJReportRiskEvent CJEvent : CJEventLists) { + CJEventService.insertEventLists(CJEvent); + log.info("【双重预防】2.风险分析事件CJ:数据处理..."); + } + step = 3; + } else { + step = 3; + log.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<PreventRiskControlMeasure> measures = preventRiskControlMeasureService.listReportMeasure(); + //获取上报数据list + List<PreventCJReportRiskControlMeasure> CJMeasureLists = new ArrayList<>(); + HandlerReportParam handlerReportParam = new HandlerReportParam(); + + if (ObjectUtils.isNotEmpty(measures)) { + //遍历,封装数据 + for (PreventRiskControlMeasure measure : measures) { + String measureUuid = UUID.randomUUID().toString(); + //获取上报数据对象 + PreventCJReportRiskControlMeasure CJReportMeasure = new PreventCJReportRiskControlMeasure(); + //转换数据 + PreventRiskControlTemplate controlTemplateById = preventRiskControlTemplateService.getControlTemplateById(measure.getClassify2()); + String classify2 = measure.getClassify1() + "-" + controlTemplateById.getOrderIndex(); + + //封装上报昌吉州管控措施数据 + 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("0"); + } + 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.setZhunReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJReportMeasure.setZhunReportTime(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(measure.getCheckContent()); + + + //封装数据 + CJMeasureLists.add(CJReportMeasure); + //设置原始数据上报状态 + handlerReportParam.setId(measure.getId()); + handlerReportParam.setReportTime(new Date()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + preventRiskControlMeasureService.updateMeasureReportStatus(handlerReportParam); + } + } else { + log.info("【双重预防】当前无安全风险管控措施数据需要处理"); + } + + step = 4; + + //写入上报昌吉州转换表 + for (PreventCJReportRiskControlMeasure CJMeasure : CJMeasureLists) { + CJMeasureService.insertMeasureList(CJMeasure); + + log.info("【双重预防】3.安全风险管控措施CJ:数据处理..."); + } + } else { + step = 4; + log.info("安全风险管控措施数据上报已关闭"); + } + + /** + * 4、检索 任务配置 数据 prevent_report_check_record_from_task + * */ + //读取任务配置数据上报主配置信息 + 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<PreventRiskJobAndMeasure> works = preventRiskJobAndMeasureService.listReportWork(); + //获取上报数据对象与list + List<PreventCJReportCheckTaskFromWork> CJTaskFromWorkLists = new ArrayList<>(); + HandlerReportParam handlerReportParam = new HandlerReportParam(); + log.info("检索任务配置开始执行,{}", works.size()); + if (ObjectUtils.isNotEmpty(works)) { + //遍历,封装数据 + for (PreventRiskJobAndMeasure work : works) { + //通过work中的信息,查询主表数据 + HiddenDangerCheckJob jobById = trHiddenDangerCheckJobService.getJobById(work.getJobId()); + //获取数据对象 + PreventCJReportCheckTaskFromWork CJTaskFromWork = new PreventCJReportCheckTaskFromWork(); + //转换时间周期单位 (1小时,2日,3周,4月,5年) + if (jobById.getTroubleshootTypeCycleType() == 1) { + CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); + CJTaskFromWork.setCheckCycleUnit("小时"); + CJTaskFromWork.setWorkStartTime("00:00:00"); + CJTaskFromWork.setWorkEndTime("23:59:59"); + } else if (jobById.getTroubleshootTypeCycleType() == 2) { + CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); + CJTaskFromWork.setCheckCycleUnit("天"); + } else if (jobById.getTroubleshootTypeCycleType() == 3) { + Long num = jobById.getTroubleshootTypeCycleNum() * 7; + CJTaskFromWork.setCheckCycle(Math.toIntExact(num)); + CJTaskFromWork.setCheckCycleUnit("天"); + } else if (jobById.getTroubleshootTypeCycleType() == 4) { + CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); + CJTaskFromWork.setCheckCycleUnit("月"); + } else if (jobById.getTroubleshootTypeCycleType() == 5) { + CJTaskFromWork.setCheckCycle(Math.toIntExact(jobById.getTroubleshootTypeCycleNum())); + CJTaskFromWork.setCheckCycleUnit("年"); + } + //获取用户信息 + User createUser = new User(); + User updateUser = new User(); + createUser = trUserService.getUserByLoginName(jobById.getCreateBy()); + if (ObjectUtils.isEmpty(createUser)) { + createUser = trUserService.getUserByName(jobById.getCreateBy()); + } + + updateUser = trUserService.getUserByLoginName(jobById.getUpdateBy()); + if (ObjectUtils.isEmpty(updateUser)) { + updateUser = trUserService.getUserByName(jobById.getUpdateBy()); + } + + //封装上报昌吉州任务配置数据 + CJTaskFromWork.setId(work.getJobUuid()); + CJTaskFromWork.setCompanyCode(companyCode); + if (work.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())) { + CJTaskFromWork.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 + } else { + CJTaskFromWork.setDeleted("0"); + } + CJTaskFromWork.setCreateBy(createUser.getUserName()); + CJTaskFromWork.setCreateDate(jobById.getCreateTime()); + if (ObjectUtils.isEmpty(updateUser)) { + CJTaskFromWork.setUpdateBy(createUser.getUserName()); + CJTaskFromWork.setUpdateDate(jobById.getCreateTime()); + } else { + CJTaskFromWork.setUpdateBy(updateUser.getUserName()); + CJTaskFromWork.setUpdateDate(jobById.getCreateTime()); + } + CJTaskFromWork.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJTaskFromWork.setReportTime(null); + CJTaskFromWork.setZhunReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJTaskFromWork.setZhunReportTime(null); + CJTaskFromWork.setDataSource((byte) 1); + CJTaskFromWork.setRiskMeasureId(work.getMeasureUuid()); + CJTaskFromWork.setWorkId(jobById.getJobId()); + + //第二版标准新增 + PreventRiskControlMeasure measureById = preventRiskControlMeasureService.getPreventRiskControlMeasureById(work.getMeasureId()); + CJTaskFromWork.setTroubleshootContent(measureById.getCheckContent()); + CJTaskFromWork.setTaskStartTime(jobById.getStartTime()); + + CJTaskFromWork.setWorkDayType("0"); + List<PreventTaskType> typeByJobId = taskTypeService.getInfoByJobId(work.getJobId()); + int typeTag = 0; + for (PreventTaskType taskType : typeByJobId) { + typeTag = taskType.getType(); + } + if (typeTag != 0) { + CJTaskFromWork.setTaskNum("1"); + } + CJTaskFromWork.setWorkType(String.valueOf(typeTag)); + + //封装数据 + CJTaskFromWorkLists.add(CJTaskFromWork); + //设置原始数据上报状态 + handlerReportParam.setId(work.getId()); + handlerReportParam.setReportTime(new Date()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + preventRiskJobAndMeasureService.updateWorkReportStatus(handlerReportParam); + } + } else { + log.info("【双重预防】当前无任务配置数据需要处理"); + } + //写入上报昌吉州数据转换表 + log.info("【双重预防】任务配置CJ数量:{}", CJTaskFromWorkLists.size()); + for (PreventCJReportCheckTaskFromWork CJTaskFromWorks : CJTaskFromWorkLists) { + CJTaskFromWorkService.insertTaskFromWorkList(CJTaskFromWorks); + log.info("【双重预防】任务配置CJ:数据处理..."); + } + } else { + step = 5; + log.info("任务配置数据上报已关闭"); + } + + + /** + * 5、排查任务记录数据 PreventReportCheckRecordFromTask + * */ + //读取安全风险管控措施数据上报主配置信息 + PreventReportConfig recordReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG__CHECK_RECORD.getCode()); + //如果安全风险管控措施主配置开启上报 + if (recordReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())) { + + //logger.info("【##】5.检索排查任务记录数据..."); + log.info("【##】5.检索排查任务记录数据..."); + + //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) + List<PreventRiskDangerCheckLog> tasks = preventRiskDangerCheckLogService.listReportTask(); + List<Long> taskIds = new ArrayList<>(); + //获取上报数据对象 + List<PreventCJReportCheckRecordFromTask> CJRecordFromTaskLists = new ArrayList<>(); + int tag = 0; +// HandlerReportParam handlerReportParam = new HandlerReportParam(); +// List<HandlerReportParam> handlerReportParamList = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(tasks)) { + //获取信息 + List<User> allUserList = trUserService.getAllUser(); + List<PreventRiskControlMeasure> allMeasureList = preventRiskControlMeasureService.getAllMeasureList(); + List<PreventTaskType> allTaskTypeList = taskTypeService.getAllTaskTypeList(); + //遍历,封装数据 + for (PreventRiskDangerCheckLog task : tasks) { + //获取任务记录主表信息 + HiddenDangerCheck hiddenDangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(task.getCheckId()); + //转换检查结果 + //如果已经执行过,进入方法 + if (Integer.valueOf(hiddenDangerCheckById.getScheduleCheckStatus()) == 1) { + + List<HiddenDangerCheckPoint> hiddenDangerCheckPointList = trHiddenDangerCheckPointService.getHiddenDangerCheckPointByCheckId(task.getCheckId()); + + //避免个别任务无检查点的情况 + if (ObjectUtils.isEmpty(hiddenDangerCheckPointList)) { + log.info("【双重预防】排查任务记录CJ:异常,无检查点..."); + } else { + for (HiddenDangerCheckPoint hiddenDangerCheckPoint : hiddenDangerCheckPointList) { + //获取上报数据对象 + PreventCJReportCheckRecordFromTask CJRecordFromTask = new PreventCJReportCheckRecordFromTask(); + CJRecordFromTask.setCheckStatus("0");// 0-正常;1-存在隐患;2-未处理;3-其他 + if (Integer.valueOf(hiddenDangerCheckPoint.getWhetherDanger()) == 1) { + CJRecordFromTask.setCheckStatus("1");// 0-正常;1-存在隐患;2-未处理;3-其他 + } + + User createUser = new User(); + User updateUser = new User(); +// createUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getCreateBy()); +// if(ObjectUtils.isEmpty(createUser)){ +// createUser = trUserService.getUserByName(hiddenDangerCheckById.getCreateBy()); +// } +// updateUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getUpdateBy()); + + + // todo 取出所有用户信息,再循环在匹配 + for (User user : allUserList) { + if (hiddenDangerCheckById.getCreateBy().equals(user.getLoginName())) { + createUser = user; + } + if (hiddenDangerCheckById.getUpdateBy().equals(user.getLoginName())) { + updateUser = user; + } + } + if (ObjectUtils.isEmpty(createUser)) { + for (User user : allUserList) { + if (hiddenDangerCheckById.getCreateBy().equals(user.getUserName())) { + createUser = user; + } + } + } + + + //封装上报昌吉州的任务数据 +// String taskUuid = UUID.randomUUID().toString(); + CJRecordFromTask.setId(UUID.randomUUID().toString()); + CJRecordFromTask.setCompanyCode(companyCode); + CJRecordFromTask.setCreateBy(createUser.getUserName()); + CJRecordFromTask.setCreateDate(hiddenDangerCheckById.getCreateTime()); + CJRecordFromTask.setCreateByMobile(createUser.getPhonenumber()); + if (ObjectUtils.isEmpty(updateUser)) { + CJRecordFromTask.setUpdateBy(createUser.getUserName()); + CJRecordFromTask.setUpdateDate(hiddenDangerCheckById.getCreateTime()); + CJRecordFromTask.setUpdateByMobile(createUser.getPhonenumber()); + } else { + CJRecordFromTask.setUpdateBy(updateUser.getUserName()); + CJRecordFromTask.setUpdateDate(hiddenDangerCheckById.getUpdateTime()); + CJRecordFromTask.setUpdateByMobile(updateUser.getPhonenumber()); + } + + if (task.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())) { + CJRecordFromTask.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 + } else { + CJRecordFromTask.setDeleted("0"); + } + CJRecordFromTask.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJRecordFromTask.setReportTime(null); + CJRecordFromTask.setZhunReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJRecordFromTask.setZhunReportTime(null); + CJRecordFromTask.setDataSource((byte) 1); + List<PreventRiskDangerCheckAndMeasure> baseCheckPointAndMeasure = riskDangerCheckAndMeasureService.getByBaseCheckPointId(hiddenDangerCheckPoint.getCheckPointId()); + //获取该条记录对应的管控措施id, + Long controlMeasureId = 1L; + for (PreventRiskDangerCheckAndMeasure checkAndMeasure : baseCheckPointAndMeasure) { + controlMeasureId = checkAndMeasure.getControlMeasureId(); + } +// //获取该条记录对应的管控措施uuid +// PreventRiskControlMeasure preventRiskControlMeasureById = preventRiskControlMeasureService.getPreventRiskControlMeasureById(controlMeasureId); +// //通过管控措施uuid ,jobId(workId),在任务上报表中,找到任务对应的uuid +// PreventCJReportCheckTaskFromWork preventCJReportCheckTaskFromWork = CJTaskFromWorkService.geByMeasureUUidAndJobId(preventRiskControlMeasureById.getUuid(), task.getJobId()); +// CJRecordFromTask.setCheckTaskId(preventCJReportCheckTaskFromWork.getId()); + // todo 取出所有措施,再循环在匹配 + boolean checkTaskIdExist = true; + for (PreventRiskControlMeasure measure : allMeasureList) { + if (controlMeasureId.equals(measure.getId())) { + //通过管控措施uuid ,jobId(workId),在任务上报表中,找到任务对应的uuid + + PreventCJReportCheckTaskFromWork preventCJReportCheckTaskFromWork = CJTaskFromWorkService.geByMeasureUUidAndJobId(measure.getUuid(), task.getJobId()); + try { + // if(preventCJReportCheckTaskFromWork!=null) { + CJRecordFromTask.setCheckTaskId(preventCJReportCheckTaskFromWork.getId()); + //} + } catch (Exception e) { + checkTaskIdExist = false; + log.info("chekcPointId={},PreventRiskDangerCheckLogId={},controlMeasureId={},measure uuid={},jobId={}", hiddenDangerCheckPoint.getId(), task.getId(), controlMeasureId, measure.getUuid(), task.getJobId()); + log.error(e.getMessage()); + } + } + } + + if (!checkTaskIdExist) { + continue; + } + CJRecordFromTask.setCheckTime(hiddenDangerCheckById.getCheckTime()); + CJRecordFromTask.setTaskId(task.getCheckId()); + //第二版标准新增 + CJRecordFromTask.setMobileCode(task.getMobileCode().toString()); + + int typeTag = 0; +// List<PreventTaskType> typeByJobIds = taskTypeService.getInfoByJobId(task.getJobId()); +// for (PreventTaskType typeByJobId : typeByJobIds) { +// if (typeByJobId.getType()!= 0) { +// typeTag = 1; +// } +// } + + // todo 取出所有任务信息表,再循环在匹配 + for (PreventTaskType taskType : allTaskTypeList) { + if (taskType.getJobId().equals(task.getJobId())) { + if (taskType.getType() != 0) { + typeTag = 1; + } + } + } + + + CJRecordFromTask.setDefend(String.valueOf(typeTag)); + //封装数据 + CJRecordFromTaskLists.add(CJRecordFromTask); + } + } + + //设置原始数据上报状态 +// handlerReportParam.setId(task.getId()); +// handlerReportParam.setReportTime(new Date()); +// handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); +// handlerReportParamList.add(handlerReportParam); +// preventRiskDangerCheckLogService.updateTaskReportStatus(handlerReportParam); + int i = 1; + taskIds.add(task.getId()); + tag++; + } + log.info("【##】5.数据封装完成..."); + + } + } else { + log.info("【双重预防】当前无排查任务记录需要处理"); + } + + if (CJRecordFromTaskLists.size() > 0) { + log.info("【双重预防】排查任务记录CJ:数据处理..."); + log.info("【双重预防】排查任务记录CJ:数据处理开始taskIds..." + JSONObject.toJSONString(taskIds)); + + + //设置原始数据状态 + int taskUpdateResult = preventRiskDangerCheckLogService.updateTaskReportStatusByList(taskIds); + if (taskUpdateResult < taskIds.size()) { + log.error("【双重预防】排查任务记录CJ:数据处理开始taskIds...排查任务记录原始数据更新失败, 取消操作"); + throw new AusinessException(E.ADD_FAIL.getCode(), "排查任务记录原始数据更新失败, 取消操作"); + } + + log.info("【双重预防】排查任务记录CJ:数据处理开始CJRecordFromTaskLists..." + JSONObject.toJSONString(CJRecordFromTaskLists)); + int result = CJTaskRecordService.insertRecordList(CJRecordFromTaskLists); + if (result < CJRecordFromTaskLists.size()) { + log.error("【双重预防】排查任务记录CJ:数据处理开始taskIds...排查任务记录插入失败, 取消操作"); + throw new AusinessException(E.ADD_FAIL.getCode(), "排查任务记录插入失败, 取消操作"); + } + + + } + step = 6; + } else { + step = 6; + log.info("排查任务记录数据上报已关闭"); + } + + + /** + * 6、隐患信息数据 + * */ + //读取安全风险管控措施数据上报主配置信息 + PreventReportConfig dangerReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_DANGER_INFO.getCode()); + //如果安全风险管控措施主配置开启上报 + if (dangerReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())) { + + //logger.info("【##】6.检索隐患数据..."); + + //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) + List<PreventRiskDangerInfo> dangerManages = preventRiskDangerInfoService.listReportDanger(); + //获取上报数据list + List<PreventCJReportDangerInfo> CJDangerInfoLists = new ArrayList<>(); + + if (ObjectUtils.isNotEmpty(dangerManages)) { + HandlerReportParam handlerReportParam = new HandlerReportParam(); + //遍历,封装数据 + for (PreventRiskDangerInfo dangerManage : dangerManages) { + + //获取隐患信息主表信息 + HiddenDangerCheckPoint hiddenDanger = trHiddenDangerCheckPointService.getHiddenDangerCheckPointById(dangerManage.getDangerCheckPointId()); + //获取上报数据对象 + PreventCJReportDangerInfo CJDangerInfo = new PreventCJReportDangerInfo(); + + //通过用户名,获取涉及到的各位用户的真实姓名 + User createUser = new User(); + createUser = trUserService.getUserByLoginName(hiddenDanger.getCreateBy()); +// createUser = trUserService.getUserByLoginName("guotai"); + if (ObjectUtils.isEmpty(createUser)) { + createUser = trUserService.getUserByName(hiddenDanger.getCreateBy()); + } + User updateUser = trUserService.getUserByLoginName(hiddenDanger.getUpdateBy()); +// User updateUser = trUserService.getUserByLoginName("guotai"); + if (ObjectUtils.isNotEmpty(hiddenDanger.getRegisterUserName())) { + User registerUser = trUserService.getUserByLoginName(hiddenDanger.getRegisterUserName()); + //登记人信息 + CJDangerInfo.setRegistrant(registerUser.getUserName());//登记人 + CJDangerInfo.setRegistTime(hiddenDanger.getRegisterCreateTime());//登记时间 + } + + CJDangerInfo.setCost(String.valueOf(0));//初始值给0 + if (ObjectUtils.isNotEmpty(hiddenDanger.getRectifyUserName())) { + User rectifyUser = trUserService.getUserByLoginName(hiddenDanger.getRectifyUserName()); + //整改人信息 + CJDangerInfo.setLiablePerson(rectifyUser.getUserName());//整改责任人 + if (!StringUtils.isEmpty(hiddenDanger.getRectifyFund())) { + String REGEX_CHINESE = "[\u4e00-\u9fa5]";// 中文正则 + String cost = hiddenDanger.getRectifyFund().replaceAll(REGEX_CHINESE, "").trim(); + if (StringUtils.isEmpty(cost)) { + CJDangerInfo.setCost(null);//资金 + } else { + CJDangerInfo.setCost(cost);//资金 + } + } else { + CJDangerInfo.setCost(null);//资金 + } + + } + + if (ObjectUtils.isNotEmpty(hiddenDanger.getAcceptUserName())) { + //验收人信息 + CJDangerInfo.setCheckAcceptPerson(hiddenDanger.getAcceptUserName());//验收人 + CJDangerInfo.setCheckAcceptComment(hiddenDanger.getAcceptOpinion());//验收情况 + CJDangerInfo.setCheckAcceptTime(hiddenDanger.getAcceptCreateTime());//验收时间 + } + + //如果排查任务正常存在,封装任务相关数据 +// if (Integer.parseInt(hiddenDanger.getDangerSources()) != 2){ +// HiddenDangerCheck dangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(hiddenDanger.getCheckId()); +// +// PreventRiskDangerCheckLog dangerCheckLogByCheckId = preventRiskDangerCheckLogService.getByDangerCheckByCheckId(hiddenDanger.getCheckId()); +// CJDangerInfo.setCheckRecordId(dangerCheckLogByCheckId.getUuid());//隐患排查任务记录uuid +// //找排查点,然后查措施 +// PreventRiskCheckUnit unit = preventRiskCheckUnitService.getUnitByBaseCheckPointId(hiddenDanger.getCheckPointId()); +// //查管控措施 +// PreventRiskControlMeasure controlMeasureById = preventRiskControlMeasureService.getPreventRiskControlMeasureById(unit.getControlMeasureId()); +// CJDangerInfo.setRiskMeasureId(controlMeasureById.getUuid());//管控措施uuid +// CJDangerInfo.setControlMeasures(controlMeasureById.getCheckContent());//控制措施 ,整改措施 +// }else { +// CJDangerInfo.setCheckRecordId(null); +// CJDangerInfo.setRiskMeasureId(null); +// } + CJDangerInfo.setCheckRecordId(null); + CJDangerInfo.setRiskMeasureId(null);//默认无任务 + CJDangerInfo.setDeleted("0"); + CJDangerInfo.setId(dangerManage.getUuid()); + CJDangerInfo.setCompanyCode(companyCode); + CJDangerInfo.setHazardCode(dangerManage.getHazardCode()); + CJDangerInfo.setCreateBy(createUser.getUserName()); + CJDangerInfo.setCreateDate(hiddenDanger.getCreateTime()); + + if (ObjectUtils.isEmpty(updateUser)) { + CJDangerInfo.setUpdateBy(createUser.getUserName()); + CJDangerInfo.setUpdateDate(hiddenDanger.getCreateTime()); + } else { + CJDangerInfo.setUpdateBy(updateUser.getUserName()); + CJDangerInfo.setUpdateDate(hiddenDanger.getUpdateTime()); + } + // todo 2024-07-01 需要检查 + CJDangerInfo.setHazardCategory("0"); + if (dangerManage.getId() <= 383) { + PreventTaskType taskTypeInfo = taskTypeService.getInfoByTaskId(dangerManage.getId()); + int i = 1; + CJDangerInfo.setHazardCategory(taskTypeInfo.getType().toString()); + } + CJDangerInfo.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJDangerInfo.setReportTime(null); + CJDangerInfo.setZhunReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + CJDangerInfo.setZhunReportTime(null); + CJDangerInfo.setDataSource((byte) 1); + CJDangerInfo.setDangerName(hiddenDanger.getDangerName()); + CJDangerInfo.setDangerLevel(hiddenDanger.getDangerLevel()); + CJDangerInfo.setDangerSrc(dangerManage.getDangerSrc().toString()); + if (hiddenDanger.getRectifyType().equals("1")) { + CJDangerInfo.setDangerManageType("0"); + } else { + CJDangerInfo.setDangerManageType("1"); + } + CJDangerInfo.setDangerDesc(hiddenDanger.getDangerDescription()); + CJDangerInfo.setDangerReason(dangerManage.getDangerReason()); + CJDangerInfo.setDangerManageDeadline(hiddenDanger.getRectifyDeadlineTime()); + if (ObjectUtils.isNotEmpty(dangerManage.getDangerState())) { + CJDangerInfo.setDangerState(dangerManage.getDangerState().toString()); + } + CJDangerInfo.setHazardDangerType(dangerManage.getHazardDangerType().toString()); + CJDangerInfo.setDangerManagerId(dangerManage.getId()); + + CJDangerInfoLists.add(CJDangerInfo); + //设置原始数据上报状态 + handlerReportParam.setId(dangerManage.getId()); + handlerReportParam.setReportTime(new Date()); + handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); + //修改隐患信息附属表状态 + preventRiskDangerInfoService.updateDangerInfoReportStatus(handlerReportParam); + } + } else { + log.info("【双重预防】当前无隐患信息需要处理"); + } + + //插入上报昌吉州转换表 + for (PreventCJReportDangerInfo CJDanger : CJDangerInfoLists) { + log.info("【双重预防】隐患信息插入..."); + int result = CJDangerInfoService.insert(CJDanger); + if (result < 0) { + throw new AusinessException(E.ADD_FAIL.getCode(), "隐患信息插入失败"); + } + log.info("【双重预防】隐患信息:数据处理..."); + } + } else { + log.info("隐患信息数据上报已关闭"); + } + + +// /** +// * 7、检索检修记录数据 +// * */ +// //读取风险分析单元数据上报主配置信息 +// PreventReportConfig overhaulReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.OVERHAUL_LOG_DANGER_INFO.getCode()); +// //如果风险事件主配置开启上报 +// if (overhaulReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){ +// +// //logger.info("【##】2.检索检修记录..."); +// //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime) +// List<PreventOverhaulLog> preventOverhaulLogList = overhaulLogService.listReportOverhaulLog(); +// //获取上报数据对象与list +// List<PreventCJReportOverhaulLog> CJOverhaulLogLists = new ArrayList<>(); +// if (ObjectUtils.isNotEmpty(preventOverhaulLogList)){ +// //遍历,封装数据 +// for (PreventOverhaulLog preventOverhaulLog : preventOverhaulLogList) { +// HandlerReportParam handlerReportParam = new HandlerReportParam(); +// PreventCJReportOverhaulLog CJOverhaulLog = new PreventCJReportOverhaulLog(); +// +// //封装上报昌吉州检修记录数据 +// CJOverhaulLog.setId(preventOverhaulLog.getUuid()); +// if (preventOverhaulLog.getReportStatus().equals(SyncEnum.SYNC_EXEC_SUCCESS.getCode())){ +// CJOverhaulLog.setDeleted("2");//数据更新状态标识,目前仅昌吉州需要 2022-08-10 +// }else { +// CJOverhaulLog.setDeleted("0"); +// } +// CJOverhaulLog.setCompanyCode(companyCode); +// CJOverhaulLog.setHazardCode(preventOverhaulLog.getHazardCode()); +// CJOverhaulLog.setRiskUnitId(preventOverhaulLog.getRiskUnitUuid()); +// CJOverhaulLog.setStopStartTime(preventOverhaulLog.getStopStartTime()); +// CJOverhaulLog.setStopEndTime(preventOverhaulLog.getStopEndTime()); +// CJOverhaulLog.setStopReason(preventOverhaulLog.getStopReason()); +// CJOverhaulLog.setCreateBy(preventOverhaulLog.getCreateByUserName()); +// CJOverhaulLog.setCreateDate(preventOverhaulLog.getGmtCreate()); +// CJOverhaulLog.setUpdateBy(preventOverhaulLog.getCreateByUserName()); +// CJOverhaulLog.setUpdateDate(preventOverhaulLog.getGmtModitify()); +// CJOverhaulLog.setReportTime(null); +// CJOverhaulLog.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); +// CJOverhaulLog.setDataSource((byte) 1); +// +// //封装数据 +// CJOverhaulLogLists.add(CJOverhaulLog); +// //设置原始数据上报状态 +// handlerReportParam.setId(preventOverhaulLog.getId()); +// handlerReportParam.setReportTime(new Date()); +// handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode()); +// int result = overhaulLogService.updateOverhaulReportStatus(handlerReportParam); +// if (result < 1){ +// throw new AusinessException(E.ADD_FAIL.getCode(), "检修记录数据状态修改失败"); +// } +// } +// }else { +// logger.info("【检修记录】当前无检修记录数据需要处理"); +// } +// //写入昌吉州转换表 +// for (PreventCJReportOverhaulLog cjOverhaulLog : CJOverhaulLogLists) { +// int result = reportOverhaulLogService.insertCJOverhaulLists(cjOverhaulLog); +// if (result < 1){ +// throw new AusinessException(E.ADD_FAIL.getCode(), "检修记录数据状态修改失败"); +// } +// logger.info("【检修记录】2.检修记录CJ:数据处理..."); +// } +// step = 3; +// }else { +// step = 3; +// 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<PreventRiskEvent> riskEvents = preventRiskEventService.listReportEvent(); +// //获取上报数据对象与list +// List<PreventCJReportPoint> 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("安全风险事件数据上报已关闭"); +// } + + + } +} -- Gitblit v1.9.2