From 76e4e7941771d29141a285b6673ae3a89e9a543d Mon Sep 17 00:00:00 2001
From: 16639036659 <577530412@qq.com>
Date: 星期三, 12 七月 2023 16:05:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java |   89 ++++++++++++++++++++++++++------------------
 1 files changed, 53 insertions(+), 36 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..bb9958f 100644
--- a/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java
+++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java
@@ -24,19 +24,23 @@
 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;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.*;
 
 @Component
 public class SearchReportDateSchedule {
 
     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;
@@ -98,16 +102,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/30 * * * ? ")    // 分钟
     public void searchReportDate(){
 
         logger.info("【双重预防】定时检索需要上报数据...");
@@ -276,7 +279,6 @@
                     //获取上报数据对象
                     PreventCJReportRiskControlMeasure CJReportMeasure = new PreventCJReportRiskControlMeasure();
                     //转换数据
-                    // todo 逻辑改变
                     PreventRiskControlTemplate controlTemplateById = preventRiskControlTemplateService.getControlTemplateById(measure.getClassify2());
                     String classify2 = measure.getClassify1() + "-" + controlTemplateById.getOrderIndex();
 
@@ -330,7 +332,6 @@
 
         /**
          * 4、检索 任务配置 数据 prevent_report_check_record_from_task
-         * 本数据以  todo
          * */
         //读取任务配置数据上报主配置信息
         PreventReportConfig workReportConfig = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_TASK_FROM_WORK.getCode());
@@ -354,6 +355,8 @@
                     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("天");
@@ -394,6 +397,23 @@
                     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);
                     //设置原始数据上报状态
@@ -401,7 +421,6 @@
                     handlerReportParam.setReportTime(new Date());
                     handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
                     preventRiskJobAndMeasureService.updateWorkReportStatus(handlerReportParam);
-
                 }
             }else {
                 logger.info("【双重预防】当前无任务配置数据需要处理");
@@ -426,13 +445,13 @@
         if (recordReportConfig.getReportState().equals(SyncEnum.REPORT_ON.getCode())){
 
             //logger.info("【##】5.检索排查任务记录数据...");
+            System.out.println("【##】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) {
@@ -441,21 +460,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 +474,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 +483,7 @@
                                 }
                                 User updateUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getUpdateBy());
 
-                                //封装上报昌吉州的任务数据 todo taskUUid
+                                //封装上报昌吉州的任务数据
 //                                String taskUuid = UUID.randomUUID().toString();
                                 CJRecordFromTask.setId(UUID.randomUUID().toString());
                                 CJRecordFromTask.setCompanyCode(companyCode);
@@ -517,20 +521,31 @@
                                 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);
-
+                            int i = 1;
+//                        System.out.println("【##】数据封装" + 1);
                     }
+                    System.out.println("【##】5.数据封装完成...");
 //                    String checkStatus = null;
 //                    if (ObjectUtils.isEmpty(task.getResult() )){
 //                        checkStatus = "2";
@@ -611,6 +626,7 @@
                         CJDangerInfo.setCheckAcceptComment(hiddenDanger.getAcceptOpinion());//验收情况
                         CJDangerInfo.setCheckAcceptTime(hiddenDanger.getAcceptCreateTime());//验收时间
                     }
+
                     //如果排查任务正常存在,封装任务相关数据
                     if (Integer.parseInt(hiddenDanger.getDangerSources()) != 2){
                         HiddenDangerCheck dangerCheckById = trHiddenDangerCheckService.getHiddenDangerCheckById(hiddenDanger.getCheckId());
@@ -652,7 +668,6 @@
                         int i = 1;
                         CJDangerInfo.setHazardCategory(taskTypeInfo.getType().toString());
                     }
-
                     CJDangerInfo.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
                     CJDangerInfo.setReportTime(null);
                     CJDangerInfo.setDataSource((byte) 1);
@@ -664,8 +679,12 @@
                     CJDangerInfo.setDangerReason(dangerManage.getDangerReason());//隐患产生原因
                     CJDangerInfo.setCost(hiddenDanger.getRectifyFund());//资金
                     CJDangerInfo.setDangerManageDeadline(hiddenDanger.getRectifyDeadlineTime());//治理期限
-                    CJDangerInfo.setDangerState(dangerManage.getDangerState().toString());//隐患状态
-                    CJDangerInfo.setHazardDangerType(dangerManage.getHazardDangerType().toString());//隐患类型
+                    if (ObjectUtils.isNotEmpty(dangerManage.getDangerState())){
+                        CJDangerInfo.setDangerState(dangerManage.getDangerState().toString());//隐患状态
+                    }
+                    if (ObjectUtils.isNotEmpty(dangerManage.getHazardDangerType())){
+                        CJDangerInfo.setHazardDangerType(dangerManage.getHazardDangerType().toString());//隐患类型
+                    }
                     CJDangerInfo.setDangerManagerId(dangerManage.getId());
                     //封装数据
                     CJDangerInfoLists.add(CJDangerInfo);
@@ -675,9 +694,7 @@
                     handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
                     //修改隐患信息附属表状态
                     preventRiskDangerInfoService.updateDangerInfoReportStatus(handlerReportParam);
-
                 }
-
             }else {
                 logger.info("【双重预防】当前无隐患信息需要处理");
             }

--
Gitblit v1.9.2