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<ReceiptPaymentMapper, ReceiptPayment> 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<Integer> ids) {
|
LambdaQueryWrapper<ReceiptPayment> 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<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
|
|
IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
|
|
List<ReceiptPaymentDto> dtoList = receiptPaymentDtoIPage.getRecords();
|
Map<Long, List<Long>> 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<Long, List<SimpleStorageDto>> conver = storageBlobService.conver(attachMap);
|
dtoList.forEach(it->{
|
it.setAttachFileList(conver.get(it.getId().longValue()));
|
});
|
return receiptPaymentDtoIPage;
|
}
|
|
@Override
|
public List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto) {
|
return receiptPaymentMapper.receiptPaymentHistoryListNoPage(receiptPaymentDto);
|
}
|
|
}
|