lyhzzz 1 месяц назад
Родитель
Сommit
c3dbfdcca9

+ 29 - 1
src/main/java/com/fdkankan/fusion/service/impl/SceneDeptShareServiceImpl.java

@@ -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()){

+ 3 - 0
src/main/java/com/fdkankan/fusion/service/impl/TmProjectServiceImpl.java

@@ -107,6 +107,9 @@ public class TmProjectServiceImpl extends ServiceImpl<ITmProjectMapper, TmProjec
         if(!deptIds.isEmpty()){
             wrapper.in(TmProject::getDeptId,deptIds);
         }
+        if(StringUtils.isNotBlank(tmProject.getDeptId())){
+            wrapper.eq(TmProject::getDeptId,tmProject.getDeptId());
+        }
         //承办单位
         if(StringUtils.isNotBlank(tmProject.getOrganizerDeptName())){
            List<TmDepartment> list =  tmDepartmentService.getLikeName(tmProject.getOrganizerDeptName());