package com.ruoyi.business.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.basic.entity.dto.SimpleStorageDto; import com.ruoyi.basic.service.StorageBlobService; import com.ruoyi.business.dto.ReceiptPaymentDto; import com.ruoyi.business.dto.SalesRecordDto; import com.ruoyi.business.entity.DuePayable; import com.ruoyi.business.entity.ReceiptPayment; import com.ruoyi.business.entity.SalesRecord; import com.ruoyi.business.mapper.ReceiptPaymentMapper; import com.ruoyi.business.mapper.SalesRecordMapper; import com.ruoyi.business.service.ReceiptPaymentService; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import java.math.BigDecimal; import java.time.LocalDate; import java.time.YearMonth; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @Service public class ReceiptPaymentServiceImpl extends ServiceImpl implements ReceiptPaymentService { @Autowired private ReceiptPaymentMapper receiptPaymentMapper; @Autowired private SalesRecordMapper salesRecordMapper; @Resource private StorageBlobService storageBlobService; /** * 回款登记新增 * @param receiptPayment * @return */ @Override public int receiptPaymentSaveOrUpdate(ReceiptPayment receiptPayment) { SalesRecord salesRecord = salesRecordMapper.selectById(receiptPayment.getSalesRecordId()); if (ObjectUtils.isEmpty(salesRecord)){ throw new RuntimeException("销售记录不存在"); } return receiptPaymentMapper.insert(receiptPayment); } /** * 回款登记修改 * @param receiptPayment * @return */ @Override public int receiptPaymentUpdate(ReceiptPayment receiptPayment) { return receiptPaymentMapper.updateById(receiptPayment); } /** * 回款登记删除 * @param ids * @return */ @Override public int receiptPaymentDel(List ids) { LambdaQueryWrapper delQuery = new LambdaQueryWrapper<>(); delQuery.in(ReceiptPayment::getId, ids); return receiptPaymentMapper.delete(delQuery); } @Override public SalesRecordDto invoiceInfo(Integer id) { return receiptPaymentMapper.invoiceInfo(id); } @Override public IPage receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) { IPage receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto); List dtoList = receiptPaymentDtoIPage.getRecords(); Map> attachMap = dtoList.stream().collect(Collectors.toMap( (ReceiptPaymentDto receiptPaymentDto1) -> receiptPaymentDto1.getId().longValue(), it -> { if (StringUtils.isNotBlank(it.getAttachUpload())) { return Arrays.stream(it.getAttachUpload().split(",")) .map(Long::parseLong) .collect(Collectors.toList()); } else { return List.of(); } } )); Map> conver = storageBlobService.conver(attachMap); dtoList.forEach(it->{ it.setAttachFileList(conver.get(it.getId().longValue())); }); return receiptPaymentDtoIPage; } @Override public List receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto) { return receiptPaymentMapper.receiptPaymentHistoryListNoPage(receiptPaymentDto); } }