Browse Source

安全检查检查主机与受检主机 同一类型时,只生成自己,不获取下级

jiawuxian 1 năm trước cách đây
mục cha
commit
5e3bdf5276

+ 22 - 13
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -72,8 +72,8 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
         CoreSafecheckPlan checkPlan = planMapper.selectById(planId);
         Integer planCycle = Math.toIntExact(checkPlan.getPlanCycle());
         CycleCommonEnum code = CycleCommonEnum.getEnum(0);
-        if(checkPlan.getPlanCycle()!=6L){
-            code=CycleCommonEnum.getEnum( Math.toIntExact(checkPlan.getPlanCycle())+2);
+        if (checkPlan.getPlanCycle() != 6L) {
+            code = CycleCommonEnum.getEnum(Math.toIntExact(checkPlan.getPlanCycle()) + 2);
         }
         if (!planCycle.equals(6)) {
             DateRange map = DateUtils.getStartAndEnd(new Date(), code);
@@ -175,9 +175,9 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             DateTime datetime = new DateTime();
             datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
             CycleCommonEnum code = CycleCommonEnum.getEnum(0);
-            DateRange dateRange = new DateRange(plans.get(0).getStartDate(),plans.get(0).getEndDate());
-            if(plans.get(0).getPlanCycle()!=6L){
-                code=CycleCommonEnum.getEnum( Math.toIntExact(plans.get(0).getPlanCycle())+2);
+            DateRange dateRange = new DateRange(plans.get(0).getStartDate(), plans.get(0).getEndDate());
+            if (plans.get(0).getPlanCycle() != 6L) {
+                code = CycleCommonEnum.getEnum(Math.toIntExact(plans.get(0).getPlanCycle()) + 2);
                 dateRange = DateUtils.getStartAndEnd(new Date(), code);
             }
             List<PlanTaskBuildVo> tasks = new ArrayList<>();
@@ -237,7 +237,12 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             List<SysOrg> checkOrgs = null;
             if (ObjectUtil.isEmpty(checkOrg)) {
                 //如果没有选择具体受检的机构,则根据受检机构类型查询
-                checkOrgs = orgService.findByOrgTypeAndParent(checkOrgType, org.getPath(), SecurityConstants.INNER);
+                if (ObjectUtil.equal(plan.getCheckOrgType(), plan.getExecOrgType())) {
+                    //如果检查机构类型与被检机构类型一致,则表示查自己
+                    checkOrgs = Arrays.asList(org);
+                } else {
+                    checkOrgs = orgService.findByOrgTypeAndParent(checkOrgType, org.getPath(), SecurityConstants.INNER);
+                }
             } else {
                 //选择了具体的受检机构
                 List<Long> ids = checkOrg.stream().map(CoreSafecheckPlanToCheckOrg::getOrgId).collect(Collectors.toList());
@@ -329,7 +334,11 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             List<SysOrg> checkOrgs = null;
             if (ObjectUtil.isEmpty(checkOrg)) {
                 //如果没有选择具体受检的机构,则根据受检机构类型查询
-                checkOrgs = orgService.findByOrgTypeAndParent(checkOrgType, org.getPath(), SecurityConstants.INNER);
+                if (ObjectUtil.equal(plan.getCheckOrgType(), plan.getExecOrgType())) {
+                    checkOrgs = Arrays.asList(org);
+                } else {
+                    checkOrgs = orgService.findByOrgTypeAndParent(checkOrgType, org.getPath(), SecurityConstants.INNER);
+                }
             } else {
                 //选择了具体的受检机构
                 List<Long> ids = checkOrg.stream().map(CoreSafecheckPlanToCheckOrg::getOrgId).collect(Collectors.toList());
@@ -381,9 +390,9 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             DateTime datetime = new DateTime();
             datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
             CycleCommonEnum code = CycleCommonEnum.getEnum(0);
-            DateRange dateRange = new DateRange(plan.getStartDate(),plan.getEndDate());
-            if(plan.getPlanCycle()!=6L){
-                code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
+            DateRange dateRange = new DateRange(plan.getStartDate(), plan.getEndDate());
+            if (plan.getPlanCycle() != 6L) {
+                code = CycleCommonEnum.getEnum(Math.toIntExact(plan.getPlanCycle()) + 2);
                 dateRange = DateUtils.getStartAndEnd(new Date(), code);
             }
             //获取当前受检机构当前周期营业中的作息
@@ -392,7 +401,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             short coun = Short.parseShort(plan.getCount().toString());
             //划分时间
             Map<Short, StartEndTime> rangeMap = splitTaskTime(coun, CycleCommonEnum.getEnum(cycleCode),
-                    dateRange.getStartTime(),  dateRange.getEndTime(), workTimes);
+                    dateRange.getStartTime(), dateRange.getEndTime(), workTimes);
             for (short i = 1; i <= coun; i++) {
                 //如果不存在当前次数的时间划分结果
                 if (!rangeMap.containsKey(i)) {
@@ -511,7 +520,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             }
             checkTask.setBatchId(batchId);
             //变更,如果当前计划当前机构当前YmdDate已存在已完成或者已逾期的任务则跳过,否则删除
-            List<CoreSafetyTask> coreSafetyTasks = checkTaskService.list(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).eq(CoreSafetyTask::getPlanId,checkTask.getPlanId()).in(CoreSafetyTask::getStatus, 3, 4));
+            List<CoreSafetyTask> coreSafetyTasks = checkTaskService.list(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).eq(CoreSafetyTask::getPlanId, checkTask.getPlanId()).in(CoreSafetyTask::getStatus, 3, 4));
             if (coreSafetyTasks.size() > 0) {
                 //如果存在同批次的已完成或者已逾期的任务需要同步批次id
                 checkTask.setBatchId(coreSafetyTasks.get(0).getBatchId());
@@ -553,7 +562,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             plans = new ArrayList<>();
             CoreSafecheckPlan coreSafecheckPlan = planMapper.selectById(safetyTaskBuildDto.getPlanId());
             plans.add(coreSafecheckPlan);
-            map = DateHelper.getStartAndEnd(safetyTaskBuildDto.getDate(), Math.toIntExact(coreSafecheckPlan.getPlanCycle())+2);
+            map = DateHelper.getStartAndEnd(safetyTaskBuildDto.getDate(), Math.toIntExact(coreSafecheckPlan.getPlanCycle()) + 2);
         } else {
             LambdaUpdateWrapper<CoreSafecheckPlan> qw = new LambdaUpdateWrapper<>();
             qw.eq(CoreSafecheckPlan::getPlanCycle, safetyTaskBuildDto.getPlanCycle());