|
|
@@ -325,6 +325,8 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
|
|
|
//选择了具体的受检机构
|
|
|
List<Long> ids = checkOrg.stream().map(CoreSafecheckPlanToCheckOrg::getOrgId).collect(Collectors.toList());
|
|
|
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());
|
|
|
//构建数据
|
|
|
@@ -477,10 +479,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
|
|
|
//如果存在同批次的已完成或者已逾期的任务需要同步批次id
|
|
|
checkTask.setBatchId(coreSafetyTasks.get(0).getBatchId());
|
|
|
} 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);
|
|
|
}
|
|
|
|
|
|
@@ -685,72 +684,56 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
|
|
|
continue;
|
|
|
} 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();
|
|
|
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<>();
|
|
|
ros.lambda().eq(CoreSafecheckPlanToRole::getPlanId, plan.getId());
|
|
|
List<CoreSafecheckPlanToRole> roles = planToRoleMapper.selectList(ros);
|
|
|
-
|
|
|
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) {
|
|
|
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.addAll(bs);
|
|
|
@@ -766,7 +749,6 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}
|