Quellcode durchsuchen

update 合作单位导入

周箭河 vor 5 Jahren
Ursprung
Commit
dc0fd788b3

+ 10 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/OrganizationService.java

@@ -3,7 +3,9 @@ package com.keao.edu.user.service;
 
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.entity.Organization;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.FileNotFoundException;
 import java.util.List;
 
 public interface OrganizationService extends BaseService<Integer, Organization> {
@@ -65,4 +67,12 @@ public interface OrganizationService extends BaseService<Integer, Organization>
      * @param lockFlag
      */
     void lock(Integer organId, Integer lockFlag);
+
+    /**
+     * 导入合作单位
+     * @param file
+     * @param tenantId
+     * @return
+     */
+    List<Organization> importOrgan(MultipartFile file,String tenantId) throws Exception;
 }

+ 359 - 284
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -2,6 +2,7 @@ package com.keao.edu.user.service.impl;
 
 
 import com.keao.edu.auth.api.client.SysUserFeignService;
+import com.keao.edu.auth.api.entity.SysRole;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.exception.BizException;
@@ -16,326 +17,400 @@ import com.keao.edu.user.dao.OrganizationDao;
 import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.entity.Organization;
+import com.keao.edu.user.enums.SettlementTypeEnum;
 import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.service.OrganizationService;
+import com.keao.edu.util.collection.MapUtil;
+import com.keao.edu.util.excel.POIUtil;
+import com.keao.edu.util.iniFile.IniFileEntity;
+import com.keao.edu.util.iniFile.IniFileUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.ResourceUtils;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.beans.IntrospectionException;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
 public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
-	
-	@Autowired
-	private OrganizationDao organDao;
-	@Autowired
-	private ImFeignService imFeignService;
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
-	@Autowired
-	private SysUserDao sysUserDao;
-	@Autowired
-	private EmployeeDao employeeDao;
-	@Autowired
-	private ExamOrganizationRelationDao examOrganizationRelationDao;
 
