Преглед на файлове

处理bug:汇报审批被回退后,列表的完成情况看不到“被退回”的标识

wanyuan преди 8 месеца
родител
ревизия
95e04525b5
променени са 1 файла, в които са добавени 33 реда и са изтрити 18 реда
  1. 33 18
      tc-service/tap-task/src/main/java/com/minto/app/task/manager/TaskListManagerImpl.java

+ 33 - 18
tc-service/tap-task/src/main/java/com/minto/app/task/manager/TaskListManagerImpl.java

@@ -3899,6 +3899,7 @@ public class TaskListManagerImpl implements ITaskListManager {
 		IResourceManager resourceManager = AppContext.getBean(IResourceManager.class);
 		IOrgManager orgManager = AppContext.getBean(IOrgManager.class);
 		ITaskManager taskManager=AppContext.getBean(ITaskManager.class);
+		OrgPersonBean person = orgManager.findPersonById(pid);
 		List<TaskReportBean> fixedReports = fixReportBy1LastPhaseAndDepartment41Task(reports,phases);
 		if(CollectionUtil.isNotEmpty(fixedReports)){
 			//需要根据当前操作人在事项中的角色,如果为督办人(领导角色),列表只组装牵头单位汇报情况(如果只有一个牵头单位去掉单位和状态标识),其他角色列表组装自己的汇报情况(原逻辑即可满足)
@@ -3958,26 +3959,40 @@ public class TaskListManagerImpl implements ITaskListManager {
 						}
 					}
 				}
-				List<OrgRelationBean> liaisonOrgRelation = orgManager.findBySourIdAndTarCAndRelC(pid, ResourceEnum.ResourceTypeEnum.OrgDepartment.getKey(), OrgEnum.OrgRelationCategoryEnum.DepartmentLiaison.getKey());
-				if(CollectionUtil.isNotEmpty(liaisonOrgRelation)){
-					for(OrgRelationBean orgRelationBean : liaisonOrgRelation){
-						if(orgRelationBean.getTargetId().equals(departmentId)){
-							isManagerSameDep = true;//说明是督办联络员
-							break;
-						}
-					}
-
-
+				// 获取当前人员是部门主管的所有部门
+				List<Long> depManagerDeptIds = TaskByTypeUtil.getDeptIdByCodes(pid, person.getOrgAccountId(),
+						List.of(OrgEnum.OrgRoleEnum.DepManager.name()));
+				if(depManagerDeptIds.contains(departmentId)){
+					//说明是部门领导
+					isManagerSameDep = true;
 				}
-				List<OrgRelationBean> masterOrgRelation = orgManager.findBySourIdAndTarCAndRelC(pid, ResourceEnum.ResourceTypeEnum.OrgDepartment.getKey(), OrgEnum.OrgRelationCategoryEnum.DepartmentMaster.getKey());
-				if(CollectionUtil.isNotEmpty(masterOrgRelation)){
-					for(OrgRelationBean orgRelationBean : masterOrgRelation){
-						if(orgRelationBean.getTargetId().equals(departmentId)){
-							isManagerSameDep = true;//说明是部门领导
-							break;
-						}
-					}
+				// 获取当前人员是部门任务联络员的所有部门
+				List<Long> taskManagerDeptIds = TaskByTypeUtil.getDeptIdByCodes(pid, person.getOrgAccountId(),
+						List.of(OrgEnum.OrgRoleEnum.TaskManager.name()));
+				if(taskManagerDeptIds.contains(departmentId)){
+					//说明是督办联络员
+					isManagerSameDep = true;
 				}
+//				List<OrgRelationBean> liaisonOrgRelation = orgManager.findBySourIdAndTarCAndRelC(pid, ResourceEnum.ResourceTypeEnum.OrgDepartment.getKey(), OrgEnum.OrgRelationCategoryEnum.DepartmentLiaison.getKey());
+//				if(CollectionUtil.isNotEmpty(liaisonOrgRelation)){
+//					for(OrgRelationBean orgRelationBean : liaisonOrgRelation){
+//						if(orgRelationBean.getTargetId().equals(departmentId)){
+//							isManagerSameDep = true;//说明是督办联络员
+//							break;
+//						}
+//					}
+//
+//
+//				}
+//				List<OrgRelationBean> masterOrgRelation = orgManager.findBySourIdAndTarCAndRelC(pid, ResourceEnum.ResourceTypeEnum.OrgDepartment.getKey(), OrgEnum.OrgRelationCategoryEnum.DepartmentMaster.getKey());
+//				if(CollectionUtil.isNotEmpty(masterOrgRelation)){
+//					for(OrgRelationBean orgRelationBean : masterOrgRelation){
+//						if(orgRelationBean.getTargetId().equals(departmentId)){
+//							isManagerSameDep = true;//说明是部门领导
+//							break;
+//						}
+//					}
+//				}
 
 				/* @author : inspired(胡启林);Description:承办是否可互看汇报内容	(edit) lastdate : 2020/3/9  */
 				Boolean canMutualLook = BaseEnum.BooleanEnum.getBoolean(typeBean.getCanMutualLook());