SaleInvoiceServiceImpl.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package vip.xiaonuo.sale.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import vip.xiaonuo.sale.entity.SaleDeliver;
  6. import vip.xiaonuo.sale.entity.SaleInvoice;
  7. import vip.xiaonuo.sale.entity.vo.SaleInvoiceVo;
  8. import vip.xiaonuo.sale.mapper.SaleInvoiceMapper;
  9. import vip.xiaonuo.sale.param.SaleInvoiceParam;
  10. import vip.xiaonuo.sale.service.ISaleInvoiceService;
  11. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  12. import org.springframework.stereotype.Service;
  13. import java.math.BigDecimal;
  14. import java.math.RoundingMode;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. /**
  18. * <p>
  19. * 销售发票 服务实现类
  20. * </p>
  21. *
  22. * @author author
  23. * @since 2024-12-13
  24. */
  25. @Service
  26. public class SaleInvoiceServiceImpl extends ServiceImpl<SaleInvoiceMapper, SaleInvoice> implements ISaleInvoiceService {
  27. @Autowired
  28. private SaleInvoiceMapper invoiceMapper;
  29. @Override
  30. public List<SaleInvoiceVo> getList(SaleInvoiceParam invoiceParam) {
  31. String orgId = invoiceParam.getOrgId();
  32. Integer timeType = invoiceParam.getTimeType();
  33. QueryWrapper<SaleInvoice> queryWrapper = new QueryWrapper<>();
  34. queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
  35. queryWrapper.select(" count(*) saleInvoiceOrder,create_time createTime,IFNULL(sum(sale_invoice_money),'0') saleInvoiceMoney");
  36. if (0 == timeType) {
  37. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
  38. } else {
  39. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
  40. }
  41. queryWrapper.orderByAsc("create_time");
  42. List<SaleInvoiceVo> list = new ArrayList<>();
  43. List<SaleInvoice> saleInvoices = invoiceMapper.selectList(queryWrapper);
  44. BigDecimal math = new BigDecimal("10000");
  45. if (saleInvoices.size() != 0) {
  46. for (SaleInvoice saleInvoice : saleInvoices) {
  47. SaleInvoiceVo vo = new SaleInvoiceVo();
  48. BigDecimal bg = new BigDecimal(saleInvoice.getSaleInvoiceMoney());
  49. bg = bg.divide(math, 2, RoundingMode.HALF_UP);
  50. vo.setCreateTime(saleInvoice.getCreateTime());
  51. vo.setSaleInvoiceMoney(bg.toString());
  52. vo.setSaleInvoiceNumber(saleInvoice.getSaleInvoiceOrder());
  53. list.add(vo);
  54. }
  55. }
  56. return list;
  57. }
  58. }