From a7ad8c17aa069e723aa0a813cf198d07e67b5fb5 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 14 三月 2025 14:19:08 +0800
Subject: [PATCH] 新增刀具、设备类信息管理,新增结构树优化,优化权限分配,新增双控设备结构书 修改flow模块 删除部分废弃yml配置

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java |  137 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 133 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
index 120968b..938efca 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java
@@ -1,7 +1,9 @@
 package org.jeecg.modules.system.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
@@ -9,10 +11,7 @@
 import org.jeecg.common.constant.FillRuleConstant;
 import org.jeecg.common.util.FillRuleUtil;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.system.entity.MdcProduction;
-import org.jeecg.modules.system.entity.MdcProductionEquipment;
-import org.jeecg.modules.system.entity.MdcUserProduction;
-import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.entity.*;
 import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper;
 import org.jeecg.modules.system.mapper.MdcProductionMapper;
 import org.jeecg.modules.system.mapper.MdcUserProductionMapper;
@@ -20,6 +19,7 @@
 import org.jeecg.modules.system.model.MdcProductionTreeModel;
 import org.jeecg.modules.system.model.ProductionIdModel;
 import org.jeecg.modules.system.service.IMdcProductionService;
+import org.jeecg.modules.system.service.ISysParamsService;
 import org.jeecg.modules.system.util.FindsProductionsChildrenUtil;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -47,6 +47,8 @@
     @Resource
     private MdcProductionEquipmentMapper productionEquipmentMapper;
 
+    @Resource
+    private ISysParamsService sysParamsService;
     /**
      * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑浜х嚎鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔�
      */
@@ -61,6 +63,45 @@
         this.setUserIdsByProList(list);
         //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁
         return FindsProductionsChildrenUtil.wrapTreeDataToTreeList(list);
+    }
+
+    /**
+     * 鏌ヨ鎵�鏈変骇绾夸俊鎭紝骞跺垎鑺傜偣杩涜鏄剧ず(娣诲姞绯荤粺閰嶇疆)
+     */
+    @Override
+    public List<MdcProductionTreeModel> queryTreeListByConfig(){
+        SysParams sysParams = sysParamsService.getSysPramBySettingKey("dnc_production");
+        LambdaQueryWrapper<MdcProduction> query = new LambdaQueryWrapper<MdcProduction>();
+        if (sysParams == null) {
+            return null;
+        }else {
+            if (("0").equals(sysParams.getSettingValue())){
+                query.eq(MdcProduction::getOrgType,"2");
+                query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+                query.orderByAsc(MdcProduction::getProductionOrder);
+                List<MdcProduction> list = this.list(query);
+                //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず
+                this.setUserIdsByProList(list);
+                //灏佽涓�绾ф爲
+                List<MdcProductionTreeModel> listResult = new ArrayList<>();
+                for (MdcProduction production : list) {
+                    if (production.getDescription().isEmpty()){
+                        production.setDescription("");
+                    }
+                    listResult.add(new MdcProductionTreeModel(production));
+                }
+                //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁
+                return listResult;
+            }else {
+                query.eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+                query.orderByAsc(MdcProduction::getProductionOrder);
+                List<MdcProduction> list = this.list(query);
+                //璁剧疆鐢ㄦ埛id锛岃鍓嶅彴鏄剧ず
+                this.setUserIdsByProList(list);
+                //璋冪敤wrapTreeDataToTreeList鏂规硶鐢熸垚鏍戠姸鏁版嵁
+                return FindsProductionsChildrenUtil.wrapTreeDataToTreeList(list);
+            }
+        }
     }
 
     /**
@@ -199,6 +240,15 @@
     }
 
     /**
+     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+     */
+    @Override
+    public List<MdcProduction> recursionChildrenByPid(String pid){
+        List<String> ids=this.recursionChildren(pid);
+        return super.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).in(MdcProduction::getId, ids));
+    }
+
+    /**
      * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」
      */
     @Override
@@ -312,4 +362,83 @@
             }
         }
     }
+
+    /**
+     *  鏌ヨ鎵�鏈夌埗鑺傜偣鍜屾湰鑺傜偣鍚嶇О
+     * @param id
+     * @return
+     */
+    @Override
+    public List<String> findListParentTreeAll(String id){
+        MdcProductionEquipment mdcProductionEquipment=productionEquipmentMapper.selectOne(new QueryWrapper<MdcProductionEquipment>().eq("equipment_id",id));
+        if (mdcProductionEquipment==null) {
+            return null;
+        }
+        List<String> strings = new ArrayList<>();
+        MdcProduction en=super.getById(mdcProductionEquipment.getProductionId());
+        if (en == null) {
+            return null;
+        }
+        strings.add(en.getProductionName());
+        if (StringUtils.isEmpty(en.getParentId())) {
+            return strings;
+        } else {
+            return findListParentTree(en.getParentId(),strings);
+        }
+    }
+
+    //  鏌ヨ鎵�浠ョ埗鑺傜偣
+    @Override
+    public List<String> findListParentTree(String parentId,List<String> stringList){
+        if (StringUtils.isEmpty(parentId)) {
+            return null;
+        }
+        if (stringList == null || stringList.isEmpty()) {
+            stringList = new ArrayList<>();
+        }
+        boolean p = true;
+        if (p) {
+            MdcProduction en = super.getById(parentId);
+            if (en != null) {
+                stringList.add(0,en.getProductionName());
+            }
+            if (StringUtils.isNotBlank(en.getParentId())) {
+                parentId = en.getParentId();
+                findListParentTree(parentId,stringList);
+            } else {
+                p = false;
+                return stringList;
+            }
+        }
+        return stringList;
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛宸插垎閰嶇殑閮ㄩ棬鍒楄〃
+     * @param userId
+     * @return
+     */
+     @Override
+     public Map<String, MdcProduction> getUserAssignedDepart(String userId){
+         if(StrUtil.isEmpty(userId))
+             return null;
+         List<MdcProduction> userPermDepart = this.baseMapper.findAllProductionId(userId);
+         if(userPermDepart == null || userPermDepart.isEmpty())
+             return null;
+         Map<String, MdcProduction> map = new HashMap<>();
+         userPermDepart.forEach(item -> {
+             map.put(item.getId(), item);
+         });
+         return map;
+    }
+
+    /**
+     * 閫氳繃涓�缁刬d鑾峰彇閮ㄩ棬
+     * @param ids
+     * @return
+     */
+    @Override
+    public List<String> findAllProductionIds(List<String> ids){
+        return this.baseMapper.recursionChildrenByList(ids);
+    }
 }

--
Gitblit v1.9.3