package com.ruoyi.procurementrecord.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.common.utils.poi.ExcelUtil; import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd; import com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto; import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto; import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper; import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; import com.ruoyi.procurementrecord.service.ProcurementRecordOutService; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.mapper.SysUserMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; /** * @author :yys * @date : 2025/7/8 13:29 */ @Service @RequiredArgsConstructor @Slf4j public class ProcurementRecordOutServiceImpl extends ServiceImpl implements ProcurementRecordOutService { public final ProcurementRecordOutMapper procurementRecordOutMapper; public final SysUserMapper sysUserMapper; @Override public int stockout(ProcurementRecordOutAdd procurementRecordOutAdd) { SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(procurementRecordOutAdd.getUserId().toString())); if(sysUser == null){ throw new RuntimeException("出库人不存在"); } // 查询采购出库数量 LambdaQueryWrapper procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getProcurementRecordStorageId, procurementRecordOutAdd.getId()); Long aLong = procurementRecordOutMapper.selectCount(procurementRecordLambdaQueryWrapper); ProcurementRecordOut.ProcurementRecordOutBuilder procurementRecordOut = ProcurementRecordOut.builder() .procurementRecordStorageId(procurementRecordOutAdd.getId()) .salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId()) .inboundBatches(aLong.equals(0L) ? "第1批次" : "第"+ (aLong + 1) + "批次") .inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity())) .createTime(LocalDateTime.now()) .createUser(Long.valueOf(procurementRecordOutAdd.getUserId())) .createBy(sysUser.getNickName()) .updateUser(Long.valueOf(procurementRecordOutAdd.getUserId())) .updateTime(LocalDateTime.now()); this.save(procurementRecordOut.build()); return 0; } @Override public IPage listPage(Page page, ProcurementRecordOutPageDto procurementDto) { return procurementRecordOutMapper.listPage(page, procurementDto); } public List getProcurementRecordOutByIds(List id) { return procurementRecordOutMapper.selectBatchIds(id); } @Override public int deletePro(ProcurementUpdateDto procurementDto) { List procurementRecordOutByIds = getProcurementRecordOutByIds(procurementDto.getIds()); if(CollectionUtils.isEmpty(procurementRecordOutByIds)){ throw new RuntimeException("未查询到选中的人"); } procurementRecordOutMapper.deleteBatchIds(procurementRecordOutByIds.stream().map(ProcurementRecordOut::getId).collect(Collectors.toList())); return 0; } @Override public void export(HttpServletResponse response) { List list =procurementRecordOutMapper.list(); ExcelUtil util = new ExcelUtil<>(ProcurementRecordOutPageDto.class); util.exportExcel(response, list, "出库台账"); } }