Browse Source

refactor(order): 优化订单分配逻辑和第三方订单验证

- 简化导入语句,使用通配符导入枚举类
- 修改子订单状态初始化逻辑,设置为待确认状态而非继承父订单状态
- 添加创建人和创建部门字段到子订单创建过程中
- 移除不必要的验证分组注解,简化验证规则
- 调整售后订单和第三方订单的字段验证方式,统一使用适当的验证注解
- 更新订单编号、售后类型、售后描述等字段的验证逻辑
hurx 1 tháng trước cách đây
mục cha
commit
d0917a87b5

+ 5 - 6
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyAfterOrderAddBo.java

@@ -1,9 +1,8 @@
 package org.dromara.external.api.thirdparty.domain.bo;
 
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -30,7 +29,7 @@ public class ThirdpartyAfterOrderAddBo implements Serializable {
     /**
      * 订单编号
      */
-    @NotNull(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotBlank(message = "订单编号不能为空")
     private String orderNo;
 
     /**
@@ -51,20 +50,20 @@ public class ThirdpartyAfterOrderAddBo implements Serializable {
     /**
      * 售后类型 1退换货 4 仅退款
      */
-    @NotNull(message = "售后类型不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotBlank(message = "售后类型不能为空")
     private String serviceType;
 
 
     /**
      * 售后原因
      */
-    @NotNull(message = "售后原因", groups = {AddGroup.class, EditGroup.class})
+    @NotNull(message = "售后原因")
     private Long return_reason_id;
 
     /**
      * 售后描述
      */
-    @NotNull(message = "售后描述", groups = {AddGroup.class, EditGroup.class})
+    @NotBlank(message = "售后描述")
     private String desc;
 
     /**

+ 8 - 10
ruoyi-api/ruoyi-api-external/src/main/java/org/dromara/external/api/thirdparty/domain/bo/ThirdpartyOrderAddBo.java

@@ -3,8 +3,6 @@ package org.dromara.external.api.thirdparty.domain.bo;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
 
 import java.util.Date;
 import java.util.List;
@@ -15,49 +13,49 @@ public class ThirdpartyOrderAddBo {
     /**
      * 所属公司
      */
-    @NotNull(message = "所属公司不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotNull(message = "所属公司不能为空")
     private Long companyId;
 
     /**
      * 客户ID(关联客户主表)
      */
-    @NotNull(message = "客户ID(关联客户主表)不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotNull(message = "客户ID(关联客户主表)不能为空")
     private Long customerId;
 
     /**
      * 收货地址ID
      */
-    @NotNull(message = "收货地址ID不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotNull(message = "收货地址ID不能为空")
     private Long shippingAddressId;
 
     /**
      * 采购事由
      */
-    @NotNull(message = "采购事由不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotBlank(message = "采购事由不能为空")
     private String purchaseReason;
 
     /**
      * 支付方式
      */
-    @NotBlank(message = "支付方式不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotBlank(message = "支付方式不能为空")
     private String payType;
 
     /**
      * 发货仓库
      */
-    @NotNull(message = "发货仓库不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotNull(message = "发货仓库不能为空")
     private Long warehouseId;
 
     /**
      * 预计送达时间
      */
-    @NotNull(message = "预计送达时间不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotNull(message = "预计送达时间不能为空")
     private Date expectedDeliveryTime;
 
     /**
      * 费用类型
      */
-    @NotBlank(message = "费用类型不能为空", groups = {AddGroup.class, EditGroup.class})
+    @NotBlank(message = "费用类型不能为空")
     private String expenseType;
 
     /**

+ 4 - 6
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderAssignmentServiceImpl.java

@@ -9,10 +9,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.context.PlatformContext;
-import org.dromara.common.core.enums.AssigneeTypeConstants;
-import org.dromara.common.core.enums.OrderAssignStatus;
-import org.dromara.common.core.enums.OrderSplitStatus;
-import org.dromara.common.core.enums.SysPlatformCode;
+import org.dromara.common.core.enums.*;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.PlatformContextUtil;
@@ -523,7 +520,7 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
         child.setOrderSource(parent.getOrderSource());
         child.setProductQuantity(parent.getProductQuantity());
         child.setQuantityShipped(parent.getQuantityShipped());
-        child.setOrderStatus(parent.getOrderStatus()); // 继承状态,后续由子订单独立流转
+        child.setOrderStatus(OrderStatus.PENDING_CONFIRMATION.getCode()); // 子订单状态初始化为待确认  被分配者需要重新确认
         child.setOrderTime(parent.getOrderTime());
         child.setConfirmTime(parent.getConfirmTime());
         child.setDeliveryType(parent.getDeliveryType());
@@ -532,7 +529,8 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
         child.setDataSource(parent.getDataSource());
         child.setRemark(parent.getRemark());
         child.setAttachmentPath(parent.getAttachmentPath());
-
+        child.setCreateBy(parent.getCreateBy());
+        child.setCreateDept(parent.getCreateDept());
         // 新增分配字段
         child.setAssigneeId(assigneeId);
         child.setAssigneeType(assigneeType);