-	@Override
-	public BaseDAO<Integer, Organization> getDAO() {
-		return organDao;
-	}
+    @Autowired
+    private OrganizationDao organDao;
+    @Autowired
+    private ImFeignService imFeignService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private SysUserDao sysUserDao;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Autowired
+    private ExamOrganizationRelationDao examOrganizationRelationDao;
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void add(Organization organ) {
-		//获取当前用的organ
-		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
-		Organization currentOrganization = organDao.findByUserId(queryUserInfo.getId());
-		if(Objects.isNull(currentOrganization)){
-			throw new BizException("用户信息错误");
-		}
-		if(currentOrganization == null){
-			Integer organId = OrganContextHolder.getOrganId();
-			currentOrganization = organDao.get(organId);
-		}
-		if(currentOrganization.getLevel() == 3){
-			throw new BizException("无权限创建合作单位");
-		}
-		SysUser sysUser = organ.getSysUser();
+    @Override
+    public BaseDAO<Integer, Organization> getDAO() {
+        return organDao;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void add(Organization organ) {
+        //获取当前用的organ
+        SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
+        Organization currentOrganization = organDao.findByUserId(queryUserInfo.getId());
+        if (Objects.isNull(currentOrganization)) {
+            throw new BizException("用户信息错误");
+        }
+        if (currentOrganization == null) {
+            Integer organId = OrganContextHolder.getOrganId();
+            currentOrganization = organDao.get(organId);
+        }
+        if (currentOrganization.getLevel() == 3) {
+            throw new BizException("无权限创建合作单位");
+        }
+        SysUser sysUser = organ.getSysUser();
 //		String tenantId = queryUserInfo.getTenantId();
 //		organ.setTenantId(tenantId);
 //		sysUser.setTenantId(tenantId);
-		SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
-		organ.setParentOrganId(currentOrganization.getId());
-		organ.setLevel(currentOrganization.getLevel() + 1);
+        SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
+        organ.setParentOrganId(currentOrganization.getId());
+        organ.setLevel(currentOrganization.getLevel() + 1);
 
-		if(user != null && user.getId() != null){
+        if (user != null && user.getId() != null) {
 //			if(!user.getTenantId().equals(tenantId)){
 //				throw new BizException("手机号已被占用");
 //			}
-			if(StringUtils.isNotEmpty(user.getUserType())){
-				throw new BizException("手机号已被占用("+user.getPhone()+")");
-			}
-			Organization organization = organDao.findByUserId(user.getId());
-			if(organization == null){
-				organ.setUserId(user.getId());
-				organDao.insert(organ);
-				organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organ.getId());
-				organDao.update(organ);
-				//新增用户角色
-				if(sysUser.getRoles() != null){
-					sysUserDao.batchAddEmployeeRole(user.getId(),sysUser.getRoles());
-				}else {
-					Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
-					sysUserDao.batchAddEmployeeRole(user.getId(),roleIds);
-				}
-				if(StringUtils.isNotEmpty(user.getUserType())){
-					if(!user.getUserType().contains("SYSTEM")){
-						user.setUserType(user.getUserType() + ",SYSTEM");
-					}
-				}else {
-					user.setUserType("SYSTEM");
-				}
-				user.setRealName(organ.getContactName());
-				user.setPhone(organ.getContactPhone());
-				sysUserDao.update(user);
-				Employee employee = employeeDao.get(user.getId());
-				if(employee == null){
-					employee = new Employee();
-					employee.setOrganId(organ.getId());
-					employee.setUserId(user.getId());
-					employee.setTenantId(organ.getTenantId());
-					employee.setEmployeeType("ORGAN");
-					employeeDao.insert(employee);
-				}else {
-					employee.setDelFlag(false);
-					employee.setOrganId(organ.getId());
-					employee.setUserId(user.getId());
-					employee.setTenantId(organ.getTenantId());
-					employee.setEmployeeType("ORGAN");
-					employeeDao.update(employee);
-				}
-			}else if(organization.getDelFlag() == YesOrNoEnum.YES){
-				SysUser sysUser1 = organization.getSysUser();
-				if(StringUtils.isEmpty(sysUser1.getUserType())){
-					sysUser.setUserType("SYSTEM");
-				}else {
-					sysUser.setUserType(sysUser1.getUserType() + ",SYSTEM");
-				}
-				sysUser.setRealName(organ.getContactName());
-				sysUser.setPhone(organ.getContactPhone());
-				sysUser.setId(sysUser1.getId());
-				sysUserDao.update(sysUser);
-				if(sysUser.getRoles() != null){
-					sysUserDao.batchAddEmployeeRole(sysUser.getId(),sysUser.getRoles());
-				}else {
-					Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
-					sysUserDao.batchAddEmployeeRole(sysUser.getId(),roleIds);
-				}
-				Employee employee = employeeDao.get(sysUser.getId());
-				employee.setDelFlag(false);
-				employee.setTenantId(organ.getTenantId());
-				employee.setEmployeeType("ORGAN");
-				employee.setOrganId(organization.getId());
-				employeeDao.update(employee);
-				organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organization.getId());
-				organ.setDelFlag(YesOrNoEnum.NO);
-				organ.setId(organization.getId());
-				organDao.update(organ);
-			}else{
-				throw new BizException("用户已存在");
-			}
-			return;
-		}
-		sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
-		sysUser.setUserType("SYSTEM");
-		sysUser.setRealName(organ.getContactName());
-		sysUser.setPhone(organ.getContactPhone());
-		sysUserDao.insert(sysUser);
+            if (StringUtils.isNotEmpty(user.getUserType())) {
+                throw new BizException("手机号已被占用(" + user.getPhone() + ")");
+            }
+            Organization organization = organDao.findByUserId(user.getId());
+            if (organization == null) {
+                organ.setUserId(user.getId());
+                organDao.insert(organ);
+                organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organ.getId());
+                organDao.update(organ);
+                //新增用户角色
+                if (sysUser.getRoles() != null) {
+                    sysUserDao.batchAddEmployeeRole(user.getId(), sysUser.getRoles());
+                } else {
+                    Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
+                    sysUserDao.batchAddEmployeeRole(user.getId(), roleIds);
+                }
+                if (StringUtils.isNotEmpty(user.getUserType())) {
+                    if (!user.getUserType().contains("SYSTEM")) {
+                        user.setUserType(user.getUserType() + ",SYSTEM");
+                    }
+                } else {
+                    user.setUserType("SYSTEM");
+                }
+                user.setRealName(organ.getContactName());
+                user.setPhone(organ.getContactPhone());
+                sysUserDao.update(user);
+                Employee employee = employeeDao.get(user.getId());
+                if (employee == null) {
+                    employee = new Employee();
+                    employee.setOrganId(organ.getId());
+                    employee.setUserId(user.getId());
+                    employee.setTenantId(organ.getTenantId());
+                    employee.setEmployeeType("ORGAN");
+                    employeeDao.insert(employee);
+                } else {
+                    employee.setDelFlag(false);
+                    employee.setOrganId(organ.getId());
+                    employee.setUserId(user.getId());
+                    employee.setTenantId(organ.getTenantId());
+                    employee.setEmployeeType("ORGAN");
+                    employeeDao.update(employee);
+                }
+            } else if (organization.getDelFlag() == YesOrNoEnum.YES) {
+                SysUser sysUser1 = organization.getSysUser();
+                if (StringUtils.isEmpty(sysUser1.getUserType())) {
+                    sysUser.setUserType("SYSTEM");
+                } else {
+                    sysUser.setUserType(sysUser1.getUserType() + ",SYSTEM");
+                }
+                sysUser.setRealName(organ.getContactName());
+                sysUser.setPhone(organ.getContactPhone());
+                sysUser.setId(sysUser1.getId());
+                sysUserDao.update(sysUser);
+                if (sysUser.getRoles() != null) {
+                    sysUserDao.batchAddEmployeeRole(sysUser.getId(), sysUser.getRoles());
+                } else {
+                    Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
+                    sysUserDao.batchAddEmployeeRole(sysUser.getId(), roleIds);
+                }
+                Employee employee = employeeDao.get(sysUser.getId());
+                employee.setDelFlag(false);
+                employee.setTenantId(organ.getTenantId());
+                employee.setEmployeeType("ORGAN");
+                employee.setOrganId(organization.getId());
+                employeeDao.update(employee);
+                organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organization.getId());
+                organ.setDelFlag(YesOrNoEnum.NO);
+                organ.setId(organization.getId());
+                organDao.update(organ);
+            } else {
+                throw new BizException("用户已存在");
+            }
+            return;
+        }
+        sysUser.setPassword(new BCryptPasswordEncoder().encode("123456"));
+        sysUser.setUserType("SYSTEM");
+        sysUser.setRealName(organ.getContactName());
+        sysUser.setPhone(organ.getContactPhone());
+        sysUserDao.insert(sysUser);
 
