From 67d25f3d9eb0124c7aab544bf8f77031d6d8adc3 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 30 九月 2026 10:36:18 +0800
Subject: [PATCH] 增加公司账号权限功能

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TFleetServiceImpl.java |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TFleetServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TFleetServiceImpl.java
index 1fec705..d2add74 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TFleetServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TFleetServiceImpl.java
@@ -19,6 +19,7 @@
 import com.ruoyi.other.api.vo.FleetOrderAggregateVO;
 import com.ruoyi.other.mapper.TChargeAuthorizationMapper;
 import com.ruoyi.other.mapper.TFleetMapper;
+import com.ruoyi.other.service.CompanyAccountAccessService;
 import com.ruoyi.other.service.TFleetService;
 import com.ruoyi.other.service.TGroupCompanyService;
 import org.springframework.stereotype.Service;
@@ -30,6 +31,7 @@
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -66,6 +68,9 @@
 
     @Resource
     private FleetUnbindClient fleetUnbindClient;
+
+    @Resource
+    private CompanyAccountAccessService companyAccountAccessService;
 
     @Override
     public Page<TVinManagement> selectVinPage(Integer fleetId, Integer current, Integer size) {
@@ -111,6 +116,8 @@
         if (items == null || items.isEmpty()) {
             throw new ServiceException("导入数据不能为空");
         }
+        // 公司账号导入车队时强制归属本公司,Excel中的所属公司仅作展示信息
+        Integer lockedCompanyId = companyAccountAccessService.getCurrentCompanyId();
         Set<String> fleetNames = new HashSet<>();
         Set<String> companyNames = new HashSet<>();
         int row = 1;
@@ -123,17 +130,19 @@
             if (fleetName.length() > 128) {
                 throw new ServiceException("第" + row + "行车队名称不能超过128个字符");
             }
-            if (!StringUtils.hasText(item.getCompanyName())) {
+            if (lockedCompanyId == null && !StringUtils.hasText(item.getCompanyName())) {
                 throw new ServiceException("第" + row + "行所属公司不能为空");
             }
             parseStatus(item.getStatus(), row);
             if (!fleetNames.add(fleetName) || lambdaQuery().eq(TFleet::getFleetName, fleetName).count() > 0) {
                 throw new ServiceException("第" + row + "行车队名称已存在或重复");
             }
-            companyNames.add(item.getCompanyName().trim());
+            if (lockedCompanyId == null && StringUtils.hasText(item.getCompanyName())) {
+                companyNames.add(item.getCompanyName().trim());
+            }
         }
         // 批量查询公司名称 -> ID
-        Map<String, Integer> companyMap = groupCompanyService.lambdaQuery()
+        Map<String, Integer> companyMap = companyNames.isEmpty() ? new HashMap<>() : groupCompanyService.lambdaQuery()
                 .in(TGroupCompany::getName, companyNames)
                 .list()
                 .stream()
@@ -141,15 +150,15 @@
         row = 1;
         for (FleetImportDTO item : items) {
             row++;
-            String companyName = item.getCompanyName().trim();
-            if (!companyMap.containsKey(companyName)) {
+            String companyName = item.getCompanyName() == null ? null : item.getCompanyName().trim();
+            if (lockedCompanyId == null && (companyName == null || !companyMap.containsKey(companyName))) {
                 throw new ServiceException("第" + row + "行所属公司不存在:" + companyName);
             }
         }
         LocalDateTime now = LocalDateTime.now();
         for (FleetImportDTO item : items) {
             TFleet fleet = new TFleet();
-            fleet.setCompanyId(companyMap.get(item.getCompanyName().trim()));
+            fleet.setCompanyId(lockedCompanyId != null ? lockedCompanyId : companyMap.get(item.getCompanyName().trim()));
             fleet.setFleetName(item.getFleetName().trim());
             fleet.setContactName(trim(item.getContactName()));
             fleet.setContactPhone(trim(item.getContactPhone()));

--
Gitblit v1.7.1