Bläddra i källkod

完善销售报表

tangyishan 1 månad sedan
förälder
incheckning
8dfd6a5e6f

+ 3 - 5
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/SalesReportQueryDto.java

@@ -2,8 +2,6 @@ package com.sckw.order.api.model;
 
 import lombok.Data;
 
-import java.util.List;
-
 /**
  * 销售报表查询参数
  */
@@ -17,7 +15,7 @@ public class SalesReportQueryDto {
     /**
      * 客户企业id
      */
-    private Long customerId;
+    private Long tradeEntId;
 
     /**
      * 商品id
@@ -25,12 +23,12 @@ public class SalesReportQueryDto {
     private Long goodsId;
 
     /**
-     * 开始时间(yyyy-MM-dd)
+     * 开始时间(yyyy-MM-dd HH:mm:ss
      */
     private String startTime;
 
     /**
-     * 结束时间(yyyy-MM-dd)
+     * 结束时间(yyyy-MM-dd HH:mm:ss
      */
     private String endTime;
 }

+ 7 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcPurchaseController.java

@@ -8,6 +8,7 @@ import com.sckw.contract.model.vo.req.QueryListReqVo;
 import com.sckw.contract.api.model.dto.res.TradeEntInfoResVo;
 import com.sckw.contract.service.operateService.KwcContractTradeService;
 import com.sckw.core.model.enums.EntTypeEnum;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.HttpResult;
 import jakarta.servlet.http.HttpServletResponse;
