From eec61b51d7b64695d177c7cedd2da49f03f8c26e Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 13 三月 2025 16:59:17 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java |   64 ++++++++++++++++++++++++-------
 1 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index 5ba9d64..d785c97 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
@@ -24,6 +25,7 @@
 import org.jeecg.modules.mdc.model.MdcEquipmentTree;
 import org.jeecg.modules.mdc.service.*;
 import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdc.util.DncCopyEquipment;
 import org.jeecg.modules.mdc.util.FindsEquipmentDepartUtil;
 import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil;
 import org.jeecg.modules.mdc.vo.*;
@@ -33,14 +35,19 @@
 import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper;
 import org.jeecg.modules.system.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -97,7 +104,10 @@
     private ISysParamsService ISysParamsService;
 
     @Resource
-    private DncDevicePermissionMapper dncDevicePermissionMapper;
+    private IDncDevicePermissionService iDncDevicePermissionService;
+
+    @Value("${fileNCPath}")
+    private String fileNCPath;
 
 
     @Override
@@ -148,11 +158,7 @@
         this.save(mdcEquipment);
         //DNC娣诲姞璁惧鏉冮檺
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = user.getId();
-        DncDevicePermission dncDevicePermission=new DncDevicePermission();
-        dncDevicePermission.setDeviceId(mdcEquipment.getId());
-        dncDevicePermission.setUserId(userId);
-        dncDevicePermissionMapper.insert(dncDevicePermission);
+        iDncDevicePermissionService.addDevicePermission(mdcEquipment.getId(), user.getId());
         //step.2 淇濆瓨鎵�灞為儴闂�
         if (oConvertUtils.isNotEmpty(selectedDeparts)) {
             String[] arr = selectedDeparts.split(",");
@@ -169,6 +175,8 @@
                 mdcProductionEquipmentMapper.insert(mdcProductionEquipment);
             }
         }
+        //step.3 淇濆瓨璁惧瀵瑰簲鐨勪骇绾挎潈闄�
+        addDevicePermission(mdcEquipment);
     }
 
     @Override
@@ -191,6 +199,14 @@
                     break;
             }
         }
+        //骞崇Щ璁惧鐩綍涓嬬幇鏈夌粨鏋勪笌鏂囦欢
+        //鑾峰彇鍘熸湁缁撴瀯
+        String OldPath="";
+        String NewPath="";
+        List<String> OldStrings=mdcProductionService.findListParentTreeAll(mdcEquipment.getId());
+        if (OldStrings != null && !OldStrings.isEmpty()) {
+            OldPath = fileNCPath+"/"+StringUtils.join(OldStrings.toArray(), "/")+"/"+mdcEquipment.getEquipmentId();
+        }
         //step.1 淇敼璁惧鍩虹淇℃伅
         this.updateById(mdcEquipment);
         //step.2 淇敼閮ㄩ棬
@@ -207,6 +223,8 @@
                 mdcEquipmentDepartMapper.insert(equipmentDepart);
             }
         }
+        //鍒犻櫎鎵�鏈夎澶囨潈闄�
+        iDncDevicePermissionService.remove(new QueryWrapper<DncDevicePermission>().lambda().eq(DncDevicePermission::getDeviceId, mdcEquipment.getId()));
         //step.3 淇敼浜х嚎
         String productions = mdcEquipment.getSelectedProduction();
         String[] array = {};
@@ -221,15 +239,31 @@
                 mdcProductionEquipmentMapper.insert(productionEquipment);
             }
         }
+        List<String> NewStrings = mdcProductionService.findListParentTreeAll(mdcEquipment.getId());
+        if (NewStrings != null && !NewStrings.isEmpty()) {
+            NewPath = fileNCPath+"/"+StringUtils.join(NewStrings.toArray(), "/")+"/"+mdcEquipment.getEquipmentId();
+        }
+        // 骞崇ЩOldPath涓嬬殑鏂囦欢鍒癗ewPath涓�
+        DncCopyEquipment.CopyEquipmentPath(OldPath,NewPath);
+        //淇濆瓨璁惧瀵瑰簲鐨勪骇绾挎潈闄�
+        addDevicePermission(mdcEquipment);
         //step.4 淇敼璁惧鏉冮檺
-        //鍏堝垹鍚庡姞
-        dncDevicePermissionMapper.delete(new QueryWrapper<DncDevicePermission>().lambda().eq(DncDevicePermission::getDeviceId, mdcEquipment.getId()));
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = user.getId();
-        DncDevicePermission dncDevicePermission=new DncDevicePermission();
-        dncDevicePermission.setDeviceId(mdcEquipment.getId());
-        dncDevicePermission.setUserId(userId);
-        dncDevicePermissionMapper.insert(dncDevicePermission);
+        List<DncDevicePermission> dncDevicePermissions=iDncDevicePermissionService.list(new LambdaQueryWrapper<DncDevicePermission>()
+                .eq(DncDevicePermission::getDeviceId, mdcEquipment.getId()).eq(DncDevicePermission ::getUserId, user.getId()));
+        if (CollectionUtils.isEmpty(dncDevicePermissions)){
+            iDncDevicePermissionService.addDevicePermission(mdcEquipment.getId(), user.getId());
+        }
+    }
+
+    private void addDevicePermission(MdcEquipment mdcEquipment) {
+        List<String> productionIds=mdcProductionEquipmentMapper
+                .selectList(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getEquipmentId, mdcEquipment.getId()))
+                .stream().map(MdcProductionEquipment::getProductionId).collect(Collectors.toList());
+        List<MdcUserProduction> mdcUserProductionList=mdcUserProductionService.queryByProductionIds(productionIds);
+        mdcUserProductionList.forEach(item->{
+            iDncDevicePermissionService.addDevicePermission(mdcEquipment.getId(), item.getUserId());
+        });
     }
 
     @Override
@@ -243,7 +277,7 @@
         // 3. 鍒犻櫎璁惧浜х嚎鍏崇郴
         line += mdcProductionEquipmentMapper.delete(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getEquipmentId, id));
         // 4. 鍒犻櫎璁惧鏉冮檺
-        line += dncDevicePermissionMapper.delete(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, id));
+        line += iDncDevicePermissionService.remove(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, id))? 1 : 0;
         return line != 0;
     }
 
@@ -285,7 +319,7 @@
     public void removeEquipmentForProduction(String productionId, String equipmentId) {
         mdcProductionEquipmentMapper.delete(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getProductionId, productionId).eq(MdcProductionEquipment::getEquipmentId, equipmentId));
         //绉婚櫎璁惧鏉冮檺
-        dncDevicePermissionMapper.delete(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, equipmentId));
+        iDncDevicePermissionService.remove(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, equipmentId));
     }
 
     @Override

--
Gitblit v1.9.3