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

根据分部查询角色列表

zouxuan преди 3 години
родител
ревизия
869307e554

+ 11 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java

@@ -1,11 +1,8 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.MapDto;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
-import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
 import com.ym.mec.common.entity.Mapper;
-import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.*;
@@ -15,13 +12,6 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     Set<Integer>  EXCLUDE_ORGAN_IDS = new HashSet<>(Arrays.asList(36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24));
 
     /**
-     * 获取节点树状结构
-     * @param queryInfo
-     * @return
-     */
-    PageInfo<Organization> queryTreePage(OrganizationQueryInfo queryInfo);
-
-    /**
      * 获取员工坐在分部列表
      * @return
      */
@@ -49,7 +39,7 @@ public interface OrganizationService extends BaseService<Integer, Organization>
 
     Long add(Organization organization);
 
-    Map<String,List<Mapper>> getOrganRole(Integer id);
+    Map<String,List<Mapper>> getOrganRole(List<Integer> organIds);
 
     /**
     * @description: 获取分部的管理人员
@@ -60,4 +50,14 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     * @date 2022/1/4 11:36
     */
     Set<Integer> queryUserIdByRoleId(SysUserRoleEnum[] roleArr, Integer organId);
+
+    /**
+    * @description: 获取员工能访问的分部列表
+     * @param userId
+     * @param organIds
+    * @return java.lang.String
+    * @author zx
+    * @date 2022/1/5 12:44
+    */
+    String getEmployeeOrgan(Integer userId,String organIds,Boolean isSuper);
 }

+ 63 - 38
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java

@@ -1,33 +1,29 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.*;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dto.MapDto;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
 import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.Mapper;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
-import com.ym.mec.util.json.JsonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.*;
 
@@ -39,6 +35,8 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
+	private EmployeeDao employeeDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	@Override
@@ -47,15 +45,6 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
-	public PageInfo<Organization> queryTreePage(OrganizationQueryInfo queryInfo){
-		PageInfo<Organization> pageInfo = queryPage(queryInfo);
-		for (Organization organization:pageInfo.getRows()) {
-			organization = getTree(organization);
-		}
-		return pageInfo;
-	}
-
-	@Override
 	public List<Organization> queryEmployeeOrgan(Integer userId,String organId){
 		return organizationDao.queryEmployeeOrgan(userId,organId);
 	}
@@ -131,23 +120,41 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 	@Override
-	public Map<String,List<Mapper>> getOrganRole(Integer id) {
-		Organization organization = organizationDao.get(id);
-		if(organization == null){
+	public Map<String,List<Mapper>> getOrganRole(List<Integer> organIds) {
+		List<Organization> organizationList = organizationDao.findOrgans(organIds);
+		if(organizationList == null || organizationList.size() == 0){
 			throw new BizException("分部信息不存在");
 		}
-		String organManager = organization.getOrganManager();
-		String repairId = organization.getRepairId();
-		String educationId = organization.getEducationId();
-		String joinTeacherId = organization.getJoinTeacherId();
-		String organManagerUserIds = concatOrganManager(organManager, repairId, educationId, joinTeacherId);
+		StringJoiner organManager = new StringJoiner(",")
+				,repairId = new StringJoiner(",")
+				,educationId = new StringJoiner(",")
+				,joinTeacherId = new StringJoiner(","),
+				userId = new StringJoiner(",");
+		for (Organization organization : organizationList) {
+			if(StringUtils.isNotEmpty(organization.getOrganManager())){
+				organManager.add(organization.getOrganManager());
+				userId.add(organization.getOrganManager());
+			}
+			if(StringUtils.isNotEmpty(organization.getRepairId())){
+				repairId.add(organization.getRepairId());
+				userId.add(organization.getRepairId());
+			}
+			if(StringUtils.isNotEmpty(organization.getEducationId())){
+				educationId.add(organization.getEducationId());
+				userId.add(organization.getEducationId());
+			}
+			if(StringUtils.isNotEmpty(organization.getJoinTeacherId())){
+				joinTeacherId.add(organization.getJoinTeacherId());
+				userId.add(organization.getJoinTeacherId());
+			}
+		}
 		Map<String,List<Mapper>> resultMap = new HashMap<>(4);
-		if(StringUtils.isNotEmpty(organManagerUserIds) && organManagerUserIds.length() > 0){
-			Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(organManagerUserIds));
-			resultMap.put("organManager",getOrganManagerName(educationalTeacherNameMap,organManager));
-			resultMap.put("repairId",getOrganManagerName(educationalTeacherNameMap,repairId));
-			resultMap.put("educationId",getOrganManagerName(educationalTeacherNameMap,educationId));
-			resultMap.put("joinTeacherId",getOrganManagerName(educationalTeacherNameMap,joinTeacherId));
+		if(userId.length() > 0){
+			Map<Integer, String> educationalTeacherNameMap = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(userId.toString()));
+			resultMap.put("organManager",getOrganManagerName(educationalTeacherNameMap,organManager.toString()));
+			resultMap.put("repairId",getOrganManagerName(educationalTeacherNameMap,repairId.toString()));
+			resultMap.put("educationId",getOrganManagerName(educationalTeacherNameMap,educationId.toString()));
+			resultMap.put("joinTeacherId",getOrganManagerName(educationalTeacherNameMap,joinTeacherId.toString()));
 		}
 		return resultMap;
 	}
@@ -179,7 +186,25 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		return new HashSet<>();
 	}
 
