diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 8fdb7ee3..03595eb3 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -9,7 +9,6 @@ import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; -import weaver.general.StringUtil; import java.util.*; import java.util.stream.Collectors; @@ -27,19 +26,8 @@ public class DepartmentBO { // 递归添加父级数据 Map poMaps = list.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); - List dtoList = list.stream().map(e -> DepartmentListDTO.builder() - .id(e.getId()) - .deptNo(e.getDeptNo()) - .deptName(e.getDeptName()) - .deptNameShort(e.getDeptNameShort()) - .parentComp(e.getParentComp() + "")// 命名 - .parentDept(e.getParentDept()) - .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()) - .deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())) - .showOrder(e.getShowOrder()) - .forbiddenTag(e.getForbiddenTag()) - .build() - ).collect(Collectors.toList()); + List dtoList = list.stream().map(e -> DepartmentListDTO.builder().id(e.getId()).deptNo(e.getDeptNo()).deptName(e.getDeptName()).deptNameShort(e.getDeptNameShort()).parentComp(e.getParentComp() + "")// 命名 + .parentDept(e.getParentDept()).parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()).deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())).showOrder(e.getShowOrder()).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); return dtoList.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); } @@ -56,19 +44,8 @@ public class DepartmentBO { dealParentData(addedList, po, poMaps); } - List dtoList = addedList.stream().map(e -> DepartmentListDTO.builder() - .id(e.getId()) - .deptNo(e.getDeptNo()) - .deptName(e.getDeptName()) - .deptNameShort(e.getDeptNameShort()) - .parentComp(e.getParentComp() + "")// 命名 - .parentDept(e.getParentDept()) - .parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()) - .deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())) - .showOrder(e.getShowOrder()) - .forbiddenTag(e.getForbiddenTag()) - .build() - ).collect(Collectors.toList()); + List dtoList = addedList.stream().map(e -> DepartmentListDTO.builder().id(e.getId()).deptNo(e.getDeptNo()).deptName(e.getDeptName()).deptNameShort(e.getDeptNameShort()).parentComp(e.getParentComp() + "")// 命名 + .parentDept(e.getParentDept()).parentDeptName(null == poMaps.get(e.getParentDept()) ? "" : poMaps.get(e.getParentDept()).getDeptName()).deptPrincipal(getEmployeeNameById(e.getDeptPrincipal())).showOrder(e.getShowOrder()).forbiddenTag(e.getForbiddenTag()).build()).collect(Collectors.toList()); Map> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept)); return dtoList.stream().peek(e -> e.setChildren(collects.get(e.getId()))).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList()); } @@ -77,38 +54,23 @@ public class DepartmentBO { if (null == param) { return null; } - return DepartmentPO.builder() - .id(param.getId() == null ? 0 : param.getId()) - .deptNo(param.getDeptNo()) - .deptName(param.getDeptName()) - .deptNameShort(param.getDeptNameShort()) - .parentComp(param.getParentComp()) - .parentDept(param.getParentDept()) - .deptPrincipal(param.getDeptPrincipal()) - .showOrder(param.getShowOrder()) - .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) - .description(param.getDescription()) - .deleteType(0) - .createTime(new Date()) - .updateTime(new Date()) - .creator(employeeId).build(); + return DepartmentPO.builder().id(param.getId() == null ? 0 : param.getId()).deptNo(param.getDeptNo()).deptName(param.getDeptName()).deptNameShort(param.getDeptNameShort()).parentComp(param.getParentComp()).parentDept(param.getParentDept()).deptPrincipal(param.getDeptPrincipal()).showOrder(param.getShowOrder()).forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1).description(param.getDescription()).deleteType(0).createTime(new Date()).updateTime(new Date()).creator(employeeId).build(); } - public static List buildSingleDeptTreeVOS(List departmentPOs) { + public static List buildSingleDeptTreeVOS(List departmentPOs, Long parentComp) { if (CollectionUtils.isEmpty(departmentPOs)) { return Collections.emptyList(); } - return departmentPOs.stream().map(e -> SingleDeptTreeVO.builder() - .id(e.getId()) - .deptName(e.getDeptName()) - .parentDeptName(null == e.getParentDept() ? null : getDeptNameById(e.getParentDept().intValue())) - .deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())) - .children(recursiveData(e.getId())) - .build() - ).filter(item -> StringUtil.isEmpty(item.getParentDeptName())).collect(Collectors.toList()); + List singleDeptTreeVOS = departmentPOs.stream().map(e -> SingleDeptTreeVO.builder().id(e.getId()).deptName(e.getDeptName()).parentComp(e.getParentComp()).parentDept(e.getParentDept()).parentDeptName(e.getParentDept() == null ? "" : getDeptNameById(e.getParentDept().intValue())).deptPrincipalName(getEmployeeNameById((long) e.getDeptPrincipal())).build()).collect(Collectors.toList()); + //获取非一级部门 + Map> collects = singleDeptTreeVOS.stream().filter(item -> !parentComp.equals(item.getParentComp()) && null != item.getParentDept()).collect(Collectors.groupingBy(SingleDeptTreeVO::getParentDept)); + return singleDeptTreeVOS.stream().map(e -> { + e.setChildren(collects.get(e.getId())); + return e; + }).filter(item -> parentComp.equals(item.getParentComp())).collect(Collectors.toList()); } public static List buildListToSearchTree(List departmentPOS) { @@ -173,27 +135,5 @@ public class DepartmentBO { } } - /** - * 递归获取 - * - * @param parentDeptId - * @return - */ - public static List recursiveData(long parentDeptId) { - List departmentPOS = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptListByPId(parentDeptId); - if (CollectionUtils.isEmpty(departmentPOS)) { - return Collections.emptyList(); - } - - return departmentPOS.stream().map(e -> SingleDeptTreeVO.builder() - .id(e.getId()) - .deptName(e.getDeptName()) - .parentDeptName(getDeptNameById(e.getParentDept().intValue())) - .deptPrincipalName(getEmployeeNameById(e.getDeptPrincipal())) - .children(recursiveData(e.getId())) - .build() - ).collect(Collectors.toList()); - } - } diff --git a/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java b/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java index a0dd33d0..aee890e3 100644 --- a/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java +++ b/src/com/engine/organization/entity/department/param/QuerySingleDeptListParam.java @@ -18,6 +18,6 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class QuerySingleDeptListParam extends BaseQueryParam { - private int parentComp; + private Long parentComp; } diff --git a/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java b/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java index 5055275b..c1536203 100644 --- a/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java +++ b/src/com/engine/organization/entity/department/vo/SingleDeptTreeVO.java @@ -29,6 +29,10 @@ public class SingleDeptTreeVO { @TableTitle(title = "部门名称", dataIndex = "deptName", key = "deptName") private String deptName; + private Long parentComp; //上级分部 + + private Long parentDept; //上级部门id + @TableTitle(title = "上级部门", dataIndex = "parentDeptName", key = "parentDeptName") private String parentDeptName; //上级部门 diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index c564d0b1..91158f9c 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -15,7 +15,7 @@ import java.util.Map; **/ public interface DepartmentMapper { - List getDeptListByCompId(@Param("parentComp") int parentComp); + List getDeptListByCompId(); List getDeptListByPId(@Param("PId") Long PId); diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index 69686a3d..cf065921 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -35,10 +35,9 @@