【员工与部门组织,左树右列表,点击左侧树形结构节点,查询当前节点关联以及下级所有节点关联的所有信息列表】

员工与部门组织,左树右列表,点击左侧树形结构节点,查询当前节点关联以及下级所有节点关联的所有信息列表

下列场景下-解决方案

重点看where后面最后一个查询条件
重点看where后面最后一个查询条件
重点看where后面最后一个查询条件

## 格外注意
## 此处{paramEntity.departmentId}为
## 在点击左侧菜单树时,由前端赋值给传给后端的请求参数

## **departmentId:department_table.id**左侧树由department_table表数据组装的tree数据结构
and concat(dc.parentPathId,',',dc.id) like concat('%',{paramEntity.departmentId},'%')
<select id="selectEmployeePage" resultMap="employeeResultMap">
        SELECT
            ri.*
            
        FROM
            employee_table ri
            LEFT JOIN department_table dc ON ri.department_id = dc.id
        WHERE
            ri.is_deleted = 0
            and dc.is_deleted = 0
            <if test="paramEntity.employeeName!=null and paramEntity.employeeName!='' ">
                and ri.employee_name like concat('%',#{paramEntity.employeeName},'%')
            </if>
            <if test="paramEntity.departmentId!= null and paramEntity.departmentId!= ''">
                and concat(dc.parentPathId,',',dc.id) like concat('%',{paramEntity.departmentId},'%')
            </if>
    </select>

一:场景条件-多级部门下每个部门拥有各自的员工

部门表SQL

-- ----------------------------
-- Table structure for department_table 部门表
-- ----------------------------
DROP TABLE IF EXISTS `department_table`;
CREATE TABLE `department_table`  (
  `id` bigint(20) NOT NULL COMMENT '数据id(主键)',
  `department_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '部门名称',
  `pid` bigint(20) NOT NULL COMMENT '父id(一级分类的父id为0)',
  `parentPathId` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所有祖先id路径',
  `level` int(2) NOT NULL COMMENT '层级(最多到10级)',
  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
  `create_time` timestamp(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
  `update_time` timestamp(0) NULL DEFAULT NULL COMMENT '更新时间',
  `status` tinyint(4) NULL DEFAULT NULL COMMENT '业务状态',
  `is_deleted` tinyint(4) NULL DEFAULT NULL COMMENT '是否已删除(0:未删除; 1:已删除)',

  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '部门表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

员工表SQL
employee

-- ----------------------------
-- Table structure for employee_table 员工表
-- ----------------------------
DROP TABLE IF EXISTS `employee_table`;
CREATE TABLE `employee_table`  (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `employee_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '雇员名称',
  `department_id` bigint(20) NOT NULL COMMENT '部门id',
  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
  `create_time` timestamp(0) NULL DEFAULT NULL COMMENT '创建时间',
  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
  `update_time` timestamp(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  `status` tinyint(4) NULL DEFAULT NULL COMMENT '业务状态',
  `is_deleted` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:未删除; 1:已删除)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '雇员表' ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

猜你喜欢

转载自blog.csdn.net/weixin_44188105/article/details/131856854