Kaynağa Gözat

统计导出

xgb 8 saat önce
ebeveyn
işleme
9d335dd9dd

+ 55 - 1
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreStatisticsScrmController.java

@@ -1,13 +1,18 @@
 package com.fs.hisStore.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
+import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.TimeUtils;
+import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.framework.web.service.TokenService;
+import com.fs.hisStore.domain.SysOperLogScrm;
 import com.fs.hisStore.param.FsStoreStatisticsParam;
 import com.fs.hisStore.service.IFsStoreOrderScrmService;
 import com.fs.hisStore.service.IFsStorePaymentScrmService;
@@ -129,7 +134,7 @@ public class FsStoreStatisticsScrmController extends BaseController
         timeEntityView.setOrderType(param.getOrderType());
         timeEntityView.setOrderMedium(param.getOrderMedium());
 
-        Map<String,Object> mapView = timeEntity.toMap();
+        Map<String,Object> mapView = timeEntityView.toMap();
         mapView.put("queryType",param.getQueryType());
         mapView.put("amountType",param.getAmountType());
         // 统计图返回值
@@ -145,6 +150,55 @@ public class FsStoreStatisticsScrmController extends BaseController
         return R.ok().put("dates",dates).put("orderCount",orderCount).put("payPrice",payPrice).put("companyTableData",companyTableData).put("deptTableData",deptTableData).put("userTableData",userTableData);
     }
 
+
+    /**
+     * @Description: 商品统计导出
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2025/9/24 18:03
+     */
+    @GetMapping("/export")
+    public AjaxResult export(FsStoreStatisticsParam param)
+    {
+
+        TimeUtils.TimeEntity timeEntity=TimeUtils.parseTimeTwo(param.getType()==null?null:param.getType().toString(),param.getStartTime(),param.getEndTime());
+        // 判断 员工是否为空
+        timeEntity.setCompanyUserId(param.getCompanyUserId());
+        timeEntity.setCompanyId(param.getCompanyId());
+        timeEntity.setDeptId(param.getDeptId());
+        timeEntity.setOrderType(param.getOrderType());
+        timeEntity.setOrderMedium(param.getOrderMedium());
+
+        Map<String,Object> map = timeEntity.toMap();
+        map.put("queryType",param.getQueryType());
+        map.put("amountType",param.getAmountType());
+
+        List<FsStoreOrderCountsVO> tableData;
+
+
+        String sheetName;
+        switch (param.getSummaryType()){
+            case 1: //  员工
+                tableData = storeOrderService.selectFsStoreOrderGroupByUserId(map);
+                sheetName = "商城订单统计-员工统计";
+                break;
+            case 2: //  部门
+                tableData = storeOrderService.selectFsStoreOrderGroupByDeptId(map);
+                sheetName = "商城订单统计-员工统计";
+                break;
+            case 3: //  公司
+                tableData = storeOrderService.selectFsStoreOrderGroupByCompanyId(map);
+                sheetName = "商城订单统计-员工统计";
+                break;
+            default:
+                throw new RuntimeException("参数错误");
+        }
+
+        ExcelUtil<FsStoreOrderCountsVO> util = new ExcelUtil<>(FsStoreOrderCountsVO.class);
+        return util.exportExcel(tableData, sheetName);
+    }
+
     @PreAuthorize("@ss.hasPermi('store:statistics:storeProduct')")
     @GetMapping("/storeProduct")
     public R storeProduct(FsStoreStatisticsParam param)

+ 49 - 1
fs-company/src/main/java/com/fs/hisStore/controller/FsStoreStatisticsScrmController.java

