From 5f0bb044b603a335954b11bf3880f4ad6824e98f Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 20 十二月 2024 17:37:47 +0800
Subject: [PATCH] add: 花材销售统计

---
 src/main/java/com/mzl/flower/service/impl/statisticsAnalysis/StatisticAnalysisServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/impl/statisticsAnalysis/StatisticAnalysisServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/statisticsAnalysis/StatisticAnalysisServiceImpl.java
index 9cc8f69..68430ff 100644
--- a/src/main/java/com/mzl/flower/service/impl/statisticsAnalysis/StatisticAnalysisServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/statisticsAnalysis/StatisticAnalysisServiceImpl.java
@@ -3,20 +3,29 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mzl.flower.base.cache.DictCacheClient;
 import com.mzl.flower.dto.request.statisticAnalysis.FlowerMaterialDTO;
+import com.mzl.flower.dto.request.statisticAnalysis.FlowerSaleDTO;
 import com.mzl.flower.dto.response.report.OrderReportResultVO;
 import com.mzl.flower.dto.response.statisticAnalysis.FlowerMaterialStaticVO;
 import com.mzl.flower.dto.response.statisticAnalysis.FlowerMaterialVO;
+import com.mzl.flower.dto.response.statisticAnalysis.FlowerSaleStatisticVO;
+import com.mzl.flower.dto.response.statisticAnalysis.FlowerSaleVO;
 import com.mzl.flower.mapper.statisticsAnalysis.FlowerMaterialMapper;
+import com.mzl.flower.mapper.statisticsAnalysis.SalesStatisticsAnalysisMapper;
 import com.mzl.flower.service.BaseService;
 import com.mzl.flower.service.statisticsAnalysis.StatisticAnalysisService;
 import com.mzl.flower.utils.ExcelExportUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -29,6 +38,8 @@
 
     @Autowired
     private FlowerMaterialMapper flowerMaterialMapper;
+    @Resource
+    SalesStatisticsAnalysisMapper salesStatisticAnalysisMapper;
 
     @Override
     public Page<FlowerMaterialVO> getFlowerMaterialPage(Page page, FlowerMaterialDTO dto) {
@@ -98,4 +109,72 @@
             log.error(e.getMessage(), e);
         }
     }
+
+
+    @Override
+    public Page<FlowerSaleVO> getFlowerSalePage(Page page, FlowerSaleDTO dto) {
+        dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1));
+        dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0));
+        return salesStatisticAnalysisMapper.getFlowerSalePage(page, dto);
+    }
+
+    @Override
+    public FlowerSaleStatisticVO getFlowerSaleStatistics(FlowerSaleDTO dto) {
+        return salesStatisticAnalysisMapper.getFlowerSaleStatistics(dto);
+    }
+
+    @Override
+    public void exportFlowerSales(HttpServletResponse response, FlowerSaleDTO dto) {
+        dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1));
+        dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0));
+        List<FlowerSaleVO> list=salesStatisticAnalysisMapper.getFlowerSaleSList(dto);
+        String[] rowsName = new String[]{"序号", "供应商id", "供应商名称", "注册手机号", "联系方式", "集货站", "品类", "商品名称", "等级", "规格", "底价", "售价",
+                "销售扎数", "销售地址", "支付时间", "订单号", "缺货扎数", "补货扎数", "降级扎数"};
+        List<Object[]> dataList = new ArrayList<>();
+        int sn = 1;
+        for (FlowerSaleVO o : list) {
+            Object[] objs = new Object[rowsName.length];
+            int a = 0;
+            objs[a++] = sn; // 序号
+            objs[a++] = o.getSupplierId(); // 供应商id
+            objs[a++] = o.getSupplierName(); // 供应商名称
+            objs[a++] = o.getRegisterTel(); // 注册手机号
+            objs[a++] = o.getCustomerTel(); // 联系方式"
+            objs[a++] = o.getStationName(); // 集货站
+            objs[a++] = o.getFlowerCategory(); // 品类
+            objs[a++] = o.getFlowerName(); //商品名称
+            objs[a++] = o.getFlowerLevel(); //等级
+            objs[a++] = o.getFlowerUnit(); //规格
+            objs[a++] = o.getSupplierPrice();//底价
+            objs[a++] = o.getPrice(); //售价
+            objs[a++] = o.getNum(); //销售扎数
+            objs[a++] = o.getAddress(); //销售地址
+            objs[a++] = o.getPaymentTime(); //支付时间
+            objs[a++] = o.getOrderNo(); //订单号
+            objs[a++] = o.getLackNum(); //缺货扎数
+            objs[a++] = o.getReduceNum(); //补货扎数
+            objs[a++] = o.getReduceNum(); //降级扎数
+            dataList.add(objs);
+            sn++;
+        }
+        ExcelExportUtil excelExportUtil = new ExcelExportUtil("花材销售统计", rowsName, dataList, response);
+        try {
+            response.addHeader("filename", URLEncoder.encode("花材销售统计.xls", "UTF-8"));
+            response.addHeader("Access-Control-Expose-Headers", "filename");
+            excelExportUtil.export();
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+    }
+
+    protected LocalDateTime parseLocalDateTime(final String dateStr, int hour, int minute, int second, long plusDays) {
+        LocalDateTime dateTime = null;
+        if (StringUtils.isNotBlank(dateStr)) {
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            LocalDate date = LocalDate.parse(dateStr, dateTimeFormatter).plusDays(plusDays);
+            dateTime = date.atTime(hour, minute, second);
+        }
+
+        return dateTime;
+    }
 }

--
Gitblit v1.9.3