guoshilong
2023-04-23 fe3996e9c4f4236d39f8ef468586c31a8a532d55
Merge remote-tracking branch 'origin/jtdev' into jtdev
8 files modified
1 files added
217 ■■■■■ changed files
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/DeptUserTreeNode.java 17 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java 41 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java 15 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttResManagePerson.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java 15 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java 27 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml 75 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java 17 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/node/DeptUserTreeNode.java
New file
@@ -0,0 +1,17 @@
package cn.gistack.common.node;
import lombok.Data;
/**
 * 部门用户树node
 * @author zhongrj
 * @date 2023-04-23
 */
@Data
public class DeptUserTreeNode extends TreeNode{
    /**
     * 手机号
     */
    private String phone;
}
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
@@ -1,7 +1,9 @@
package cn.gistack.common.utils;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -32,6 +34,45 @@
    }
    /**
     * map 转 tree 组织机构(父子id不会重复的情况,数据查询来自同一个表)
     * @param treeMap
     * @return
     */
    public  static List<TreeNode> getDeptAndUserNodeTree(Map<String, DeptUserTreeNode> treeMap){
        List<TreeNode> tree = new ArrayList<>();
        if (treeMap.size() > 1) {
            treeMap.forEach((id, treeNode) -> {
                if (!treeNode.getHasChildren()){
                    // 判断是否有绑定多个部门
                    List<String> asList = Arrays.asList(treeNode.getParentId().split(","));
                    if (asList.size()>1){
                        for (String parentId : asList) {
                            if (treeMap.containsKey(parentId)) {
                                treeMap.get(parentId).getChildren().add(treeNode);
                            } else {
                                tree.add(treeNode);
                            }
                        }
                    }else {
                        if (treeMap.containsKey(treeNode.getParentId())) {
                            treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
                        } else {
                            tree.add(treeNode);
                        }
                    }
                }else {
                    if (treeMap.containsKey(treeNode.getParentId())) {
                        treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
                    } else {
                        tree.add(treeNode);
                    }
                }
            });
        }
        return tree;
    }
    /**
     * list 转 tree 组织机构
     * @param parentList
     * @param childrenList
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttResManagePersonController.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
@@ -14,6 +15,9 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
 * @ClassName AttResManagePersonController
@@ -36,4 +40,15 @@
        IPage<AttResManagePerson> pageList = attResManagePersonService.page(Condition.getPage(query), Condition.getQueryWrapper(attResManagePerson));
        return R.data(pageList);
    }
    @ApiOperation(value = "根据手机号码获取中台责任人水库列表", notes = "根据手机号码获取中台责任人水库列表")
    @GetMapping(value = "/queryListByPhone")
    public R queryListByPhone(AttResManagePerson attResManagePerson) {
        List<AttResManagePerson> list = attResManagePersonService.list(Condition.getQueryWrapper(attResManagePerson));
        List<String> reslist = new ArrayList<>();
        list.forEach(item->{
            reslist.add(item.getResGuid());
        });
        return R.data(StringUtil.join(reslist,","));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttResManagePerson.java
@@ -58,6 +58,6 @@
     */
    @ApiModelProperty(value = "水库id")
    @TableField("\"res_guid\"")
    private String res_guid;
    private String resGuid;
}
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java
@@ -16,6 +16,9 @@
 */
