实体类tree(有结构)

@ApiOperation(value = "库存列表2")
    @ApiImplicitParams({ 
        @ApiImplicitParam(name = "goodsname", value = "字典数据类型编号", required = false, dataType = "String", paramType = "query"),
    })
    @RequestMapping(value="/goodslist2",method=RequestMethod.GET)
    public Object GoodsList2(PgQuery pgq,String goodsname){
        
        String condition="";
        if ( StrUtils.hasText(goodsname)) {
            condition += " and goodsname = '" + goodsname + "'";
        }
        
        String dwcode = getzhutiuser().getDwcode();
        String sql = "select * from t_goods"
                + " where nvl(scbj,'0')='0'"
                + " and dwcode='"+dwcode+"' "
                + " and parentcode='0'"
                +condition
                +" order by goodscode asc";
        PagedList<ext_goods> pagedListData = jdbcDao.getPagedListData(ext_goods.class, sql, pgq);
        //最高节点的集合
        List<ext_goods> rows = pagedListData.getRows();
        //最高节点的集合(组装后)
        List<ext_goods> rows1 = new ArrayList<ext_goods>();
        if(!CollectionUtils.isEmpty(rows)){
            for(ext_goods ext_goods:rows){
                //给当前最高节点的现为null的children属性 赋值一个空的list
                ext_goods.setChildren(new ArrayList<ext_goods>());
                //给当前最高节点组装所有子节点
                ext_goods ext_goods1 = t_goodsDal.selectTree(ext_goods,dwcode);
                //节点放入空集合
                rows1.add(ext_goods1);
            }
        }
        pagedListData.setRows(rows1);
        
        return pagedListData;

    }


//查询当前节点所有子节点+调用拼装

public ext_goods selectTree(ext_goods ext_goodsparent,String dwcode) {
            
            //当前节点所有子节点
            List<ext_goods> li = this.selectChildren(ext_goodsparent.getGoodscode(),dwcode);
            //节点组装
            this.tree(ext_goodsparent, li,dwcode);
            
            return ext_goodsparent;
        } 


//查询当前节点所有子节点
        private List<ext_goods> selectChildren(String code,String dwcode) {
            String sql="select * from t_goods where parentcode='"+code+"' and dwcode='"+dwcode+"' and nvl(scbj,'0')='0'";
            List<ext_goods> list = jdbcDao.queryListForSql(sql, ext_goods.class);
            return list;
        }


// 节点组装
        private void tree(ext_goods ext_goodsparent, List<ext_goods> li,String dwcode) {
            
            if (!CollectionUtils.isEmpty(li)) {
                
                for (int i = 0, l = li.size(); i < l; i++) {
                    li.get(i).setChildren(new ArrayList<ext_goods>());
                    ext_goods ext_goods = li.get(i);
                    List<ext_goods> children = ext_goodsparent.getChildren();
                    children.add(ext_goods);// 添加到孩子节点列表
                    //当前子节点的子节点
                    List<ext_goods> list = this.selectChildren(ext_goods.getGoodscode(),dwcode);
                    tree(ext_goods, list,dwcode);// 递归,实现无限层级
                }
            }
        }

猜你喜欢

转载自blog.csdn.net/qq_41810985/article/details/82800777