From faa6130891b7ab6e9fe14a5afb33e003b2a19b1f Mon Sep 17 00:00:00 2001
From: 16639036659 <577530412@qq.com>
Date: 星期四, 13 六月 2024 08:59:11 +0800
Subject: [PATCH] 临时提交

---
 src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java |  180 ++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 114 insertions(+), 66 deletions(-)

diff --git a/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java b/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java
index 9bd9cb2..2c410ea 100644
--- a/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java
+++ b/src/main/java/com/ruoyi/doublePrevention/scheduls/SearchReportDateSchedule.java
@@ -109,7 +109,7 @@
     @Transactional
 //    @Scheduled(cron = "0 0/1 * * * ? ")    // 分钟
 //    @Scheduled(cron = "0/30 * * * * ?")  // 30秒
-    @Scheduled(cron = "0 0/30 * * * ? ")    // 分钟
+    @Scheduled(cron = "0 0/25 * * * ? ")    // 分钟
     public void searchReportDate(){
 
         logger.info("【双重预防】定时检索需要上报数据...");
@@ -323,6 +323,7 @@
             //写入上报昌吉州转换表
             for (PreventCJReportRiskControlMeasure CJMeasure : CJMeasureLists) {
                 CJMeasureService.insertMeasureList(CJMeasure);
+
                 logger.info("【双重预防】3.安全风险管控措施CJ:数据处理...");
             }
         }else {
@@ -449,16 +450,21 @@
 
             //查询所有 选择上报的数据 && (reportTime == null 或者 reportTime < updateReportDataTime)
             List<PreventRiskDangerCheckLog> tasks = preventRiskDangerCheckLogService.listReportTask();
+            List<Long> taskIds = new ArrayList<>();
             //获取上报数据对象
             List<PreventCJReportCheckRecordFromTask> CJRecordFromTaskLists = new ArrayList<>();
-            HandlerReportParam handlerReportParam = new HandlerReportParam();
+            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());
-                    //获取任务附属表信息
-                    PreventRiskJobAndMeasure jobAndMeasureByJobId = preventRiskJobAndMeasureService.getJobAndMeasureByJobId(task.getJobId());
                     //转换检查结果
                     //如果已经执行过,进入方法
                     if (Integer.valueOf(hiddenDangerCheckById.getScheduleCheckStatus()) == 1){
@@ -476,12 +482,34 @@
                                 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 = 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;
+                                    }
                                 }
-                                User updateUser = trUserService.getUserByLoginName(hiddenDangerCheckById.getUpdateBy());
+                                if(ObjectUtils.isEmpty(createUser)){
+                                    for (User user : allUserList) {
+                                        if (hiddenDangerCheckById.getCreateBy().equals(user.getUserName())){
+                                            createUser = user;
+                                        }
+                                    }
+                                }
+
+
 
                                 //封装上报昌吉州的任务数据
 //                                String taskUuid = UUID.randomUUID().toString();
@@ -514,22 +542,43 @@
                                 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());
+//                                //获取该条记录对应的管控措施uuid
+//                                PreventRiskControlMeasure preventRiskControlMeasureById = preventRiskControlMeasureService.getPreventRiskControlMeasureById(controlMeasureId);
+//                                //通过管控措施uuid ,jobId(workId),在任务上报表中,找到任务对应的uuid
+//                                PreventCJReportCheckTaskFromWork preventCJReportCheckTaskFromWork = CJTaskFromWorkService.geByMeasureUUidAndJobId(preventRiskControlMeasureById.getUuid(), task.getJobId());
+//                                CJRecordFromTask.setCheckTaskId(preventCJReportCheckTaskFromWork.getId());
+                                // todo 取出所有措施,再循环在匹配
+                                for (PreventRiskControlMeasure measure : allMeasureList) {
+                                    if (controlMeasureId.equals(measure.getId())){
+                                        //通过管控措施uuid ,jobId(workId),在任务上报表中,找到任务对应的uuid
+                                        PreventCJReportCheckTaskFromWork preventCJReportCheckTaskFromWork = CJTaskFromWorkService.geByMeasureUUidAndJobId(measure.getUuid(), task.getJobId());
+                                        CJRecordFromTask.setCheckTaskId(preventCJReportCheckTaskFromWork.getId());
+                                    }
+                                }
+
+
                                 CJRecordFromTask.setCheckTime(hiddenDangerCheckById.getCheckTime());
                                 CJRecordFromTask.setTaskId(task.getCheckId());
                                 //第二版标准新增
                                 CJRecordFromTask.setMobileCode(task.getMobileCode().toString());
-                                List<PreventTaskType> typeByJobIds = taskTypeService.getInfoByJobId(task.getJobId());
+
                                 int typeTag = 0;
-                                for (PreventTaskType typeByJobId : typeByJobIds) {
-                                    if (typeByJobId.getType()!= 0) {
-                                        typeTag = 1;
+//                                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));
                                 //封装数据
@@ -538,37 +587,35 @@
                         }
 
                             //设置原始数据上报状态
-                            handlerReportParam.setId(task.getId());
-                            handlerReportParam.setReportTime(new Date());
-                            handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
-                            preventRiskDangerCheckLogService.updateTaskReportStatus(handlerReportParam);
+//                            handlerReportParam.setId(task.getId());
+//                            handlerReportParam.setReportTime(new Date());
+//                            handlerReportParam.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
+//                            handlerReportParamList.add(handlerReportParam);
+//                            preventRiskDangerCheckLogService.updateTaskReportStatus(handlerReportParam);
                             int i = 1;
-//                        System.out.println("【##】数据封装" + 1);
+                        taskIds.add(task.getId());
+                        tag ++;
                     }
                     System.out.println("【##】5.数据封装完成...");