@@ -140,7 +140,7 @@ public class FsStoreStatisticsScrmController extends BaseController {
         timeEntityView.setOrderMedium(param.getOrderMedium());
         timeEntityView.setCompanyId(loginUser.getCompany().getCompanyId());
 
-        Map<String, Object> mapView = timeEntity.toMap();
+        Map<String, Object> mapView = timeEntityView.toMap();
         mapView.put("queryType", param.getQueryType());
         mapView.put("amountType", param.getAmountType());
         // 统计图返回值
@@ -155,6 +155,54 @@ public class FsStoreStatisticsScrmController extends BaseController {
         return R.ok().put("dates", dates).put("orderCount", orderCount).put("payPrice", payPrice).put("companyTableData", companyTableData).put("deptTableData", deptTableData).put("userTableData", userTableData);
     }
 
+    /**
+     * @Description: 商品统计导出
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2025/9/24 18:03
+     */
+    @GetMapping("/export")
+    public AjaxResult export(FsStoreStatisticsParam param)
+    {
+
+        TimeUtils.TimeEntity timeEntity=TimeUtils.parseTimeTwo(param.getType()==null?null:param.getType().toString(),param.getStartTime(),param.getEndTime());
+        // 判断 员工是否为空
+        timeEntity.setCompanyUserId(param.getCompanyUserId());
+        timeEntity.setCompanyId(param.getCompanyId());
+        timeEntity.setDeptId(param.getDeptId());
+        timeEntity.setOrderType(param.getOrderType());
+        timeEntity.setOrderMedium(param.getOrderMedium());
+
+        Map<String,Object> map = timeEntity.toMap();
+        map.put("queryType",param.getQueryType());
+        map.put("amountType",param.getAmountType());
+
+        List<FsStoreOrderCountsVO> tableData;
+
+
+        String sheetName;
+        switch (param.getSummaryType()){
+            case 1: //  员工
+                tableData = storeOrderService.selectFsStoreOrderGroupByUserId(map);
+                sheetName = "商城订单统计-员工统计";
+                break;
+            case 2: //  部门
+                tableData = storeOrderService.selectFsStoreOrderGroupByDeptId(map);
+                sheetName = "商城订单统计-员工统计";
+                break;
+            case 3: //  公司
+                tableData = storeOrderService.selectFsStoreOrderGroupByCompanyId(map);
+                sheetName = "商城订单统计-员工统计";
+                break;
+            default:
+                throw new RuntimeException("参数错误");
+        }
+
+        ExcelUtil<FsStoreOrderCountsVO> util = new ExcelUtil<>(FsStoreOrderCountsVO.class);
+        return util.exportExcel(tableData, sheetName);
+    }
+
 
     @PreAuthorize("@ss.hasPermi('store:statistics:storeProduct')")
     @GetMapping("/storeProduct")

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsStoreStatisticsParam.java

@@ -36,6 +36,9 @@ public class FsStoreStatisticsParam implements Serializable
      */
     Long companyUserId;
 
+    // 1-员工;2-部门 3-公司
+    Integer summaryType;
+
 
 
 }

+ 26 - 1
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderCountsVO.java

@@ -1,5 +1,6 @@
 package com.fs.hisStore.vo;
 
+import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -9,52 +10,76 @@ public class FsStoreOrderCountsVO {
     private Long id;
     private Long deptId; //不显示
     //员工名字[id] / 部门:部门名称
+    @Excel(name = "名称")
     private String name;
     //总单数
+    @Excel(name = "总单数")
     private Long totalCalls;
     //总金额
+    @Excel(name = "总金额")
     private BigDecimal totalAmount;
     //成单金额
+    @Excel(name = "成单金额")
     private BigDecimal validAmount;
     //待审核订单数
+    @Excel(name = "待审核订单数")
     private Long waitingOrders;
-    //待审核付金额
+    //待审核金额
+    @Excel(name = "待审核金额")
     private BigDecimal waitingAmount;
     //审核未过订单数
+    @Excel(name = "审核未过订单数")
     private Long unPassedOrders;
     //审核未过金额
+    @Excel(name = "审核未过金额")
     private BigDecimal unPassedAmount;
     //取消订单数
+    @Excel(name = "取消订单数")
     private Long cancelOrders;
     //取消金额
+    @Excel(name = "取消金额")
     private BigDecimal cancelAmount;
     // 成交数
+    @Excel(name = "成交数")
     private Long completeOrders;
     // 成交金额
+    @Excel(name = "成交金额")
     private BigDecimal completeAmount;
     //成交未发货订单数
+    @Excel(name = "成交未发货订单数")
     private Long unshippedOrders;
     //成交未发货金额
+    @Excel(name = "成交未发货金额")
     private BigDecimal unshippedAmount;
     //发货订单数
+    @Excel(name = "发货订单数")
     private Long shippedOrders;
     //发货金额
+    @Excel(name = "发货金额")
     private BigDecimal shippedAmount;
     //在途订单数
+    @Excel(name = "在途订单数")
     private Long transitOrders;
     //在途金额
+    @Excel(name = "在途金额")
     private BigDecimal transitAmount;
     //签收订单数
+    @Excel(name = "签收订单数")
     private Long receivedOrders;
     //签收金额
+    @Excel(name = "签收金额")
     private BigDecimal receivedAmount;
     //退货订单数
+    @Excel(name = "退货订单数")
     private Long returnOrders;
     //退货金额
+    @Excel(name = "退货金额")
     private BigDecimal returnAmount;
     //回款订单数
+    @Excel(name = "回款订单数")
     private Long paybackOrders;
     //回款金额
+    @Excel(name = "回款金额")
     private BigDecimal paybackAmount;
     //是否是组汇总
     private Boolean isGroup;

+ 1 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1129,7 +1129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
 
         ) t
-        GROUP BY t.type
+        GROUP BY t.type order by t.type
     </select>