@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);// 递归,实现无限层级
}
}
}