diff --git a/klp-wms/src/main/java/com/klp/domain/vo/CustomerRegionVO.java b/klp-wms/src/main/java/com/klp/domain/vo/CustomerRegionVO.java deleted file mode 100644 index 7517a1e1..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/CustomerRegionVO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.klp.domain.vo; - -import lombok.Data; -@Data -public class CustomerRegionVO { - private String region; - private int customerCount; -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/DashboardOverviewVO.java b/klp-wms/src/main/java/com/klp/domain/vo/DashboardOverviewVO.java index 440fb537..9c8b88a4 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/DashboardOverviewVO.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/DashboardOverviewVO.java @@ -12,30 +12,30 @@ import java.util.List; @Data public class DashboardOverviewVO { - /** - * 订单汇总 - */ - private OrderSummaryVO orderSummary; - - /** - * 销售经理饼图 - */ - private List salesManagerPie; - - /** - * 产品销量排行 - */ - private List productRank; - - /** - * 订单物料分析 - */ - private List orderMaterial; - - /** - * 客户分布 - */ - private List customerRegion; +// /** +// * 订单汇总 +// */ +// private OrderSummaryVO orderSummary; +// +// /** +// * 销售经理饼图 +// */ +// private List salesManagerPie; +// +// /** +// * 产品销量排行 +// */ +// private List productRank; +// +// /** +// * 订单物料分析 +// */ +// private List orderMaterial; +// +// /** +// * 客户分布 +// */ +// private List customerRegion; // ========== 新增业务区域 ========== diff --git a/klp-wms/src/main/java/com/klp/domain/vo/OrderMaterialVO.java b/klp-wms/src/main/java/com/klp/domain/vo/OrderMaterialVO.java deleted file mode 100644 index 39d6e8d2..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/OrderMaterialVO.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.klp.domain.vo; - -import lombok.Data; -@Data -public class OrderMaterialVO { - private String materialName; - private double usedCount; - private double stockCount; - private double purchaseCycle; -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/OrderSummaryVO.java b/klp-wms/src/main/java/com/klp/domain/vo/OrderSummaryVO.java deleted file mode 100644 index c2a785ef..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/OrderSummaryVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.klp.domain.vo; - -import lombok.Data; -@Data -public class OrderSummaryVO { - private int totalOrderCount; - private int finishedOrderCount; - private double finishedRate; - private int monthFinishedOrderCount; - private double monthFinishedRate; - private int lastMonthTotalOrderCount; - private int lastMonthFinishedOrderCount; - private double lastMonthFinishedRate; - private double totalOrderCountGrowthRate; - private double finishedOrderCountGrowthRate; - private double finishedRateGrowthRate; - private double monthFinishedOrderCountGrowthRate; - private double monthFinishedRateGrowthRate; -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/ProductRankVO.java b/klp-wms/src/main/java/com/klp/domain/vo/ProductRankVO.java deleted file mode 100644 index d95f30a0..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/ProductRankVO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.klp.domain.vo; - -import lombok.Data; -@Data -public class ProductRankVO { - private String productName; - private double totalSales; -} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/SalesManagerPieVO.java b/klp-wms/src/main/java/com/klp/domain/vo/SalesManagerPieVO.java deleted file mode 100644 index 5868e4ca..00000000 --- a/klp-wms/src/main/java/com/klp/domain/vo/SalesManagerPieVO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.klp.domain.vo; - -import lombok.Data; -@Data -public class SalesManagerPieVO { - private String salesManager; - private double totalSales; -} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsProductMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsProductMapper.java index db245084..c19b1450 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsProductMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsProductMapper.java @@ -14,43 +14,43 @@ import java.util.List; * @date 2025-07-18 */ public interface WmsProductMapper extends BaseMapperPlus { - // 订单汇总 - @Select("SELECT " + - "COUNT(*) AS totalOrderCount, " + - "SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END) AS finishedOrderCount, " + - "ROUND(SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END)/COUNT(*), 4) AS finishedRate, " + - "SUM(CASE WHEN order_status=2 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) AS monthFinishedOrderCount, " + - "ROUND(SUM(CASE WHEN order_status=2 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END)/COUNT(*), 4) AS monthFinishedRate, " + - "(SELECT COUNT(*) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthTotalOrderCount, " + - "(SELECT SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthFinishedOrderCount, " + - "(SELECT ROUND(SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END)/COUNT(*), 4) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthFinishedRate " + - "FROM wms_order WHERE del_flag=0") - OrderSummaryVO selectOrderSummary(); - - // 销售经理饼图 - @Select("SELECT sales_manager, SUM(od.quantity) AS totalSales " + - "FROM wms_order o JOIN wms_order_detail od ON o.order_id = od.order_id " + - "WHERE o.order_status = 2 AND o.del_flag=0 GROUP BY o.sales_manager") - List selectSalesManagerPie(); - - // 产品销量排行 - @Select("SELECT p.product_name, SUM(od.quantity) AS totalSales " + - "FROM wms_order_detail od JOIN wms_product p ON od.product_id = p.product_id " + - "GROUP BY p.product_name ORDER BY totalSales DESC LIMIT 10") - List selectProductRank(); - - // 订单物料分析(只分析库存量和销售销量) - @Select("SELECT p.product_name AS materialName, SUM(od.quantity) AS usedCount, " + - "(SELECT IFNULL(SUM(quantity),0) FROM wms_stock s WHERE s.item_type='product' AND s.item_id = p.product_id AND s.del_flag=0) AS stockCount, " + - "0 AS purchaseCycle " + - "FROM wms_order_detail od JOIN wms_product p ON od.product_id = p.product_id " + - "GROUP BY p.product_id, p.product_name") - List selectOrderMaterial(); - - // 客户分布热力图 - @Select("SELECT o.customer_name AS region, COUNT(*) AS customerCount " + - "FROM wms_order o WHERE o.del_flag=0 GROUP BY o.customer_name") - List selectCustomerRegion(); +// // 订单汇总 +// @Select("SELECT " + +// "COUNT(*) AS totalOrderCount, " + +// "SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END) AS finishedOrderCount, " + +// "ROUND(SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END)/COUNT(*), 4) AS finishedRate, " + +// "SUM(CASE WHEN order_status=2 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) AS monthFinishedOrderCount, " + +// "ROUND(SUM(CASE WHEN order_status=2 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END)/COUNT(*), 4) AS monthFinishedRate, " + +// "(SELECT COUNT(*) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthTotalOrderCount, " + +// "(SELECT SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthFinishedOrderCount, " + +// "(SELECT ROUND(SUM(CASE WHEN order_status=2 THEN 1 ELSE 0 END)/COUNT(*), 4) FROM wms_order WHERE del_flag=0 AND DATE_FORMAT(create_time, '%Y-%m')=DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m')) AS lastMonthFinishedRate " + +// "FROM wms_order WHERE del_flag=0") +// OrderSummaryVO selectOrderSummary(); +// +// // 销售经理饼图 +// @Select("SELECT sales_manager, SUM(od.quantity) AS totalSales " + +// "FROM wms_order o JOIN wms_order_detail od ON o.order_id = od.order_id " + +// "WHERE o.order_status = 2 AND o.del_flag=0 GROUP BY o.sales_manager") +// List selectSalesManagerPie(); +// +// // 产品销量排行 +// @Select("SELECT p.product_name, SUM(od.quantity) AS totalSales " + +// "FROM wms_order_detail od JOIN wms_product p ON od.product_id = p.product_id " + +// "GROUP BY p.product_name ORDER BY totalSales DESC LIMIT 10") +// List selectProductRank(); +// +// // 订单物料分析(只分析库存量和销售销量) +// @Select("SELECT p.product_name AS materialName, SUM(od.quantity) AS usedCount, " + +// "(SELECT IFNULL(SUM(quantity),0) FROM wms_stock s WHERE s.item_type='product' AND s.item_id = p.product_id AND s.del_flag=0) AS stockCount, " + +// "0 AS purchaseCycle " + +// "FROM wms_order_detail od JOIN wms_product p ON od.product_id = p.product_id " + +// "GROUP BY p.product_id, p.product_name") +// List selectOrderMaterial(); +// +// // 客户分布热力图 +// @Select("SELECT o.customer_name AS region, COUNT(*) AS customerCount " + +// "FROM wms_order o WHERE o.del_flag=0 GROUP BY o.customer_name") +// List selectCustomerRegion(); // ========== 新增业务区域查询方法 ========== diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java index a4e56e6e..410ca855 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProductServiceImpl.java @@ -15,7 +15,6 @@ import com.klp.domain.vo.WmsProductVo; import com.klp.domain.WmsProduct; import com.klp.mapper.WmsProductMapper; import com.klp.service.IWmsProductService; -import com.klp.domain.vo.OrderSummaryVO; import com.klp.domain.vo.PerformanceAreaVO; import com.klp.domain.vo.CurrentSituationAreaVO; import com.klp.domain.vo.RecommendationAreaVO; @@ -126,38 +125,38 @@ public class WmsProductServiceImpl implements IWmsProductService { @Override public DashboardOverviewVO getDashboardOverview() { DashboardOverviewVO vo = new DashboardOverviewVO(); - - // ========== 原有业务逻辑 ========== - OrderSummaryVO summary = baseMapper.selectOrderSummary(); - // 计算增长率 - summary.setTotalOrderCountGrowthRate( - summary.getLastMonthTotalOrderCount() == 0 ? 0 : - (double)(summary.getTotalOrderCount() - summary.getLastMonthTotalOrderCount()) / summary.getLastMonthTotalOrderCount() - ); - summary.setFinishedOrderCountGrowthRate( - summary.getLastMonthFinishedOrderCount() == 0 ? 0 : - (double)(summary.getFinishedOrderCount() - summary.getLastMonthFinishedOrderCount()) / summary.getLastMonthFinishedOrderCount() - ); - summary.setFinishedRateGrowthRate( - summary.getLastMonthFinishedRate() == 0 ? 0 : - (summary.getFinishedRate() - summary.getLastMonthFinishedRate()) / summary.getLastMonthFinishedRate() - ); - summary.setMonthFinishedOrderCountGrowthRate( - summary.getLastMonthFinishedOrderCount() == 0 ? 0 : - (double)(summary.getMonthFinishedOrderCount() - summary.getLastMonthFinishedOrderCount()) / summary.getLastMonthFinishedOrderCount() - ); - summary.setMonthFinishedRateGrowthRate( - summary.getLastMonthFinishedRate() == 0 ? 0 : - (summary.getMonthFinishedRate() - summary.getLastMonthFinishedRate()) / summary.getLastMonthFinishedRate() - ); - vo.setOrderSummary(summary); - vo.setSalesManagerPie(baseMapper.selectSalesManagerPie()); - vo.setProductRank(baseMapper.selectProductRank()); - vo.setOrderMaterial(baseMapper.selectOrderMaterial()); - vo.setCustomerRegion(baseMapper.selectCustomerRegion()); + +// // ========== 原有业务逻辑 ========== +// OrderSummaryVO summary = baseMapper.selectOrderSummary(); +// // 计算增长率 +// summary.setTotalOrderCountGrowthRate( +// summary.getLastMonthTotalOrderCount() == 0 ? 0 : +// (double)(summary.getTotalOrderCount() - summary.getLastMonthTotalOrderCount()) / summary.getLastMonthTotalOrderCount() +// ); +// summary.setFinishedOrderCountGrowthRate( +// summary.getLastMonthFinishedOrderCount() == 0 ? 0 : +// (double)(summary.getFinishedOrderCount() - summary.getLastMonthFinishedOrderCount()) / summary.getLastMonthFinishedOrderCount() +// ); +// summary.setFinishedRateGrowthRate( +// summary.getLastMonthFinishedRate() == 0 ? 0 : +// (summary.getFinishedRate() - summary.getLastMonthFinishedRate()) / summary.getLastMonthFinishedRate() +// ); +// summary.setMonthFinishedOrderCountGrowthRate( +// summary.getLastMonthFinishedOrderCount() == 0 ? 0 : +// (double)(summary.getMonthFinishedOrderCount() - summary.getLastMonthFinishedOrderCount()) / summary.getLastMonthFinishedOrderCount() +// ); +// summary.setMonthFinishedRateGrowthRate( +// summary.getLastMonthFinishedRate() == 0 ? 0 : +// (summary.getMonthFinishedRate() - summary.getLastMonthFinishedRate()) / summary.getLastMonthFinishedRate() +// ); +// vo.setOrderSummary(summary); +// vo.setSalesManagerPie(baseMapper.selectSalesManagerPie()); +// vo.setProductRank(baseMapper.selectProductRank()); +// vo.setOrderMaterial(baseMapper.selectOrderMaterial()); +// vo.setCustomerRegion(baseMapper.selectCustomerRegion()); // ========== 新增业务区域逻辑 ========== - + // 业绩区数据 PerformanceAreaVO performanceArea = new PerformanceAreaVO(); performanceArea.setProductSalesPerformance(baseMapper.selectProductSalesPerformance());