|
|
@@ -55,6 +55,8 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
|
|
|
ICaseNumService caseNumService;
|
|
|
@Autowired
|
|
|
ICaseFusionRelationService fusionRelationService;
|
|
|
+ @Autowired
|
|
|
+ ITmDepartmentService departmentService;
|
|
|
@Override
|
|
|
public void share(SceneDeptShare param) {
|
|
|
if(((StringUtils.isBlank(param.getNum()) || param.getIsObj() == null) && param.getCaseId() == null && param.getFusionId() == null)
|
|
|
@@ -256,6 +258,14 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
|
|
|
if(bySnCode.getDeptId().equals(deptId)){
|
|
|
return;
|
|
|
}
|
|
|
+ if(roleList.contains("admin")){
|
|
|
+ List<TmDepartment> sonByDeptId = departmentService.getSonByDeptId(deptId);
|
|
|
+ List<String> collect = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
|
|
|
+ if(collect.contains(bySnCode.getDeptId())){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<SceneDeptShare> numListByDeptId = this.getNumListByDeptId(deptId, isObj);
|
|
|
if(numListByDeptId == null || numListByDeptId.isEmpty()){
|
|
|
throw new BusinessException(ResultCode.NOT_PERMISSION);
|
|
|
@@ -292,6 +302,13 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
|
|
|
if(deptId.equals(tmUser.getDeptId())){
|
|
|
return;
|
|
|
}
|
|
|
+ if(roleList.contains("admin")){
|
|
|
+ List<TmDepartment> sonByDeptId = departmentService.getSonByDeptId(deptId);
|
|
|
+ List<String> collect = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
|
|
|
+ if(collect.contains(tmUser.getDeptId())){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
List<SceneDeptShare> numListByDeptId = this.getFusionIdsListByDeptId(deptId);
|
|
|
if(numListByDeptId == null || numListByDeptId.isEmpty()){
|
|
|
@@ -330,6 +347,7 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
|
|
|
if(caseEntity.getDeptId()!= null && deptId.equals(caseEntity.getDeptId())){
|
|
|
return;
|
|
|
}
|
|
|
+ String caseDept = caseEntity.getDeptId();
|
|
|
if(caseEntity.getTmProjectId()!=null){
|
|
|
TmProject tmProject = tmProjectService.getById(caseEntity.getTmProjectId());
|
|
|
if(tmProject == null){
|
|
|
@@ -338,8 +356,18 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
|
|
|
if(deptId.equals(tmProject.getDeptId())){
|
|
|
return;
|
|
|
}
|
|
|
+ if(tmProject.getIsTeached() == 1){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ caseDept = tmProject.getDeptId();
|
|
|
+ }
|
|
|
+ if(roleList.contains("admin")){
|
|
|
+ List<TmDepartment> sonByDeptId = departmentService.getSonByDeptId(deptId);
|
|
|
+ List<String> collect = sonByDeptId.stream().map(TmDepartment::getId).collect(Collectors.toList());
|
|
|
+ if(collect.contains(caseDept)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
|
|
|
List<SceneDeptShare> numListByDeptId = this.getCaseIdsListByDeptId(deptId,caseId);
|
|
|
if(numListByDeptId == null || numListByDeptId.isEmpty()){
|