提交 5f18e709 authored 作者: huningning's avatar huningning

Merge remote-tracking branch 'origin/v6.2_sync_trade_20231102' into test

# Conflicts: # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java # performance-web/src/main/java/com/clx/performance/mapper/OrderGoodsMapper.java
...@@ -147,4 +147,5 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -147,4 +147,5 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
IPage<OrderChildVO> orderChildCancelRecord(PageParam pageParam); IPage<OrderChildVO> orderChildCancelRecord(PageParam pageParam);
List<OrderChild> selectInOrderChildNoList(List<String> childNoList); List<OrderChild> selectInOrderChildNoList(List<String> childNoList);
OrderChild findLastTruckChild(String orderNo);
} }
...@@ -86,5 +86,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -86,5 +86,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void updateSendSystemAddress(Integer ownerAddressId, Integer systemAddressId); void updateSendSystemAddress(Integer ownerAddressId, Integer systemAddressId);
void updateReceiveSystemAddress(Integer ownerAddressId, Integer systemAddressId); void updateReceiveSystemAddress(Integer ownerAddressId, Integer systemAddressId);
List<OrderGoodsAPPVO> getCancelOrderGoods(List<String> list); List<OrderGoodsAPPVO> getCancelOrderGoods(List<OrderGoodsTruckBind> list);
BigDecimal getAlreadyTransportWeight(String orderNo);
} }
...@@ -429,4 +429,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -429,4 +429,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return baseMapper.selectList(lQrWrapper() return baseMapper.selectList(lQrWrapper()
.in(OrderChild::getChildNo, childNoList) .in(OrderChild::getChildNo, childNoList)
); } ); }
@Override
public OrderChild findLastTruckChild(String orderNo) {
return getOne(lQrWrapper().eq(OrderChild::getOrderNo,orderNo)
.notIn(OrderChild::getStatus,OrderChildEnum.DTS_LISTEN_CANCEL_lIST)
.orderByDesc(OrderChild::getCreateTime)
.last("limit 1"));
}
} }
...@@ -246,4 +246,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -246,4 +246,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
} }
@Override
public BigDecimal getAlreadyTransportWeight(String orderNo) {
return baseMapper.getAlreadyTransportWeight(orderNo);
}
} }
...@@ -81,5 +81,7 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -81,5 +81,7 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
Integer updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(@Param(value = "residueWeight") BigDecimal residueWeight,@Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value = "status") Integer status,@Param(value = "id") Integer id); Integer updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(@Param(value = "residueWeight") BigDecimal residueWeight,@Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value = "status") Integer status,@Param(value = "id") Integer id);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "getCancelOrderGoods") @SelectProvider(type = OrderGoodsSqlProvider.class, method = "getCancelOrderGoods")
List<OrderGoodsAPPVO> getCancelOrderGoods(@Param(value = "param") List<String> param); List<OrderGoodsAPPVO> getCancelOrderGoods(@Param(value = "param") List<OrderGoodsTruckBind> param);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "getAlreadyTransportWeight")
BigDecimal getAlreadyTransportWeight(@Param("orderNo") String orderNo);
} }
package com.clx.performance.service;
import com.clx.performance.model.OrderChild;
public interface LastTruckService {
OrderChild getLastTruckChild(String orderNo);
}
package com.clx.performance.service.impl;
import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.user.enums.SyncPlatformEnum;
import com.msl.common.exception.ServiceSystemException;
import groovy.util.logging.Slf4j;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Objects;
/**
* @ClassName LastTruckServiceImpl
* @Description
* @Author kavin
* @Date 2023/11/9 13:13
* @Version 1.0
*/
@Service
@Slf4j
@AllArgsConstructor
public class LastTruckServiceImpl implements LastTruckService {
private final OrderFeign orderFeign;
private final OrderChildDao orderChildDao;
private final OrderGoodsDao orderGoodsDao;
/**
* @Author kavin
* @Description 判断最后一车的逻辑
* @Param [orderNo]
* @return
**/
@Override
public OrderChild getLastTruckChild(String orderNo) {
//判断订单是否已经完结
FeignOrderVO orderInfo = orderFeign.getOrderInfoFeign(orderNo);
if(Objects.isNull(orderInfo)){
return null;
}
if(!Objects.equals(orderInfo.getOrderSource(), SyncPlatformEnum.TRADE_PLATFORM.getCode())){
return null;
}
//已完结直接按照时间顺序查找最后一个运单
if(Objects.equals(orderInfo.getOrderStatus(), OrderEnum.Status.COMPLETED.getCode()) ||
Objects.equals(orderInfo.getOrderStatus(), OrderEnum.Status.SUCCESS.getCode())
){
return orderChildDao.findLastTruckChild(orderNo);
}else{ //未完结,判断所有货单的已拉运的吨数是否等于 订单的拉运吨数-向下浮动量
BigDecimal alreadyTransprotWeight = orderGoodsDao.getAlreadyTransportWeight(orderNo);
//查询所有货单的已拉运吨数 + 向下浮动量 >= 订单的承运吨数 (满足此情况查找最后一单)
if(Objects.nonNull(alreadyTransprotWeight) &&
alreadyTransprotWeight.add(new BigDecimal(orderInfo.getDownFloatWeight())).compareTo(orderInfo.getTransportWeight()) >= 0){
return orderChildDao.findLastTruckChild(orderNo);
}
}
return null;
}
}
...@@ -286,4 +286,13 @@ public class OrderGoodsSqlProvider { ...@@ -286,4 +286,13 @@ public class OrderGoodsSqlProvider {
} }
public String getAlreadyTransportWeight(String orderNo){
String sql = new SQL() {{
SELECT("sum(already_transport_weight)");
FROM("order_goods ");
WHERE("order_no = #{orderNo}");
}}.toString();
return sql;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论