From 33032d320cb75854def7391026b0401f1bfb8360 Mon Sep 17 00:00:00 2001
From: 黎星凯 <13949086503@163.com>
Date: 星期六, 11 五月 2024 17:26:02 +0800
Subject: [PATCH] 20240511修改: 分发单优化, 分类,物品,分发单明细,采购单明细数据导入

---
 consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java |  193 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 133 insertions(+), 60 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java
index 982610e..80e0c8b 100644
--- a/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/impl/BaseCategoryServiceImpl.java
@@ -1,5 +1,13 @@
 package com.consum.base.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
 import com.consum.base.Constants;
 import com.consum.base.core.utils.IdUtil;
 import com.consum.base.pojo.BaseCategoryParam;
@@ -11,13 +19,6 @@
 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;
 
 /**
  * @Description 鐗╁搧鍒嗙被
@@ -27,7 +28,8 @@
 @Service
 public class BaseCategoryServiceImpl extends BaseServiceImpl implements BaseCategoryService {
 
-    private static final String QUERY_TREE_ALL = "select * from base_category where states = 1  order by FATHER_CATEGORY_ID, LEVELS ASC";
+    private static final String QUERY_TREE_ALL =
+        "select * from base_category where states = 1  order by FATHER_CATEGORY_ID, LEVELS ASC";
 
     /**
      * @Description 鏂板鍒嗙被
@@ -38,24 +40,24 @@
         BaseCategory baseCategory = new BaseCategory();
         BeanUtils.copyProperties(param, baseCategory);
         baseCategory.setId(IdUtil.generateId());
-        //灞傜骇
+        // 灞傜骇
         if (baseCategory.getFatherCategoryId() == null) {
-            //涓�绾у垎绫�
+            // 涓�绾у垎绫�
             baseCategory.setFatherCategoryId(0L);
             baseCategory.setLevels(Constants.LEVELS_ONE);
         } else {
-            //鏍规嵁鐖剁被id鏌ヨ涓婄骇鍒嗙被淇℃伅
+            // 鏍规嵁鐖剁被id鏌ヨ涓婄骇鍒嗙被淇℃伅
             BaseCategory category = this.get(new BaseCategory(baseCategory.getFatherCategoryId()));
-            if (category.getFatherCategoryId() == 0L) {  //浜岀骇鍒嗙被
+            if (category.getFatherCategoryId() == 0L) { // 浜岀骇鍒嗙被
                 baseCategory.setLevels(Constants.LEVELS_TWO);
-            } else {  //涓夌骇鍒嗙被
+            } else { // 涓夌骇鍒嗙被
                 baseCategory.setLevels(Constants.LEVELS_THREE);
             }
         }
-        //鍒涘缓浜篿d鍜屽垱寤轰汉濮撳悕
+        // 鍒涘缓浜篿d鍜屽垱寤轰汉濮撳悕
         baseCategory.setCreateUserId(currentUser.getId());
         baseCategory.setCreateUserName(currentUser.getUser_name());
-        //鍒涘缓鏃堕棿
+        // 鍒涘缓鏃堕棿
         baseCategory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
 
         return this.insert(baseCategory);
@@ -72,13 +74,13 @@
         StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 ");
         HashMap<String, Object> paramts = new HashMap<>();
 
-        //鍒嗙被鍚嶇О
-        sql.append(" and category_name =:category_name ");
-        paramts.put("category_name", categoryName);
-        //鐖剁被id
-        sql.append(" and father_category_id =:father_category_id ");
-        paramts.put("father_category_id", fatherCategoryId);
-
+        // 鍒嗙被鍚嶇О
+        sql.append("and category_name =:categoryName ");
+        paramts.put("categoryName", categoryName);
+        // 鐖剁被id
+        sql.append("and father_category_id =:fatherCategoryId ");
+        paramts.put("fatherCategoryId", fatherCategoryId);
+        sql.append("and states = 1 ");
         return this.get(sql.toString(), paramts, new BaseCategory());
     }
 
@@ -90,24 +92,60 @@
     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());
         } else {
             sql.append("and levels =1 ");
         }
-        //鍒嗙被鍚嶇О
+        // 鍒嗙被鍚嶇О
         if (!StringUtils.isEmpty(param.getCategoryName())) {
             sql.append(" and category_name like:category_name ");
             paramts.put("category_name", StringUtils.CHAR_PERCENT + param.getCategoryName() + StringUtils.CHAR_PERCENT);
         }
-        //绫诲埆
+        // 绫诲埆
         if (!StringUtils.isEmpty(param.getClassification())) {
             sql.append(" and classification =:classification ");
             paramts.put("classification", param.getClassification());
         }
-        //鐘舵��
+        // 鐘舵��
+        if (param.getStates() != null) {
+            sql.append(" and states =:states ");
+            paramts.put("states", param.getStates());
+        } else {
+            sql.append(" and states !=3 ");
+        }
+        sql.append(" ORDER BY ORDER_NUMBER,CREATE_TIME DESC ");
+        return selectSplit(sql.toString(), paramts, new BaseCategory());
+    }
+
+    /**
+     * 鐗╁搧鍒嗙被鍒楄〃鏌ヨ绮剧‘鏌ヨ
+     * @param param
+     * @return
+     */
+    public GenericPager<BaseCategory> queryBaseCategoryList2(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());
+        } else {
+            sql.append("and levels =1 ");
+        }
+        // 鍒嗙被鍚嶇О
+        if (!StringUtils.isEmpty(param.getCategoryName())) {
+            sql.append(" and category_name =:category_name ");
+            paramts.put("category_name", param.getCategoryName());
+        }
+        // 绫诲埆
+        if (!StringUtils.isEmpty(param.getClassification())) {
+            sql.append(" and classification =:classification ");
+            paramts.put("classification", param.getClassification());
+        }
+        // 鐘舵��
         if (param.getStates() != null) {
             sql.append(" and states =:states ");
             paramts.put("states", param.getStates());
@@ -144,9 +182,9 @@
      */
     public int updateById(BaseCategory baseCategory, S_user_core currentUser) {
         baseCategory.setStates(Constants.STATES_DELETED);
-        //鍒犻櫎鏃堕棿
+        // 鍒犻櫎鏃堕棿
         baseCategory.setDTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
-        //鍒犻櫎浜篿d鍜屽垹闄や汉濮撳悕
+        // 鍒犻櫎浜篿d鍜屽垹闄や汉濮撳悕
         baseCategory.setDUserId(currentUser.getId());
         baseCategory.setDUserName(currentUser.getUser_name());
         return this.update(baseCategory);
@@ -169,47 +207,49 @@
      */
     public List<BaseCategory> queryForTree() {
         // 灞曠ず鍏ㄩ儴鑺傜偣
-        return this.select(QUERY_TREE_ALL, new Object[]{}, new BaseCategory());
+        return this.select(QUERY_TREE_ALL, new Object[] {}, new BaseCategory());
     }
 
     public List<ProjectTreeResult> tree() {
         BaseCategory categoryParam = new BaseCategory();
         categoryParam.setStates(1);
-        //鏌ュ嚭鎵�鏈夊垎绫�
-        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;
+        // 鏌ュ嚭鎵�鏈夊垎绫�
+        List<BaseCategory> all = this.select(categoryParam);
 
+        // 缁勮鎴愮埗瀛愭爲褰㈢粨鏋�
+        List<ProjectTreeResult> rootNodes = new ArrayList<>();
+        for (BaseCategory category : all) {
+            ProjectTreeResult node = new ProjectTreeResult(category);
+            Long parentId = category.getFatherCategoryId();
+            if (parentId == 0) {
+                // 娌℃湁鐖惰妭鐐癸紝灏嗗叾浣滀负鏍硅妭鐐�
+                rootNodes.add(node);
+            } else {
+                // 鏈夌埗鑺傜偣锛屽皢鍏舵坊鍔犲埌鐖惰妭鐐圭殑瀛愯妭鐐瑰垪琛ㄤ腑
+                addToParent(parentId, node, rootNodes);
+            }
+        }
+        return rootNodes;
     }
 
-    /**
-     * 閫掑綊鏌ユ壘鎵�鏈夎彍鍗曠殑瀛愯彍鍗�
-     */
-    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);
+    private void addToParent(Long parentId, ProjectTreeResult node, List<ProjectTreeResult> nodes) {
+        for (ProjectTreeResult parent : nodes) {
+            if (parent.getId().equals(parentId)) {
+                // 鎵惧埌浜嗙埗鑺傜偣锛屽皢鍏舵坊鍔犲埌瀛愯妭鐐瑰垪琛ㄤ腑
+                if (parent.getChildren() == null) {
+                    parent.setChildren(new ArrayList<>());
+                }
+                parent.getChildren().add(node);
+                break;
             } else {
-                projectTreeResult.setChildren(getChildren(projectTreeResult, all));
+                // 缁х画鏌ユ壘鐖惰妭鐐圭殑瀛愯妭鐐�
+                List<ProjectTreeResult> children = parent.getChildren();
+                if (children != null) {
+                    addToParent(parentId, node, children);
+                }
             }
-            return projectTreeResult;
-        }).sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort()))).collect(Collectors.toList());
-        return children;
+        }
     }
