|
|
@@ -35,6 +35,8 @@ import org.springblade.land.mapper.*;
|
|
|
import org.springblade.land.service.IOrderService;
|
|
|
import org.springblade.land.util.MessageUtil;
|
|
|
import org.springblade.land.vo.OrderVO;
|
|
|
+import org.springblade.system.user.entity.User;
|
|
|
+import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -72,6 +74,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
private final IMessageClient messageClient;
|
|
|
|
|
|
+ private final IUserClient userClient;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
|
|
|
return page.setRecords(baseMapper.selectOrderPage(page, order));
|
|
|
@@ -178,9 +182,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
orderQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), Order::getId, orderIdList)
|
|
|
.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
|
|
|
.eq(ObjectUtil.isNotEmpty(itemStatus) && itemStatus == 999, Order::getStatus, 0)
|
|
|
.like(StringUtil.isNotBlank(order.getBillNo()), Order::getBillNo, order.getBillNo())
|
|
|
- .like(StringUtil.isNotBlank(order.getGoods()), Order::getGoods, order.getGoods())
|
|
|
.like(StringUtil.isNotBlank(order.getBelongCompany()), Order::getBelongCompany, order.getBelongCompany())
|
|
|
.like(StringUtil.isNotBlank(order.getStation()), Order::getStation, order.getStation())
|
|
|
.like(StringUtil.isNotBlank(order.getFactory()), Order::getFactory, order.getFactory())
|
|
|
@@ -206,19 +210,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (!ObjectUtil.isEmpty(record.getSalesman())) {
|
|
|
+ R<User> user = userClient.userInfoById(record.getSalesman());
|
|
|
+ if (user.isSuccess() && user.getData() != null) {
|
|
|
+ record.setSalesmanName(user.getData().getRealName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 列表箱量显示处理
|
|
|
if (record.getStatus() == 0) {
|
|
|
List<OrderItem> itemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
|
|
|
+ .isNotNull(OrderItem::getCtnType)
|
|
|
+ .ne(OrderItem::getCtnQuantity, 0)
|
|
|
.eq(OrderItem::getOrderId, record.getId())
|
|
|
.eq(OrderItem::getKind, 1)
|
|
|
.eq(OrderItem::getIsDeleted, 0));
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(itemList)) {
|
|
|
+ Map<String, Long> ctnMap = itemList.stream().collect(Collectors.groupingBy(OrderItem::getCtnType, Collectors.summingLong(OrderItem::getCtnQuantity)));
|
|
|
StringBuilder ctnDetail = new StringBuilder();
|
|
|
- Integer statusCount = 0;
|
|
|
- for (OrderItem item : itemList) {
|
|
|
- ctnDetail.append(item.getCtnType()).append("×").append(item.getCtnQuantity()).append(",");
|
|
|
- statusCount += item.getCtnQuantity();
|
|
|
+ Long statusCount = 0L;
|
|
|
+ for (Map.Entry<String, Long> entry : ctnMap.entrySet()) {
|
|
|
+ ctnDetail.append(entry.getKey()).append("×").append(entry.getValue()).append(",");
|
|
|
+ statusCount += entry.getValue();
|
|
|
}
|
|
|
if (ctnDetail.length() > 0) {
|
|
|
record.setCtnDetail(ctnDetail.deleteCharAt(ctnDetail.lastIndexOf(",")).toString());
|
|
|
@@ -374,7 +388,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
long orderId = order.getId();
|
|
|
- order.getItemList().forEach(item -> {
|
|
|
+
|
|
|
+ BigDecimal freight = BigDecimal.ZERO;
|
|
|
+ for (OrderItem item : order.getItemList()) {
|
|
|
if (ObjectUtil.isEmpty(item.getId())) {
|
|
|
item.setOrderId(orderId);
|
|
|
item.setBillNo(order.getBillNo());
|
|
|
@@ -389,10 +405,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
item.setUpdateTime(new Date());
|
|
|
orderItemMapper.updateById(item);
|
|
|
}
|
|
|
- });
|
|
|
|
|
|
- List<OrderAddress> addressList = order.getOrderAddressList();
|
|
|
- addressList.forEach(address -> {
|
|
|
+ freight = freight.add(item.getLandAmountD().multiply(new BigDecimal(String.valueOf(item.getCtnQuantity()))));
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuilder addressDetail = new StringBuilder();
|
|
|
+ for (OrderAddress address : order.getOrderAddressList()) {
|
|
|
if (ObjectUtil.isEmpty(address.getId())) {
|
|
|
address.setOrderId(orderId);
|
|
|
address.setTenantId(AuthUtil.getTenantId());
|
|
|
@@ -404,18 +422,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
address.setUpdateTime(new Date());
|
|
|
orderAddressMapper.updateById(address);
|
|
|
}
|
|
|
- });
|
|
|
|
|
|
- StringBuilder addressDetail = new StringBuilder();
|
|
|
- for (OrderAddress address : addressList) {
|
|
|
if (StringUtil.isNotBlank(address.getAddress())) {
|
|
|
- addressDetail.append(address.getSort()).append(":").append(address.getCorpName()).append("——").append(address.getAddress()).append(";\n");
|
|
|
+ addressDetail.append(address.getSort()).append(".")
|
|
|
+ .append(address.getCorpName()).append("(")
|
|
|
+ .append(address.getContacts()).append(" ")
|
|
|
+ .append(address.getTel()).append(") ")
|
|
|
+ .append(address.getAddress()).append(";\n");
|
|
|
}
|
|
|
}
|
|
|
- if (addressDetail.length() > 0) {
|
|
|
- order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf(";")).toString());
|
|
|
- }
|
|
|
- baseMapper.updateById(order);
|
|
|
|
|
|
order.getOrderFeeList().forEach(fee -> {
|
|
|
if (ObjectUtil.isEmpty(fee.getId())) {
|
|
|
@@ -440,6 +455,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
});
|
|
|
commonFileClient.saveList(fileList);
|
|
|
|
|
|
+ order.setFreight(freight);
|
|
|
+ if (addressDetail.length() > 0) {
|
|
|
+ order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf(";")).toString());
|
|
|
+ }
|
|
|
+ baseMapper.updateById(order);
|
|
|
return orderId;
|
|
|
}
|
|
|
|