From 01107e8aadfaf1e84a971d8eeb9ab37e1c5569f3 Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期五, 01 十二月 2023 09:38:56 +0800 Subject: [PATCH] feat: 部门退回/报废公用接口 --- consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java | 72 ++++++++++++++++++++++++++--------- 1 files changed, 53 insertions(+), 19 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..8ccb9f5 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 @@ -1,22 +1,21 @@ package com.consum.base.service; import com.consum.base.Constants; +import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.BaseCategoryParam; import com.consum.base.pojo.ProjectTreeResult; -import com.consum.base.util.IdUtil; import com.consum.model.po.BaseCategory; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; 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,50 @@ 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); + if (getChildren(projectTreeResult, all).isEmpty()) { + projectTreeResult.setChildren(null); + } else { + 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); + //閫氳繃閫掑綊鎵惧埌瀛愬垎绫� + if (getChildren(projectTreeResult, all).isEmpty()) { + projectTreeResult.setChildren(null); + } else { + 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