|
@@ -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;
|
|
|
+ }
|
|
|
}
|