package cn.gistack.system.controller;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import cn.gistack.common.utils.NodeTreeUtil;
import cn.gistack.system.vo.DeptVO;
import cn.gistack.system.wrapper.DeptWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -176,4 +179,16 @@
    }
    /**
     * 查询组织机构树数据(下级包含人员信息)
     * @param treeNode
     * @return
     */
    @GetMapping("/getDeptAndUserTree")
    @ApiOperation(value = "查询组织机构树数据(下级包含人员信息)")
    public R getDeptAndUserTree(DeptUserTreeNode treeNode) {
        return R.data(deptService.getDeptAndUserTree(treeNode));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
@@ -16,9 +16,13 @@
 */
package cn.gistack.system.mapper;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import cn.gistack.system.entity.Dept;
import cn.gistack.system.vo.DeptVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -65,4 +69,27 @@
     */
    List<String> getDeptNames(Long[] ids);
    /**
     * 查询组织机构树数据(下级包含人员信息)
     * @param treeNode
     * @return
     */
    @MapKey(value = "id")
    Map<String, DeptUserTreeNode> getDeptAndUserTree(@Param("treeNode") DeptUserTreeNode treeNode);
    /**
     * 查询组织机构树
     * @param treeNode
     * @return
     */
    @MapKey(value = "id")
    Map<String, DeptUserTreeNode> getDeptMap(@Param("treeNode") DeptUserTreeNode treeNode);
    /**
     * 查询用户树
     * @param treeNode
     * @return
     */
    @MapKey(value = "id")
    Map<String, DeptUserTreeNode> getUserMap(@Param("treeNode") DeptUserTreeNode treeNode);
}
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
@@ -112,4 +112,79 @@
        and is_deleted = 0
    </select>
    <!--查询组织机构树数据(下级包含人员信息)-->
    <select id="getDeptAndUserTree" resultType="cn.gistack.common.node.DeptUserTreeNode">
        (
            SELECT
            dept.id,
            dept.parent_id parentId,
            dept.dept_name AS name,
            0 AS phone,
            (
                SELECT
                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
                FROM
                blade_dept
                WHERE
                parent_id = dept.id and is_deleted = 0
            ) AS hasChildren
            FROM
            blade_dept dept WHERE dept.is_deleted = 0
            <if test="treeNode.id!=null and treeNode.id!=''">
                and dept.id = #{treeNode.id}
            </if>
        )
        union
        (
            select
            bu.id,
            bu.dept_id parentId,
            bu.account AS name,
            bu.phone,
            0 as hasChildren
            from blade_user bu left join blade_dept bd on bd.id = bu.dept_id
            where 1=1 and bu.is_deleted = 0 and bu.status = 1
            <if test="treeNode.id!=null and treeNode.id!=''">
                and bu.dept_id like concat(concat('%',#{treeNode.id}),'%')
            </if>
        )
    </select>
    <!--查询组织机构树-->
    <select id="getDeptMap" resultType="cn.gistack.common.node.DeptUserTreeNode">
        SELECT
        dept.id,
        dept.parent_id parentId,
        dept.dept_name AS name,
        0 AS phone,
        (
            SELECT
            CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
            FROM
            blade_dept
            WHERE
            parent_id = dept.id and is_deleted = 0
        ) AS hasChildren
        FROM
        blade_dept dept WHERE dept.is_deleted = 0
        <if test="treeNode.id!=null and treeNode.id!=''">
            and dept.id = #{treeNode.id}
        </if>
    </select>
    <!--查询组织机构树数据(下级包含人员信息)-->
    <select id="getUserMap" resultType="cn.gistack.common.node.DeptUserTreeNode">
        select
        bu.id,
        bu.dept_id parentId,
        bu.account AS name,
        bu.phone,
        0 as hasChildren
        from blade_user bu left join blade_dept bd on bd.id = bu.dept_id
        where 1=1 and bu.is_deleted = 0 and bu.status = 1
        <if test="treeNode.id!=null and treeNode.id!=''">
            and bu.dept_id like concat(concat('%',#{treeNode.id}),'%')
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java
@@ -16,6 +16,8 @@
 */
package cn.gistack.system.service;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import cn.gistack.system.entity.Dept;
import cn.gistack.system.vo.DeptVO;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -116,4 +118,10 @@
     */
    List<DeptVO> search(String deptName, Long parentId);
    /**
     * 查询组织机构树数据(下级包含人员信息)
     * @param treeNode
     * @return
     */
    List<TreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode);
}
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
@@ -16,6 +16,9 @@
 */
package cn.gistack.system.service.impl;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import cn.gistack.common.utils.NodeTreeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -170,4 +173,18 @@
        return DeptWrapper.build().listNodeVO(deptList);
    }
    /**
     * 查询组织机构树数据(下级包含人员信息)
     * @param treeNode
     * @return
     */
    @Override
    public List<TreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
        // 查询数据
        Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
        Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMap(treeNode);
        deptMap.putAll(userMap);
        // 处理并返回
        return NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
    }
}