package com.ruoyi.doublePrevention.scheduls; import com.ruoyi.doublePrevention.entity.CJReport.*; import com.ruoyi.doublePrevention.entity.*; 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.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.*; @Component public class DateSchedule { private final Logger logger = LoggerFactory.getLogger(this.getClass()); 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/1 * * * ? ") // 分钟 // @Scheduled(cron = "0/30 * * * * ?") // 30秒 // @Scheduled(cron = "0 0 0/2 * * ?") // 小时 public void searchReportDate(){ String companyCode = "652310082"; // logger.info("【日巡检】任务数据重置"); // // List workLists = CJTaskFromWorkService.listWork(); // for (PreventCJReportCheckTaskFromWork work : workLists) { // PreventRiskControlMeasure measure = preventRiskControlMeasureService.getPreventRiskControlMeasureByUuid(work.getRiskMeasureId()); // work.setTroubleshootContent(measure.getCheckContent()); // work.setWorkStartTime("00:00:00"); // work.setWorkEndTime("23:59:59"); // int result = CJTaskFromWorkService.updateInfo(work); // if (result < 1){ // throw new RuntimeException("执行出错"); // } // } // logger.info("【包保责任人】任务数据重置"); // // List workLists1 = CJTaskFromWorkService.listWork1(); // for (PreventCJReportCheckTaskFromWork work : workLists1) { // PreventRiskControlMeasure measure = preventRiskControlMeasureService.getPreventRiskControlMeasureByUuid(work.getRiskMeasureId()); // work.setTroubleshootContent(measure.getCheckContent()); // HiddenDangerCheckJob jobById = trHiddenDangerCheckJobService.getJobById(work.getWorkId()); // work.setTaskStartTime(jobById.getStartTime()); // work.setWorkDayType("2"); // List infoByJobId = taskTypeService.getInfoByJobId(work.getWorkId()); // int typeTag = 0; // for (PreventTaskType taskType : infoByJobId) { // typeTag = taskType.getType(); // } // work.setWorkType(String.valueOf(typeTag)); // work.setTaskNum("1"); // int result = CJTaskFromWorkService.updateInfo1(work); // if (result < 1){ // throw new RuntimeException("执行出错"); // } // } // // logger.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 works = preventRiskJobAndMeasureService.listReportWorkTest(); // //获取上报数据对象与list // List 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("小时"); // 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 = 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((byte) 77); // CJTaskFromWork.setDeleted("2");// // // CJTaskFromWork.setReportTime(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 typeByJobId = taskTypeService.getInfoByJobId(work.getJobId()); // int typeTag = 0; // for (PreventTaskType taskType : typeByJobId) { // typeTag = taskType.getType(); // } // CJTaskFromWork.setWorkType(String.valueOf(typeTag)); // if (typeTag !=0){ // CJTaskFromWork.setTaskNum("1"); // } // //封装数据 // 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 { // logger.info("任务配置数据上报已关闭"); // } // // } }