diff --git a/src/main/java/com/pms/ocp/common/utils/PageUtil.java b/src/main/java/com/pms/ocp/common/utils/PageUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..4e56e7a5d0857a86b48886e20354dcb05c979662 --- /dev/null +++ b/src/main/java/com/pms/ocp/common/utils/PageUtil.java @@ -0,0 +1,58 @@ +package com.pms.ocp.common.utils; + +import lombok.Data; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/3/14 15:38 + */ +@Data +public class PageUtil { + /** + * 实体类列表 + */ + List content; + /** + * 是否首页 + */ + boolean first; + /** + * 是否尾页 + */ + boolean last; + /** + * 总记录数 + */ + Integer totalElements; + /** + * 总页数 + */ + Integer totalPages; + + Integer numberOfElements; + /** + * 每页记录数 + */ + Integer size; + /** + * 当前页 + */ + Integer number; + + public void pageUtil(Integer page, Integer size, List list) { + List list1 = list.stream().skip((page - 1) * size).limit(size).collect(Collectors.toList()); + int length = list.size(); + this.first = (page == 0);//是否第一页 + this.last = (page == (length - 1) / size);//是否最后一页 + this.totalPages = ((length - 1) / size + 1);//总页数 + this.totalElements = (length);//总elements + this.size = (size);//每页多少elements + this.content = (list1);//内容 + this.numberOfElements = (list1.size());//当前页elements + this.number = (page);//当前页数,第一页是0 + } +} diff --git a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java index 1eec46e212f84d539152e1bced5b249b2849527b..29bca8a34c327c7e206787be3db3918fbc1d410e 100644 --- a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java +++ b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java @@ -50,7 +50,7 @@ public class ModelClassifyController { **/ @ApiOperation("右侧子类详情列表") @GetMapping("/subclassDetailsList") - public ResponseVO> subclassDetailsList(@RequestParam int currentPage, + public ResponseVO subclassDetailsList(@RequestParam int currentPage, @RequestParam int pageSize, @RequestParam(required = false,defaultValue = "") String parentGroupCode, @RequestParam(required = false,defaultValue = "") String subclassGroupName diff --git a/src/main/java/com/pms/ocp/model/entity/TreeNode.java b/src/main/java/com/pms/ocp/model/entity/TreeNode.java index a1b1cdba04f208509029bff3e156d63ec8a2b87c..a4de34f89939b1f64df9e0325ed1008f9dc10241 100644 --- a/src/main/java/com/pms/ocp/model/entity/TreeNode.java +++ b/src/main/java/com/pms/ocp/model/entity/TreeNode.java @@ -35,10 +35,12 @@ public class TreeNode implements Serializable { private String companyCode; @ApiModelProperty("子类") - private List children; + private int belongLevel; @ApiModelProperty("子类") - private int belongLevel; + private List children; + + public String getCode() { return code == null ? "":code; diff --git a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java index 3fccfd52c569bb748ddf6130060cd8e0d6d69662..15cd98dc3c8e7453c024a54094d2a9184ce62b72 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -2,9 +2,8 @@ package com.pms.ocp.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; import com.pms.ocp.common.constants.CodeEnum; +import com.pms.ocp.common.utils.PageUtil; import com.pms.ocp.mapper.ModelClassifyMapper; import com.pms.ocp.model.entity.ModelClassify; import com.pms.ocp.model.vo.OcpModelGroupVO; @@ -60,10 +59,10 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { * 的map.第二次是根据搜素框的值进行模糊查询 * @return pms.ocp.model.vo.ResponseVO * @author huxiuwu - * @date 2022/3/9 + * @date 2022/3/9 > **/ @Override - public ResponseVO> subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName) { + public ResponseVO subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName) { //查询所有 List ocpModelGroupVOList = this.selectByCondition(null,null); //将查询到所有数据的list转换为key为分类code,value为本身的map @@ -71,14 +70,13 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { //根据key获取前端传入code的对象 OcpModelGroupVO ocpModelGroupVO = groupByCode.get(parentGroupCode); //模糊查询 - PageHelper.startPage(currentPage,pageSize); List dimConditionList = this.selectByCondition(null,subclassGroupName); //递归获取模糊查询后属于parentGroupCode子集 List childrenList = findChildren(dimConditionList, ocpModelGroupVO, new LinkedList<>()); - PageInfo pageInfo = new PageInfo<>(childrenList); - return ResponseVO.ok(pageInfo); + PageUtil pageUtil = new PageUtil<>(); + pageUtil.pageUtil(currentPage,pageSize,childrenList); + return ResponseVO.ok(pageUtil); } - /** * 修改 * @@ -117,25 +115,28 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { * 获取父节点下的所有子节点放入list中 * @author huxiuwu * @date 2022/3/9 - * @param groupList - * @param childList + * @param + * @param + * @param * @return void **/ private List findChildren(List groupList, OcpModelGroupVO parent,List childList) { for (OcpModelGroupVO vo : groupList) { //遍历出父id等于参数的id,add进子节点集合 if (parent!= null - && parent.getModelGroupCode() - .equals(vo.getModelGroupPcode())) { + && parent.getModelGroupCode() + .equals(vo.getModelGroupPcode()) + && !"".equals(parent.getModelGroupCode())) { //递归遍历下一级 - vo.setModelGroupPName(parent.getModelGroupName()); - childList.add(vo); - childList = findChildren(groupList,vo,childList); + vo.setModelGroupPName(parent.getModelGroupName()); + if (!childList.remove(vo)){ + childList.add(vo); + } + findChildren(groupList, vo, childList); } } return childList; } - /** * 构建树节点 * @author huxiuwu @@ -162,7 +163,6 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { //设置上级父类名称 node.setModelGroupPName(parent.getModelGroupName()); //说明他有父类其下子类都需要加一级 - addLevel(node,treeNodes); parent.getChildrenList().add(node); continue; } @@ -170,6 +170,7 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { } return result; } + /** * * @author huxiuwu