-		organ.setUserId(sysUser.getId());
-		organDao.insert(organ);
-		organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organ.getId());
-		organDao.update(organ);
-		//新增用户角色
-		sysUserDao.delEmployeeRole(sysUser.getId());
-		if(sysUser.getRoles() != null){
-			sysUserDao.batchAddEmployeeRole(sysUser.getId(),sysUser.getRoles());
-		}else {
-			Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
-			sysUserDao.batchAddEmployeeRole(sysUser.getId(),roleIds);
-		}
-		Employee employee = new Employee();
-		employee.setOrganId(organ.getId());
-		employee.setUserId(sysUser.getId());
-		employee.setTenantId(organ.getTenantId());
-		employee.setEmployeeType("ORGAN");
-		employeeDao.insert(employee);
+        organ.setUserId(sysUser.getId());
+        organDao.insert(organ);
+        organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + organ.getId());
+        organDao.update(organ);
+        //新增用户角色
+        sysUserDao.delEmployeeRole(sysUser.getId());
+        if (sysUser.getRoles() != null) {
+            sysUserDao.batchAddEmployeeRole(sysUser.getId(), sysUser.getRoles());
+        } else {
+            Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
+            sysUserDao.batchAddEmployeeRole(sysUser.getId(), roleIds);
+        }
+        Employee employee = new Employee();
+        employee.setOrganId(organ.getId());
+        employee.setUserId(sysUser.getId());
+        employee.setTenantId(organ.getTenantId());
+        employee.setEmployeeType("ORGAN");
+        employeeDao.insert(employee);
 
