Browse Source

Merge remote-tracking branch 'origin/master'

zouxuan 4 years ago
parent
commit
cadcb2e621

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EmployeeDto.java

@@ -48,6 +48,8 @@ public class EmployeeDto {
     /** 离职日期 */
     private java.util.Date demissionDate;
 
+    private String organIdStr;
+
     @ApiModelProperty(value = "部门ID",required = false)
     private List<Long> organIdList;
 
@@ -58,6 +60,14 @@ public class EmployeeDto {
 
     private String postalCode;
 
+    public String getOrganIdStr() {
+        return organIdStr;
+    }
+
+    public void setOrganIdStr(String organIdStr) {
+        this.organIdStr = organIdStr;
+    }
+
     public String getContactAddress() {
         return contactAddress;
     }

+ 27 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -1,12 +1,10 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.service.ImUserFriendService;
 import org.apache.commons.lang3.StringUtils;
@@ -18,10 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.EmployeeDto;
 import com.ym.mec.biz.dal.dto.EmployeeLevelDto;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
@@ -42,6 +36,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
+import org.springframework.util.CollectionUtils;
 
 @Service
 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  implements EmployeeService {
@@ -62,6 +57,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	private ClassGroupDao classGroupDao;
 	@Autowired
 	private ImUserFriendService imUserFriendService;
+	@Autowired
+	private OrganizationDao organizationDao;
 
 	@Override
 	public BaseDAO<Integer, Employee> getDAO() {
@@ -149,6 +146,27 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = employeeDao.queryEmployByOrganId(params);
+			List<Integer> allOrganIds = new ArrayList<>();
+			for (EmployeeDto employeeDto : dataList) {
+				if(StringUtils.isBlank(employeeDto.getOrganIdStr())){
+					continue;
+				}
+				List<Integer> organIds = Arrays.stream(employeeDto.getOrganIdStr().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
+				allOrganIds.addAll(organIds);
+			}
+			if(!CollectionUtils.isEmpty(allOrganIds)){
+				List<Organization> allOrgans = organizationDao.findOrgans(allOrganIds);
+				for (EmployeeDto employeeDto : dataList) {
+					if(StringUtils.isBlank(employeeDto.getOrganIdStr())){
+						continue;
+					}
+					List<Integer> organIds = Arrays.stream(employeeDto.getOrganIdStr().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
+					List<Organization> organs = allOrgans.stream().filter(organ -> organIds.contains(organ.getId())).collect(Collectors.toList());
+					List<String> organNames = organs.stream().map(Organization::getName).collect(Collectors.toList());
+					employeeDto.setOrganNameList(organNames);
+					employeeDto.setOrganIdList(organIds.stream().mapToLong(Long::valueOf).boxed().collect(Collectors.toList()));
+				}
+			}
 		}
 		if (count == 0) {
 			dataList = new ArrayList<>();

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -141,6 +141,9 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 		//获取班级关联的学员列表
 		Set<Integer> studentIds = classGroupStudentMapperDao.queryStudentIdsByClassGroupId(courseSchedule.getClassGroupId(),null,null);
 		ClassGroup classGroup = classGroupDao.get(courseSchedule.getClassGroupId());
+		if(classGroup == null){
+			return;
+		}
 		GroupType groupType = classGroup.getGroupType();
 		List<ImUserFriend> imUserFriends = saveImUserFriends(studentIds, teacherIds, groupType, classGroup.getMusicGroupId());
 		if(imUserFriends.size() > 0){

+ 2 - 8
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -185,21 +185,16 @@
         <result property="demissionDate" column="demission_date_"/>
         <result property="contactAddress" column="contact_address_"/>
         <result property="postalCode" column="postal_code_"/>
+        <result property="organIdStr" column="organ_id_str_"/>
         <collection property="roleNames" ofType="string" javaType="list">
             <result column="role_name_"/>
         </collection>
-        <collection property="organNameList" ofType="string" javaType="list">
-            <result column="organ_name_list_"/>
-        </collection>
         <collection property="roleIds" ofType="integer" javaType="list">
             <result column="role_id_"/>
         </collection>
-        <collection property="organIdList" ofType="Long" javaType="list">
-            <result column="organ_id_list_"/>
-        </collection>
     </resultMap>
     <select id="queryEmployByOrganId" resultMap="EmployeeDto">
-        SELECT ue.*,o.name_ organ_name_list_,o.id_ organ_id_list_,sr.role_name_,sr.id_ role_id_
+        SELECT ue.*,ue.organ_id_ organ_id_str_,sr.role_name_,sr.id_ role_id_
         FROM (SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
         e.entry_date_,e.demission_date_,e.organ_id_list_ organ_id_,e.create_time_,e.contact_address_,e.postal_code_
         FROM employee e
@@ -230,7 +225,6 @@
         ORDER BY e.create_time_ DESC <include refid="global.limit"/>) ue
         LEFT JOIN sys_user_role sur ON sur.user_id_ = ue.user_id_
         LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
-        LEFT JOIN organization o ON FIND_IN_SET(o.id_,ue.organ_id_)
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">