-
 
     /**
      * @return
@@ -218,7 +258,40 @@
      * @Date 2023/10/30
      */
     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");
-        return this.select(sql.toString(), new Object[]{}, new BaseCategory());
+        StringBuilder sql = new StringBuilder(
+            "SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc");
+        return this.select(sql.toString(), new Object[] {}, new BaseCategory());
     }
+
+    @Override
+    public BaseCategory getByCategoryByName(String categoryName) {
+        StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+        // 鍒嗙被鍚嶇О
+        sql.append(" and category_name =:category_name ");
+        paramts.put("category_name", categoryName);
+        BaseCategory baseCategory = this.get(sql.toString(), paramts, new BaseCategory());
+        return baseCategory;
+    }
+
+    /**
+     * 鏌ヨ鍒嗙被鍚岀骇鍒殑鏈�澶ф帓搴忓彿
+     * @param id 鍒嗙被
+     * @return
+     */
+    @Override
+    public int selIndexByPid(Long id) {
+        StringBuilder sql = new StringBuilder("SELECT max(ORDER_NUMBER) maxNum FROM base_category WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+        // 鍒嗙被鍚嶇О
+        sql.append(" and FATHER_CATEGORY_ID =:FATHER_CATEGORY_ID ");
+        paramts.put("FATHER_CATEGORY_ID", id);
+        Map getMap = this.get(sql.toString(), paramts);
+        Object obj = getMap.get("maxNum");
+        if(obj!=null){
+            return new Integer(obj.toString());
+        }
+        return 0;
+    }
+
 }

--
Gitblit v1.9.1