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.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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.List; /** *

* 厂商服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-05-28 09:52:35 */ @Service @RequiredArgsConstructor public class ManufacturerServiceImpl extends ServiceImpl implements ManufacturerService { private final StockInventoryMapper stockInventoryMapper; private final ManufacturerMapper manufacturerMapper; /** * 厂商新增 */ @Override @Transactional public void saveManufacturer(Manufacturer manufacturer) { LambdaQueryWrapper 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 ids) { // 批量检查是否关联库存 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(StockInventory::getManufacturerId, ids); List 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 manufacturerListPage(Page page, ManufacturerDto manufacturerDto) { return manufacturerMapper.manufacturerListPage(page,manufacturerDto); } /** * 厂商导出 */ @Override public void manufacturerExport(HttpServletResponse response, ManufacturerDto manufacturerDto) { List list = manufacturerMapper.manufacturerExportList(manufacturerDto); ExcelUtil util = new ExcelUtil<>(ManufacturerExcelDto.class); util.exportExcel(response, list, "厂商数据"); } /** * 厂商导入 */ @Override @Transactional public Boolean importData(MultipartFile file) { try { ExcelUtil util = new ExcelUtil<>(Manufacturer.class); List list = util.importExcel(file.getInputStream()); if (list != null && !list.isEmpty()) { this.saveBatch(list); } return true; } catch (Exception e) { log.error("导入失败", e); return false; } } }