-    private List<Mapper> getOrganManagerName(Map<Integer, String> nameMap, String organManager){
+	@Override
+	public String getEmployeeOrgan(Integer userId, String organIds,Boolean isSuper) {
+		if(StringUtils.isEmpty(organIds)){
+			Employee employee = employeeDao.get(userId);
+			organIds = employee.getOrganIdList();
+		}
+		if(StringUtils.isEmpty(organIds) && isSuper){
+			Map<String,Object> param = new HashMap<>();
+			Integer tenantId = TenantContextHolder.getTenantId();
+			param.put("tenantId",tenantId);
+			List<Organization> all = this.findAll(param);
+			if(all != null && all.size() > 0){
+				organIds = StringUtils.join(all.stream().map(e->e.getId()).collect(Collectors.toSet()),",");
+			}
+		}
+		return organIds;
+	}
+
+	private List<Mapper> getOrganManagerName(Map<Integer, String> nameMap, String organManager){
 		List<Mapper> mapperList = new ArrayList<>();
 		if(StringUtils.isNotEmpty(organManager)){
 			List<Integer> organIds = Arrays.stream(organManager.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -37,7 +37,7 @@
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="Organization">
-		SELECT * FROM organization where tenant_id_ = #{tenantId} ORDER BY id_
+		SELECT * FROM organization WHERE tenant_id_ = #{tenantId} AND del_flag_ = 0 ORDER BY id_
 	</select>
 
     <!-- 向数据库增加一条记录 -->

+ 20 - 4
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -2,21 +2,26 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
+import com.ym.mec.biz.service.EmployeeService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("organization")
 @Api(tags = "分部服务")
@@ -27,6 +32,8 @@ public class OrganizationController extends BaseController {
     private OrganizationService organizationService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private EmployeeService employeeService;
 
     @ApiOperation(value = "分页查询分部列表")
     @GetMapping("/queryPage")
@@ -92,8 +99,17 @@ public class OrganizationController extends BaseController {
     @GetMapping("/getOrganRole")
     @PreAuthorize("@pcs.hasPermissions('organization/getOrganRole')")
     @ApiParam(value = "分部编号", required = true)
-    public Object getOrganRole(Integer id){
-        return succeed(organizationService.getOrganRole(id));
+    public Object getOrganRole(String organIds){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        organIds = organizationService.getEmployeeOrgan(sysUser.getId(),organIds,sysUser.getIsSuperAdmin());
+        if(StringUtils.isEmpty(organIds)){
+            return failed("分部信息异常");
+        }
+        List<Integer> collect = Arrays.stream(organIds.split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
+        return succeed(organizationService.getOrganRole(collect));
     }
 
     @ApiOperation(value = "获取用户所在分部的年级列表)")

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupCategoryController.java

@@ -43,7 +43,6 @@ public class VipGroupCategoryController extends BaseController {
 		return succeed(vipGroupCategoryService.findTeacherSalary(userId));
 	}
 
-
 	@ApiOperation("新增")
 	@PostMapping(value = "/add")
     @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/add')")