提交 ae406d91 authored 作者: 刘海泉's avatar 刘海泉

新增履约进度表更新挂单车数逻辑

上级 65f0ecf5
...@@ -217,4 +217,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -217,4 +217,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
int countTakeByOrderGoodsNo(String orderGoodsNo); int countTakeByOrderGoodsNo(String orderGoodsNo);
int countLoadByOrderGoodsNo(String orderGoodsNo); int countLoadByOrderGoodsNo(String orderGoodsNo);
Long countNotCancelOrderChild(List<String> cancelOrderGoodsNo);
} }
...@@ -108,6 +108,8 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -108,6 +108,8 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
List<OrderGoods> listAfterCreatedByOrderNo(String orderNo); List<OrderGoods> listAfterCreatedByOrderNo(String orderNo);
List<OrderGoods> listAllByOrderNo(String orderNo);
void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods); void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods);
void batchCancelOrderGoodsWeight(List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList); void batchCancelOrderGoodsWeight(List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList);
......
...@@ -722,4 +722,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -722,4 +722,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public int countLoadByOrderGoodsNo(String orderGoodsNo) { public int countLoadByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.countLoadByOrderGoodsNo(orderGoodsNo); return baseMapper.countLoadByOrderGoodsNo(orderGoodsNo);
} }
@Override
public Long countNotCancelOrderChild(List<String> cancelOrderGoodsNo) {
LambdaQueryWrapper<OrderChild> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(OrderChild :: getOrderGoodsNo,cancelOrderGoodsNo);
queryWrapper.le(OrderChild :: getStatus,OrderChildEnum.Status.COMPLETE.getCode());
return baseMapper.selectCount(queryWrapper);
}
} }
...@@ -294,6 +294,15 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -294,6 +294,15 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
); );
} }
@Override
public List<OrderGoods> listAllByOrderNo(String orderNo) {
return baseMapper.selectList(lQrWrapper().eq(OrderGoods::getOrderNo, orderNo)
.ne(OrderGoods::getOrderGoodsStatus,OrderGoodsStatusEnum.Status.CREATED.getCode())
.orderByDesc(OrderGoods :: getPendingOrderTime)
);
}
@Override @Override
public void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods) { public void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods) {
baseMapper.batchUpdateOrderGoodsPaying(updateOrderGoods); baseMapper.batchUpdateOrderGoodsPaying(updateOrderGoods);
......
...@@ -67,25 +67,24 @@ public class OrderGoodsDtsListener { ...@@ -67,25 +67,24 @@ public class OrderGoodsDtsListener {
public void syncPerformanceProgress(OrderGoods before,OrderGoods after, Integer updateType) { public void syncPerformanceProgress(OrderGoods before,OrderGoods after, Integer updateType) {
boolean isSend = false; boolean isSend = false;
if(after.getOrderGoodsStatus() >= OrderGoodsStatusEnum.Status.PAYING.getCode()){ if(Objects.equals(updateType,DtsOperationTypeEnum.INSERT.getCode())){
if(Objects.equals(updateType,DtsOperationTypeEnum.INSERT.getCode())){ isSend = true;
isSend = true; }
} if(Objects.equals(updateType,DtsOperationTypeEnum.UPDATE.getCode())
if(Objects.equals(updateType,DtsOperationTypeEnum.UPDATE.getCode()) && (!Objects.equals(before.getOrderGoodsStatus(),after.getOrderGoodsStatus())
&& (!Objects.equals(before.getOrderGoodsStatus(),after.getOrderGoodsStatus())
|| !Objects.equals(before.getSeniorLogisticsManagerId(),after.getSeniorLogisticsManagerId()) || !Objects.equals(before.getSeniorLogisticsManagerId(),after.getSeniorLogisticsManagerId())
|| !Objects.equals(before.getExtractWeight(),after.getExtractWeight()) || !Objects.equals(before.getExtractWeight(),after.getExtractWeight())
|| !Objects.equals(before.getPendingOrderFreight(),after.getPendingOrderFreight()) || !Objects.equals(before.getPendingOrderFreight(),after.getPendingOrderFreight())
)){ || !Objects.equals(before.getNeedTruckNum(),after.getNeedTruckNum())
isSend = true; )){
} isSend = true;
if(isSend){ }
log.info("开始发送同步履约进度表消息,订单号:{},货单号:{}", after.getOrderNo(),after.getOrderGoodsNo()); if(isSend){
Message body = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(after)).getBytes()).build(); log.info("开始发送同步履约进度表消息,订单号:{},货单号:{}", after.getOrderNo(),after.getOrderGoodsNo());
rabbitTemplate.send(SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_EXCHANGE, Message body = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(after)).getBytes()).build();
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_ROUTING_KEY, body); rabbitTemplate.send(SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_EXCHANGE,
log.info("结束发送同步履约进度表消息,订单号:{},货单号:{}", after.getOrderNo(),after.getOrderGoodsNo()); SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_ROUTING_KEY, body);
} log.info("结束发送同步履约进度表消息,订单号:{},货单号:{}", after.getOrderNo(),after.getOrderGoodsNo());
} }
} }
......
...@@ -97,6 +97,12 @@ public class PerformanceProgress implements HasKey<Integer> { ...@@ -97,6 +97,12 @@ public class PerformanceProgress implements HasKey<Integer> {
@ApiModelProperty("挂单吨数") @ApiModelProperty("挂单吨数")
private BigDecimal pendingWeight; private BigDecimal pendingWeight;
@TableField("pending_truck")
@ApiModelProperty("挂单车数")
private Integer pendingTruck;
@TableField("ordered_truck_num") @TableField("ordered_truck_num")
@ApiModelProperty("接单车数") @ApiModelProperty("接单车数")
private Integer orderedTruckNum; private Integer orderedTruckNum;
......
...@@ -438,7 +438,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -438,7 +438,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND); throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND);
} }
//根据挂单时间倒序排序 //根据挂单时间倒序排序
List<OrderGoods> orderGoods = orderGoodsDao.listAfterCreatedByOrderNo(data.getOrderNo()); List<OrderGoods> orderGoods = orderGoodsDao.listAllByOrderNo(data.getOrderNo());
if(CollectionUtils.isEmpty(orderGoods)){ if(CollectionUtils.isEmpty(orderGoods)){
return; return;
} }
...@@ -446,7 +446,13 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -446,7 +446,13 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
BigDecimal pendingOrderFreight = null; //最新的货单的司机运费,取消的也算 BigDecimal pendingOrderFreight = null; //最新的货单的司机运费,取消的也算
LocalDateTime firstPendingTime = null; //挂单时间,取消的也算 LocalDateTime firstPendingTime = null; //挂单时间,取消的也算
BigDecimal pendingWeight = BigDecimal.ZERO; BigDecimal pendingWeight = BigDecimal.ZERO;
Integer pendingTruck = calcPendingTruck(orderGoods);
for(OrderGoods item : orderGoods){ for(OrderGoods item : orderGoods){
//只有挂单车数统计所有货单的
if(Objects.equals(item.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.CREATED.getCode())){
continue;
}
seniorLogisticsManagerNameSet.add(item.getSeniorLogisticsManagerName()); seniorLogisticsManagerNameSet.add(item.getSeniorLogisticsManagerName());
if(Objects.isNull(pendingOrderFreight)){ if(Objects.isNull(pendingOrderFreight)){
pendingOrderFreight = item.getPendingOrderFreight(); pendingOrderFreight = item.getPendingOrderFreight();
...@@ -463,9 +469,30 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -463,9 +469,30 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
update.setDriverFreightPrice(pendingOrderFreight); update.setDriverFreightPrice(pendingOrderFreight);
update.setPendingTime(firstPendingTime); update.setPendingTime(firstPendingTime);
update.setPendingWeight(pendingWeight); update.setPendingWeight(pendingWeight);
update.setPendingTruck(pendingTruck);
performanceProgressDao.updateEntityByKey(update); performanceProgressDao.updateEntityByKey(update);
} }
//统计挂单车数
public Integer calcPendingTruck(List<OrderGoods> orderGoods){
int totalNeedTruck = 0;
List<String> cancelOrderGoodsNo = new ArrayList<>();
for (OrderGoods item : orderGoods) {
if(Objects.equals(item.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.CANCEL.getCode())){
cancelOrderGoodsNo.add(item.getOrderGoodsNo());
}else{
totalNeedTruck = totalNeedTruck + item.getNeedTruckNum();
}
}
if(CollectionUtils.isNotEmpty(cancelOrderGoodsNo)){
Long count = orderChildDao.countNotCancelOrderChild(cancelOrderGoodsNo);
totalNeedTruck = totalNeedTruck + count.intValue();
}
return totalNeedTruck;
}
//计算履约进度表货单的挂单吨数 //计算履约进度表货单的挂单吨数
@Override @Override
public BigDecimal calcPendingWeight(OrderGoods item){ public BigDecimal calcPendingWeight(OrderGoods item){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论