dev:人员导入(未完成)
parent
8ea23c9a59
commit
b0fdf323b3
|
|
@ -20,6 +20,7 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -117,7 +118,7 @@ public class UserController {
|
||||||
|
|
||||||
@ApiOperation("导出用户列表")
|
@ApiOperation("导出用户列表")
|
||||||
@PostMapping("/exportUserTable")
|
@PostMapping("/exportUserTable")
|
||||||
public void exportPointTable(@Validated @RequestBody UserExportQry qry, HttpServletResponse httpServletResponse) {
|
public void exportUserTable(@Validated @RequestBody UserExportQry qry, HttpServletResponse httpServletResponse) {
|
||||||
List<Long> dataIds = Collections.emptyList();
|
List<Long> dataIds = Collections.emptyList();
|
||||||
if(qry.getIds() != null && qry.getIds().length > 0){
|
if(qry.getIds() != null && qry.getIds().length > 0){
|
||||||
dataIds = Arrays.stream(qry.getIds())
|
dataIds = Arrays.stream(qry.getIds())
|
||||||
|
|
@ -128,5 +129,12 @@ public class UserController {
|
||||||
}
|
}
|
||||||
userService.exportUserTable(httpServletResponse, dataIds, Long.valueOf(qry.getCorpinfoId()));
|
userService.exportUserTable(httpServletResponse, dataIds, Long.valueOf(qry.getCorpinfoId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("导入用户列表")
|
||||||
|
@PostMapping("/importUserTable")
|
||||||
|
public Response importUserTable(@RequestPart(value = "file") MultipartFile file) {
|
||||||
|
userService.importUserTable(file);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,28 @@
|
||||||
package com.zcloud.basic.info.command;
|
package com.zcloud.basic.info.command;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.jjb.saas.config.client.dicttree.facade.ConfDictTreeFacade;
|
||||||
|
import com.jjb.saas.config.client.dicttree.response.ConfDictTreeCO;
|
||||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.basic.info.command.convertor.UserCoConvertor;
|
import com.zcloud.basic.info.command.convertor.UserCoConvertor;
|
||||||
import com.zcloud.basic.info.domain.gateway.CorpInfoGateway;
|
import com.zcloud.basic.info.domain.gateway.CorpInfoGateway;
|
||||||
import com.zcloud.basic.info.domain.gateway.UserEmploymentLogGateway;
|
import com.zcloud.basic.info.domain.gateway.UserEmploymentLogGateway;
|
||||||
import com.zcloud.basic.info.domain.gateway.UserGateway;
|
import com.zcloud.basic.info.domain.gateway.UserGateway;
|
||||||
|
import com.zcloud.basic.info.domain.model.DepartmentE;
|
||||||
|
import com.zcloud.basic.info.domain.model.PostE;
|
||||||
import com.zcloud.basic.info.domain.model.UserE;
|
import com.zcloud.basic.info.domain.model.UserE;
|
||||||
import com.zcloud.basic.info.domain.model.UserEmploymentLogE;
|
import com.zcloud.basic.info.domain.model.UserEmploymentLogE;
|
||||||
import com.zcloud.basic.info.dto.UserAddCmd;
|
import com.zcloud.basic.info.dto.UserAddCmd;
|
||||||
import com.zcloud.basic.info.dto.UserXgfAddCmd;
|
import com.zcloud.basic.info.dto.UserXgfAddCmd;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
import com.zcloud.basic.info.persistence.dataobject.*;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.UserEmploymentLogDO;
|
|
||||||
import com.zcloud.basic.info.persistence.repository.CorpInfoRepository;
|
import com.zcloud.basic.info.persistence.repository.CorpInfoRepository;
|
||||||
|
import com.zcloud.basic.info.persistence.repository.DepartmentRepository;
|
||||||
|
import com.zcloud.basic.info.persistence.repository.PostRepository;
|
||||||
|
import com.zcloud.basic.info.persistence.repository.UserRepository;
|
||||||
|
import com.zcloud.gbscommon.excelEntity.UserExcelImportEntity;
|
||||||
import com.zcloud.gbscommon.utils.Tools;
|
import com.zcloud.gbscommon.utils.Tools;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
|
|
@ -23,6 +32,10 @@ import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -37,6 +50,12 @@ public class UserAddExe {
|
||||||
private UserCoConvertor userCoConvertor;
|
private UserCoConvertor userCoConvertor;
|
||||||
private final UserEmploymentLogGateway userEmploymentLogGateway;
|
private final UserEmploymentLogGateway userEmploymentLogGateway;
|
||||||
private final CorpInfoRepository corpInfoRepository;
|
private final CorpInfoRepository corpInfoRepository;
|
||||||
|
private final DepartmentRepository departmentRepository;
|
||||||
|
private final PostRepository postRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
@DubboReference
|
||||||
|
private ConfDictTreeFacade confDictTreeFacade;
|
||||||
|
|
||||||
// @Autowired
|
// @Autowired
|
||||||
// private RedisTemplate<String, Object> redisTemplate;
|
// private RedisTemplate<String, Object> redisTemplate;
|
||||||
// @DubboReference(check = false)
|
// @DubboReference(check = false)
|
||||||
|
|
@ -98,5 +117,36 @@ public class UserAddExe {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void importUserTable(MultipartFile file){
|
||||||
|
UserE userE = new UserE();
|
||||||
|
Long corpinfoId = AuthContext.getTenantId();
|
||||||
|
|
||||||
|
QueryWrapper queryWrapper = new QueryWrapper();
|
||||||
|
queryWrapper.eq("corpinfo_id", corpinfoId);
|
||||||
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
|
|
||||||
|
// 部门数据
|
||||||
|
List<DepartmentDO> departmentDOList = departmentRepository.list(queryWrapper);
|
||||||
|
List<DepartmentE> departmentEList = BeanUtil.copyToList(departmentDOList, DepartmentE.class);
|
||||||
|
// 岗位数据
|
||||||
|
List<PostDO> postDOList = postRepository.list(queryWrapper);
|
||||||
|
List<PostE> postEList = BeanUtil.copyToList(postDOList, PostE.class);
|
||||||
|
queryWrapper.clear();
|
||||||
|
// 用户名数据
|
||||||
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
|
List<UserDO> userDOList = userRepository.list(queryWrapper);
|
||||||
|
List<UserE> userEList = BeanUtil.copyToList(userDOList, UserE.class);
|
||||||
|
// 企业端-人员类型字典
|
||||||
|
List<ConfDictTreeCO> confDictCOList = confDictTreeFacade.listByAppKeyAndParentIdTree("0bb989ecada5470c87635018ece9f327", 1986379731994513408L);
|
||||||
|
// if(CollectionUtil)
|
||||||
|
|
||||||
|
|
||||||
|
List<UserExcelImportEntity> userExcelImportEntityList = userE.parseImportTemplateData(file);
|
||||||
|
List<UserDO> userDOS = userCoConvertor.converExcelEntitysToDOs(userExcelImportEntityList);
|
||||||
|
// todo 批量插入用户
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.zcloud.basic.info.domain.model.UserE;
|
||||||
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.UserDO;
|
import com.zcloud.basic.info.persistence.dataobject.UserDO;
|
||||||
import com.zcloud.gbscommon.excelEntity.UserExcelExportEntity;
|
import com.zcloud.gbscommon.excelEntity.UserExcelExportEntity;
|
||||||
|
import com.zcloud.gbscommon.excelEntity.UserExcelImportEntity;
|
||||||
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo;
|
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
|
@ -25,6 +26,7 @@ public interface UserCoConvertor {
|
||||||
*/
|
*/
|
||||||
List<UserCO> converDOsToCOs(List<UserDO> userDOs);
|
List<UserCO> converDOsToCOs(List<UserDO> userDOs);
|
||||||
List<UserExcelExportEntity> converDOsToExcelEntitys(List<UserDO> userDOs);
|
List<UserExcelExportEntity> converDOsToExcelEntitys(List<UserDO> userDOs);
|
||||||
|
List<UserDO> converExcelEntitysToDOs(List<UserExcelImportEntity> entities);
|
||||||
UserCO converDOToCO(UserDO userDO);
|
UserCO converDOToCO(UserDO userDO);
|
||||||
FacadeUserAddCmd converEToFacadeUserAddCmd(UserE userE);
|
FacadeUserAddCmd converEToFacadeUserAddCmd(UserE userE);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import com.zcloud.basic.info.dto.*;
|
||||||
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -62,6 +63,11 @@ public class UserServiceImpl implements UserServiceI {
|
||||||
userQueryExe.exportUserTable(httpServletResponse, dataIds, corpinfoId);
|
userQueryExe.exportUserTable(httpServletResponse, dataIds, corpinfoId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void importUserTable(MultipartFile file) {
|
||||||
|
userAddExe.importUserTable(file);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void remove(Long id) {
|
public void remove(Long id) {
|
||||||
userRemoveExe.execute(id);
|
userRemoveExe.execute(id);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.alibaba.cola.dto.Response;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.basic.info.dto.*;
|
import com.zcloud.basic.info.dto.*;
|
||||||
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
@ -28,6 +29,8 @@ public interface UserServiceI {
|
||||||
|
|
||||||
void exportUserTable(HttpServletResponse httpServletResponse, List<Long> dataIds, Long corpinfoId);
|
void exportUserTable(HttpServletResponse httpServletResponse, List<Long> dataIds, Long corpinfoId);
|
||||||
|
|
||||||
|
void importUserTable(MultipartFile file);
|
||||||
|
|
||||||
void remove(Long id);
|
void remove(Long id);
|
||||||
|
|
||||||
void removeBatch(Long[] ids);
|
void removeBatch(Long[] ids);
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,22 @@
|
||||||
package com.zcloud.basic.info.domain.model;
|
package com.zcloud.basic.info.domain.model;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.alibaba.cola.dto.Response;
|
import com.alibaba.cola.dto.Response;
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
import com.jjb.saas.framework.domain.model.BaseE;
|
import com.jjb.saas.framework.domain.model.BaseE;
|
||||||
|
import com.zcloud.gbscommon.excelEntity.RiskUnitExcelEntity;
|
||||||
import com.zcloud.gbscommon.excelEntity.UserExcelExportEntity;
|
import com.zcloud.gbscommon.excelEntity.UserExcelExportEntity;
|
||||||
|
import com.zcloud.gbscommon.excelEntity.UserExcelImportEntity;
|
||||||
import com.zcloud.gbscommon.utils.ExcelUtils;
|
import com.zcloud.gbscommon.utils.ExcelUtils;
|
||||||
import com.zcloud.gbscommon.utils.Tools;
|
import com.zcloud.gbscommon.utils.Tools;
|
||||||
|
import com.zcloud.gbscommon.utils.UuidUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -155,6 +161,13 @@ public class UserE extends BaseE {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void checkNull(List<UserE> userList) {
|
||||||
|
if(CollUtil.isNotEmpty(userList)){
|
||||||
|
throw new BizException("岗位有相应人员,请解除相关岗位信息后删除。");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 导出
|
// 导出
|
||||||
public void exportUserTable(HttpServletResponse httpServletResponse, List<UserExcelExportEntity> userExcelEntities) {
|
public void exportUserTable(HttpServletResponse httpServletResponse, List<UserExcelExportEntity> userExcelEntities) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -164,5 +177,24 @@ public class UserE extends BaseE {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 导入
|
||||||
|
public List<UserExcelImportEntity> parseImportTemplateData(MultipartFile file){
|
||||||
|
List<UserExcelImportEntity> list = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
ExcelUtils.readBatch(file, UserExcelImportEntity.class, list);
|
||||||
|
if (list.isEmpty()) {
|
||||||
|
throw new BizException("文件为空");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new BizException("文件解析失败");
|
||||||
|
}
|
||||||
|
// todo 校验
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
UserExcelImportEntity entity = list.get(i);
|
||||||
|
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue