From 3a65a0aa3f06f46185937034dc256331b8d21b8f Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 28 五月 2026 13:27:12 +0800
Subject: [PATCH] 入库库存关联厂家

---
 src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java
index c0b859a..55c8a6b 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java
@@ -10,6 +10,10 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.stock.dto.ManufacturerDto;
 import com.ruoyi.stock.execl.ManufacturerExcelDto;
 import com.ruoyi.stock.mapper.ManufacturerMapper;
@@ -20,10 +24,13 @@
 import jakarta.annotation.Resource;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.time.LocalDate;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -40,6 +47,7 @@
 
     private final StockInventoryMapper stockInventoryMapper;
     private final ManufacturerMapper manufacturerMapper;
+    private final SysUserMapper sysUserMapper;
 
     /**
      * 鍘傚晢鏂板
@@ -50,7 +58,7 @@
         LambdaQueryWrapper<Manufacturer> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(Manufacturer::getName,manufacturer.getName());
         if (baseMapper.selectCount(queryWrapper) > 0) {
-            throw new RuntimeException("渚涘簲鍟嗗凡瀛樺湪");
+            throw new RuntimeException("鍘傚宸插瓨鍦�");
         }
 
         baseMapper.insert(manufacturer);
@@ -106,7 +114,7 @@
     public void manufacturerExport(HttpServletResponse response, ManufacturerDto manufacturerDto) {
         List<ManufacturerExcelDto> list = manufacturerMapper.manufacturerExportList(manufacturerDto);
         ExcelUtil<ManufacturerExcelDto> util = new ExcelUtil<>(ManufacturerExcelDto.class);
-        util.exportExcel(response, list, "鍘傚晢鏁版嵁");
+        util.exportExcel(response, list, "鍘傚鏁版嵁");
     }
 
     /**
@@ -114,17 +122,39 @@
      */
     @Override
     @Transactional
-    public Boolean importData(MultipartFile file) {
+    public R importData(MultipartFile file) {
         try {
-            ExcelUtil<Manufacturer> util = new ExcelUtil<>(Manufacturer.class);
-            List<Manufacturer> list = util.importExcel(file.getInputStream());
-            if (list != null && !list.isEmpty()) {
-                this.saveBatch(list);
-            }
-            return true;
+            ExcelUtil<ManufacturerExcelDto> util = new ExcelUtil<>(ManufacturerExcelDto.class);
+            List<ManufacturerExcelDto> list = util.importExcel(file.getInputStream());
+            ArrayList<Manufacturer> manufacturers = new ArrayList<>();
+            list.stream().forEach(dto -> {
+                Manufacturer manufacturer = new Manufacturer();
+                BeanUtils.copyProperties(dto, manufacturer);
+                manufacturer.setMaintainTime(LocalDate.now());
+
+                // 妫�鏌ュ巶瀹跺悕绉版槸鍚﹂噸澶�
+                LambdaQueryWrapper<Manufacturer> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(Manufacturer::getName, manufacturer.getName());
+                if (baseMapper.selectCount(queryWrapper) > 0) {
+                    throw new RuntimeException("鍘傚鍚嶇О宸插瓨鍦�: " + manufacturer.getName());
+                }
+
+                if (StringUtils.isEmpty(dto.getMaintainUserName())) {
+                    manufacturer.setMaintainUserId(SecurityUtils.getLoginUser().getUser().getUserId());
+                } else {
+                    SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getNickName, dto.getMaintainUserName()));
+                    if (sysUser == null) {
+                        throw new RuntimeException("缁存姢浜轰笉瀛樺湪: " + dto.getMaintainUserName());
+                    }
+                    manufacturer.setMaintainUserId(sysUser.getUserId());
+                }
+                manufacturers.add(manufacturer);
+            });
+            this.saveOrUpdateBatch(manufacturers);
+            return R.ok("瀵煎叆鎴愬姛");
         } catch (Exception e) {
             log.error("瀵煎叆澶辫触", e);
-            return false;
+            return R.fail("瀵煎叆澶辫触: " + e.getMessage());
         }
     }
 }

--
Gitblit v1.9.3