16639036659
2023-07-03 e3fded6dd62d9606edab192c98f9aca5177e95e0
src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java
@@ -24,9 +24,12 @@
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.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -37,6 +40,8 @@
    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");
    @Autowired
    private PreventReportConfigService preventReportConfigService;
@@ -98,15 +103,15 @@
    private PreventTaskTypeService taskTypeService;//管控措施,任务清单对应关系。基础排查点附属表
    @Autowired
    private PreventOverhaulLogService overhaulLogService;//隐患信息附属表
    private PreventOverhaulLogService overhaulLogService;
    @Autowired
    private PreventCJReportOverhaulLogService reportOverhaulLogService;//隐患信息附属表
    private PreventCJReportOverhaulLogService reportOverhaulLogService;
    @Transactional
//    @Scheduled(cron = "0 0/1 * * * ? ")    // 分钟
//    @Scheduled(cron = "0/30 * * * * ?")  // 30秒
//    @Scheduled(cron = "0 0 0/2 * * ?")  // 小时
    @Scheduled(cron = "0 0 0/2 * * ?")  // 小时
    public void searchReportDate(){
@@ -276,7 +281,6 @@
                    //获取上报数据对象
                    PreventCJReportRiskControlMeasure CJReportMeasure = new PreventCJReportRiskControlMeasure();
                    //转换数据
                    // todo 逻辑改变
                    PreventRiskControlTemplate controlTemplateById = preventRiskControlTemplateService.getControlTemplateById(measure.getClassify2());
                    String classify2 = measure.getClassify1() + "-" + controlTemplateById.getOrderIndex();
@@ -330,7 +334,6 @@
        /**
         * 4、检索 任务配置 数据 prevent_report_check_record_from_task
         * 本数据以  todo
         * */
        //读取任务配置数据上报主配置信息
        PreventReportConfig workReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_TASK_FROM_WORK.getCode());
@@ -394,6 +397,25 @@
                    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());
                    if (jobById.getTroubleshootTypeCycleType() == 1){
                        Date date = new Date();
                        CJTaskFromWork.setWorkStartTime(new Date(startFormat.format(date)));//todo  这个时间如何确定?
                        CJTaskFromWork.setWorkEndTime(new Date(endFormat.format(date)));
                    }
                    CJTaskFromWork.setWorkDayType("0");
                    List<PreventTaskType> typeByJobId = taskTypeService.getInfoByJobId(work.getJobId());
                    int typeTag = 0;
                    for (PreventTaskType taskType : typeByJobId) {
                        typeTag = taskType.getType();
                    }
                    CJTaskFromWork.setWorkType(String.valueOf(typeTag));
                    CJTaskFromWork.setTaskNum("1");
                    //封装数据
                    CJTaskFromWorkLists.add(CJTaskFromWork);
                    //设置原始数据上报状态
@@ -401,7 +423,6 @@
                    handlerReportParam.setReportTime(new Date());
                    handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
                    preventRiskJobAndMeasureService.updateWorkReportStatus(handlerReportParam);
                }
            }else {
                logger.info("【双重预防】当前无任务配置数据需要处理");
@@ -432,7 +453,6 @@
            //获取上报数据对象
            List<PreventCJReportCheckRecordFromTask> CJRecordFromTaskLists = new ArrayList<>();
            HandlerReportParam handlerReportParam = new HandlerReportParam();
            if (ObjectUtils.isNotEmpty(tasks)){
                //遍历,封装数据
                for (PreventRiskDangerCheckLog task : tasks) {
@@ -441,21 +461,6 @@
                    //获取任务附属表信息
                    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){
@@ -470,7 +475,7 @@
                                PreventCJReportCheckRecordFromTask CJRecordFromTask = new PreventCJReportCheckRecordFromTask();
                                CJRecordFromTask.setCheckStatus("0");// 0-正常;1-存在隐患;2-未处理;3-其他
                                if (Integer.valueOf(hiddenDangerCheckPoint.getWhetherDanger()) == 1){
                                        CJRecordFromTask.setCheckStatus("1");// 0-正常;1-存在隐患;2-未处理;3-其他
                                    CJRecordFromTask.setCheckStatus("1");// 0-正常;1-存在隐患;2-未处理;3-其他
                                }
                                User createUser = new User();
                                createUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getCreateBy());
@@ -479,7 +484,7 @@
                                }
                                User updateUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getUpdateBy());
                                //封装上报昌吉州的任务数据 todo taskUUid
                                //封装上报昌吉州的任务数据
//                                String taskUuid = UUID.randomUUID().toString();
                                CJRecordFromTask.setId(UUID.randomUUID().toString());
                                CJRecordFromTask.setCompanyCode(companyCode);
@@ -517,19 +522,27 @@
                                CJRecordFromTask.setCheckTaskId(preventCJReportCheckTaskFromWork.getId());
                                CJRecordFromTask.setCheckTime(hiddenDangerCheckById.getCheckTime());
                                CJRecordFromTask.setTaskId(task.getCheckId());
                                //第二版标准新增
                                CJRecordFromTask.setMobileCode(task.getMobileCode().toString());
                                List<PreventTaskType> typeByJobIds = taskTypeService.getInfoByJobId(jobAndMeasureByJobId.getJobId());
                                int typeTag = 0;
                                for (PreventTaskType typeByJobId : typeByJobIds) {
                                    if (typeByJobId.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());
                            preventRiskDangerCheckLogService.updateTaskReportStatus(handlerReportParam);
                    }
//                    String checkStatus = null;
//                    if (ObjectUtils.isEmpty(task.getResult() )){
@@ -611,6 +624,7 @@
                        CJDangerInfo.setCheckAcceptComment(hiddenDanger.getAcceptOpinion());//验收情况
                        CJDangerInfo.setCheckAcceptTime(hiddenDanger.getAcceptCreateTime());//验收时间
                    }
                    //如果排查任务正常存在,封装任务相关数据
                    if (Integer.parseInt(hiddenDanger.getDangerSources()) != 2){
                        HiddenDangerCheck dangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(hiddenDanger.getCheckId());
@@ -652,7 +666,6 @@
                        int i = 1;
                        CJDangerInfo.setHazardCategory(taskTypeInfo.getType().toString());
                    }
                    CJDangerInfo.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
                    CJDangerInfo.setReportTime(null);
                    CJDangerInfo.setDataSource((byte) 1);
@@ -675,9 +688,7 @@
                    handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
                    //修改隐患信息附属表状态
                    preventRiskDangerInfoService.updateDangerInfoReportStatus(handlerReportParam);
                }
            }else {
                logger.info("【双重预防】当前无隐患信息需要处理");
            }