提交 e81abc99 authored 作者: huyufan's avatar huyufan

增加绑定车辆后redis留存记录用于过滤车辆列表

上级 24c229b2
package com.clx.performance.component;
import cn.hutool.core.util.StrUtil;
import com.clx.performance.constant.RedisConstants;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.*;
@Slf4j
@Component
@AllArgsConstructor
public class GoodsOrderTruckRecordComponent {
private final RedisTemplate<String, String> redisTemplate;
public void saveTruckRecord(String orderGoodsNo, List<String> truckList) {
redisTemplate.opsForSet().add(RedisConstants.ORDER_GOODS_TRUCK_RECORD + orderGoodsNo, truckList.toArray(new String[]{}));
redisTemplate.opsForSet().add(RedisConstants.ORDER_GOODS_RECORD, RedisConstants.ORDER_GOODS_TRUCK_RECORD + orderGoodsNo);
}
//删除货单下的所有车牌号
public void deleteTruckRecord(String orderGoodsNo) {
redisTemplate.opsForSet().remove(RedisConstants.ORDER_GOODS_TRUCK_RECORD + orderGoodsNo);
redisTemplate.opsForSet().remove(RedisConstants.ORDER_GOODS_RECORD, orderGoodsNo);
}
//删除货单下的指定车牌号
public void deleteTruckRecord(String orderGoodsNo, String truckNo) {
redisTemplate.opsForSet().remove(RedisConstants.ORDER_GOODS_TRUCK_RECORD + orderGoodsNo, truckNo);
}
public Set<String> getTruckList() {
Set<String> orderGoodsList = redisTemplate.opsForSet().members(RedisConstants.ORDER_GOODS_RECORD);
if (orderGoodsList == null || orderGoodsList.isEmpty()) {
return null;
}
return redisTemplate.opsForSet().union(orderGoodsList);
}
}
...@@ -13,11 +13,10 @@ import com.clx.performance.enums.OrderGoodsTruckBindEnum; ...@@ -13,11 +13,10 @@ import com.clx.performance.enums.OrderGoodsTruckBindEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -31,19 +30,18 @@ import java.util.Set; ...@@ -31,19 +30,18 @@ import java.util.Set;
@Component @Component
@Slf4j @Slf4j
@AllArgsConstructor
public class OrderGoodsStatusLazyComponent implements InitializingBean { public class OrderGoodsStatusLazyComponent implements InitializingBean {
@Autowired private final RedisTemplate<String, String> redisTemplate;
private RedisTemplate<String, String> redisTemplate;
@Autowired private final OrderGoodsDao orderGoodsDao;
private OrderGoodsDao orderGoodsDao;
@Autowired private final OrderFeign orderFeign;
private OrderFeign orderFeign;
@Autowired private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
public void expireProduce(LocalDateTime localDateTime, String orderGoodsNo) { public void expireProduce(LocalDateTime localDateTime, String orderGoodsNo) {
redisTemplate.opsForZSet().add(RedisConstants.ORDER_GOODS_STATUS_LAZY, orderGoodsNo, localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli()); redisTemplate.opsForZSet().add(RedisConstants.ORDER_GOODS_STATUS_LAZY, orderGoodsNo, localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli());
...@@ -120,6 +118,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -120,6 +118,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
//更新货单已完结 //更新货单已完结
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoodsNo, OrderGoodsStatusEnum.Status.COMPLETED.getCode()); orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoodsNo, OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.EXPIRE.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.EXPIRE.getCode());
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsNo);
BigDecimal residueTransportWeight = orderGoods.getResidueTransportWeight(); BigDecimal residueTransportWeight = orderGoods.getResidueTransportWeight();
UpdateOrderInfoParam updateOrderInfoParam = new UpdateOrderInfoParam(); UpdateOrderInfoParam updateOrderInfoParam = new UpdateOrderInfoParam();
updateOrderInfoParam.setOrderId(orderInfoFeign.getId()); updateOrderInfoParam.setOrderId(orderInfoFeign.getId());
......
...@@ -7,17 +7,17 @@ public class RedisConstants { ...@@ -7,17 +7,17 @@ public class RedisConstants {
public static final String ORDER_GOODS_ID ="clx-performance:orderGoodsId:"; public static final String ORDER_GOODS_ID ="clx-performance:orderGoodsId:";
public static final String ORDER_GOODS_ID_GENERATE ="clx-performance:orderGoodsId:generate"; public static final String ORDER_GOODS_ID_GENERATE ="clx-performance:orderGoodsId:generate";
public static final String ZJXL_TRUCK_TRACE_LIST = "clx-performance:zjxl_truck_trace_list:";
public static final String ZJXL_TRUCK_TRACE_LIST = "clx-performance:zjxl_truck_trace_list:";
public static final String ZJXL_LAST_PULL_TRUCK = "clx-performance:zjxl_last_time_pull_truck:"; public static final String ZJXL_LAST_PULL_TRUCK = "clx-performance:zjxl_last_time_pull_truck:";
public static final String TRUCK_LOCATION_KEY = "clx-performance:truck_location_key:"; public static final String TRUCK_LOCATION_KEY = "clx-performance:truck_location_key:";
public static final String CARRIER_ORDER_NUM_POOL_KEY = "clx-performance:order:orderNumPool:{date}"; public static final String CARRIER_ORDER_NUM_POOL_KEY = "clx-performance:order:orderNumPool:{date}";
public static final String ORDER_GOODS_STATUS_LAZY = "clx:order:goods:status:lazy:"; public static final String ORDER_GOODS_STATUS_LAZY = "clx:order:goods:status:lazy:";
public static final String ORDER_GOODS_TRUCK_RECORD = "clx:order:goods:truck:record:";
public static final String ORDER_GOODS_RECORD = "clx:order:goods:record:";
} }
...@@ -88,12 +88,10 @@ public class GoodsOrderController { ...@@ -88,12 +88,10 @@ public class GoodsOrderController {
FeignOrderVO orderInfo = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfo = orderFeign.getOrderInfoFeign(orderNo);
//1平台车辆 2部分平台车辆 3自有车辆 //1平台车辆 2部分平台车辆 3自有车辆
Integer truckDemand = orderInfo.getTruckDemand(); Integer truckDemand = orderInfo.getTruckDemand();
sendLazyTime = goodsOrderStrategyContext.strategyContext.get(truckDemand).goodsOrderProcess(orderGoodsParams, orderInfo, now); goodsOrderStrategyContext.strategyContext.get(truckDemand).saveGoodsOrder(orderGoodsParams, orderInfo, now, rabbitTemplate);
} catch (Exception e) { } catch (Exception e) {
// throw new ServiceSystemException(e);
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, e.getMessage()); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, e.getMessage());
} finally { } finally {
try { try {
if (rLock != null && rLock.isLocked()) { if (rLock != null && rLock.isLocked()) {
...@@ -105,31 +103,6 @@ public class GoodsOrderController { ...@@ -105,31 +103,6 @@ public class GoodsOrderController {
} }
} }
Message message = MessageBuilder.withBody(orderNo.getBytes()).build();
long epochMilli = 0L;
if (sendLazyTime.isAfter(now)) {
epochMilli = sendLazyTime.minusMinutes(now.getMinute()).getMinute() * 60 * 1000;
log.info("执行订单状态更改,选择时间在当前时间之后,则设置延迟队列时间,时间为:{}", epochMilli);
}
if (epochMilli == 0L) {
log.info("执行订单状态更改,epochMilli时间为0,时间为:{}", epochMilli);
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE, RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY, message
);
} else {
log.info("执行订单状态更改,epochMilli时间不为0,时间为:{}", epochMilli);
rabbitTemplate.send(RabbitKeyConstants.ORDER_POSTED_EXCHANGE, RabbitKeyConstants.ORDER_POSTED_ROUTE_KEY, MessageBuilder.withBody(orderNo.getBytes()).build());
message.getMessageProperties().setExpiration(String.valueOf(epochMilli));
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_EXCHANGE, RabbitKeyConstants.ORDER_ON_ROUTE_KEY, message
);
}
return Result.ok(); return Result.ok();
} }
......
...@@ -14,7 +14,7 @@ import java.util.List; ...@@ -14,7 +14,7 @@ import java.util.List;
*/ */
public interface OrderGoodsDriverTruckDao extends BaseDao<OrderGoodsDriverTruckMapper, OrderGoodsDriverTruck, Integer> { public interface OrderGoodsDriverTruckDao extends BaseDao<OrderGoodsDriverTruckMapper, OrderGoodsDriverTruck, Integer> {
void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo); void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo, Integer truckId);
Optional<List<OrderGoodsDriverTruck>> selectListByDriverUserNo(Long driverUserNo); Optional<List<OrderGoodsDriverTruck>> selectListByDriverUserNo(Long driverUserNo);
} }
...@@ -21,10 +21,11 @@ import java.util.List; ...@@ -21,10 +21,11 @@ import java.util.List;
public class OrderGoodsDriverTruckDaoImpl extends BaseDaoImpl<OrderGoodsDriverTruckMapper, OrderGoodsDriverTruck, Integer> implements OrderGoodsDriverTruckDao { public class OrderGoodsDriverTruckDaoImpl extends BaseDaoImpl<OrderGoodsDriverTruckMapper, OrderGoodsDriverTruck, Integer> implements OrderGoodsDriverTruckDao {
@Override @Override
public void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo) { public void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo, Integer truckId) {
baseMapper.delete(new QueryWrapper<OrderGoodsDriverTruck>().lambda() baseMapper.delete(new QueryWrapper<OrderGoodsDriverTruck>().lambda()
.eq(OrderGoodsDriverTruck::getTruckNo,truckNo) .eq(OrderGoodsDriverTruck::getTruckNo,truckNo)
.eq(OrderGoodsDriverTruck::getDriverUserNo, Long.valueOf(driverUserNo)) .eq(OrderGoodsDriverTruck::getDriverUserNo, Long.valueOf(driverUserNo))
.eq(OrderGoodsDriverTruck::getTruckId, truckId)
); );
} }
......
...@@ -37,7 +37,7 @@ public class OrderGoodsDriverTruckListener { ...@@ -37,7 +37,7 @@ public class OrderGoodsDriverTruckListener {
Object driverName = jsonObject.getByPath("driverName"); Object driverName = jsonObject.getByPath("driverName");
Object truckNo = jsonObject.getByPath("truckNo"); Object truckNo = jsonObject.getByPath("truckNo");
Object driverMobile = jsonObject.getByPath("driverMobile"); Object driverMobile = jsonObject.getByPath("driverMobile");
Object truckId = jsonObject.getByPath("truckId");
switch (operateType.toString()) { switch (operateType.toString()) {
case "1": case "1":
OrderGoodsDriverTruck driverTruck = new OrderGoodsDriverTruck(); OrderGoodsDriverTruck driverTruck = new OrderGoodsDriverTruck();
...@@ -45,6 +45,8 @@ public class OrderGoodsDriverTruckListener { ...@@ -45,6 +45,8 @@ public class OrderGoodsDriverTruckListener {
driverTruck.setDriverMobile(driverMobile == null ? "" : driverMobile.toString()); driverTruck.setDriverMobile(driverMobile == null ? "" : driverMobile.toString());
driverTruck.setDriverName(driverName == null ? "" : driverName.toString()); driverTruck.setDriverName(driverName == null ? "" : driverName.toString());
driverTruck.setDriverUserNo(driverUserNo == null ? null : Long.valueOf(driverUserNo.toString())); driverTruck.setDriverUserNo(driverUserNo == null ? null : Long.valueOf(driverUserNo.toString()));
driverTruck.setTruckId(truckId == null ? null : Integer.valueOf(truckId.toString()));
orderGoodsDriverTruckDao.saveEntity(driverTruck); orderGoodsDriverTruckDao.saveEntity(driverTruck);
log.info("处理货单定向司机表:执行插入"); log.info("处理货单定向司机表:执行插入");
break; break;
...@@ -52,7 +54,7 @@ public class OrderGoodsDriverTruckListener { ...@@ -52,7 +54,7 @@ public class OrderGoodsDriverTruckListener {
if (truckNo == null || driverUserNo == null) { if (truckNo == null || driverUserNo == null) {
break; break;
} }
orderGoodsDriverTruckDao.deleteByTruckNoAndDriverUserNo(truckNo.toString(), driverUserNo.toString()); orderGoodsDriverTruckDao.deleteByTruckNoAndDriverUserNo(truckNo.toString(), driverUserNo.toString(), Integer.valueOf(truckId.toString()));
log.info("处理货单定向司机表:执行删除"); log.info("处理货单定向司机表:执行删除");
break; break;
default: default:
......
...@@ -5,6 +5,7 @@ import com.clx.order.enums.OrderEnum; ...@@ -5,6 +5,7 @@ import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO; import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.constant.RedissonConstants; import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
...@@ -91,6 +92,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -91,6 +92,8 @@ public class OrderChildServiceImpl implements OrderChildService {
private final OrderFeign orderFeign; private final OrderFeign orderFeign;
private final RedissonClient redissonClient; private final RedissonClient redissonClient;
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
@Override @Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) { public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
...@@ -802,7 +805,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -802,7 +805,7 @@ public class OrderChildServiceImpl implements OrderChildService {
long count = orderChildDao.countOfTransitByOrderGoodsNo(orderChild.getOrderGoodsNo()); long count = orderChildDao.countOfTransitByOrderGoodsNo(orderChild.getOrderGoodsNo());
// 更新货单完成状态 // 更新货单完成状态
updateOrderGoodsComplete(orderGoods, count); updateOrderGoodsComplete(orderGoods, orderChild, count);
orderChild.setStatus(OrderChildEnum.Status.UNSETTLE.getCode()); orderChild.setStatus(OrderChildEnum.Status.UNSETTLE.getCode());
orderChildDao.updateDriverConfirm(orderChild); orderChildDao.updateDriverConfirm(orderChild);
...@@ -1094,6 +1097,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1094,6 +1097,7 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateOrderGoodsDirectReject(OrderGoodsTruckBind orderGoodsTruckBind){ private void updateOrderGoodsDirectReject(OrderGoodsTruckBind orderGoodsTruckBind){
orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode()); orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode());
orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind); orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind);
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsTruckBind.getOrderGoodsNo(), orderGoodsTruckBind.getTruckNo());
} }
/** /**
...@@ -1104,17 +1108,20 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1104,17 +1108,20 @@ public class OrderChildServiceImpl implements OrderChildService {
orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode()); orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode());
orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind); orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind);
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsTruckBind.getOrderGoodsNo(), orderGoodsTruckBind.getTruckNo());
} }
/** /**
* 更新货单完成状态 * 更新货单完成状态
*/ */
private void updateOrderGoodsComplete(OrderGoods orderGoods, long count){ private void updateOrderGoodsComplete(OrderGoods orderGoods, OrderChild orderChild, long count){
if (count > 1) {return;} if (count > 1) {return;}
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0){ if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0){
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.SUCCESS.getCode()); orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.SUCCESS.getCode());
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.EXPIRE.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.EXPIRE.getCode());
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo(),orderChild.getTruckNo());
} }
} }
......
...@@ -10,7 +10,7 @@ public class OrderGoodsTruckBindSqlProvider { ...@@ -10,7 +10,7 @@ public class OrderGoodsTruckBindSqlProvider {
public String saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, String now) { public String saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, String now) {
StringBuffer sqlList = new StringBuffer(); StringBuffer sqlList = new StringBuffer();
sqlList.append(" INSERT INTO order_goods_truck_bind(order_no,order_goods_no,truck_no,create_time,update_time,status) VALUES "); sqlList.append(" INSERT INTO order_goods_truck_bind(order_no,order_goods_no,truck_no,create_time,modified_time,status) VALUES ");
for (int i = 0; i < trackList.size(); i++) { for (int i = 0; i < trackList.size(); i++) {
String truckNo = trackList.get(i); String truckNo = trackList.get(i);
sqlList.append(" ('").append(orderNo).append("','").append(orderGoodsNo).append("','").append(truckNo).append("','") sqlList.append(" ('").append(orderNo).append("','").append(orderGoodsNo).append("','").append(truckNo).append("','")
......
...@@ -2,10 +2,55 @@ package com.clx.performance.strategy; ...@@ -2,10 +2,55 @@ package com.clx.performance.strategy;
import com.clx.order.params.OrderGoodsParams; import com.clx.order.params.OrderGoodsParams;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.constant.RabbitKeyConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
public interface GoodsOrderStrategy { @Slf4j
public abstract class GoodsOrderStrategy {
LocalDateTime goodsOrderProcess(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now); /**
* 不同的用车需求执行不同的策略 1:one 2:two 3:three
* 用车需求: 1平台车辆 2部分平台车辆 3自有车辆
* @param orderGoodsParams
* @param orderInfo
* @param now
* @return
*/
public abstract LocalDateTime goodsOrderProcess(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now);
public void saveGoodsOrder(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now, RabbitTemplate rabbitTemplate) {
String orderNo = orderGoodsParams.getOrderNo();
//根据不同的订单类型创建不同的货单
LocalDateTime sendLazyTime = goodsOrderProcess(orderGoodsParams, orderInfo, now);
Message message = MessageBuilder.withBody(orderNo.getBytes()).build();
long epochMilli = 0L;
if (sendLazyTime.isAfter(now)) {
epochMilli = sendLazyTime.minusMinutes(now.getMinute()).getMinute() * 60 * 1000;
log.info("执行订单状态更改,选择时间在当前时间之后,则设置延迟队列时间,时间为:{}", epochMilli);
}
if (epochMilli == 0L) {
log.info("执行订单状态更改,epochMilli时间为0,时间为:{}", epochMilli);
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE, RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY, message
);
} else {
log.info("执行订单状态更改,epochMilli时间不为0,时间为:{}", epochMilli);
rabbitTemplate.send(RabbitKeyConstants.ORDER_POSTED_EXCHANGE, RabbitKeyConstants.ORDER_POSTED_ROUTE_KEY, MessageBuilder.withBody(orderNo.getBytes()).build());
message.getMessageProperties().setExpiration(String.valueOf(epochMilli));
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_EXCHANGE, RabbitKeyConstants.ORDER_ON_ROUTE_KEY, message
);
}
}
} }
...@@ -7,26 +7,25 @@ import com.clx.order.params.OrderGoodsChildParams; ...@@ -7,26 +7,25 @@ import com.clx.order.params.OrderGoodsChildParams;
import com.clx.order.params.OrderGoodsParams; import com.clx.order.params.OrderGoodsParams;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.component.GoodsOrderStrategyContext; import com.clx.performance.component.GoodsOrderStrategyContext;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsIdGenerate; import com.clx.performance.component.OrderGoodsIdGenerate;
import com.clx.performance.component.OrderGoodsStatusLazyComponent; import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao; import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.strategy.GoodsOrderStrategy; import com.clx.performance.strategy.GoodsOrderStrategy;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -42,31 +41,26 @@ import java.util.Map; ...@@ -42,31 +41,26 @@ import java.util.Map;
*/ */
@Component("OneGoodsOrderStrategy") @Component("OneGoodsOrderStrategy")
@Slf4j @Slf4j
public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBean { @AllArgsConstructor
public class OneGoodsOrderStrategy extends GoodsOrderStrategy implements InitializingBean {
@Autowired
private OrderGoodsIdGenerate orderGoodsIdGenerate;
@Autowired private final OrderGoodsIdGenerate orderGoodsIdGenerate;
private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
@Autowired private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private OrderFeign orderFeign;
@Autowired private final OrderFeign orderFeign;
OrderGoodsService orderGoodsService;
@Autowired private final OrderGoodsDao orderGoodsDao;
OrderGoodsDao orderGoodsDao;
@Autowired private final OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
private OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
@Autowired private final GoodsOrderStrategyContext goodsOrderStrategyContext;
private GoodsOrderStrategyContext goodsOrderStrategyContext;
private final RabbitTemplate rabbitTemplate;
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -87,7 +81,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe ...@@ -87,7 +81,7 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
Map<String, LocalDateTime> mqMap = new HashMap<>(); Map<String, LocalDateTime> mqMap = new HashMap<>();
List<OrderGoods> orderGoodsList = new LinkedList<>(); List<OrderGoods> orderGoodsList = new LinkedList<>();
for (OrderGoodsChildParams child : childParamsList) { for (OrderGoodsChildParams child : childParamsList) {
if (child.getPendingOrderWay().equals(2)) { if (OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode().equals(child.getPendingOrderWay())) {
if (child.getNeedTruckNum() == null) { if (child.getNeedTruckNum() == null) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "定向派单必须选择车辆"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "定向派单必须选择车辆");
...@@ -133,7 +127,8 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe ...@@ -133,7 +127,8 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods.setOrderNo(orderNo); orderGoods.setOrderNo(orderNo);
Integer pendingOrderWay = orderGoods.getPendingOrderWay(); Integer pendingOrderWay = orderGoods.getPendingOrderWay();
String orderNoPrefix = PendingOrderWayStatusEnum.Status.GK.getCode().equals(pendingOrderWay) ? PendingOrderWayStatusEnum.Status.GK.getName() : PendingOrderWayStatusEnum.Status.DX.getName(); String orderNoPrefix = PendingOrderWayStatusEnum.Status.GK.getCode().equals(pendingOrderWay) ? PendingOrderWayStatusEnum.Status.GK.getName() : PendingOrderWayStatusEnum.Status.DX.getName();
orderGoods.setOrderGoodsNo(orderNoPrefix + beginOrderGoodsId); String orderGoodsNo = orderNoPrefix + beginOrderGoodsId;
orderGoods.setOrderGoodsNo(orderGoodsNo);
orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode()); orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId()); orderGoods.setSendAddressId(orderInfo.getSendAddressId());
...@@ -153,10 +148,11 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe ...@@ -153,10 +148,11 @@ public class OneGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods.setUserName(loginUserInfo.getUserName()); orderGoods.setUserName(loginUserInfo.getUserName());
orderGoods.setUserNo(loginUserInfo.getUserNo()); orderGoods.setUserNo(loginUserInfo.getUserNo());
if (CollectionUtil.isNotEmpty(child.getTruckList())) { if (CollectionUtil.isNotEmpty(child.getTruckList())) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderNoPrefix+ beginOrderGoodsId, child.getTruckList(), now); orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, child.getTruckList(), now);
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
} }
mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime); mqMap.put(orderGoodsNo, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderNoPrefix + beginOrderGoodsId); orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
......
...@@ -8,31 +8,37 @@ import com.clx.order.params.OrderGoodsParams; ...@@ -8,31 +8,37 @@ import com.clx.order.params.OrderGoodsParams;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.feign.OrderOwnTruckVo; import com.clx.order.vo.feign.OrderOwnTruckVo;
import com.clx.performance.component.GoodsOrderStrategyContext; import com.clx.performance.component.GoodsOrderStrategyContext;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsIdGenerate; import com.clx.performance.component.OrderGoodsIdGenerate;
import com.clx.performance.component.OrderGoodsStatusLazyComponent; import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao; import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.*; import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.PendingOrderWayStatusEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.strategy.GoodsOrderStrategy; import com.clx.performance.strategy.GoodsOrderStrategy;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -40,32 +46,24 @@ import java.util.stream.Collectors; ...@@ -40,32 +46,24 @@ import java.util.stream.Collectors;
*/ */
@Component("ThreeGoodsOrderStrategy") @Component("ThreeGoodsOrderStrategy")
@Slf4j @Slf4j
public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBean { @AllArgsConstructor
@Autowired public class ThreeGoodsOrderStrategy extends GoodsOrderStrategy implements InitializingBean {
private OrderGoodsIdGenerate orderGoodsIdGenerate;
private final OrderGoodsIdGenerate orderGoodsIdGenerate;
@Autowired private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderGoodsDao orderGoodsDao;
@Autowired private final GoodsOrderStrategyContext goodsOrderStrategyContext;
OrderGoodsService orderGoodsService;
@Autowired private final OrderFeign orderFeign;
OrderGoodsDao orderGoodsDao;
@Autowired private final RabbitTemplate rabbitTemplate;
private GoodsOrderStrategyContext goodsOrderStrategyContext;
@Autowired private final OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
private OrderFeign orderFeign;
@Autowired private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private RabbitTemplate rabbitTemplate;
@Autowired
private OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
@Override @Override
...@@ -132,7 +130,8 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing ...@@ -132,7 +130,8 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
orderGoods.setOrderNo(orderNo); orderGoods.setOrderNo(orderNo);
Integer pendingOrderWay = orderGoods.getPendingOrderWay(); Integer pendingOrderWay = orderGoods.getPendingOrderWay();
String orderNoPrefix = PendingOrderWayStatusEnum.Status.GK.getCode().equals(pendingOrderWay) ? PendingOrderWayStatusEnum.Status.GK.getName() : PendingOrderWayStatusEnum.Status.DX.getName(); String orderNoPrefix = PendingOrderWayStatusEnum.Status.GK.getCode().equals(pendingOrderWay) ? PendingOrderWayStatusEnum.Status.GK.getName() : PendingOrderWayStatusEnum.Status.DX.getName();
orderGoods.setOrderGoodsNo(orderNoPrefix + beginOrderGoodsId); String orderGoodsNo = orderNoPrefix + beginOrderGoodsId;
orderGoods.setOrderGoodsNo(orderGoodsNo);
orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode()); orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId()); orderGoods.setSendAddressId(orderInfo.getSendAddressId());
...@@ -155,16 +154,18 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing ...@@ -155,16 +154,18 @@ public class ThreeGoodsOrderStrategy implements GoodsOrderStrategy, Initializing
if (orderOwnTruckVos == null || orderOwnTruckVos.isEmpty()) { if (orderOwnTruckVos == null || orderOwnTruckVos.isEmpty()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "全部自由车辆列表数据为空"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "全部自由车辆列表数据为空");
} }
List<String> collect = orderOwnTruckVos.stream().map(OrderOwnTruckVo::getTruckNo).collect(Collectors.toList()); List<String> truckList = orderOwnTruckVos.stream().map(OrderOwnTruckVo::getTruckNo).collect(Collectors.toList());
if (collect.isEmpty()) { if (truckList.isEmpty()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "全部自由车辆列表数据为空"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "全部自由车辆列表数据为空");
} }
if (CollectionUtil.isNotEmpty(collect)) { //车牌号集合
orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderNoPrefix + beginOrderGoodsId, collect, now); if (CollectionUtil.isNotEmpty(truckList)) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, truckList, now);
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList);
} }
mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime); mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderNoPrefix + beginOrderGoodsId); orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
......
...@@ -7,6 +7,7 @@ import com.clx.order.params.OrderGoodsChildParams; ...@@ -7,6 +7,7 @@ import com.clx.order.params.OrderGoodsChildParams;
import com.clx.order.params.OrderGoodsParams; import com.clx.order.params.OrderGoodsParams;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.component.GoodsOrderStrategyContext; import com.clx.performance.component.GoodsOrderStrategyContext;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsIdGenerate; import com.clx.performance.component.OrderGoodsIdGenerate;
import com.clx.performance.component.OrderGoodsStatusLazyComponent; import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
...@@ -14,19 +15,17 @@ import com.clx.performance.dao.OrderGoodsDao; ...@@ -14,19 +15,17 @@ import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao; import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.strategy.GoodsOrderStrategy; import com.clx.performance.strategy.GoodsOrderStrategy;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -42,32 +41,25 @@ import java.util.Map; ...@@ -42,32 +41,25 @@ import java.util.Map;
*/ */
@Component("TwoGoodsOrderStrategy") @Component("TwoGoodsOrderStrategy")
@Slf4j @Slf4j
public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBean { @AllArgsConstructor
@Autowired public class TwoGoodsOrderStrategy extends GoodsOrderStrategy implements InitializingBean {
private OrderGoodsIdGenerate orderGoodsIdGenerate;
private final OrderGoodsIdGenerate orderGoodsIdGenerate;
@Autowired private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderGoodsDao orderGoodsDao;
@Autowired private final OrderFeign orderFeign;
OrderGoodsService orderGoodsService;
@Autowired private final OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
OrderGoodsDao orderGoodsDao;
@Autowired private final GoodsOrderStrategyContext goodsOrderStrategyContext;
private OrderFeign orderFeign;
@Autowired private final RabbitTemplate rabbitTemplate;
private OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
@Autowired private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private GoodsOrderStrategyContext goodsOrderStrategyContext;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -94,7 +86,7 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe ...@@ -94,7 +86,7 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
long beginOrderGoodsId = orderGoodsIdGenerate.getOrderGoodsId(childParamsList.size()); long beginOrderGoodsId = orderGoodsIdGenerate.getOrderGoodsId(childParamsList.size());
for (OrderGoodsChildParams child : childParamsList) { for (OrderGoodsChildParams child : childParamsList) {
if (child.getPendingOrderWay().equals(2)) { if (OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode().equals(child.getPendingOrderWay())) {
if (child.getNeedTruckNum() == null) { if (child.getNeedTruckNum() == null) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "定向派单必须选择车辆"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "定向派单必须选择车辆");
...@@ -142,7 +134,8 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe ...@@ -142,7 +134,8 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods.setOrderNo(orderNo); orderGoods.setOrderNo(orderNo);
Integer pendingOrderWay = orderGoods.getPendingOrderWay(); Integer pendingOrderWay = orderGoods.getPendingOrderWay();
String orderNoPrefix = PendingOrderWayStatusEnum.Status.GK.getCode().equals(pendingOrderWay) ? PendingOrderWayStatusEnum.Status.GK.getName() : PendingOrderWayStatusEnum.Status.DX.getName(); String orderNoPrefix = PendingOrderWayStatusEnum.Status.GK.getCode().equals(pendingOrderWay) ? PendingOrderWayStatusEnum.Status.GK.getName() : PendingOrderWayStatusEnum.Status.DX.getName();
orderGoods.setOrderGoodsNo(orderNoPrefix + beginOrderGoodsId); String orderGoodsNo = orderNoPrefix + beginOrderGoodsId;
orderGoods.setOrderGoodsNo(orderGoodsNo);
orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode()); orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId()); orderGoods.setSendAddressId(orderInfo.getSendAddressId());
...@@ -162,10 +155,11 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe ...@@ -162,10 +155,11 @@ public class TwoGoodsOrderStrategy implements GoodsOrderStrategy, InitializingBe
orderGoods.setUserName(loginUserInfo.getUserName()); orderGoods.setUserName(loginUserInfo.getUserName());
orderGoods.setUserNo(loginUserInfo.getUserNo()); orderGoods.setUserNo(loginUserInfo.getUserNo());
if (CollectionUtil.isNotEmpty(child.getTruckList())) { if (CollectionUtil.isNotEmpty(child.getTruckList())) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderNoPrefix + beginOrderGoodsId, child.getTruckList(), now); orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, child.getTruckList(), now);
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
} }
mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime); mqMap.put(orderGoodsNo, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderNoPrefix + beginOrderGoodsId); orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
......
package com.clx.performance; package com.clx.performance;
import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.UpdateOrderInfoParam;
import com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.feign.OrderOwnTruckVo; import com.clx.order.vo.feign.OrderOwnTruckVo;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsStatusLazyComponent; import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsTruckBindEnum;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.msl.common.base.Optional;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal; import java.util.LinkedList;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@SpringBootTest @SpringBootTest
...@@ -52,10 +35,27 @@ public class JobTest { ...@@ -52,10 +35,27 @@ public class JobTest {
@Autowired @Autowired
private OrderGoodsDao orderGoodsDao; private OrderGoodsDao orderGoodsDao;
@Autowired
private GoodsOrderTruckRecordComponent recordComponent;
@Test @Test
public void test1() { public void test1() {
List<OrderOwnTruckVo> orderOwnTruckVos = orderFeign.selectTruckListFeign("PT2023092700041"); List<String> a3 = new LinkedList<>();
List<String> collect = orderOwnTruckVos.stream().map(OrderOwnTruckVo::getTruckNo).collect(Collectors.toList()); a3.add("3");
System.out.println(collect); List<String> a4 = new LinkedList<>();
a4.add("4");
List<String> a1 = new LinkedList<>();
a1.add("1234");
a1.add("5678");
List<String> a2 = new LinkedList<>();
a2.add("22212");
a2.add("2341231");
recordComponent.saveTruckRecord("123",a2);
recordComponent.saveTruckRecord("123",a1);
recordComponent.saveTruckRecord("123",a3);
recordComponent.saveTruckRecord("456", a2);
recordComponent.saveTruckRecord("456", a4);
recordComponent.getTruckList();
System.out.println();
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论