package vip.xiaonuo.money.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import vip.xiaonuo.money.entity.MoneyProducePrice; import vip.xiaonuo.money.entity.vo.MoneyBorrowPriceVo; import vip.xiaonuo.money.entity.vo.MoneyProduceVo; import vip.xiaonuo.money.mapper.MoneyProducePriceMapper; import vip.xiaonuo.money.param.MoneyInOutParam; import vip.xiaonuo.money.service.IMoneyProducePriceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import vip.xiaonuo.sale.entity.SaleCost; import vip.xiaonuo.sale.entity.SaleDetail; import vip.xiaonuo.sale.mapper.SaleCostMapper; import vip.xiaonuo.sale.mapper.SaleDetailMapper; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 财务产品成本收入 服务实现类 *

* * @author author * @since 2024-11-21 */ @Service public class MoneyProducePriceServiceImpl extends ServiceImpl implements IMoneyProducePriceService { @Autowired private MoneyProducePriceMapper producePriceMapper; @Autowired private SaleDetailMapper detailMapper; @Autowired private SaleCostMapper costMapper; @Override public List listProduceProfit(MoneyInOutParam outParam) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(outParam.getOrgId()), "org_id", outParam.getOrgId()); queryWrapper.select(" produce_name produceName,profit profit,create_time createTime"); queryWrapper.groupBy("produce_name,DATE_FORMAT(create_time,'%Y-%m')"); queryWrapper.orderByAsc("create_time"); return producePriceMapper.selectList(queryWrapper); } @Override public List listProduce(MoneyInOutParam outParam) { String orgId = outParam.getOrgId(); DateTime year = DateUtil.beginOfYear(new Date()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); String format = sdf.format(year); List list = new ArrayList<>(); BigDecimal math = new BigDecimal("10000"); for (int i = 1; i < 13; i++) { MoneyProduceVo vo = new MoneyProduceVo(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId); queryWrapper.select(" IFNULL(sum(sale_cost_money),'0') saleCostMoney"); QueryWrapper queryWrapper1 = new QueryWrapper<>(); queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId); queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney"); if (i < 10) { vo.setTime(format+"-0"+i); queryWrapper.between("create_time", format + "-0" + i + "-01 00:00:00", format + "-0" + i + "-31 23:59:59"); queryWrapper1.between("create_time", format + "-0" + i + "-01 00:00:00", format + "-0" + i + "-31 23:59:59"); } else { vo.setTime(format+"-"+i); queryWrapper.between("create_time", format + "-" + i + "-01 00:00:00", format + "-" + i + "-31 23:59:59"); queryWrapper1.between("create_time", format + "-" + i + "-01 00:00:00", format + "-" + i + "-31 23:59:59"); } SaleCost saleCost = costMapper.selectOne(queryWrapper);//销售成本 SaleDetail saleDetail = detailMapper.selectOne(queryWrapper1);//销售额 if (ObjectUtil.isEmpty(saleCost)) { vo.setCost("0"); } else { BigDecimal bg = new BigDecimal(saleCost.getSaleCostMoney()); bg = bg.divide(math, 2, RoundingMode.HALF_UP); vo.setCost(bg.toString()); } if (ObjectUtil.isEmpty(saleDetail)) { vo.setCost("0"); } else { BigDecimal bg = new BigDecimal(saleDetail.getSaleMoney()); bg = bg.divide(math, 2, RoundingMode.HALF_UP); vo.setCost(bg.toString()); } list.add(vo); } return list; } }