SaleOrderServiceImpl.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import vip.xiaonuo.sale.entity.SaleDetail;
  7. import vip.xiaonuo.sale.entity.SaleOrder;
  8. import vip.xiaonuo.sale.entity.SalePrice;
  9. import vip.xiaonuo.sale.entity.vo.SaleDeliverVo;
  10. import vip.xiaonuo.sale.mapper.SaleDetailMapper;
  11. import vip.xiaonuo.sale.mapper.SaleOrderMapper;
  12. import vip.xiaonuo.sale.param.SaleOrderParam;
  13. import vip.xiaonuo.sale.service.ISaleOrderService;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import org.springframework.stereotype.Service;
  16. import java.math.BigDecimal;
  17. import java.math.RoundingMode;
  18. import java.util.Calendar;
  19. import java.util.Date;
  20. import java.util.List;
  21. /**
  22. * <p>
  23. * 销售订单 服务实现类
  24. * </p>
  25. *
  26. * @author author
  27. * @since 2024-12-13
  28. */
  29. @Service
  30. public class SaleOrderServiceImpl extends ServiceImpl<SaleOrderMapper, SaleOrder> implements ISaleOrderService {
  31. @Autowired
  32. private SaleOrderMapper orderMapper;
  33. @Override
  34. public List<SaleOrder> getList(SaleOrderParam saleOrderParam) {
  35. String orgId = saleOrderParam.getOrgId();
  36. String customer = saleOrderParam.getCustomer();
  37. String materialName = saleOrderParam.getMaterialName();
  38. Integer timeType = saleOrderParam.getTimeType();
  39. QueryWrapper<SaleOrder> queryWrapper = new QueryWrapper<>();
  40. Integer number = saleOrderParam.getNumber();
  41. queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
  42. queryWrapper.eq(StringUtils.isNotBlank(customer),"customer",customer);
  43. queryWrapper.eq(StringUtils.isNotBlank(materialName),"produce_name",materialName);
  44. queryWrapper.select(" CONVERT(IFNULL(sum(sale_number),'0'),decimal(10,2)) saleNumber,create_time createTime,IFNULL(sum(sale_money),'0') saleMoney");
  45. if (0 == timeType) {
  46. Calendar calendar = Calendar.getInstance();
  47. if (null == number) {
  48. calendar.add(Calendar.YEAR, -2);
  49. } else {
  50. calendar.add(Calendar.YEAR, -number+1);
  51. }
  52. queryWrapper.between("create_time", calendar.getTime(), new Date());
  53. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
  54. } else {
  55. Calendar calendar = Calendar.getInstance();
  56. if (null == number) {
  57. calendar.add(Calendar.MONTH, -12);
  58. } else {
  59. calendar.add(Calendar.MONTH, -number+1);
  60. }
  61. queryWrapper.between("create_time", calendar.getTime(), new Date());
  62. queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
  63. }
  64. queryWrapper.orderByAsc("create_time");
  65. List<SaleOrder> saleOrders = orderMapper.selectList(queryWrapper);
  66. BigDecimal math = new BigDecimal("10000");
  67. for (SaleOrder saleOrder : saleOrders) {
  68. BigDecimal bg = new BigDecimal(saleOrder.getSaleMoney());
  69. saleOrder.setSaleMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
  70. }
  71. return saleOrders;
  72. }
  73. @Autowired
  74. private SaleDetailMapper saleDetailMapper;
  75. @Override
  76. public Page<SaleOrder> saleOrderWeiFa(Page<SaleOrder> objectPage, QueryWrapper<SaleOrder> wapper) {
  77. QueryWrapper<SaleDetail> contrNoQueryWrapper = new QueryWrapper<>();
  78. contrNoQueryWrapper.isNull("c.sorr_derno");
  79. Page<SaleOrder> page = saleDetailMapper.selectSumMoneyNoTwo(objectPage,contrNoQueryWrapper);
  80. return page;
  81. }
  82. }