package com.ruoyi.sales.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.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; import com.ruoyi.sales.mapper.ReceiptPaymentMapper; import com.ruoyi.sales.pojo.ReceiptPayment; import com.ruoyi.sales.service.ReceiptPaymentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.time.YearMonth; import java.util.List; import java.util.Objects; @Service public class ReceiptPaymentServiceImpl extends ServiceImpl implements ReceiptPaymentService { @Autowired private ReceiptPaymentMapper receiptPaymentMapper; /** * 回款登记新增 * @param receiptPayment * @return */ @Override public int receiptPaymentSaveOrUpdate(ReceiptPayment receiptPayment) { if(null==receiptPayment.getId()){ return receiptPaymentMapper.insert(receiptPayment); }else { return receiptPaymentMapper.updateById(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); } /** * 回款登记分页查询 * @param page * @param receiptPaymentDto * @return */ @Override public IPage receiptPaymentListPage(Page page, ReceiptPaymentDto receiptPaymentDto) { return receiptPaymentMapper.receiptPaymentListPage(page, receiptPaymentDto); } /** * 回款登记详情 * @param id * @return */ @Override public ReceiptPaymentDto receiptPaymentInfo(Integer id) { return receiptPaymentMapper.receiptPaymentInfo(id); } @Override public BigDecimal getReceiptAmount() { LocalDate now = LocalDate.now(); YearMonth currentMonth = YearMonth.from(now); // 创建LambdaQueryWrapper LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.ge(ReceiptPayment::getReceiptPaymentDate, currentMonth.atDay(1).atStartOfDay()) // 大于等于本月第一天 .lt(ReceiptPayment::getReceiptPaymentDate, currentMonth.plusMonths(1).atDay(1).atStartOfDay()); // 小于下月第一天 // 执行查询并计算总和 List receiptPayments = receiptPaymentMapper.selectList(queryWrapper); BigDecimal totalContractAmount = receiptPayments.stream() .map(ReceiptPayment::getReceiptPaymentAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); return totalContractAmount; } /** * 查询已经绑定发票的开票台账 * @param page * @param receiptPaymentDto * @return */ @Override public IPage bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto) { return receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto); } /** * 开票台账详情 * @param id * @return */ @Override public InvoiceLedgerDto invoiceInfo(Integer id) { return receiptPaymentMapper.invoiceInfo(id); } }