Преглед изворни кода

feat(order): 优化DMS平台订单查询逻辑

- 针对DMS平台实现assigneeType匹配或dataSource不为空的查询条件
- 添加当assigneeType不为空时的AND/OR组合查询逻辑
- 实现当未指定assigneeType时仅查询dataSource不为空的订单
- 保持其他平台的原有查询逻辑不变
hurx пре 1 недеља
родитељ
комит
0299645977

+ 13 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderMainServiceImpl.java

@@ -350,8 +350,20 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
                         .eq(OrderMain::getAssigneeType, "")
                     );
                 }
-            } else if ("scm".equals(platformCode) || "dms".equals(platformCode)) {
+            } else if ("scm".equals(platformCode)) {
                 lqw.eq(StringUtils.isNotBlank(bo.getAssigneeType()), OrderMain::getAssigneeType, bo.getAssigneeType());
+            } else if ("dms".equals(platformCode)) {
+                // DMS平台:查询 assigneeType 匹配或者 dataSource 不为空的订单
+                if (StringUtils.isNotBlank(bo.getAssigneeType())) {
+                    lqw.and(wrapper -> wrapper
+                        .eq(OrderMain::getAssigneeType, bo.getAssigneeType())
+                        .or()
+                        .isNotNull(OrderMain::getDataSource)
+                    );
+                } else {
+                    // 如果没有指定 assigneeType,只查询 dataSource 不为空的订单
+                    lqw.isNotNull(OrderMain::getDataSource);
+                }
             } else if ("srm".equals(platformCode) || "bp".equals(platformCode)) {
                 lqw.eq(StringUtils.isNotBlank(bo.getAssigneeType()), OrderMain::getAssigneeType, bo.getAssigneeType());
             }