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.scheduling.annotation.Scheduled;
|
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;//管控措施,任务清单对应关系。基础排查点附属表
|
|
|
@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("【##】4.检索隐患信息数据...");
|
//
|
// //查询所有 选择上报的数据 && (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 = trUserService.getUserByLoginName(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())){
|
// User acceptUser = trUserService.getUserByLoginName(hiddenDanger.getUpdateBy());
|
// //验收人信息
|
// CJDangerInfo.setCheckAcceptPerson(acceptUser.getUserName());//验收人
|
// CJDangerInfo.setCheckAcceptComment(hiddenDanger.getAcceptOpinion());//验收情况
|
// CJDangerInfo.setCheckAcceptTime(hiddenDanger.getAcceptCreateTime());//验收时间
|
// }
|
// //如果排查任务正常存在,封装任务相关数据
|
// HiddenDangerCheck dangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(hiddenDanger.getCheckId());
|
// if (ObjectUtils.isNotEmpty(dangerCheckById)){
|
//
|
// 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.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("隐患信息数据上报已关闭");
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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("安全风险事件数据上报已关闭");
|
// }
|
|
|
}
|
}
|