-		ImResult imResult = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getRealName(),null));
+        ImResult imResult = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getRealName(), null));
         sysUser.setImToken(imResult.getToken());
-		sysUserDao.update(sysUser);
-	}
+        sysUserDao.update(sysUser);
+    }
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void updateOrganization(Organization organization) {
-		SysUser sysUser = organization.getSysUser();
-		Organization organization1 = organDao.get(organization.getId());
-		if(null == organization1){
-			throw new BizException("合作商信息不存在");
-		}
-		sysUser.setId(organization1.getUserId());
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateOrganization(Organization organization) {
+        SysUser sysUser = organization.getSysUser();
+        Organization organization1 = organDao.get(organization.getId());
+        if (null == organization1) {
+            throw new BizException("合作商信息不存在");
+        }
+        sysUser.setId(organization1.getUserId());
 //		organization.setId(sysUser.getId());
-		if(StringUtils.isNotEmpty(sysUser.getPhone())){
-			SysUser queryByPhone = sysUserDao.queryByPhone(sysUser.getPhone());
-			if(queryByPhone != null && !sysUser.getId().equals(queryByPhone.getId())){
-				throw new BizException("手机号已存在");
-			}
-		}
-		sysUser.setRealName(organization.getContactName());
-		sysUser.setPhone(organization.getContactPhone());
-		organization.setUserId(organization1.getUserId());
-		organDao.update(organization);
+        if (StringUtils.isNotEmpty(sysUser.getPhone())) {
+            SysUser queryByPhone = sysUserDao.queryByPhone(sysUser.getPhone());
+            if (queryByPhone != null && !sysUser.getId().equals(queryByPhone.getId())) {
+                throw new BizException("手机号已存在");
+            }
+        }
+        sysUser.setRealName(organization.getContactName());
+        sysUser.setPhone(organization.getContactPhone());
+        organization.setUserId(organization1.getUserId());
+        organDao.update(organization);
+
+        List<Organization> childOrgans = organDao.getChildOrgans(organization1.getParentOrganIdTag());
+        Set<Integer> userIds = childOrgans.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
+        userIds.add(sysUser.getId());
+
+        sysUserDao.batchDelEmployeeRole(userIds);
+        if (sysUser.getRoles() != null) {
+            sysUserDao.batchAddEmployeeRoles(userIds, sysUser.getRoles());
+        } else {
+            SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
+            Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
+            sysUserDao.batchAddEmployeeRole(sysUser.getId(), roleIds);
+        }
+
+        sysUserDao.update(sysUser);
+        imFeignService.update(new ImUserModel(sysUser.getId().toString(), sysUser.getRealName(), sysUser.getAvatar()));
+    }
+
+    @Override
+    public List<Integer> getChildOrganIds(Integer organId, boolean includeSelf) {
+        if (Objects.isNull(organId)) {
+            return null;
+        }
+        Organization organization = organDao.get(organId);
+        if (Objects.isNull(organization)) {
+            throw new BizException("当前声部不存在");
+        }
+        List<Integer> selfAndChildOrganIds = organDao.getChildOrganIds(organization.getParentOrganIdTag());
+        if (null == selfAndChildOrganIds) {
+            selfAndChildOrganIds = Collections.EMPTY_LIST;
+        }
+        if (!includeSelf) {
+            selfAndChildOrganIds.remove(organization.getId());
+        }
+        if (CollectionUtils.isEmpty(selfAndChildOrganIds)) {
+            selfAndChildOrganIds.add(0);
+        }
+        return selfAndChildOrganIds;
+    }
+
+    @Override
+    public List<Organization> getChildOrgans(Integer organId, boolean includeSelf) {
+        Organization organization = organDao.get(organId);
+        if (Objects.isNull(organization)) {
+            throw new BizException("合作单位不存在");
+        }
+        List<Organization> selfAndChildOrgans = organDao.getChildOrgans(organization.getParentOrganIdTag());
+        if (null == selfAndChildOrgans) {
+            selfAndChildOrgans = Collections.EMPTY_LIST;
+        }
+        if (includeSelf) {
+            selfAndChildOrgans.add(organization);
+        }
+        return selfAndChildOrgans;
+    }
+
+    @Override
+    public List<Integer> getNextLevelOrganIds(Integer organId, boolean includeSelf) {
+        if (Objects.isNull(organId)) {
+            return null;
+        }
+        Organization organization = organDao.get(organId);
+        if (Objects.isNull(organization)) {
+            throw new BizException("当前声部不存在");
+        }
+        List<Integer> selfAndChildOrganIds = organDao.getNextLevelOrganIds(organization.getId());
+        if (null == selfAndChildOrganIds) {
+            selfAndChildOrganIds = Collections.EMPTY_LIST;
+        }
+        if (includeSelf) {
+            selfAndChildOrganIds.add(organization.getId());
+        }
+        if (CollectionUtils.isEmpty(selfAndChildOrganIds)) {
+            selfAndChildOrganIds.add(0);
+        }
+        return selfAndChildOrganIds;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void del(Integer id) {
+        Organization organization = organDao.get(id);
+        SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
+        if (queryUserInfo.getId().equals(organization.getUserId())) {
+            throw new BizException("删除失败:不支持此操作");
+        }
+        Integer count = examOrganizationRelationDao.findByOrganId(id);
+        if (count == null || count == 0) {
+            SysUser sysUser = organization.getSysUser();
+            String userType = sysUser.getUserType();
+            if (userType.contains(",SYSTEM")) {
+                userType = userType.replace(",SYSTEM", "");
+            } else if (userType.contains("SYSTEM,")) {
+                userType = userType.replace("SYSTEM,", "");
+            } else {
+                userType = "";
+            }
+            sysUserDao.updateUserType(sysUser.getId(), userType);
+            sysUserDao.delEmployeeRole(organization.getUserId());
+            employeeDao.delete(sysUser.getId());
+            organDao.delete(id);
+        } else {
+            throw new BizException("删除失败:存在考试项目,无法删除");
+        }
+    }
+
+    @Override
+    public Organization getOrganization(Integer id) {
+        Organization organization = organDao.get(id);
+        SysUser sysUser = organization.getSysUser();
+        Integer roleIds = sysUserDao.queryRoleIds(organization.getUserId());
+        sysUser.setRoles(roleIds);
+        return organization;
+    }
+
+    @Override
+    public Organization findByUserId(Integer userId) {
+        return organDao.findByUserId(userId);
+    }
 
-		List<Organization> childOrgans = organDao.getChildOrgans(organization1.getParentOrganIdTag());
-		Set<Integer> userIds = childOrgans.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
-		userIds.add(sysUser.getId());
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void lock(Integer organId, Integer lockFlag) {
+        Organization organization = organDao.get(organId);
+        SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
+        if (queryUserInfo.getId().equals(organization.getUserId())) {
+            throw new BizException("操作失败:不支持此操作");
+        }
+        if (lockFlag == 1) {
+            List<Integer> organIds = getChildOrganIds(organId, true);
+            employeeDao.batchLock(organIds);
+        } else {
+            Employee employee = employeeDao.get(organization.getUserId());
+            employee.setLockFlag(lockFlag);
+            employeeDao.update(employee);
+        }
+    }
 
-		sysUserDao.batchDelEmployeeRole(userIds);
-		if(sysUser.getRoles() != null){
-			sysUserDao.batchAddEmployeeRoles(userIds,sysUser.getRoles());
-		}else {
-			SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
-			Integer roleIds = sysUserDao.queryRoleIds(queryUserInfo.getId());
-			sysUserDao.batchAddEmployeeRole(sysUser.getId(),roleIds);
-		}
+    @Override
+    public List<Organization> importOrgan(MultipartFile file, String tenantId) throws Exception {
 
-		sysUserDao.update(sysUser);
-		imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName(),sysUser.getAvatar()));
-	}
+        Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(file.getInputStream(), 2, file.getOriginalFilename());
 
