From 0c1dd25eabc4472c007951d528ee7385cc114e32 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期六, 11 十一月 2023 19:06:23 +0800 Subject: [PATCH] -- 采购单 -- 分类 --- consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java | 62 ++++++++++++++++++++++--------- 1 files changed, 44 insertions(+), 18 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java index 48d474f..beb28d3 100644 --- a/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java +++ b/consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java @@ -10,13 +10,12 @@ import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; /** * @Description 鐗╁搧鍒嗙被 @@ -38,7 +37,9 @@ BeanUtils.copyProperties(param, baseCategory); baseCategory.setId(IdUtil.generateId()); //灞傜骇 - if (baseCategory.getFatherCategoryId() == 0L) { //涓�绾у垎绫� + if (baseCategory.getFatherCategoryId() == null) { + //涓�绾у垎绫� + baseCategory.setFatherCategoryId(0L); baseCategory.setLevels(Constants.LEVELS_ONE); } else { //鏍规嵁鐖剁被id鏌ヨ涓婄骇鍒嗙被淇℃伅 @@ -59,11 +60,11 @@ } /** + * @param categoryName + * @param fatherCategoryId * @Description 鏍规嵁鍒嗙被鍚嶇О鍜岀埗绫籭d鏌ヨ鍒嗙被 * @Author 鍗㈠簡闃� * @Date 2023/10/23 - * @param categoryName - * @param fatherCategoryId */ public BaseCategory getByCategoryNameAndFatherCategoryId(String categoryName, Long fatherCategoryId) { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); @@ -87,7 +88,11 @@ public GenericPager<BaseCategory> queryBaseCategoryList(BaseCategoryParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 "); HashMap<String, Object> paramts = new HashMap<>(); - + //鍒嗙被鍚嶇О + if (param.getFatherCategoryId() != null) { + sql.append("and father_category_id =:fatherCategoryId "); + paramts.put("fatherCategoryId", param.getFatherCategoryId()); + } //鍒嗙被鍚嶇О if (!StringUtils.isEmpty(param.getCategoryName())) { sql.append(" and category_name like:category_name "); @@ -110,7 +115,7 @@ } /** - * @Description 缂栬緫 + * @Description 缂栬緫 * @Author 鍗㈠簡闃� * @Date 2023/10/23 */ @@ -120,6 +125,7 @@ /** * 淇敼鐘舵�� + * * @author 鍗㈠簡闃� * @date 2023/9/27 */ @@ -144,6 +150,7 @@ /** * 鏍规嵁鑺傜偣id鏌ヨ鑺傜偣璇︽儏 + * * @author 鍗㈠簡闃� * @Date 2023/10/23 */ @@ -161,23 +168,42 @@ return this.select(QUERY_TREE_ALL, new Object[]{}, new BaseCategory()); } - public List<ProjectTreeResult> tree(String categoryName) { + public List<ProjectTreeResult> tree() { BaseCategory categoryParam = new BaseCategory(); categoryParam.setStates(1); - List<BaseCategory> categories = select(categoryParam); - return categories.stream() - .filter(category -> Integer.valueOf(1).equals(category.getLevels())) - .sorted(Comparator.comparing(BaseCategory::getOrderNumber)) - .map(ProjectTreeResult::new) - .peek(lv1TreeResult -> lv1TreeResult.setChildren(categories.stream().filter(categorie -> lv1TreeResult.getId().equals(categorie.getFatherCategoryId())).sorted(Comparator.comparing(BaseCategory::getOrderNumber)).map(ProjectTreeResult::new).collect(Collectors.toList()))) - .collect(Collectors.toList()); + //鏌ュ嚭鎵�鏈夊垎绫� + List<BaseCategory> all = select(categoryParam); + //缁勮鎴愮埗瀛愭爲褰㈢粨鏋� + //1绾у垎绫� + List<ProjectTreeResult> menus = all.stream().filter(entity -> entity.getLevels() == 1).map(entity -> { + ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity); + projectTreeResult.setChildren(getChildren(projectTreeResult, all)); + return projectTreeResult; + }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList()); + return menus; + } /** - * @Description 涓夌骇鍒嗙被鍒楄〃鏌ヨ + * 閫掑綊鏌ユ壘鎵�鏈夎彍鍗曠殑瀛愯彍鍗� + */ + private List<ProjectTreeResult> getChildren(ProjectTreeResult root, List<BaseCategory> all) { + List<ProjectTreeResult> children = all.stream().filter(entity -> entity.getFatherCategoryId().equals(root.getId())).map(entity -> { + + ProjectTreeResult projectTreeResult = new ProjectTreeResult(entity); + //閫氳繃閫掑綊鎵惧埌瀛愬垎绫� + projectTreeResult.setChildren(getChildren(projectTreeResult, all)); + return projectTreeResult; + }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList()); + return children; + } + + + /** + * @return + * @Description 涓夌骇鍒嗙被鍒楄〃鏌ヨ * @Author 鍗㈠簡闃� * @Date 2023/10/30 - * @return */ public List<BaseCategory> queryForLv3Tree() { StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc"); -- Gitblit v1.9.1