|
|
@@ -18,6 +18,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.redis.utils.SequenceUtils;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
+import org.dromara.customer.api.RemoteCustomerService;
|
|
|
import org.dromara.customer.api.RemotePartnerInfoService;
|
|
|
import org.dromara.customer.api.RemotePartnerPreparedService;
|
|
|
import org.dromara.customer.api.RemoteSupplierInfoService;
|
|
|
@@ -62,6 +63,9 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
|
|
|
@DubboReference
|
|
|
private RemoteSupplierInfoService remoteSupplierInfoService;
|
|
|
|
|
|
+ @DubboReference
|
|
|
+ private RemoteCustomerService remoteCustomerService;
|
|
|
+
|
|
|
@DubboReference
|
|
|
private RemoteUserService remoteUserService;
|
|
|
|
|
|
@@ -99,7 +103,11 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
|
|
|
List<OrderAssignmentVo> records = result.getRecords();
|
|
|
if (CollUtil.isNotEmpty(records)) {
|
|
|
Set<Long> createUserIds = records.stream().map(OrderAssignmentVo::getCreateBy).collect(Collectors.toSet());
|
|
|
-
|
|
|
+ Set<Long> customerIds = records.stream()
|
|
|
+ .filter(r -> AssigneeTypeConstants.CUSTOMER.getCode().equals(r.getAssigneeType())||AssigneeTypeConstants.MKT.getCode().equals(r.getAssigneeType()))
|
|
|
+ .map(OrderAssignmentVo::getAssigneeId)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
|
Set<Long> partnerIds = records.stream()
|
|
|
.filter(r -> AssigneeTypeConstants.PARTNER.getCode().equals(r.getAssigneeType()))
|
|
|
@@ -120,6 +128,7 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
|
|
|
.collect(Collectors.toSet());
|
|
|
// 批量查询名称
|
|
|
Map<Long, String> createUserNameMap = remoteUserService.selectUserNamesByIds(createUserIds.stream().toList());
|
|
|
+ Map<Long, String> customerNameMap = remoteCustomerService.selectCustomerNameByIds(customerIds);
|
|
|
Map<Long, String> partnerNameMap = remotePartnerInfoService.selectPartnerNameByIds(partnerIds);
|
|
|
Map<Long, String> supplierNameMap = remoteSupplierInfoService.selectSupplierNameByIds(supplierIds);
|
|
|
Map<Long, String> preparedOrderNoMap = remotePartnerPreparedService.selectPreparedOrderNoByIds(preparedOrderIds);
|
|
|
@@ -139,6 +148,8 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
|
|
|
name = partnerNameMap.get(assigneeId);
|
|
|
} else if (AssigneeTypeConstants.SUPPLIER.getCode().equals(assigneeType)) {
|
|
|
name = supplierNameMap.get(assigneeId);
|
|
|
+ }else if (AssigneeTypeConstants.CUSTOMER.getCode().equals(assigneeType)||AssigneeTypeConstants.MKT.getCode().equals(assigneeType)) {
|
|
|
+ name = customerNameMap.get(assigneeId);
|
|
|
}
|
|
|
record.setAssigneeName(name);
|
|
|
record.setCreateName(createUserNameMap.get(record.getCreateBy()));
|
|
|
@@ -301,13 +312,13 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
|
|
|
!AssigneeTypeConstants.MKT.getCode().equals(type)) {
|
|
|
throw new ServiceException("分配对象类型不支持: " + type);
|
|
|
}
|
|
|
- // 校验:srm和bp必须有assigneeId,zy和mkt不能有assigneeId
|
|
|
- if (("srm".equals(type) || "bp".equals(type)) && rule.getAssigneeId() == null) {
|
|
|
+ // 校验:srm和bp mkt必须有assigneeId 2026/06/11刘洋刘总提出 伙伴商管理平台分配自营客户时要改为必须选择某一个自营客户(之前他确认的时选择自营时不需要选择客户)
|
|
|
+ if (("srm".equals(type) || "bp".equals(type)|| "mkt".equals(type)) && rule.getAssigneeId() == null) {
|
|
|
throw new ServiceException("分配类型为 [" + type + "] 时,必须指定分配对象ID");
|
|
|
}
|
|
|
- if (("zy".equals(type) || "mkt".equals(type)) && rule.getAssigneeId() != null) {
|
|
|
+ /* if (("zy".equals(type) ) && rule.getAssigneeId() != null) {
|
|
|
throw new ServiceException("分配类型为 [" + type + "] 时,不能指定分配对象ID");
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
// 3. 按 (assigneeId, assigneeType) 分组
|
|
|
@@ -609,9 +620,13 @@ public class OrderAssignmentServiceImpl extends ServiceImpl<OrderAssignmentMappe
|
|
|
child.setPaymentStatus(parent.getPaymentStatus());
|
|
|
child.setOrderType(parent.getOrderType());
|
|
|
// 新增分配字段
|
|
|
- child.setAssigneeId(assigneeId);
|
|
|
- child.setAssigneeType(assigneeType);
|
|
|
|
|
|
+ child.setAssigneeType(assigneeType);
|
|
|
+ if (assigneeType.equals(AssigneeTypeConstants.CUSTOMER.getCode())){
|
|
|
+ child.setAssigneeId(parent.getAssigneeId());
|
|
|
+ }else {
|
|
|
+ child.setAssigneeId(assigneeId);
|
|
|
+ }
|
|
|
// 子订单状态初始化
|
|
|
child.setSplitStatus(OrderSplitStatus.WAIT_SPLIT.getCode()); // 子订单默认未拆
|
|
|
|