-	@Override
-	public List<Integer> getChildOrganIds(Integer organId, boolean includeSelf) {
-		if(Objects.isNull(organId)){
-			return null;
-		}
-		Organization organization = organDao.get(organId);
-		if(Objects.isNull(organization)){
-			throw new BizException("当前声部不存在");
-		}
-		List<Integer> selfAndChildOrganIds = organDao.getChildOrganIds(organization.getParentOrganIdTag());
-		if(null == selfAndChildOrganIds){
-			selfAndChildOrganIds= Collections.EMPTY_LIST;
-		}
-		if(!includeSelf){
-			selfAndChildOrganIds.remove(organization.getId());
-		}
-		if(CollectionUtils.isEmpty(selfAndChildOrganIds)){
-			selfAndChildOrganIds.add(0);
-		}
-		return selfAndChildOrganIds;
-	}
+        File columnFile = ResourceUtils.getFile("classpath:" + "columnMapper.ini");
+        List<IniFileEntity> organizationColumns = IniFileUtil.readIniFile(columnFile).get("organization");
 
-	@Override
-	public List<Organization> getChildOrgans(Integer organId, boolean includeSelf) {
-		Organization organization = organDao.get(organId);
-		if(Objects.isNull(organization)){
-			throw new BizException("合作单位不存在");
-		}
-		List<Organization> selfAndChildOrgans = organDao.getChildOrgans(organization.getParentOrganIdTag());
-		if(null == selfAndChildOrgans){
-			selfAndChildOrgans= Collections.EMPTY_LIST;
-		}
-		if(includeSelf){
-			selfAndChildOrgans.add(organization);
-		}
-		return selfAndChildOrgans;
-	}
+        List<SysRole> organRoles = sysUserDao.getOrganRole(Integer.parseInt(tenantId));
+        List<Organization> organizations = new ArrayList<>();
 
