From f7a31c07d64528f9bfd8c3675bfcbc6eafbcc94a Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Wed, 30 Jul 2025 17:18:56 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E4=BA=A7=E7=BA=BF=E8=B4=9F=E8=BD=BD?= =?UTF-8?q?=E6=94=B9=E6=88=90=E6=9C=AA=E6=9D=A5=E8=B4=9F=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/klp/service/impl/WmsProductionLineServiceImpl.java | 6 +++--- .../main/resources/mapper/klp/WmsProductionLineMapper.xml | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java index 1c3b6697..f6a32b06 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsProductionLineServiceImpl.java @@ -19,6 +19,8 @@ import com.klp.service.IWmsProductionLineService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 产线Service业务层处理 @@ -47,10 +49,8 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService { public TableDataInfo queryPageList(WmsProductionLineBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - // 填充负载信息 fillLoadInfo(result.getRecords()); - return TableDataInfo.build(result); } @@ -133,7 +133,7 @@ public class WmsProductionLineServiceImpl implements IWmsProductionLineService { // 批量查询负载信息 List loadInfoList = baseMapper.selectLineLoadInfo(lineIds); Map loadInfoMap = loadInfoList.stream() - .collect(java.util.stream.Collectors.toMap(LineLoadInfo::getLineId, java.util.function.Function.identity())); + .collect(Collectors.toMap(LineLoadInfo::getLineId, Function.identity())); // 填充到VO for (WmsProductionLineVo vo : productionLineList) { LineLoadInfo loadInfo = loadInfoMap.get(vo.getLineId()); diff --git a/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml index 5a3ccd8c..35f0f6b5 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsProductionLineMapper.xml @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT line_id AS lineId, COUNT(*) AS planDetailCount, - SUM(DATEDIFF(end_date, start_date) + 1) AS totalPlanDays + SUM(DATEDIFF(end_date, GREATEST(start_date, CURDATE())) + 1) AS totalPlanDays FROM wms_schedule_plan_detail WHERE @@ -30,6 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{lineId} + AND end_date >= CURDATE() AND del_flag = 0 GROUP BY line_id From bee31ca5bcfb5f3a0af2fe22600e4e2c46087ffa Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 31 Jul 2025 09:40:38 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9C=8B=E6=9D=BFVo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/klp/domain/vo/CustomerRegionVO.java | 8 -- .../klp/domain/vo/DashboardOverviewVO.java | 48 ++++++------ .../com/klp/domain/vo/OrderMaterialVO.java | 10 --- .../com/klp/domain/vo/OrderSummaryVO.java | 19 ----- .../java/com/klp/domain/vo/ProductRankVO.java | 8 -- .../com/klp/domain/vo/SalesManagerPieVO.java | 8 -- .../java/com/klp/mapper/WmsProductMapper.java | 74 +++++++++---------- .../service/impl/WmsProductServiceImpl.java | 61 ++++++++------- 8 files changed, 91 insertions(+), 145 deletions(-) delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/CustomerRegionVO.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/OrderMaterialVO.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/OrderSummaryVO.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/ProductRankVO.java delete mode 100644 klp-wms/src/main/java/com/klp/domain/vo/SalesManagerPieVO.java 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()); From b063ccefd4144f51bd5ddcb0000eb55d76f1cc46 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 31 Jul 2025 10:07:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- klp-ui/src/api/wms/productSalesScript.js | 14 +++++++------- klp-ui/src/views/wms/productSalesScript/index.vue | 2 +- klp-ui/src/views/wms/purchasePlan/index.vue | 2 +- .../src/views/wms/purchasePlan/panels/detail.vue | 2 +- klp-ui/src/views/wms/schedulePlan/index.vue | 2 +- klp-ui/src/views/wms/stockIo/index.vue | 2 +- klp-ui/src/views/wms/stockIo/panels/detail.vue | 2 +- .../WmsProductSalesScriptController.java | 6 +++--- .../com/klp/controller/WmsStockController.java | 2 +- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/klp-ui/src/api/wms/productSalesScript.js b/klp-ui/src/api/wms/productSalesScript.js index 28c676d2..e4f16ae8 100644 --- a/klp-ui/src/api/wms/productSalesScript.js +++ b/klp-ui/src/api/wms/productSalesScript.js @@ -3,7 +3,7 @@ import request from '@/utils/request' // 查询产品销售话术列表 export function listProductSalesScript(query) { return request({ - url: '/klp/productSalesScript/list', + url: '/wms/productSalesScript/list', method: 'get', params: query }) @@ -12,7 +12,7 @@ export function listProductSalesScript(query) { // 查询产品销售话术,只要标题和内容有一个配置就会被返回 export function searchProductSalesScript(keyword) { return request({ - url: '/klp/productSalesScript/list', + url: '/wms/productSalesScript/list', method: 'get', params: { keyword } }) @@ -21,7 +21,7 @@ export function searchProductSalesScript(keyword) { // 查询产品销售话术详细 export function getProductSalesScript(scriptId) { return request({ - url: '/klp/productSalesScript/' + scriptId, + url: '/wms/productSalesScript/' + scriptId, method: 'get' }) } @@ -29,7 +29,7 @@ export function getProductSalesScript(scriptId) { // 新增产品销售话术 export function addProductSalesScript(data) { return request({ - url: '/klp/productSalesScript', + url: '/wms/productSalesScript', method: 'post', data: data }) @@ -38,7 +38,7 @@ export function addProductSalesScript(data) { // 修改产品销售话术 export function updateProductSalesScript(data) { return request({ - url: '/klp/productSalesScript', + url: '/wms/productSalesScript', method: 'put', data: data }) @@ -47,7 +47,7 @@ export function updateProductSalesScript(data) { // 删除产品销售话术 export function delProductSalesScript(scriptId) { return request({ - url: '/klp/productSalesScript/' + scriptId, + url: '/wms/productSalesScript/' + scriptId, method: 'delete' }) } @@ -72,7 +72,7 @@ export function delProductSalesScript(scriptId) { // 获取产品咨询热度排行 export function getProductRanking() { return request({ - url: '/klp/productSalesScript/dashboard/ranking', + url: '/wms/productSalesScript/dashboard/ranking', method: 'get' }) } diff --git a/klp-ui/src/views/wms/productSalesScript/index.vue b/klp-ui/src/views/wms/productSalesScript/index.vue index 85da8da0..241752ba 100644 --- a/klp-ui/src/views/wms/productSalesScript/index.vue +++ b/klp-ui/src/views/wms/productSalesScript/index.vue @@ -312,7 +312,7 @@ export default { }, /** 导出按钮操作 */ handleExport() { - this.download('system/productSalesScript/export', { + this.download('wms/productSalesScript/export', { ...this.queryParams }, `productSalesScript_${new Date().getTime()}.xlsx`) }, diff --git a/klp-ui/src/views/wms/purchasePlan/index.vue b/klp-ui/src/views/wms/purchasePlan/index.vue index a983c820..697ec532 100644 --- a/klp-ui/src/views/wms/purchasePlan/index.vue +++ b/klp-ui/src/views/wms/purchasePlan/index.vue @@ -453,7 +453,7 @@ export default { }, /** 导出按钮操作 */ handleExport() { - this.download('klp/purchasePlan/export', { + this.download('wms/purchasePlan/export', { ...this.queryParams }, `purchasePlan_${new Date().getTime()}.xlsx`) }, diff --git a/klp-ui/src/views/wms/purchasePlan/panels/detail.vue b/klp-ui/src/views/wms/purchasePlan/panels/detail.vue index 4446f413..1cb344c4 100644 --- a/klp-ui/src/views/wms/purchasePlan/panels/detail.vue +++ b/klp-ui/src/views/wms/purchasePlan/panels/detail.vue @@ -376,7 +376,7 @@ export default { }, /** 导出按钮操作 */ handleExport() { - this.download('klp/purchasePlanDetail/export', { + this.download('wms/purchasePlanDetail/export', { ...this.queryParams }, `purchasePlanDetail_${new Date().getTime()}.xlsx`) }, diff --git a/klp-ui/src/views/wms/schedulePlan/index.vue b/klp-ui/src/views/wms/schedulePlan/index.vue index d403ebc4..31438523 100644 --- a/klp-ui/src/views/wms/schedulePlan/index.vue +++ b/klp-ui/src/views/wms/schedulePlan/index.vue @@ -338,7 +338,7 @@ }, /** 导出按钮操作 */ handleExport() { - this.download('klp/schedulePlan/export', { + this.download('wms/schedulePlan/export', { ...this.queryParams }, `schedulePlan_${new Date().getTime()}.xlsx`) }, diff --git a/klp-ui/src/views/wms/stockIo/index.vue b/klp-ui/src/views/wms/stockIo/index.vue index 1a33f50a..50626f88 100644 --- a/klp-ui/src/views/wms/stockIo/index.vue +++ b/klp-ui/src/views/wms/stockIo/index.vue @@ -418,7 +418,7 @@ export default { }, /** 导出按钮操作 */ handleExport() { - this.download('klp/stockIo/export', { + this.download('wms/stockIo/export', { ...this.queryParams }, `stockIo_${new Date().getTime()}.xlsx`) }, diff --git a/klp-ui/src/views/wms/stockIo/panels/detail.vue b/klp-ui/src/views/wms/stockIo/panels/detail.vue index 020d7962..752f53d2 100644 --- a/klp-ui/src/views/wms/stockIo/panels/detail.vue +++ b/klp-ui/src/views/wms/stockIo/panels/detail.vue @@ -457,7 +457,7 @@ export default { this.reset(); }, handleExport() { - this.download('klp/stockIoDetail/export', { + this.download('wms/stockIoDetail/export', { ...this.queryParams }, `stockIoDetail_${new Date().getTime()}.xlsx`) }, diff --git a/klp-wms/src/main/java/com/klp/controller/WmsProductSalesScriptController.java b/klp-wms/src/main/java/com/klp/controller/WmsProductSalesScriptController.java index e9b4a0c7..b010e89e 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsProductSalesScriptController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsProductSalesScriptController.java @@ -35,7 +35,7 @@ import com.klp.domain.vo.ProductRankingVo; @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/klp/productSalesScript") +@RequestMapping("/wms/productSalesScript") public class WmsProductSalesScriptController extends BaseController { private final IWmsProductSalesScriptService iWmsProductSalesScriptService; @@ -67,12 +67,12 @@ public class WmsProductSalesScriptController extends BaseController { public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long scriptId) { WmsProductSalesScriptVo vo = iWmsProductSalesScriptService.queryById(scriptId); - + // 记录产品访问次数到Redis if (vo != null && vo.getProductId() != null) { iWmsProductSalesScriptService.recordProductViewCount(vo.getProductId()); } - + return R.ok(vo); } diff --git a/klp-wms/src/main/java/com/klp/controller/WmsStockController.java b/klp-wms/src/main/java/com/klp/controller/WmsStockController.java index 355295b4..467f6902 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsStockController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsStockController.java @@ -52,7 +52,7 @@ public class WmsStockController extends BaseController { @PostMapping("/export") public void export(WmsStockBo bo, HttpServletResponse response) { List list = iWmsStockService.queryList(bo); - ExcelUtil.exportExcel(list, "库存:原材料/产品与库区/库位的存放关系", WmsStockVo.class, response); + ExcelUtil.exportExcel(list, "库存:原材料-产品与库区-库位的存放关系", WmsStockVo.class, response); } /** From e944fa1ae9b8a74bf34ae4bec7ac0023583bd6ef Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 31 Jul 2025 11:18:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=89=AB=E7=A0=81=E6=9E=AA=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../klp/controller/WmsStockIoController.java | 9 ++++++++ .../com/klp/service/IWmsStockIoService.java | 2 ++ .../service/impl/WmsStockIoServiceImpl.java | 21 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java b/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java index 2ec2d9cb..8bdb922c 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java @@ -163,4 +163,13 @@ public class WmsStockIoController extends BaseController { return R.fail(e.getMessage()); } } + @PostMapping("/scanOutStock") + public R scanOutStock(@RequestBody WmsStockIoDetailBo bo) { + try { + boolean result = iWmsStockIoService.scanOutStockByBo(bo); + return toAjax(result); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + } } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java b/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java index d95998c0..91277b82 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java @@ -77,4 +77,6 @@ public interface IWmsStockIoService { boolean scanInStockByBo(WmsStockIoDetailBo bo); + + boolean scanOutStockByBo(WmsStockIoDetailBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java index aaac8ccd..346a9d46 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java @@ -162,6 +162,27 @@ public class WmsStockIoServiceImpl implements IWmsStockIoService { changeStock(bo.getWarehouseId(), bo.getItemType(), bo.getItemId(), bo.getQuantity(), true, unit); return true; } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean scanOutStockByBo(WmsStockIoDetailBo bo) { + String unit = bo.getUnit(); + // 如果unit为空,自动查item表补全 + if (unit == null || unit.trim().isEmpty()) { + if ("product".equals(bo.getItemType())) { + WmsProduct p = productMapper.selectById(bo.getItemId()); + unit = p != null ? p.getUnit() : null; + } else if ("raw_material".equals(bo.getItemType())) { + WmsRawMaterial r = rawMaterialMapper.selectById(bo.getItemId()); + unit = r != null ? r.getUnit() : null; + } + } + if (unit == null || unit.trim().isEmpty()) { + throw new RuntimeException("未能获取到单位"); + } + // 出库操作 + changeStock(bo.getWarehouseId(), bo.getItemType(), bo.getItemId(), bo.getQuantity(), false, unit); + return true; + } /**