MoneyProducePriceServiceImpl.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package vip.xiaonuo.money.service.impl;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import vip.xiaonuo.money.entity.MoneyProducePrice;
  9. import vip.xiaonuo.money.entity.vo.MoneyBorrowPriceVo;
  10. import vip.xiaonuo.money.entity.vo.MoneyProduceVo;
  11. import vip.xiaonuo.money.mapper.MoneyProducePriceMapper;
  12. import vip.xiaonuo.money.param.MoneyInOutParam;
  13. import vip.xiaonuo.money.service.IMoneyProducePriceService;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import org.springframework.stereotype.Service;
  16. import vip.xiaonuo.sale.entity.SaleCost;
  17. import vip.xiaonuo.sale.entity.SaleDetail;
  18. import vip.xiaonuo.sale.mapper.SaleCostMapper;
  19. import vip.xiaonuo.sale.mapper.SaleDetailMapper;
  20. import java.math.BigDecimal;
  21. import java.math.RoundingMode;
  22. import java.text.SimpleDateFormat;
  23. import java.util.ArrayList;
  24. import java.util.Date;
  25. import java.util.List;
  26. /**
  27. * <p>
  28. * 财务产品成本收入 服务实现类
  29. * </p>
  30. *
  31. * @author author
  32. * @since 2024-11-21
  33. */
  34. @Service
  35. public class MoneyProducePriceServiceImpl extends ServiceImpl<MoneyProducePriceMapper, MoneyProducePrice> implements IMoneyProducePriceService {
  36. @Autowired
  37. private MoneyProducePriceMapper producePriceMapper;
  38. @Autowired
  39. private SaleDetailMapper detailMapper;
  40. @Autowired
  41. private SaleCostMapper costMapper;
  42. @Override
  43. public List<MoneyProducePrice> listProduceProfit(MoneyInOutParam outParam) {
  44. QueryWrapper<MoneyProducePrice> queryWrapper = new QueryWrapper<>();
  45. queryWrapper.eq(StringUtils.isNotBlank(outParam.getOrgId()), "org_id", outParam.getOrgId());
  46. queryWrapper.select(" produce_name produceName,profit profit,create_time createTime");
  47. queryWrapper.groupBy("produce_name,DATE_FORMAT(create_time,'%Y-%m')");
  48. queryWrapper.orderByAsc("create_time");
  49. return producePriceMapper.selectList(queryWrapper);
  50. }
  51. @Override
  52. public List<MoneyProduceVo> listProduce(MoneyInOutParam outParam) {
  53. String orgId = outParam.getOrgId();
  54. DateTime year = DateUtil.beginOfYear(new Date());
  55. SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
  56. String format = sdf.format(year);
  57. List<MoneyProduceVo> list = new ArrayList<>();
  58. BigDecimal math = new BigDecimal("10000");
  59. for (int i = 1; i < 13; i++) {
  60. MoneyProduceVo vo = new MoneyProduceVo();
  61. QueryWrapper<SaleCost> queryWrapper = new QueryWrapper<>();
  62. queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
  63. queryWrapper.select(" IFNULL(sum(sale_cost_money),'0') saleCostMoney");
  64. QueryWrapper<SaleDetail> queryWrapper1 = new QueryWrapper<>();
  65. queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
  66. queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney");
  67. if (i < 10) {
  68. vo.setTime(format+"-0"+i);
  69. queryWrapper.between("create_time", format + "-0" + i + "-01 00:00:00", format + "-0" + i + "-31 23:59:59");
  70. queryWrapper1.between("create_time", format + "-0" + i + "-01 00:00:00", format + "-0" + i + "-31 23:59:59");
  71. } else {
  72. vo.setTime(format+"-"+i);
  73. queryWrapper.between("create_time", format + "-" + i + "-01 00:00:00", format + "-" + i + "-31 23:59:59");
  74. queryWrapper1.between("create_time", format + "-" + i + "-01 00:00:00", format + "-" + i + "-31 23:59:59");
  75. }
  76. SaleCost saleCost = costMapper.selectOne(queryWrapper);//销售成本
  77. SaleDetail saleDetail = detailMapper.selectOne(queryWrapper1);//销售额
  78. if (ObjectUtil.isEmpty(saleCost)) {
  79. vo.setCost("0");
  80. } else {
  81. BigDecimal bg = new BigDecimal(saleCost.getSaleCostMoney());
  82. bg = bg.divide(math, 2, RoundingMode.HALF_UP);
  83. vo.setCost(bg.toString());
  84. }
  85. if (ObjectUtil.isEmpty(saleDetail)) {
  86. vo.setCost("0");
  87. } else {
  88. BigDecimal bg = new BigDecimal(saleDetail.getSaleMoney());
  89. bg = bg.divide(math, 2, RoundingMode.HALF_UP);
  90. vo.setCost(bg.toString());
  91. }
  92. list.add(vo);
  93. }
  94. return list;
  95. }
  96. }