|
|
@@ -19,10 +19,12 @@ package org.springblade.land.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
|
|
|
import org.springblade.client.constant.LandConstant;
|
|
|
import org.springblade.client.entity.CommonFile;
|
|
|
import org.springblade.client.entity.CorpsDesc;
|
|
|
@@ -39,6 +41,7 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.CollectionUtil;
|
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
+import org.springblade.land.constant.LandConst;
|
|
|
import org.springblade.land.entity.Order;
|
|
|
import org.springblade.land.entity.OrderAddress;
|
|
|
import org.springblade.land.entity.OrderChange;
|
|
|
@@ -54,6 +57,7 @@ import org.springblade.system.entity.Dept;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
+import org.springblade.system.user.feign.IUserSearchClient;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -89,6 +93,8 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
|
|
|
private final IMessageClient messageClient;
|
|
|
|
|
|
+ private final IUserSearchClient userSearchClient;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<OrderItemVO> selectOrderItemPage(IPage<OrderItemVO> page, OrderItemVO orderItem) {
|
|
|
return page.setRecords(baseMapper.selectOrderItemPage(page, orderItem));
|
|
|
@@ -96,11 +102,11 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
|
|
|
@Override
|
|
|
public IPage<OrderItem> getList(OrderItem orderItem, Query query) {
|
|
|
+
|
|
|
LambdaQueryWrapper<OrderItem> wrapper = getWrapper(orderItem);
|
|
|
if (ObjectUtil.isEmpty(wrapper)) {
|
|
|
return new Page<>();
|
|
|
}
|
|
|
-
|
|
|
IPage<OrderItem> pages = baseMapper.selectPage(Condition.getPage(query), wrapper);
|
|
|
pages.getRecords().forEach(record -> {
|
|
|
Order order = orderMapper.selectById(record.getOrderId());
|
|
|
@@ -118,6 +124,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
record.setOrderAddressList(orderAddressList);
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
return pages;
|
|
|
}
|
|
|
|
|
|
@@ -138,14 +145,35 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Object> getCount(OrderItem orderItem) {
|
|
|
+ List<Long> orderIdList = Collections.emptyList();
|
|
|
+ if (AuthUtil.getUserRole().contains(LandConst.DDZX_MANAGER)) {
|
|
|
+ R<List<User>> r = userSearchClient.listByRole("1572039278093946882");
|
|
|
+ LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<Order>()
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getOrderNo()), Order::getOrderNo, orderItem.getOrderNo())
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getAddressDetail()), Order::getAddressDetail, orderItem.getAddressDetail())
|
|
|
+ .eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .ne(Order::getShippingMode, "散货");
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ List<Long> ids = r.getData().stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ orderLambdaQueryWrapper.apply("find_in_set(dispatcher,'" + StringUtils.join(ids, ",") + "')");
|
|
|
+ }
|
|
|
+ orderIdList = orderMapper.selectList(orderLambdaQueryWrapper).stream().map(Order::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollectionUtil.isEmpty(orderIdList)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
LambdaQueryWrapper<OrderItem> itemQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
if (orderItem.getTag() == 4) {
|
|
|
itemQueryWrapper.notIn(OrderItem::getStatus, 0, 1);
|
|
|
} else if (orderItem.getTag() == 3) {
|
|
|
itemQueryWrapper.notIn(OrderItem::getStatus, 0);
|
|
|
}
|
|
|
-
|
|
|
itemQueryWrapper.eq(OrderItem::getKind, 2)
|
|
|
+ .in(CollectionUtil.isNotEmpty(orderIdList), OrderItem::getOrderId, orderIdList)
|
|
|
.eq(OrderItem::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(OrderItem::getIsDeleted, 0)
|
|
|
.ne(OrderItem::getShippingMode, "散货")
|
|
|
@@ -606,23 +634,50 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
|
|
|
private LambdaQueryWrapper<OrderItem> getWrapper(OrderItem orderItem) {
|
|
|
List<Long> orderIdList = Collections.emptyList();
|
|
|
- if (StringUtil.isNotBlank(orderItem.getAddressDetail()) || StringUtil.isNotBlank(orderItem.getStation())
|
|
|
- || StringUtil.isNotBlank(orderItem.getFactory()) || StringUtil.isNotBlank(orderItem.getOrderNo())) {
|
|
|
- orderIdList = orderMapper.selectList(new LambdaQueryWrapper<Order>()
|
|
|
+ if (AuthUtil.getUserRole().contains(LandConst.DDZX_MANAGER)) {
|
|
|
+ R<List<User>> r = userSearchClient.listByRole("1572039278093946882");
|
|
|
+ LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<Order>()
|
|
|
.like(StringUtil.isNotBlank(orderItem.getOrderNo()), Order::getOrderNo, orderItem.getOrderNo())
|
|
|
.like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
|
|
|
.like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
|
|
|
.like(StringUtil.isNotBlank(orderItem.getAddressDetail()), Order::getAddressDetail, orderItem.getAddressDetail())
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .ne(Order::getShippingMode, "散货")
|
|
|
- ).stream().map(Order::getId).collect(Collectors.toList());
|
|
|
+ .ne(Order::getShippingMode, "散货");
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ List<Long> ids = r.getData().stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ orderLambdaQueryWrapper.apply("find_in_set(dispatcher,'" + StringUtils.join(ids, ",") + "')");
|
|
|
+ }
|
|
|
+ orderIdList = orderMapper.selectList(orderLambdaQueryWrapper).stream().map(Order::getId).collect(Collectors.toList());
|
|
|
|
|
|
if (CollectionUtil.isEmpty(orderIdList)) {
|
|
|
return null;
|
|
|
}
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ if (StringUtil.isNotBlank(orderItem.getAddressDetail()) || StringUtil.isNotBlank(orderItem.getStation())
|
|
|
+ || StringUtil.isNotBlank(orderItem.getFactory()) || StringUtil.isNotBlank(orderItem.getOrderNo())) {
|
|
|
+ LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<Order>()
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getOrderNo()), Order::getOrderNo, orderItem.getOrderNo())
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
|
|
|
+ .like(StringUtil.isNotBlank(orderItem.getAddressDetail()), Order::getAddressDetail, orderItem.getAddressDetail())
|
|
|
+ .eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .ne(Order::getShippingMode, "散货");
|
|
|
+ if (AuthUtil.getUserRole().contains(LandConst.DDZX_MANAGER)) {
|
|
|
+ R<List<User>> r = userSearchClient.listByRole("1572039278093946882");
|
|
|
+ if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
+ List<Long> ids = r.getData().stream().map(User::getId).collect(Collectors.toList());
|
|
|
+ orderLambdaQueryWrapper.apply("find_in_set(dispatcher,'" + StringUtils.join(ids, ",") + "')");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ orderIdList = orderMapper.selectList(orderLambdaQueryWrapper).stream().map(Order::getId).collect(Collectors.toList());
|
|
|
|
|
|
+ if (CollectionUtil.isEmpty(orderIdList)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
LambdaQueryWrapper<OrderItem> itemQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
if (orderItem.getTag() == 4) {
|
|
|
itemQueryWrapper.notIn(OrderItem::getStatus, 0, 1);
|
|
|
@@ -662,13 +717,13 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(order.getDispatcher())) {
|
|
|
R<User> user = userClient.userInfoById(order.getDispatcher());
|
|
|
- if(user.isSuccess() && user.getData() != null) {
|
|
|
+ if (user.isSuccess() && user.getData() != null) {
|
|
|
item.setDispatcherName(user.getData().getRealName());
|
|
|
}
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(order.getDispatchDept())) {
|
|
|
R<Dept> dept = sysClient.getDept(order.getDispatchDept());
|
|
|
- if(dept.isSuccess() && dept.getData() != null) {
|
|
|
+ if (dept.isSuccess() && dept.getData() != null) {
|
|
|
item.setDispatchDeptName(dept.getData().getDeptName());
|
|
|
}
|
|
|
}
|
|
|
@@ -688,7 +743,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(item.getDriverId())) {
|
|
|
LandDriver driver = landDriverClient.getDriver(item.getDriverId());
|
|
|
- if (ObjectUtil.isNotEmpty(driver)){
|
|
|
+ if (ObjectUtil.isNotEmpty(driver)) {
|
|
|
item.setDriverName(driver.getName());
|
|
|
}
|
|
|
}
|