From dc3336685e80c593a3654a6e53e3e1d1d13b2b50 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 06 五月 2026 15:30:13 +0800
Subject: [PATCH] fix(approve): 修复流程配置节点审批人为空时的异常处理

---
 src/main/java/com/ruoyi/basic/service/impl/CustomerPrivateServiceImpl.java |   53 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 31 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerPrivateServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerPrivateServiceImpl.java
index 3edeaa0..4521155 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerPrivateServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerPrivateServiceImpl.java
@@ -1,34 +1,29 @@
 package com.ruoyi.basic.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.dto.CustomerPrivateDto;
-import com.ruoyi.basic.dto.CustomerPrivatePoolDto;
-import com.ruoyi.basic.mapper.CustomerMapper;
-import com.ruoyi.basic.mapper.CustomerPrivatePoolMapper;
-import com.ruoyi.basic.pojo.*;
 import com.ruoyi.basic.mapper.CustomerPrivateMapper;
+import com.ruoyi.basic.mapper.CustomerPrivatePoolMapper;
+import com.ruoyi.basic.pojo.CustomerFollowUp;
+import com.ruoyi.basic.pojo.CustomerPrivate;
+import com.ruoyi.basic.pojo.CustomerPrivatePool;
+import com.ruoyi.basic.pojo.CustomerReturnVisit;
 import com.ruoyi.basic.service.CustomerFollowUpService;
 import com.ruoyi.basic.service.CustomerPrivateService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.service.CustomerReturnVisitService;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.pojo.SalesLedger;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -42,19 +37,18 @@
  */
 @Service
 @Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
 public class CustomerPrivateServiceImpl extends ServiceImpl<CustomerPrivateMapper, CustomerPrivate> implements CustomerPrivateService {
 
 
-    @Autowired
-    private CustomerPrivatePoolMapper customerPrivatePoolMapper;
+    private final CustomerPrivatePoolMapper customerPrivatePoolMapper;
 
-    @Autowired
-    private CustomerFollowUpService customerFollowUpService;
+    private final CustomerFollowUpService customerFollowUpService;
 
-    @Autowired
-    private CustomerReturnVisitService customerReturnVisitService;
-    @Autowired
-    private SalesLedgerMapper salesLedgerMapper;
+    private final CustomerReturnVisitService customerReturnVisitService;
+    private final SalesLedgerMapper salesLedgerMapper;
+
+    private final CustomerPrivateMapper customerPrivateMapper;
 
 
     @Override
@@ -64,6 +58,7 @@
         //鏂板绉佹捣璁板綍
         CustomerPrivatePool customerPrivatePool = new CustomerPrivatePool();
         customerPrivatePool.setCustomerId(customerPrivateDto.getId());
+        customerPrivatePool.setType(0L);
         customerPrivatePool.setBoundId(SecurityUtils.getLoginUser().getUserId());
         customerPrivatePoolMapper.insert(customerPrivatePool);
         return true;
@@ -93,20 +88,34 @@
     @Override
     public R importData(MultipartFile file) {
         try {
+            List<CustomerPrivate> existingList = customerPrivateMapper.selectList(null);
+            java.util.Set<String> existingCustomerNames = existingList.stream()
+                    .map(CustomerPrivate::getCustomerName)
+                    .collect(Collectors.toSet());
+
             ExcelUtil<CustomerPrivate> util = new ExcelUtil<CustomerPrivate>(CustomerPrivate.class);
             List<CustomerPrivate> userList = util.importExcel(file.getInputStream());
             if (CollectionUtils.isEmpty(userList)) {
                 return R.fail("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
             }
+
+            int successCount = 0;
+            int skipCount = 0;
             for (CustomerPrivate user : userList) {
+                if (existingCustomerNames.contains(user.getCustomerName())) {
+                    skipCount++;
+                    continue;
+                }
                 CustomerPrivateDto customerPrivateDto = new CustomerPrivateDto();
                 BeanUtils.copyProperties(user, customerPrivateDto);
                 this.add(customerPrivateDto);
+                existingCustomerNames.add(user.getCustomerName());
+                successCount++;
             }
-            return R.ok(true);
+            return R.ok("瀵煎叆瀹屾垚锛屾垚鍔�" + successCount + "鏉★紝璺宠繃閲嶅" + skipCount + "鏉�");
         } catch (Exception e) {
             e.printStackTrace();
-            return R.fail("瀵煎叆澶辫触");
+            return R.fail("瀵煎叆澶辫触锛�" + e.getMessage());
         }
     }
 }

--
Gitblit v1.9.3