From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板

---
 src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java
index 8b07b9f..020a9cd 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/SupplierServiceImpl.java
@@ -1,21 +1,136 @@
 package com.ruoyi.basic.service.impl;
 
+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.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.SupplierManageDto;
+import com.ruoyi.basic.excel.SupplierManageExcelDto;
 import com.ruoyi.basic.mapper.SupplierManageMapper;
+import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.basic.pojo.SupplierManage;
 import com.ruoyi.basic.service.ISupplierService;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class SupplierServiceImpl extends ServiceImpl<SupplierManageMapper,SupplierManage> implements ISupplierService {
 
     @Autowired
     private SupplierManageMapper supplierMapper;
+    @Autowired
+    private PurchaseLedgerMapper purchaseLedgerMapper;
 
+    /**
+     * 渚涘簲鍟嗘柊澧�
+     * @param supplierManage
+     * @return
+     */
     @Override
     public void saveSupplier(SupplierManage supplierManage) {
-        int i = supplierMapper.selectAll();
+        LambdaQueryWrapper<SupplierManage> supplierManageLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        supplierManageLambdaQueryWrapper.eq(SupplierManage::getSupplierName,supplierManage.getSupplierName());
+        if (supplierMapper.selectCount(supplierManageLambdaQueryWrapper) > 0) {
+            throw new RuntimeException("渚涘簲鍟嗗凡瀛樺湪");
+        }
         supplierMapper.insert(supplierManage);
     }
+
+    /**
+     * 渚涘簲鍟嗗垹闄�
+     * @param ids
+     * @return
+     */
+    @Override
+    public int delSupplier(List<Integer> ids) {
+        List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(new QueryWrapper<PurchaseLedger>().lambda().in(PurchaseLedger::getSupplierId, ids));
+        if (purchaseLedgers.size() > 0) {
+            throw new RuntimeException("渚涘簲鍟嗗凡瀛樺湪閲囪喘鍚堝悓");
+        }
+        LambdaQueryWrapper<SupplierManage> delWrapper = new LambdaQueryWrapper<>();
+        delWrapper.in(SupplierManage::getId, ids);
+
+        return supplierMapper.delete(delWrapper);
+    }
+
+    /**
+     * 渚涘簲鍟嗚鎯�
+     * @param id
+     * @return
+     */
+    @Override
+    public SupplierManage supplierDetail(Integer id) {
+        return supplierMapper.selectById(id);
+    }
+
+    /**
+     * 渚涘簲鍟嗕慨鏀�
+     * @param supplierManage
+     * @return
+     */
+    @Override
+    public int supplierUpdate(SupplierManage supplierManage) {
+        return supplierMapper.updateById(supplierManage);
+    }
+
+    /**
+     * 渚涘簲鍟嗗垎椤垫煡璇�
+     * @param page
+     * @param supplierManageDto
+     * @return
+     */
+    @Override
+    public IPage<SupplierManage> supplierListPage(Page page, SupplierManageDto supplierManageDto) {
+        return supplierMapper.supplierListPage(page,supplierManageDto);
+    }
+
+    /**
+     * 渚涘簲鍟嗗鍑�
+     * @param response
+     * @param supplierManageDto
+     */
+    @Override
+    public void supplierExport(HttpServletResponse response, SupplierManageDto supplierManageDto) {
+        List<SupplierManageExcelDto> supplierManageList = supplierMapper.supplierExportList(supplierManageDto);
+        ExcelUtil<SupplierManageExcelDto> util = new ExcelUtil<SupplierManageExcelDto>(SupplierManageExcelDto.class);
+        util.exportExcel(response, supplierManageList, "渚涘簲鍟嗗鍑�");
+    }
+
+    @Override
+    public Boolean importData(MultipartFile file) {
+
+        try {
+            ExcelUtil<SupplierManageExcelDto> util = new ExcelUtil<SupplierManageExcelDto>(SupplierManageExcelDto.class);
+            List<SupplierManageExcelDto> list = util.importExcel(file.getInputStream());
+            ArrayList<SupplierManage> supplierManages = new ArrayList<>();
+            list.stream().forEach(dto -> {
+                SupplierManage supplierManage = new SupplierManage();
+                BeanUtils.copyProperties(dto,supplierManage);
+                supplierManage.setMaintainTime(LocalDate.now());
+                Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+
+                supplierManage.setMaintainUserId(Integer.parseInt(userId+""));
+                supplierManages.add(supplierManage);
+            });
+
+            this.saveOrUpdateBatch(supplierManages);
+            return true;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return false;
+    }
 }

--
Gitblit v1.9.3