@@ -48,6 +49,9 @@ public class KwcPurchaseController {
 
     @PostMapping("queryTradeEntList")
     public BaseResult<List<TradeEntInfoResVo>> queryTradeEntList(@RequestBody TradeEntListQueryFeignDto queryFeignDto) {
+        if(queryFeignDto.getCurEntId() == null){
+            queryFeignDto.setCurEntId(LoginUserHolder.getEntId());
+        }
         return BaseResult.success(kwcContractTradeService.queryTradeEntList(queryFeignDto));
     }
 
@@ -60,6 +64,9 @@ public class KwcPurchaseController {
      */
     @PostMapping("/goodsList")
     public BaseResult<List<SalesReportGoodsResVo>> queryGoodsList(@RequestBody SalesReportGoodsQueryDto queryDto) {
+        if(queryDto.getCurEntId() == null){
+            queryDto.setCurEntId(LoginUserHolder.getEntId());
+        }
         return BaseResult.success(kwcContractTradeService.querySalesReportGoodsList(queryDto));
     }
 

+ 5 - 12
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderStatisticsService.java

@@ -40,8 +40,6 @@ import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.temporal.TemporalAdjusters;
-import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @desc: 贸易订单统计service
@@ -327,10 +325,13 @@ public class KwoTradeOrderStatisticsService {
      * @return 销售报表数据列表
      */
     public List<SalesReportDataVo> querySalesReportData(SalesReportQueryDto queryDto) {
+        if(StringUtils.isBlank(queryDto.getEndTime())){
+            queryDto.setEndTime(DateUtils.getCurrentTime());
+        }
         // 1. 查询基础销售订单数据
         List<SalesReportRawData> rawDataList = tradeOrderMapper.querySalesReportRawData(
                 queryDto.getCurEntId(),
-                queryDto.getCustomerId(),
+                queryDto.getTradeEntId(),
                 queryDto.getGoodsId()
         );
         
@@ -375,15 +376,7 @@ public class KwoTradeOrderStatisticsService {
             }
             
             // 计算累计数据
-            if(StringUtils.isNotBlank(queryDto.getEndTime())){
-                if (createTime != null && createTime.compareTo(queryDto.getEndTime()) <= 0){
-                    vo.setCumulativeQuantity(vo.getCumulativeQuantity().add(amount));
-                    vo.setCumulativeAmount(vo.getCumulativeAmount().add(price));
-                    if (vo.getCumulativeQuantity().compareTo(BigDecimal.ZERO) > 0) {
-                        vo.setCumulativeAveragePrice(vo.getCumulativeAmount().divide(vo.getCumulativeQuantity(), 2, RoundingMode.HALF_UP));
-                    }
-                }
-            }else{
+            if (createTime != null && createTime.compareTo(queryDto.getEndTime()) <= 0){
                 vo.setCumulativeQuantity(vo.getCumulativeQuantity().add(amount));
                 vo.setCumulativeAmount(vo.getCumulativeAmount().add(price));
                 if (vo.getCumulativeQuantity().compareTo(BigDecimal.ZERO) > 0) {

+ 1 - 1
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -872,7 +872,7 @@
                ktog.goods_id as goodsId,
                kto.amount as amount,
                kto.price as price,
-               DATE_FORMAT(kto.create_time, '%Y-%m-%d') as createTime
+               DATE_FORMAT(kto.create_time, '%Y-%m-%d %H:%i:%S') as createTime
         from kwo_trade_order kto
                  inner join kwo_trade_order_unit d on kto.id = d.t_order_id and d.unit_type = '1' and d.del_flag = 0
                  inner join kwo_trade_order_unit e on kto.id = e.t_order_id and e.unit_type = '2' and e.del_flag = 0

+ 5 - 26
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwSalesReportController.java

@@ -1,8 +1,7 @@
 package com.sckw.report.controller;
 
+import com.sckw.core.web.response.BaseResult;
 import com.sckw.report.model.dto.SalesReportDTO;
-import com.sckw.report.model.vo.CustomerVO;
-import com.sckw.report.model.vo.ProductVO;
 import com.sckw.report.model.vo.SalesReportVO;
 import com.sckw.report.model.vo.SalesReportSummaryVO;
 import com.sckw.report.service.KwSalesReportService;
@@ -29,8 +28,8 @@ public class KwSalesReportController {
      */
     @PostMapping("/getSalesReportData")
     @Operation(summary = "获取销售报表数据", description = "根据筛选参数获取销售报表数据列表")
-    public List<SalesReportVO> getSalesReportData(@RequestBody SalesReportDTO salesReportDTO) {
-        return salesReportService.getSalesReportData(salesReportDTO);
+    public BaseResult<List<SalesReportVO>> getSalesReportData(@RequestBody SalesReportDTO salesReportDTO) {
+        return BaseResult.success(salesReportService.getSalesReportData(salesReportDTO));
     }
 
     /**
@@ -40,8 +39,8 @@ public class KwSalesReportController {
      */
     @PostMapping("/summary")
     @Operation(summary = "获取销售报表汇总数据", description = "根据筛选参数获取销售报表汇总数据")
-    public SalesReportSummaryVO getSalesReportSummary(@RequestBody SalesReportDTO salesReportDTO) {
-        return salesReportService.getSalesReportSummary(salesReportDTO);
+    public BaseResult<SalesReportSummaryVO> getSalesReportSummary(@RequestBody SalesReportDTO salesReportDTO) {
+        return BaseResult.success(salesReportService.getSalesReportSummary(salesReportDTO));
     }
 
     /**
@@ -54,24 +53,4 @@ public class KwSalesReportController {
     public void exportSalesReport(@RequestBody SalesReportDTO salesReportDTO, HttpServletResponse response) {
         salesReportService.exportSalesReport(salesReportDTO, response);
     }
-
-    /**
-     * 获取所有客户名称
-     * @return 客户名称列表
-     */
-    @GetMapping("/customers")
-    @Operation(summary = "获取所有客户名称", description = "获取所有客户名称列表")
-    public List<CustomerVO> getAllCustomers() {
-        return salesReportService.getAllCustomers();
-    }
-
-    /**
-     * 获取所有商品名称
-     * @return 商品名称列表
-     */
-    @GetMapping("/products")
-    @Operation(summary = "获取所有商品名称", description = "获取所有商品名称列表")
-    public List<ProductVO> getAllProducts() {
-        return salesReportService.getAllProducts();
-    }
 }

+ 2 - 3
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/dto/SalesReportDTO.java

@@ -3,7 +3,6 @@ package com.sckw.report.model.dto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.util.List;
 import java.util.Date;
 
 @Data
@@ -14,13 +13,13 @@ public class SalesReportDTO {
      * 客户企业id
      */
     @Schema(description = "客户企业id")
-    private Long customerId;
+    private Long tradeEntId;
 
     /**
      * 商品id
      */
     @Schema(description = "商品id")
-    private Long productId;
+    private Long goodsId;
 
     /**
      * 开始时间

+ 0 - 18
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/CustomerVO.java

@@ -1,18 +0,0 @@
-package com.sckw.report.model.vo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-@Schema(description = "客户信息")
-public class CustomerVO implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Schema(description = "客户id")
-    private Long customerId;
-
-    @Schema(description = "客户名称")
-    private String customerName;
-}

+ 0 - 18
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/ProductVO.java

@@ -1,18 +0,0 @@
-package com.sckw.report.model.vo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-@Schema(description = "商品信息")
-public class ProductVO implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Schema(description = "商品id")
-    private Long productId;
-
-    @Schema(description = "商品名称")
-    private String productName;
-}

+ 2 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/SalesReportVO.java

@@ -24,14 +24,14 @@ public class SalesReportVO {
      */
     @ExcelProperty(value = "客户名称", index = 1)
     @Schema(description = "客户名称")
-    private String customerName;
+    private String entName;
 
     /**
      * 商品名称
      */
     @ExcelProperty(value = "商品名称", index = 2)
     @Schema(description = "商品名称")
-    private String productName;
+    private String goodsName;
 
     /**
      * 销售数量(吨)

+ 0 - 14
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwSalesReportService.java

@@ -1,8 +1,6 @@
 package com.sckw.report.service;
 
 import com.sckw.report.model.dto.SalesReportDTO;
-import com.sckw.report.model.vo.CustomerVO;
-import com.sckw.report.model.vo.ProductVO;
 import com.sckw.report.model.vo.SalesReportVO;
 import com.sckw.report.model.vo.SalesReportSummaryVO;
 import jakarta.servlet.http.HttpServletResponse;
@@ -31,16 +29,4 @@ public interface KwSalesReportService {
      * @param response 响应对象
      */
     void exportSalesReport(SalesReportDTO salesReportDTO, HttpServletResponse response);
-
-    /**
-     * 获取所有客户名称
-     * @return 客户名称列表
-     */
-    List<CustomerVO> getAllCustomers();
-
-    /**
-     * 获取所有商品名称
-     * @return 商品名称列表
-     */
-    List<ProductVO> getAllProducts();
 }

+ 5 - 45
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/impl/KwSalesReportServiceImpl.java

@@ -1,10 +1,6 @@
 package com.sckw.report.service.impl;
 
 import com.sckw.contract.api.feign.SalesReportContractFeignService;
-import com.sckw.contract.api.model.dto.req.SalesReportGoodsQueryDto;
-import com.sckw.contract.api.model.dto.req.TradeEntListQueryFeignDto;
-import com.sckw.contract.api.model.dto.res.SalesReportGoodsResVo;
-import com.sckw.contract.api.model.dto.res.TradeEntInfoResVo;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.BaseResult;
 import com.sckw.excel.utils.ExcelUtil;
@@ -12,8 +8,6 @@ import com.sckw.order.api.feign.SalesReportOrderFeignService;
 import com.sckw.order.api.model.SalesReportDataVo;
 import com.sckw.order.api.model.SalesReportQueryDto;
 import com.sckw.report.model.dto.SalesReportDTO;
-import com.sckw.report.model.vo.CustomerVO;
-import com.sckw.report.model.vo.ProductVO;
 import com.sckw.report.model.vo.SalesReportVO;
 import com.sckw.report.model.vo.SalesReportSummaryVO;
 import com.sckw.report.service.KwSalesReportService;
@@ -34,7 +28,7 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class KwSalesReportServiceImpl implements KwSalesReportService {
 
-    private  static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+    private  static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
     @Autowired
     private SalesReportContractFeignService salesReportContractFeignService;
@@ -46,8 +40,8 @@ public class KwSalesReportServiceImpl implements KwSalesReportService {
         // 调用订单服务获取销售报表数据
         SalesReportQueryDto queryDto = new SalesReportQueryDto();
         queryDto.setCurEntId(LoginUserHolder.getEntId());
-        queryDto.setCustomerId(salesReportDTO.getCustomerId());
-        queryDto.setGoodsId(salesReportDTO.getProductId());
+        queryDto.setTradeEntId(salesReportDTO.getTradeEntId());
+        queryDto.setGoodsId(salesReportDTO.getGoodsId());
         
         // 转换时间格式:Date转String yyyy-MM-dd
         if (salesReportDTO.getStartTime() != null) {
@@ -65,8 +59,8 @@ public class KwSalesReportServiceImpl implements KwSalesReportService {
             return salesReportData.stream().map(data -> {
                 SalesReportVO vo = new SalesReportVO();
                 vo.setSerialNumber(serialNumber.getAndIncrement());
-                vo.setCustomerName(data.getCustomerName());
-                vo.setProductName(data.getGoodsName());
+                vo.setEntName(data.getCustomerName());
+                vo.setGoodsName(data.getGoodsName());
                 vo.setSalesQuantity(data.getSalesQuantity());
                 vo.setAveragePrice(data.getAveragePrice());
                 vo.setSalesAmount(data.getSalesAmount());
@@ -111,38 +105,4 @@ public class KwSalesReportServiceImpl implements KwSalesReportService {
         // 导出Excel
         ExcelUtil.download(response, SalesReportVO.class, reportData);
     }
-
-    @Override
-    public List<CustomerVO> getAllCustomers() {
-        TradeEntListQueryFeignDto queryDto = new TradeEntListQueryFeignDto();
-        queryDto.setCurEntId(LoginUserHolder.getEntId());
-        BaseResult<List<TradeEntInfoResVo>> result = salesReportContractFeignService.queryTradeEntList(queryDto);
-        if (result != null && result.isSuccess() && result.getData() != null) {
-            List<TradeEntInfoResVo> customerList =  result.getData();
-            return customerList.stream().map(customer -> {
-                CustomerVO vo = new CustomerVO();
-                vo.setCustomerId(customer.getEntId());
-                vo.setCustomerName(customer.getEntName());
-                return vo;
-            }).collect(Collectors.toList());
-        }
-        return new ArrayList<>();
-    }
-
-    @Override
-    public List<ProductVO> getAllProducts() {
-        SalesReportGoodsQueryDto queryDto = new SalesReportGoodsQueryDto();
-        queryDto.setCurEntId(LoginUserHolder.getEntId());
-        BaseResult<List<SalesReportGoodsResVo>> result = salesReportContractFeignService.queryGoodsList(queryDto);
-        if (result != null && result.isSuccess() && result.getData() != null) {
-            List<SalesReportGoodsResVo> goodsList = result.getData();
-            return goodsList.stream().map(goods -> {
-                ProductVO vo = new ProductVO();
-                vo.setProductId(goods.getGoodsId());
-                vo.setProductName(goods.getGoodsName());
-                return vo;
-            }).collect(Collectors.toList());
-        }
-        return new ArrayList<>();
-    }
 }