From 2cf1565485060fd56e1f1f1cffbba7a4d70d42a6 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 11 四月 2025 11:06:22 +0800
Subject: [PATCH] 优化dnc,设备结构树查询,优化原有代码

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java
index 9e0d90f..2d4824d 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java
@@ -1,9 +1,7 @@
 package org.jeecg.modules.dnc.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.dnc.entity.ProductMix;
 import org.jeecg.modules.dnc.mapper.ProductMixMapper;
@@ -12,7 +10,8 @@
 import org.jeecg.modules.dnc.utils.TreeBuilder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.List;
+
+import java.util.*;
 
 @Service
 public class ProductMixServiceImpl extends ServiceImpl<ProductMixMapper, ProductMix> implements IProductMixService {
@@ -20,16 +19,33 @@
     @Autowired
     private IPermissionStreamNewService permissionStreamNewService;
 
+    /**
+     * 榛樿缁撴瀯鏍戞煡璇�
+     * @return
+     */
     @Override
     public List<ProductMix> getTree() {
         LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        List<ProductMix> rawData = permissionStreamNewService.loadProductMix(loginUser.getId());
+        List<ProductMix> rawData = new ArrayList<>();
+        if (loginUser.getUsername().equals("admin")) {
+            //涓嶉渶瑕佹潈闄愯繃婊�
+            rawData=permissionStreamNewService.loadProductMixAll(loginUser.getId());
+        }else{
+            //闇�瑕佹潈闄愯繃婊�
+            String productIds = loginUser.getProductionIds();
+            if (productIds != null && !productIds.isEmpty()) {
+                List<String> productIdList = Arrays.asList(productIds.split(","));
+                rawData = permissionStreamNewService.loadProductMix(loginUser.getId(),productIdList);
+            }
+        }
         TreeBuilder builder = new TreeBuilder();
         TreeBuilder.CleanResult cleanResult = builder.preprocessData(rawData);
         List<ProductMix> sorted = builder.topologicalSort(
                 cleanResult.getValidNodes(),
                 cleanResult.getNodeMap()
         );
-        return builder.assembleTree(sorted, cleanResult.getNodeMap());
+        List<ProductMix> result =builder.assembleTree(sorted, cleanResult.getNodeMap());
+        result.sort(Comparator.comparing(ProductMix::getCreateTime, Comparator.nullsLast(Date::compareTo)));
+        return result;
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3