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() )