Merge branch 'ysq-dev-0811'

qhw-dev-1010
杨世强 1 year ago
commit d1ce48e28b

@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -118,4 +120,41 @@ public class DeptController {
return success(DeptConvert.INSTANCE.convertList02(list)); return success(DeptConvert.INSTANCE.convertList02(list));
} }
@GetMapping("/list-dept-user")
@Operation(summary = "获取部门和人员列表")
@PreAuthorize("@ss.hasPermission('system:dept:user')")
public CommonResult<List<DeptDO>> getDeptUserList() {
// 获得部门列表,只要开启状态的
DeptListReqVO deptListReqVO = new DeptListReqVO();
deptListReqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
List<DeptDO> deptDOList = deptService.getDeptList(deptListReqVO);
//将Dept转化为简单的Dept
List<DeptSimpleRespVO> simpleDeptList = new ArrayList<>();
simpleDeptList.addAll(DeptConvert.INSTANCE.convertList02(deptDOList));
deptDOList.forEach(deptDO -> {
List<AdminUserDO> adminUserList = userService.getUserListByDeptIds(Collections.singleton(deptDO.getId()));
for (AdminUserDO adminUserDO : adminUserList){
DeptSimpleRespVO deptSimpleRespVO = new DeptSimpleRespVO();
deptSimpleRespVO.setId(adminUserDO.getId());
deptSimpleRespVO.setParentId(adminUserDO.getDeptId());
deptSimpleRespVO.setName(adminUserDO.getNickname());
simpleDeptList.add(deptSimpleRespVO);
}
});
List<AdminUserDO> adminUserDOList = new ArrayList<>();
//将list转为树状
List<DeptDO> list = deptService.buildTree(deptDOList,0);
//为部门list添加下级用户
List<DeptDO> list1 = deptService.setBuildTree(list);
// for (DeptDO deptDO : list){
// if (deptDO.getChildren() == null){
// List<AdminUserDO> adminUserDOList = userService.getUserListByDeptIds(Collections.singleton(deptDO.getId()));
// deptDO.setChildren(adminUserDOList);
// }
// }
return success(list1);
}
} }

@ -1,16 +1,23 @@
package com.yunxi.scm.module.system.convert.dept; package com.yunxi.scm.module.system.convert.dept;
import com.yunxi.scm.module.system.api.dept.dto.DeptRespDTO; import com.yunxi.scm.module.system.api.dept.dto.DeptRespDTO;
import com.yunxi.scm.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptRespVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.yunxi.scm.module.system.convert.auth.AuthConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO; import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.permission.MenuDO;
import com.yunxi.scm.module.system.enums.permission.MenuTypeEnum;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import org.slf4j.LoggerFactory;
import java.util.List; import java.util.*;
import java.util.Map;
import static com.yunxi.scm.framework.common.util.collection.CollectionUtils.filterList;
import static com.yunxi.scm.module.system.dal.dataobject.permission.MenuDO.ID_ROOT;
@Mapper @Mapper
public interface DeptConvert { public interface DeptConvert {

@ -3,6 +3,7 @@ package com.yunxi.scm.module.system.dal.dataobject.dept;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.yunxi.scm.framework.common.enums.CommonStatusEnum; import com.yunxi.scm.framework.common.enums.CommonStatusEnum;
import com.yunxi.scm.framework.tenant.core.db.TenantBaseDO; import com.yunxi.scm.framework.tenant.core.db.TenantBaseDO;
import com.yunxi.scm.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO; import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -70,4 +71,8 @@ public class DeptDO extends TenantBaseDO {
*/ */
private Long enterpriseId; private Long enterpriseId;
@TableField(exist = false)
private List children;
} }

@ -5,6 +5,7 @@ import com.yunxi.scm.framework.common.util.collection.CollectionUtils;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.yunxi.scm.module.system.controller.admin.user.vo.user.UserPageItemRespVO;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO; import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import java.util.*; import java.util.*;
@ -101,4 +102,14 @@ public interface DeptService {
*/ */
void validateDeptList(Collection<Long> ids); void validateDeptList(Collection<Long> ids);
/**
*
*
*/
List<DeptDO> buildTree(List<DeptDO> deptDOList, long pid);
/**
*
*
*/
List<DeptDO> setBuildTree(List<DeptDO> deptDOList);
} }

@ -9,10 +9,12 @@ import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.yunxi.scm.module.system.convert.dept.DeptConvert; import com.yunxi.scm.module.system.convert.dept.DeptConvert;
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO; import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
import com.yunxi.scm.module.system.dal.mysql.dept.DeptMapper; import com.yunxi.scm.module.system.dal.mysql.dept.DeptMapper;
import com.yunxi.scm.module.system.dal.redis.RedisKeyConstants; import com.yunxi.scm.module.system.dal.redis.RedisKeyConstants;
import com.yunxi.scm.module.system.enums.dept.DeptIdEnum; import com.yunxi.scm.module.system.enums.dept.DeptIdEnum;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.yunxi.scm.module.system.service.user.AdminUserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
@ -38,6 +40,8 @@ public class DeptServiceImpl implements DeptService {
@Resource @Resource
private DeptMapper deptMapper; private DeptMapper deptMapper;
@Resource
private AdminUserService userService;
@Override @Override
@CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, @CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST,
@ -202,4 +206,30 @@ public class DeptServiceImpl implements DeptService {
}); });
} }
@Override
public List<DeptDO> buildTree(List<DeptDO> deptDOList, long pid) {
List<DeptDO> treeList = new ArrayList<>();
for (DeptDO dept : deptDOList) {
if (dept.getParentId() == pid) {
dept.setChildren(buildTree(deptDOList, dept.getId()));
treeList.add(dept);
}
}
return treeList;
}
@Override
public List<DeptDO> setBuildTree(List<DeptDO> deptDOList) {
List<DeptDO> tree = new ArrayList<>();
for (DeptDO deptDO : deptDOList) {
if (deptDO.getChildren() != null && deptDO.getChildren().size()>0) {
setBuildTree(deptDO.getChildren());
}else{
List<AdminUserDO> adminUserDOList = userService.getUserListByDeptIds(Collections.singleton(deptDO.getId()));
deptDO.setChildren(adminUserDOList);
}
}
return tree;
}
} }

@ -43,7 +43,7 @@ import { useModal } from '@/components/Modal'
import BusinessWarehouseModal from './BusinessWarehouseModal.vue' import BusinessWarehouseModal from './BusinessWarehouseModal.vue'
import { IconEnum } from '@/enums/appEnum' import { IconEnum } from '@/enums/appEnum'
import { BasicTable, useTable, TableAction } from '@/components/Table' import { BasicTable, useTable, TableAction } from '@/components/Table'
import { deleteBusinessWarehouse, exportBusinessWarehouse, getBusinessWarehousePage, getBusinessPage} from '@/api/xxjj/businessWarehouse' import { deleteBusinessWarehouse, exportBusinessWarehouse, getBusinessWarehousePage, getBusinessPage } from '@/api/xxjj/businessWarehouse'
import { columns, searchFormSchema } from './businessWarehouse.data' import { columns, searchFormSchema } from './businessWarehouse.data'
defineOptions({ name: 'BusinessWarehouse' }) defineOptions({ name: 'BusinessWarehouse' })

Loading…
Cancel
Save