-//                    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(), "排查任务记录插入失败");
-                }
+            if (CJRecordFromTaskLists.size() > 0){
                 logger.info("【双重预防】排查任务记录CJ:数据处理...");
+                //设置原始数据状态
+                int taskUpdateResult = preventRiskDangerCheckLogService.updateTaskReportStatusByList(taskIds);
+                if (taskUpdateResult < taskIds.size()){
+                    throw new AusinessException(E.ADD_FAIL.getCode(), "排查任务记录原始数据更新失败, 取消操作");
+                }
+                int result = CJTaskRecordService.insertRecordList(CJRecordFromTaskLists);
+                if (result < CJRecordFromTaskLists.size()){
+                    throw new AusinessException(E.ADD_FAIL.getCode(), "排查任务记录插入失败, 取消操作");
+                }
             }
             step = 6;
-
         }else {
             step = 6;
             logger.info("排查任务记录数据上报已关闭");
@@ -602,12 +649,12 @@
 
                     //通过用户名,获取涉及到的各位用户的真实姓名
                     User createUser = new User();
-                    createUser = trUserService.getUserByLoginName(hiddenDanger.getCreateBy());  //todo
+                    createUser = trUserService.getUserByLoginName(hiddenDanger.getCreateBy());
 //                    createUser = trUserService.getUserByLoginName("guotai");
                     if(ObjectUtils.isEmpty(createUser)){
                         createUser = trUserService.getUserByName(hiddenDanger.getCreateBy());
                     }
-                    User updateUser = trUserService.getUserByLoginName(hiddenDanger.getUpdateBy()); //todo
+                    User updateUser = trUserService.getUserByLoginName(hiddenDanger.getUpdateBy());
 //                    User updateUser = trUserService.getUserByLoginName("guotai");
                     if (ObjectUtils.isNotEmpty(hiddenDanger.getRegisterUserName())){
                         User registerUser = trUserService.getUserByLoginName(hiddenDanger.getRegisterUserName());
@@ -632,26 +679,27 @@
                     }
 
                     //如果排查任务正常存在,封装任务相关数据
-                    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 (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.setHazardCode(dangerManage.getHazardCode());
                     CJDangerInfo.setCreateBy(createUser.getUserName());
                     CJDangerInfo.setCreateDate(hiddenDanger.getCreateTime());
 
@@ -672,22 +720,22 @@
                     CJDangerInfo.setReportTime(null);
                     CJDangerInfo.setDataSource((byte) 1);
                     CJDangerInfo.setDangerName(hiddenDanger.getDangerName());
-                    CJDangerInfo.setDangerLevel(hiddenDanger.getDangerLevel());//隐患等级
-                    CJDangerInfo.setDangerSrc(dangerManage.getDangerSrc().toString());//隐患来源
+                    CJDangerInfo.setDangerLevel(hiddenDanger.getDangerLevel());
+                    CJDangerInfo.setDangerSrc(dangerManage.getDangerSrc().toString());
                     if (hiddenDanger.getRectifyType().equals("1")){
-                        CJDangerInfo.setDangerManageType("0");//隐患治理类型
+                        CJDangerInfo.setDangerManageType("0");
                     }else {
-                        CJDangerInfo.setDangerManageType("1");//隐患治理类型
+                        CJDangerInfo.setDangerManageType("1");
                     }
-                    CJDangerInfo.setDangerDesc(hiddenDanger.getDangerDescription());//隐患描述
-                    CJDangerInfo.setDangerReason(dangerManage.getDangerReason());//隐患产生原因
-                    CJDangerInfo.setDangerManageDeadline(hiddenDanger.getRectifyDeadlineTime());//治理期限
+                    CJDangerInfo.setDangerDesc(hiddenDanger.getDangerDescription());
+                    CJDangerInfo.setDangerReason(dangerManage.getDangerReason());
+                    CJDangerInfo.setDangerManageDeadline(hiddenDanger.getRectifyDeadlineTime());
                     if (ObjectUtils.isNotEmpty(dangerManage.getDangerState())){
-                        CJDangerInfo.setDangerState(dangerManage.getDangerState().toString());//隐患状态
+                        CJDangerInfo.setDangerState(dangerManage.getDangerState().toString());
                     }
-                    CJDangerInfo.setHazardDangerType(dangerManage.getHazardDangerType().toString());// todo 隐患类型
+                    CJDangerInfo.setHazardDangerType(dangerManage.getHazardDangerType().toString());
                     CJDangerInfo.setDangerManagerId(dangerManage.getId());
-                    //封装数据
+
                     CJDangerInfoLists.add(CJDangerInfo);
                     //设置原始数据上报状态
                     handlerReportParam.setId(dangerManage.getId());

--
Gitblit v1.9.2