公司人员树
This commit is contained in:
parent
0d2940081e
commit
e53e7e09d0
|
|
@ -32,16 +32,28 @@ public class BmCustomer extends BaseEntity implements Serializable {
|
||||||
* 往来单位类型
|
* 往来单位类型
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "往来单位类型")
|
@ApiModelProperty(value = "往来单位类型")
|
||||||
@Excel(name = "单位类型")
|
|
||||||
private Integer typeId;
|
private Integer typeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 往来单位类型
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "往来单位类型名称")
|
||||||
|
@Excel(name = "单位类型")
|
||||||
|
private String typeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所属分公司
|
* 所属分公司
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "所属分公司")
|
@ApiModelProperty(value = "所属分公司")
|
||||||
@Excel(name = "所属分公司")
|
|
||||||
private Integer companyId;
|
private Integer companyId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 所属分公司
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "所属分公司名称")
|
||||||
|
@Excel(name = "所属分公司")
|
||||||
|
private String companyName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 材料员
|
* 材料员
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
package com.bonus.base.api.domain;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门表(SysDept)实体类
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @since 2024-08-15 13:44:56
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SysDeptTree implements Serializable {
|
||||||
|
private static final long serialVersionUID = 991828482042492876L;
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private Date updateTime;
|
||||||
|
/**
|
||||||
|
* 更新者
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createTime;
|
||||||
|
/**
|
||||||
|
* 创建者
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
/**
|
||||||
|
* 删除标志(0代表存在 2代表删除)
|
||||||
|
*/
|
||||||
|
private String delFlag;
|
||||||
|
/**
|
||||||
|
* 部门状态(0正常 1停用)
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
/**
|
||||||
|
* 邮箱
|
||||||
|
*/
|
||||||
|
private String email;
|
||||||
|
/**
|
||||||
|
* 联系电话
|
||||||
|
*/
|
||||||
|
private String phone;
|
||||||
|
/**
|
||||||
|
* 负责人
|
||||||
|
*/
|
||||||
|
private String leader;
|
||||||
|
/**
|
||||||
|
* 显示顺序
|
||||||
|
*/
|
||||||
|
private Integer orderNum;
|
||||||
|
/**
|
||||||
|
* 部门名称
|
||||||
|
*/
|
||||||
|
private String deptName;
|
||||||
|
/**
|
||||||
|
* 祖级列表
|
||||||
|
*/
|
||||||
|
private String ancestors;
|
||||||
|
/**
|
||||||
|
* 父部门id
|
||||||
|
*/
|
||||||
|
private Integer parentId;
|
||||||
|
/**
|
||||||
|
* 部门id
|
||||||
|
*/
|
||||||
|
private Integer deptId;
|
||||||
|
|
||||||
|
/** 子节点 */
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
|
private List<SysDeptTree> children = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.bonus.base.api.domain;
|
package com.bonus.base.api.domain;
|
||||||
|
|
||||||
|
import com.bonus.system.api.domain.SysDept;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -36,6 +37,14 @@ public class TreeSelect implements Serializable
|
||||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
private List<TreeSelect> children;
|
private List<TreeSelect> children;
|
||||||
|
|
||||||
|
public TreeSelect(SysDeptTree dept)
|
||||||
|
{
|
||||||
|
this.id = dept.getDeptId();
|
||||||
|
this.parentId = dept.getParentId();
|
||||||
|
this.label = dept.getDeptName();
|
||||||
|
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
public TreeSelect(MaType maType)
|
public TreeSelect(MaType maType)
|
||||||
{
|
{
|
||||||
this.parentId = maType.getParentId();
|
this.parentId = maType.getParentId();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package com.bonus.base.controller;
|
package com.bonus.base.controller;
|
||||||
|
|
||||||
import com.bonus.base.api.domain.BmCustomer;
|
import com.bonus.base.api.domain.BmCustomer;
|
||||||
|
import com.bonus.base.api.domain.SysDeptTree;
|
||||||
|
import com.bonus.base.api.domain.TreeSelect;
|
||||||
import com.bonus.base.service.IBmCustomerService;
|
import com.bonus.base.service.IBmCustomerService;
|
||||||
import com.bonus.common.core.utils.poi.ExcelUtil;
|
import com.bonus.common.core.utils.poi.ExcelUtil;
|
||||||
import com.bonus.common.core.web.controller.BaseController;
|
import com.bonus.common.core.web.controller.BaseController;
|
||||||
|
|
@ -51,6 +53,19 @@ public class BmCustomerController extends BaseController {
|
||||||
return getDataTableError(new ArrayList<>());
|
return getDataTableError(new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询部门树
|
||||||
|
*
|
||||||
|
* @return 查询结果
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "查询部门树")
|
||||||
|
@RequiresPermissions("material:maType:query")
|
||||||
|
@GetMapping("/deptTree")
|
||||||
|
public AjaxResult selectDeptTree(SysDeptTree sysDept) {
|
||||||
|
List<TreeSelect> deptList = customerService.selectDeptTree(sysDept);
|
||||||
|
return AjaxResult.success(deptList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取往来单位下拉选
|
* 获取往来单位下拉选
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.bonus.base.mapper;
|
package com.bonus.base.mapper;
|
||||||
|
|
||||||
import com.bonus.base.api.domain.BmCustomer;
|
import com.bonus.base.api.domain.BmCustomer;
|
||||||
|
import com.bonus.base.api.domain.SysDeptTree;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -56,4 +57,11 @@ public interface BmCustomerMapper {
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
int deleteCustomerByIds(Long[] customerIds);
|
int deleteCustomerByIds(Long[] customerIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<SysDeptTree> selectDeptTree(SysDeptTree sysDept);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package com.bonus.base.service;
|
package com.bonus.base.service;
|
||||||
|
|
||||||
import com.bonus.base.api.domain.BmCustomer;
|
import com.bonus.base.api.domain.BmCustomer;
|
||||||
|
import com.bonus.base.api.domain.SysDeptTree;
|
||||||
|
import com.bonus.base.api.domain.TreeSelect;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -58,4 +60,11 @@ public interface IBmCustomerService
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteCustomerByIds(Long[] customerIds);
|
public int deleteCustomerByIds(Long[] customerIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询部门下拉树结构
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<TreeSelect> selectDeptTree(SysDeptTree sysDept);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
package com.bonus.base.service.impl;
|
package com.bonus.base.service.impl;
|
||||||
|
|
||||||
import com.bonus.base.api.domain.BmCustomer;
|
import com.bonus.base.api.domain.BmCustomer;
|
||||||
|
import com.bonus.base.api.domain.SysDeptTree;
|
||||||
|
import com.bonus.base.api.domain.TreeSelect;
|
||||||
import com.bonus.base.mapper.BmCustomerMapper;
|
import com.bonus.base.mapper.BmCustomerMapper;
|
||||||
import com.bonus.base.service.IBmCustomerService;
|
import com.bonus.base.service.IBmCustomerService;
|
||||||
|
import com.bonus.common.core.utils.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 往来单位 服务层实现
|
* 往来单位 服务层实现
|
||||||
|
|
@ -49,4 +55,71 @@ public class BmCustomerServiceImpl implements IBmCustomerService
|
||||||
public int deleteCustomerByIds(Long[] customerIds) {
|
public int deleteCustomerByIds(Long[] customerIds) {
|
||||||
return bmCustomerMapper.deleteCustomerByIds(customerIds);
|
return bmCustomerMapper.deleteCustomerByIds(customerIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询部门树结构信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<TreeSelect> selectDeptTree(SysDeptTree sysDept) {
|
||||||
|
List<SysDeptTree> deptList = bmCustomerMapper.selectDeptTree(sysDept);
|
||||||
|
return buildDeptTreeSelect(deptList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<TreeSelect> buildDeptTreeSelect(List<SysDeptTree> deptList) {
|
||||||
|
List<SysDeptTree> deptTrees = buildDeptTree(deptList);
|
||||||
|
return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<SysDeptTree> buildDeptTree(List<SysDeptTree> deptList) {
|
||||||
|
List<SysDeptTree> returnList = new ArrayList<>();
|
||||||
|
List<Integer> tempList = deptList.stream().map(SysDeptTree::getDeptId).collect(Collectors.toList());
|
||||||
|
for (SysDeptTree sysDept : deptList) {
|
||||||
|
// 如果是顶级节点, 遍历该父节点的所有子节点
|
||||||
|
if (!tempList.contains(sysDept.getParentId())) {
|
||||||
|
recursionFn(deptList, sysDept);
|
||||||
|
returnList.add(sysDept);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (returnList.isEmpty()) {
|
||||||
|
returnList = deptList;
|
||||||
|
}
|
||||||
|
return returnList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归列表
|
||||||
|
*/
|
||||||
|
private void recursionFn(List<SysDeptTree> list, SysDeptTree t) {
|
||||||
|
// 得到子节点列表
|
||||||
|
List<SysDeptTree> childList = getChildList(list, t);
|
||||||
|
t.setChildren(childList);
|
||||||
|
for (SysDeptTree tChild : childList) {
|
||||||
|
if (hasChild(list, tChild)) {
|
||||||
|
recursionFn(list, tChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到子节点列表
|
||||||
|
*/
|
||||||
|
private List<SysDeptTree> getChildList(List<SysDeptTree> list, SysDeptTree t) {
|
||||||
|
List<SysDeptTree> tlist = new ArrayList<>();
|
||||||
|
Iterator<SysDeptTree> it = list.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
SysDeptTree n = (SysDeptTree) it.next();
|
||||||
|
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) {
|
||||||
|
tlist.add(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否有子节点
|
||||||
|
*/
|
||||||
|
private boolean hasChild(List<SysDeptTree> list, SysDeptTree t) {
|
||||||
|
return getChildList(list, t).size() > 0 ? true : false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,21 +20,23 @@
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
<!--@mbg.generated-->
|
<!--@mbg.generated-->
|
||||||
id, type_id, company_id, `name`, material_clerk, manager, phone, is_active, `time`,
|
bc.id, bc.type_id, bct.NAME as typeName, bc.company_id, sd.dept_name as companyName, bc.`name`, bc.material_clerk, bc.manager, bc.phone, bc.is_active, bc.`time`,
|
||||||
legal_representative, legal_phone, sort_num, company
|
bc.legal_representative, bc.legal_phone, bc.sort_num, bc.company
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectCustomerList" resultMap="BaseResultMap">
|
<select id="selectCustomerList" resultMap="BaseResultMap">
|
||||||
select
|
select
|
||||||
<include refid="Base_Column_List" />
|
<include refid="Base_Column_List" />
|
||||||
from bm_customer
|
from bm_customer bc
|
||||||
|
left join bm_customer_type bct on bct.id = bc.type_id
|
||||||
|
left join sys_dept sd on sd.dept_id = bc.company_id
|
||||||
where
|
where
|
||||||
is_active = 1
|
bc.is_active = 1
|
||||||
<if test="name != null and name != ''">
|
<if test="name != null and name != ''">
|
||||||
AND name like concat('%', #{name}, '%')
|
AND bc.name like concat('%', #{name}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="dataCondition != null and dataCondition.size()>0">
|
<if test="dataCondition != null and dataCondition.size()>0">
|
||||||
AND id in
|
AND bc.id in
|
||||||
<foreach collection="dataCondition" item="proId" index="index" open="(" separator="," close=")">
|
<foreach collection="dataCondition" item="proId" index="index" open="(" separator="," close=")">
|
||||||
#{proId}
|
#{proId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
@ -46,7 +48,15 @@
|
||||||
select
|
select
|
||||||
<include refid="Base_Column_List" />
|
<include refid="Base_Column_List" />
|
||||||
from bm_customer
|
from bm_customer
|
||||||
where id = #{id,jdbcType=INTEGER}
|
left join bm_customer_type bct on bct.id = bc.type_id
|
||||||
|
left join sys_dept sd on sd.dept_id = bc.company_id
|
||||||
|
where bc.is_active = '1' and bc.id = #{id,jdbcType=INTEGER}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectDeptTree" resultType="com.bonus.base.api.domain.SysDeptTree">
|
||||||
|
select d.dept_id as deptId, d.parent_id as parentId, d.ancestors, d.dept_name as deptName, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
|
||||||
|
from sys_dept d
|
||||||
|
where d.del_flag = '0' and d.status = '0'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<delete id="deleteCustomerById" parameterType="java.lang.Integer">
|
<delete id="deleteCustomerById" parameterType="java.lang.Integer">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue