|  | @@ -325,6 +325,8 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
											
												
													
														|  |                  //选择了具体的受检机构
 |  |                  //选择了具体的受检机构
 | 
											
												
													
														|  |                  List<Long> ids = checkOrg.stream().map(CoreSafecheckPlanToCheckOrg::getOrgId).collect(Collectors.toList());
 |  |                  List<Long> ids = checkOrg.stream().map(CoreSafecheckPlanToCheckOrg::getOrgId).collect(Collectors.toList());
 | 
											
												
													
														|  |                  checkOrgs = orgService.selectOrgByIdList(ids, SecurityConstants.INNER);
 |  |                  checkOrgs = orgService.selectOrgByIdList(ids, SecurityConstants.INNER);
 | 
											
												
													
														|  | 
 |  | +                //保留检查机构下属机构
 | 
											
												
													
														|  | 
 |  | +                checkOrgs = checkOrgs.stream().filter(o -> o.getPath().startsWith(org.getPath())).collect(Collectors.toList());
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |              checkOrgs = checkOrgs.stream().filter(o -> o.getIsLock() < 1).collect(Collectors.toList());
 |  |              checkOrgs = checkOrgs.stream().filter(o -> o.getIsLock() < 1).collect(Collectors.toList());
 | 
											
												
													
														|  |              //构建数据
 |  |              //构建数据
 | 
											
										
											
												
													
														|  | @@ -477,10 +479,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
											
												
													
														|  |                  //如果存在同批次的已完成或者已逾期的任务需要同步批次id
 |  |                  //如果存在同批次的已完成或者已逾期的任务需要同步批次id
 | 
											
												
													
														|  |                  checkTask.setBatchId(coreSafetyTasks.get(0).getBatchId());
 |  |                  checkTask.setBatchId(coreSafetyTasks.get(0).getBatchId());
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  | -                for (CoreSafetyTask t :
 |  | 
 | 
											
												
													
														|  | -                        coreSafetyTasks) {
 |  | 
 | 
											
												
													
														|  | -                    checkTaskService.removeById(t.getId());
 |  | 
 | 
											
												
													
														|  | -                }
 |  | 
 | 
											
												
													
														|  | 
 |  | +                checkTaskService.remove(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).in(CoreSafetyTask::getStatus, 1, 2));
 | 
											
												
													
														|  |                  ats.add(checkTask);
 |  |                  ats.add(checkTask);
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -685,72 +684,56 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
											
												
													
														|  |                  continue;
 |  |                  continue;
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  |                  //开始营业,重新生成任务
 |  |                  //开始营业,重新生成任务
 | 
											
												
													
														|  | -                //拿到当前周期所有检查计划
 |  | 
 | 
											
												
													
														|  | -                List<CoreSafecheckPlan> plans = planMapper.selectByPlanStatus(1, planCycle);
 |  | 
 | 
											
												
													
														|  | -                Iterator<CoreSafecheckPlan> safecheckPlanIterator = plans.iterator();
 |  | 
 | 
											
												
													
														|  | -                //遍历计划
 |  | 
 | 
											
												
													
														|  | -                while (safecheckPlanIterator.hasNext()) {
 |  | 
 | 
											
												
													
														|  | -                    //拿到计划所属受检机构
 |  | 
 | 
											
												
													
														|  | -                    List<SysOrg> checkOrgList = safecheckPlanIterator.next().getCheckOrgList();
 |  | 
 | 
											
												
													
														|  | -//                    //如果检查机构数量为0表示未指定具体检查机构,默认当前计划拥有当前机构
 |  | 
 | 
											
												
													
														|  | -//                    if(checkOrgList.size()==0){
 |  | 
 | 
											
												
													
														|  | -//                        checkOrgList.add(worg);
 |  | 
 | 
											
												
													
														|  | -//                    }
 |  | 
 | 
											
												
													
														|  | -                    //过滤掉不等于当前作息变更机构的受检机构
 |  | 
 | 
											
												
													
														|  | -                    List<SysOrg> collect = checkOrgList.stream().filter(e -> e.getId().equals(orgId)).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  | -                    //过滤完数组长度0表示没有受检机构等于作息变更机构的数据
 |  | 
 | 
											
												
													
														|  | -                    if (collect.size() == 0) {
 |  | 
 | 
											
												
													
														|  | -                        //移除当前计划
 |  | 
 | 
											
												
													
														|  | -                        safecheckPlanIterator.remove();
 |  | 
 | 
											
												
													
														|  | -                    } else
 |  | 
 | 
											
												
													
														|  | -                    //如果存在相等的受检机构,开始重新生成任务
 |  | 
 | 
											
												
													
														|  | -                    {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                //获取当前机构的所属行社
 | 
											
												
													
														|  | 
 |  | +                List<Long> wids = new ArrayList();
 | 
											
												
													
														|  | 
 |  | +                wids.add(worg.getId());
 | 
											
												
													
														|  | 
 |  | +                List<SysOrg> orgs1 = remoteOrgService.selectParentHs(wids, SecurityConstants.INNER);
 | 
											
												
													
														|  | 
 |  | +                //拿到唯一行社
 | 
											
												
													
														|  | 
 |  | +                SysOrg ofhs = null;
 | 
											
												
													
														|  | 
 |  | +                Integer ofType = 0;
 | 
											
												
													
														|  | 
 |  | +                if (orgs1.size() > 0) {
 | 
											
												
													
														|  | 
 |  | +                    ofhs = orgs1.get(0);
 | 
											
												
													
														|  | 
 |  | +                    ofType = ofhs.getType();
 | 
											
												
													
														|  | 
 |  | +                    //拿到当前周期所有检查计划
 | 
											
												
													
														|  | 
 |  | +                    List<CoreSafecheckPlan> plans = planMapper.selectByPlanStatus(1, planCycle);
 | 
											
												
													
														|  | 
 |  | +                    Long fcheckOrgType = Long.valueOf(worg.getType());
 | 
											
												
													
														|  | 
 |  | +                    //过滤受检机构类型为作息变更机构类型的计划
 | 
											
												
													
														|  | 
 |  | +                    plans = plans.stream().filter(p -> p.getCheckOrgType().equals(fcheckOrgType)).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +                    Integer fofOrgType = ofType;
 | 
											
												
													
														|  | 
 |  | +                    //过滤所属机构类型为作息变更机构所属行社的机构类型的计划
 | 
											
												
													
														|  | 
 |  | +                    plans = plans.stream().filter(p -> p.getPlanOfOrgType().equals(fofOrgType)).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +                    //过滤所属机构为作息变更机构所属行社的机构的计划
 | 
											
												
													
														|  | 
 |  | +                    SysOrg fofOrgHs = ofhs;
 | 
											
												
													
														|  | 
 |  | +                    plans = plans.stream().filter(p -> p.getPlanOfOrgId().equals(fofOrgHs.getId())).collect(Collectors.toList());
 | 
											
												
													
														|  | 
 |  | +                    Iterator<CoreSafecheckPlan> safecheckPlanIterator = plans.iterator();
 | 
											
												
													
														|  | 
 |  | +                    //遍历计划
 | 
											
												
													
														|  | 
 |  | +                    while (safecheckPlanIterator.hasNext()) {
 | 
											
												
													
														|  | 
 |  | +                        //如果存在相等的受检机构,开始重新生成任务
 | 
											
												
													
														|  |                          CoreSafecheckPlan plan = safecheckPlanIterator.next();
 |  |                          CoreSafecheckPlan plan = safecheckPlanIterator.next();
 | 
											
												
													
														|  |                          List<PlanTaskBuildVo> list = new ArrayList<>();
 |  |                          List<PlanTaskBuildVo> list = new ArrayList<>();
 | 
											
												
													
														|  | -                        Integer execOrgType = Math.toIntExact(plan.getExecOrgType());
 |  | 
 | 
											
												
													
														|  | -                        Integer checkOrgType = Math.toIntExact(plan.getCheckOrgType());
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -                        //获取具体执行检查的机构
 |  | 
 | 
											
												
													
														|  | -                        QueryWrapper<CoreSafecheckPlanToExecOrg> eos = new QueryWrapper<>();
 |  | 
 | 
											
												
													
														|  | -                        eos.lambda().eq(CoreSafecheckPlanToExecOrg::getPlanId, plan.getId());
 |  | 
 | 
											
												
													
														|  | -                        List<CoreSafecheckPlanToExecOrg> execOrg = planToExecOrgMapper.selectList(eos);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -                        //获取具体受检的机构
 |  | 
 | 
											
												
													
														|  | -                        QueryWrapper<CoreSafecheckPlanToCheckOrg> cos = new QueryWrapper<>();
 |  | 
 | 
											
												
													
														|  | -                        //变更点,只需要保留作息变更的受检机构
 |  | 
 | 
											
												
													
														|  | -                        cos.lambda().eq(CoreSafecheckPlanToCheckOrg::getPlanId, plan.getId()).eq(CoreSafecheckPlanToCheckOrg::getOrgId, orgId);
 |  | 
 | 
											
												
													
														|  | -                        List<CoreSafecheckPlanToCheckOrg> checkOrg = planToCheckOrgMapper.selectList(cos);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        List<CoreSafecheckPlanToExecOrg> execOrg = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +                        List<CoreSafecheckPlanToCheckOrg> checkOrg = new ArrayList<>();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                          //获取执行角色
 |  |                          //获取执行角色
 | 
											
												
													
														|  |                          QueryWrapper<CoreSafecheckPlanToRole> ros = new QueryWrapper<>();
 |  |                          QueryWrapper<CoreSafecheckPlanToRole> ros = new QueryWrapper<>();
 | 
											
												
													
														|  |                          ros.lambda().eq(CoreSafecheckPlanToRole::getPlanId, plan.getId());
 |  |                          ros.lambda().eq(CoreSafecheckPlanToRole::getPlanId, plan.getId());
 | 
											
												
													
														|  |                          List<CoreSafecheckPlanToRole> roles = planToRoleMapper.selectList(ros);
 |  |                          List<CoreSafecheckPlanToRole> roles = planToRoleMapper.selectList(ros);
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |                          List<SysOrg> execOrgs = null;
 |  |                          List<SysOrg> execOrgs = null;
 | 
											
												
													
														|  | -                        SysOrg ownOrg = orgService.selectOrgById(plan.getPlanOfOrgId(), SecurityConstants.INNER);
 |  | 
 | 
											
												
													
														|  | -                        if (ObjectUtil.isEmpty(execOrg)) {
 |  | 
 | 
											
												
													
														|  | -                            //如果没有选择具体执行检查的机构,则根据执行机构类型查询
 |  | 
 | 
											
												
													
														|  | -                            execOrgs = orgService.findByOrgTypeAndParent(execOrgType, ownOrg.getPath(), SecurityConstants.INNER);
 |  | 
 | 
											
												
													
														|  | -                        } else {
 |  | 
 | 
											
												
													
														|  | -                            //选择了具体执行检查的机构
 |  | 
 | 
											
												
													
														|  | -                            List<Long> porgIds = execOrg.stream().map(CoreSafecheckPlanToExecOrg::getOrgId).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  | -                            execOrgs = orgService.selectOrgByIdList(porgIds, SecurityConstants.INNER);
 |  | 
 | 
											
												
													
														|  | -                            execOrgs = execOrgs.stream().filter(o -> o.getPath().startsWith(ownOrg.getPath())).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        //选择了具体执行检查的机构
 | 
											
												
													
														|  | 
 |  | +                        execOrgs = plan.getExecOrgList();
 | 
											
												
													
														|  | 
 |  | +                        //如果不存在具体的执行检查的机构就是指定类型,直接拿所属行社
 | 
											
												
													
														|  | 
 |  | +                        if (execOrgs.size() == 0) {
 | 
											
												
													
														|  | 
 |  | +                            execOrgs.add(ofhs);
 | 
											
												
													
														|  |                          }
 |  |                          }
 | 
											
												
													
														|  | -                        execOrgs = execOrgs.stream().filter(o -> o.getIsLock() < 1).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |                          //此处循环所有执行检查的机构
 |  |                          //此处循环所有执行检查的机构
 | 
											
												
													
														|  |                          for (SysOrg org : execOrgs) {
 |  |                          for (SysOrg org : execOrgs) {
 | 
											
												
													
														|  |                              List<SysOrg> checkOrgs = null;
 |  |                              List<SysOrg> checkOrgs = null;
 | 
											
												
													
														|  | -                            if (ObjectUtil.isEmpty(checkOrg)) {
 |  | 
 | 
											
												
													
														|  | -                                //如果没有选择具体受检的机构,则根据受检机构类型查询
 |  | 
 | 
											
												
													
														|  | -                                checkOrgs = orgService.findByOrgTypeAndParent(checkOrgType, org.getPath(), SecurityConstants.INNER);
 |  | 
 | 
											
												
													
														|  | -                            } else {
 |  | 
 | 
											
												
													
														|  | -                                //选择了具体的受检机构
 |  | 
 | 
											
												
													
														|  | -                                List<Long> ids = checkOrg.stream().map(CoreSafecheckPlanToCheckOrg::getOrgId).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  | -                                checkOrgs = orgService.selectOrgByIdList(ids, SecurityConstants.INNER);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                            //选择了具体的受检机构
 | 
											
												
													
														|  | 
 |  | +                            checkOrgs = plan.getCheckOrgList();
 | 
											
												
													
														|  | 
 |  | +                            //如果不存在具体的受检机构就是指定类型,直接拿作息变更的机构
 | 
											
												
													
														|  | 
 |  | +                            if (checkOrgs.size() == 0) {
 | 
											
												
													
														|  | 
 |  | +                                checkOrgs.add(worg);
 | 
											
												
													
														|  |                              }
 |  |                              }
 | 
											
												
													
														|  | -                            checkOrgs = checkOrgs.stream().filter(o -> o.getIsLock() < 1).collect(Collectors.toList());
 |  | 
 | 
											
												
													
														|  |                              //构建数据
 |  |                              //构建数据
 | 
											
												
													
														|  |                              List<PlanTaskBuildVo> bs = getBuild(plan, org, checkOrgs, roles);
 |  |                              List<PlanTaskBuildVo> bs = getBuild(plan, org, checkOrgs, roles);
 | 
											
												
													
														|  |                              list.addAll(bs);
 |  |                              list.addAll(bs);
 | 
											
										
											
												
													
														|  | @@ -766,7 +749,6 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 | 
											
												
													
														|  |                      }
 |  |                      }
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          }
 |  |          }
 |