From 13afb7eafeffac6ecccc7c66d36974c54c5172d4 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 28 五月 2026 15:13:37 +0800
Subject: [PATCH] 库存管理增加库存类型,并返回相关数据显示
---
src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 160 insertions(+), 0 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
new file mode 100644
index 0000000..55c8a6b
--- /dev/null
+++ b/src/main/java/com/ruoyi/stock/service/impl/ManufacturerServiceImpl.java
@@ -0,0 +1,160 @@
+package com.ruoyi.stock.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.excel.SupplierManageExcelDto;
+import com.ruoyi.basic.pojo.SupplierManage;
+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;
+import com.ruoyi.stock.mapper.StockInventoryMapper;
+import com.ruoyi.stock.pojo.Manufacturer;
+import com.ruoyi.stock.pojo.StockInventory;
+import com.ruoyi.stock.service.ManufacturerService;
+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;
+
+/**
+ * <p>
+ * 鍘傚晢鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-05-28 09:52:35
+ */
+@Service
+@RequiredArgsConstructor
+public class ManufacturerServiceImpl extends ServiceImpl<ManufacturerMapper, Manufacturer> implements ManufacturerService {
+
+ private final StockInventoryMapper stockInventoryMapper;
+ private final ManufacturerMapper manufacturerMapper;
+ private final SysUserMapper sysUserMapper;
+
+ /**
+ * 鍘傚晢鏂板
+ */
+ @Override
+ @Transactional
+ public void saveManufacturer(Manufacturer manufacturer) {
+ LambdaQueryWrapper<Manufacturer> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Manufacturer::getName,manufacturer.getName());
+ if (baseMapper.selectCount(queryWrapper) > 0) {
+ throw new RuntimeException("鍘傚宸插瓨鍦�");
+ }
+
+ baseMapper.insert(manufacturer);
+ }
+
+ /**
+ * 鍘傚晢鍒犻櫎
+ */
+ @Override
+ @Transactional
+ public int delManufacturer(List<Long> ids) {
+ // 鎵归噺妫�鏌ユ槸鍚﹀叧鑱斿簱瀛�
+ LambdaQueryWrapper<StockInventory> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(StockInventory::getManufacturerId, ids);
+ List<StockInventory> inventoryList = stockInventoryMapper.selectList(queryWrapper);
+
+ if (!inventoryList.isEmpty()) {
+ throw new RuntimeException("鍘傚晢宸插叧鑱斿簱瀛橈紝鏃犳硶鍒犻櫎");
+ }
+
+ return baseMapper.deleteBatchIds(ids);
+ }
+
+ /**
+ * 鍘傚晢璇︽儏
+ */
+ @Override
+ public Manufacturer manufacturerDetail(Long id) {
+ return baseMapper.selectById(id);
+ }
+
+ /**
+ * 鍘傚晢淇敼
+ */
+ @Override
+ @Transactional
+ public int manufacturerUpdate(Manufacturer manufacturer) {
+ return baseMapper.updateById(manufacturer);
+ }
+
+ /**
+ * 鍘傚晢鍒嗛〉鏌ヨ
+ */
+ @Override
+ public IPage<Manufacturer> manufacturerListPage(Page page, ManufacturerDto manufacturerDto) {
+ return manufacturerMapper.manufacturerListPage(page,manufacturerDto);
+ }
+
+ /**
+ * 鍘傚晢瀵煎嚭
+ */
+ @Override
+ public void manufacturerExport(HttpServletResponse response, ManufacturerDto manufacturerDto) {
+ List<ManufacturerExcelDto> list = manufacturerMapper.manufacturerExportList(manufacturerDto);
+ ExcelUtil<ManufacturerExcelDto> util = new ExcelUtil<>(ManufacturerExcelDto.class);
+ util.exportExcel(response, list, "鍘傚鏁版嵁");
+ }
+
+ /**
+ * 鍘傚晢瀵煎叆
+ */
+ @Override
+ @Transactional
+ public R importData(MultipartFile file) {
+ try {
+ 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 R.fail("瀵煎叆澶辫触: " + e.getMessage());
+ }
+ }
+}
--
Gitblit v1.9.3