From c726bf91d48d23a1e35e822ed34829e0fd3dfdb4 Mon Sep 17 00:00:00 2001
From: cb <275647614@qq.com>
Date: Fri, 20 Jun 2025 11:33:53 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E9=85=8D=E4=BB=B6=E4=B8=BB=E5=8D=95?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E6=B4=BE=E5=8F=91=E6=9C=8D?=
=?UTF-8?q?=E5=8A=A1=E4=B8=BB=E5=8D=95=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/ghy/web/controller/order/OrderController.java | 9 +++++----
.../web/controller/order/OrderMasterController.java | 6 ++++++
.../main/java/com/ghy/order/domain/OrderMaster.java | 5 +++++
.../main/resources/mapper/order/OrderMasterMapper.xml | 10 ++++++++--
4 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java
index 8ba8ff95..06d1c4f1 100644
--- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java
+++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java
@@ -1953,9 +1953,9 @@ public class OrderController extends BaseController {
return AjaxResult.error("当前订单不是配件订单,无法生成服务订单");
}
- // 检查是否已经有对应的服务商品
- if (accessoryOrderMaster.getServerGoodsId() == null) {
- return AjaxResult.error("配件订单未关联服务商品,无法生成服务订单");
+ // 检查是否已经派发过服务订单
+ if (accessoryOrderMaster.getHasServiceOrder() != null && accessoryOrderMaster.getHasServiceOrder() == 1) {
+ return AjaxResult.error("该配件订单已经派发过服务订单,不能重复操作");
}
// 获取服务商品信息
@@ -2043,10 +2043,11 @@ public class OrderController extends BaseController {
);
orderGoodsService.insertOrderGoods(serviceOrderGoods);
- // 更新配件主单,关联生成的服务订单
+ // 更新配件主单,关联生成的服务订单并标记已派发服务订单
OrderMaster accessoryUpdate = new OrderMaster();
accessoryUpdate.setId(accessoryOrderMaster.getId());
accessoryUpdate.setRemark(accessoryOrderMaster.getRemark() + " [已生成服务订单:" + serviceOrderMaster.getCode() + ",服务金额:" + serviceMoney + "]");
+ accessoryUpdate.setHasServiceOrder(1); // 标记已派发服务订单
orderMasterService.updateOrderMaster(accessoryUpdate);
// 通知服务师傅新订单
diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java
index bf4a90b8..681e5101 100644
--- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java
+++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java
@@ -1790,6 +1790,12 @@ public class OrderMasterController extends BaseController {
// 退还服务金额到商品订单
refundServerMoneyToGoodsOrder(orderMaster.getGoodsOrderMasterId(), orderMaster.getServerGoodsMoney());
+
+ // 重置配件主单的服务订单派发状态
+ OrderMaster goodsOrderUpdate = new OrderMaster();
+ goodsOrderUpdate.setId(orderMaster.getGoodsOrderMasterId());
+ goodsOrderUpdate.setHasServiceOrder(0); // 重置为未派发状态
+ orderMasterService.updateOrderMaster(goodsOrderUpdate);
}
// 清空id
diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java
index bd17fc51..5b0e6906 100644
--- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java
+++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java
@@ -245,4 +245,9 @@ public class OrderMaster extends BaseEntity {
private Long goodsOrderMasterId;
private String trackingNumber;
+
+ /**
+ * 是否已派发服务订单:0=未派发,1=已派发
+ */
+ private Integer hasServiceOrder;
}
diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml
index ead64433..a785e59d 100644
--- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml
+++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml
@@ -55,6 +55,7 @@
+
@@ -107,7 +108,8 @@
server_goods_id,
goods_order_master_id,
tracking_number,
- server_goods_money
+ server_goods_money,
+ has_service_order
FROM order_master
@@ -160,7 +162,8 @@
om.server_goods_id,
om.goods_order_master_id,
om.tracking_number,
- om.server_goods_money
+ om.server_goods_money,
+ om.has_service_order
FROM order_master om
LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id
LEFT JOIN goods g ON g.goods_id = om.goods_id
@@ -456,6 +459,7 @@
goods_order_master_id = #{goodsOrderMasterId},
tracking_number = #{trackingNumber},
server_goods_money = #{serverGoodsMoney},
+ has_service_order = #{hasServiceOrder},
update_time = SYSDATE()
WHERE id = #{id}
@@ -514,6 +518,7 @@
goods_order_master_id,
tracking_number,
server_goods_money,
+ has_service_order,
create_time
)VALUES(
#{deptId},
@@ -553,6 +558,7 @@
#{goodsOrderMasterId},
#{trackingNumber},
#{serverGoodsMoney},
+ #{hasServiceOrder},
SYSDATE()
)