ProdSaleServiceImpl.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.huimv.admin.service.impl;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  6. import com.huimv.admin.common.utils.DataUill;
  7. import com.huimv.admin.common.utils.Result;
  8. import com.huimv.admin.common.utils.ResultCode;
  9. import com.huimv.admin.entity.ProdSale;
  10. import com.huimv.admin.entity.vo.ProdSaleVo;
  11. import com.huimv.admin.mapper.ProdSaleMapper;
  12. import com.huimv.admin.service.IProdSaleService;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import javax.servlet.http.HttpServletRequest;
  17. import java.text.DecimalFormat;
  18. import java.text.NumberFormat;
  19. import java.text.SimpleDateFormat;
  20. import java.util.Calendar;
  21. import java.util.Date;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * <p>
  26. * 服务实现类
  27. * </p>
  28. *
  29. * @author author
  30. * @since 2023-02-22
  31. */
  32. @Service
  33. public class ProdSaleServiceImpl extends ServiceImpl<ProdSaleMapper, ProdSale> implements IProdSaleService {
  34. @Autowired
  35. private ProdSaleMapper saleMapper;
  36. @Override
  37. public Result list(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  38. String farmId = paramsMap.get("farmId");
  39. String displayType = paramsMap.get("displayType");
  40. String startTime = paramsMap.get("startTime");
  41. String endTime = paramsMap.get("endTime");
  42. if (StringUtils.isBlank(displayType)){
  43. displayType = "0";
  44. }
  45. Integer moneyCount = 0;
  46. Integer quantityCount = 0;
  47. Integer moneyCount1 = 0;
  48. Integer quantityCount1 = 0;
  49. ProdSaleVo prodSaleVo = new ProdSaleVo();
  50. QueryWrapper<ProdSale> queryWrapper = new QueryWrapper<>();
  51. queryWrapper.eq("display_type",Integer.parseInt(displayType));
  52. queryWrapper.eq("farm_id", farmId);
  53. if (StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)) {
  54. Calendar calendar = Calendar.getInstance();
  55. calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
  56. queryWrapper.ge("creat_time", calendar.getTime()).orderByAsc("creat_time");
  57. List<ProdSale> prodSales = saleMapper.selectList(queryWrapper);
  58. if (prodSales.size() == 0) {
  59. prodSaleVo.setMoneyRate("0");
  60. prodSaleVo.setQuantityRate("0");
  61. prodSaleVo.setSales(null);
  62. } else {
  63. prodSaleVo.setSales(prodSales);
  64. }
  65. } else {
  66. startTime = startTime + " 00:00:00";
  67. endTime = endTime + " 23:59:59";
  68. queryWrapper.between("creat_time", startTime, endTime).orderByAsc("creat_time");
  69. List<ProdSale> prodSales = saleMapper.selectList(queryWrapper);
  70. if (prodSales.size() == 0) {
  71. prodSaleVo.setMoneyRate("0");
  72. prodSaleVo.setQuantityRate("0");
  73. prodSaleVo.setSales(null);
  74. } else {
  75. prodSaleVo.setSales(prodSales);
  76. }
  77. }
  78. //本月
  79. Date timesMonthmorning = DataUill.getTimesMonthmorning();
  80. QueryWrapper<ProdSale> saleQueryWrapper = new QueryWrapper<>();
  81. saleQueryWrapper.eq("display_type",Integer.parseInt(displayType));
  82. saleQueryWrapper.ge("creat_time", timesMonthmorning).eq("farm_id", farmId);
  83. List<ProdSale> prodSales = saleMapper.selectList(saleQueryWrapper);
  84. for (ProdSale prodSale : prodSales) {
  85. moneyCount = moneyCount + Integer.parseInt(prodSale.getSaleMoney());
  86. quantityCount = quantityCount + prodSale.getSaleQuantity();
  87. }
  88. //上个月
  89. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化时间
  90. //获取上个月的第一天
  91. Calendar cal_1 = Calendar.getInstance();//获取当前日期
  92. cal_1.add(Calendar.MONTH, -1);
  93. cal_1.set(Calendar.DAY_OF_MONTH, 1);//设置为1号
  94. cal_1.set(Calendar.HOUR_OF_DAY, 0);
  95. cal_1.set(Calendar.MINUTE, 0);
  96. cal_1.set(Calendar.SECOND, 0);
  97. String firstDay = format.format(cal_1.getTime());
  98. //获取上个月的最后一天
  99. Calendar cal_2 = Calendar.getInstance();
  100. cal_2.set(Calendar.DAY_OF_MONTH, 0);//设置为1号,当前日期既为本月第一天
  101. cal_2.set(Calendar.HOUR_OF_DAY, 23);
  102. cal_2.set(Calendar.MINUTE, 59);
  103. cal_2.set(Calendar.SECOND, 59);
  104. String lastDay = format.format(cal_2.getTime());
  105. QueryWrapper<ProdSale> queryWrapper1 = new QueryWrapper<>();
  106. queryWrapper1.eq("display_type",Integer.parseInt(displayType));
  107. queryWrapper1.between("creat_time", firstDay, lastDay);
  108. List<ProdSale> prodSales1 = saleMapper.selectList(queryWrapper1);
  109. for (ProdSale prodSale : prodSales1) {
  110. moneyCount1 = moneyCount1 + Integer.parseInt(prodSale.getSaleMoney());
  111. quantityCount1 = quantityCount1 + prodSale.getSaleQuantity();
  112. }
  113. prodSaleVo.setMoneyCountLast(moneyCount1.toString());
  114. prodSaleVo.setQuantityCountLast(quantityCount1.toString());
  115. prodSaleVo.setMoneyCount(moneyCount.toString());//本月销售数量
  116. prodSaleVo.setQuantityCount(quantityCount.toString());//本月销售额
  117. double a = ((moneyCount.doubleValue() - moneyCount1.doubleValue()) / moneyCount1.doubleValue())*100;
  118. double b = (quantityCount.doubleValue() - quantityCount1.doubleValue())/ quantityCount1.doubleValue()*100;
  119. DecimalFormat df = new DecimalFormat("#.00");
  120. prodSaleVo.setMoneyRate(df.format(a));
  121. prodSaleVo.setQuantityRate(df.format(b));
  122. return new Result(ResultCode.SUCCESS, prodSaleVo);
  123. }
  124. @Override
  125. public Result add(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  126. return new Result(ResultCode.SUCCESS,"添加成功");
  127. }
  128. @Override
  129. public Result listScreen(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
  130. String farmId = paramsMap.get("farmId");
  131. String type = paramsMap.get("type");
  132. String displayType = paramsMap.get("displayType");
  133. if (StringUtils.isBlank(displayType)){
  134. displayType = "0";
  135. }
  136. QueryWrapper<ProdSale> queryWrapper = new QueryWrapper<>();
  137. queryWrapper.eq("display_type",Integer.parseInt(displayType));
  138. queryWrapper.eq("farm_id", farmId);
  139. if (type == null || type == "") {
  140. type = "1";
  141. }
  142. if ("1".equals(type)) {
  143. queryWrapper.ge("creat_time", DateUtil.offsetMonth(DateUtil.beginOfMonth(new Date()),-6));
  144. List<ProdSale> prodSales = saleMapper.listMonth(queryWrapper);
  145. return new Result(ResultCode.SUCCESS,prodSales);
  146. } else {
  147. queryWrapper.ge("creat_time", DateUtil.offsetMonth(DateUtil.beginOfMonth(new Date()),-60));
  148. List<ProdSale> prodSales = saleMapper.listYear(queryWrapper);
  149. return new Result(ResultCode.SUCCESS,prodSales);
  150. }
  151. }
  152. }