-	@Override
-	public List<Integer> getNextLevelOrganIds(Integer organId, boolean includeSelf) {
-		if(Objects.isNull(organId)){
-			return null;
-		}
-		Organization organization = organDao.get(organId);
-		if(Objects.isNull(organization)){
-			throw new BizException("当前声部不存在");
-		}
-		List<Integer> selfAndChildOrganIds = organDao.getNextLevelOrganIds(organization.getId());
-		if(null == selfAndChildOrganIds){
-			selfAndChildOrganIds= Collections.EMPTY_LIST;
-		}
-		if(includeSelf){
-			selfAndChildOrganIds.add(organization.getId());
-		}
-		if(CollectionUtils.isEmpty(selfAndChildOrganIds)){
-			selfAndChildOrganIds.add(0);
-		}
-		return selfAndChildOrganIds;
-	}
+        sheetsListMap.keySet().forEach(e -> {
+            List<Map<String, Object>> sheet = sheetsListMap.get(e);
+            for (Map<String, Object> row : sheet) {
+                SysUser user = new SysUser();
+                Map<String, Object> objectMap = new HashMap<>();
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void del(Integer id) {
-		Organization organization = organDao.get(id);
-		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
-		if(queryUserInfo.getId().equals(organization.getUserId())){
-			throw new BizException("删除失败:不支持此操作");
-		}
-		Integer count = examOrganizationRelationDao.findByOrganId(id);
-		if(count == null || count == 0){
-			SysUser sysUser = organization.getSysUser();
-			String userType = sysUser.getUserType();
-			if(userType.contains(",SYSTEM")){
-				userType = userType.replace(",SYSTEM","");
-			}else if(userType.contains("SYSTEM,")){
-				userType = userType.replace("SYSTEM,","");
-			}else {
-				userType = "";
-			}
-			sysUserDao.updateUserType(sysUser.getId(),userType);
-			sysUserDao.delEmployeeRole(organization.getUserId());
-			employeeDao.delete(sysUser.getId());
-			organDao.delete(id);
-		}else {
-			throw new BizException("删除失败:存在考试项目,无法删除");
-		}
-	}
+                for (String s : row.keySet()) {
+                    for (IniFileEntity organizationColumn : organizationColumns) {
+                        if (!s.equals(organizationColumn.getKey())) continue;
+                        objectMap.put(organizationColumn.getValue(), row.get(s));
 
-	@Override
-	public Organization getOrganization(Integer id) {
-		Organization organization = organDao.get(id);
-		SysUser sysUser = organization.getSysUser();
-		Integer roleIds = sysUserDao.queryRoleIds(organization.getUserId());
-		sysUser.setRoles(roleIds);
-		return organization;
-	}
+                        if (organizationColumn.getValue().equals("contactPhone")) {
+                            user.setPhone(row.get(s).toString());
+                        }
+                        if (organizationColumn.getValue().equals("shareProfitAmount")) {
+                            objectMap.put(organizationColumn.getValue(), new BigDecimal(row.get(s).toString()));
+                        }
 
-	@Override
-	public Organization findByUserId(Integer userId) {
-		return organDao.findByUserId(userId);
-	}
+                        if (organizationColumn.getValue().equals("roleName")) {
+                            for (SysRole organRole : organRoles) {
+                                if (organRole.getRoleName().equals(row.get(s).toString())) {
+                                    user.setRoles(organRole.getId());
+                                    break;
+                                }
+                            }
+                        }
+                        if (organizationColumn.getValue().equals("settlementType")) {
+                            for (SettlementTypeEnum settlementType : SettlementTypeEnum.values()) {
+                                if (settlementType.getMsg().equals(row.get(s).toString())) {
+                                    objectMap.put("settlementType", settlementType);
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void lock(Integer organId, Integer lockFlag) {
-		Organization organization = organDao.get(organId);
-		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
-		if(queryUserInfo.getId().equals(organization.getUserId())){
-			throw new BizException("操作失败:不支持此操作");
-		}
-		if(lockFlag == 1){
-			List<Integer> organIds = getChildOrganIds(organId, true);
-			employeeDao.batchLock(organIds);
-		}else {
-			Employee employee = employeeDao.get(organization.getUserId());
-			employee.setLockFlag(lockFlag);
-			employeeDao.update(employee);
-		}
-	}
+                Organization organization = null;
+                try {
+                    organization = MapUtil.mapToJavaBean(Organization.class, objectMap);
+                    organization.setTenantId(tenantId);
+                    organization.setSysUser(user);
+                    organizations.add(organization);
+                } catch (Exception ex) {
+                    throw new BizException("导入数据出错");
+                }
+                this.add(organization);
+            }
+        });
+        return organizations;
+    }
 }

+ 4 - 69
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/OrganizationController.java

@@ -2,7 +2,6 @@ package com.keao.edu.user.controller;
 
 
 import com.keao.edu.auth.api.client.SysUserFeignService;
-import com.keao.edu.auth.api.entity.SysRole;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.controller.BaseController;
 import com.keao.edu.common.entity.HttpResponseResult;
@@ -10,10 +9,8 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.entity.Organization;
-import com.keao.edu.user.enums.SettlementTypeEnum;
 import com.keao.edu.user.page.OrganizationQueryInfo;
 import com.keao.edu.user.service.OrganizationService;
-import com.keao.edu.util.collection.MapUtil;
 import com.keao.edu.util.date.DateUtil;
 import com.keao.edu.util.excel.POIUtil;
 import com.keao.edu.util.iniFile.IniFileEntity;
@@ -28,12 +25,11 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
-import java.beans.IntrospectionException;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.math.BigDecimal;
 import java.util.*;
+
 /**
  * 合作单位服务
  */
@@ -113,71 +109,10 @@ public class OrganizationController extends BaseController {
     @ApiOperation(value = "导入合作单位")
     @PostMapping(value = "importOrgan")
     @PreAuthorize("@pcs.hasPermissions('organization/importOrgan')")
-    public HttpResponseResult importOrgan(@RequestParam("file") MultipartFile file) throws IOException {
+    public HttpResponseResult<List<Organization>> importOrgan(@RequestParam("file") MultipartFile file) throws Exception {
         String tenantId = TenantContextHolder.getTenantId();
-
-        Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(file.getInputStream(), 2, file.getOriginalFilename());
-
-        File columnFile = ResourceUtils.getFile("classpath:" + "columnMapper.ini");
-        List<IniFileEntity> organizationColumns = IniFileUtil.readIniFile(columnFile).get("organization");
-
-        List<SysRole> organRoles = sysUserDao.getOrganRole(Integer.parseInt(tenantId));
-
-
-        sheetsListMap.keySet().forEach(e -> {
-                    List<Map<String, Object>> sheet = sheetsListMap.get(e);
-                    for (Map<String, Object> row : sheet) {
-                        SysUser user = new SysUser();
-                        Map<String, Object> objectMap = new HashMap<>();
-
-                        for (String s : row.keySet()) {
-                            for (IniFileEntity organizationColumn : organizationColumns) {
-                                if (!s.equals(organizationColumn.getKey())) continue;
-                                objectMap.put(organizationColumn.getValue(), row.get(s));
-
-                                if (organizationColumn.getValue().equals("contactPhone")) {
-                                    user.setPhone(row.get(s).toString());
-                                }
-                                if (organizationColumn.getValue().equals("shareProfitAmount")) {
-                                    objectMap.put(organizationColumn.getValue(),new BigDecimal(row.get(s).toString()));
-                                }
-
-                                if (organizationColumn.getValue().equals("roleName")) {
-                                    for (SysRole organRole : organRoles) {
-                                        if (organRole.getRoleName().equals(row.get(s).toString())) {
-                                            user.setRoles(organRole.getId());
-                                            break;
-                                        }
-                                    }
-                                }
-                                if (organizationColumn.getValue().equals("settlementType")) {
-                                    for (SettlementTypeEnum settlementType : SettlementTypeEnum.values()) {
-                                        if (settlementType.getMsg().equals(row.get(s).toString())) {
-                                            objectMap.put("settlementType", settlementType);
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-
-                        try {
-                            Organization organization = MapUtil.mapToJavaBean(Organization.class, objectMap);
-                            organization.setTenantId(tenantId);
-                            organization.setSysUser(user);
-                            organizationService.add(organization);
-                        } catch (IllegalAccessException ex) {
-                            ex.printStackTrace();
-                        } catch (IntrospectionException ex) {
-                            ex.printStackTrace();
-                        } catch (InstantiationException ex) {
-                            ex.printStackTrace();
-                        }
-                    }
-                }
-        );
-
-        return null;
+        List<Organization> organizations = organizationService.importOrgan(file, tenantId);
+        return succeed(organizations);
     }
 
     @ApiOperation(value = "获取导入模板")