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

取消接口

上级 91afc090
...@@ -13,16 +13,16 @@ public enum OrderGoodsPendingVehicleUsageEnum { ...@@ -13,16 +13,16 @@ public enum OrderGoodsPendingVehicleUsageEnum {
@AllArgsConstructor @AllArgsConstructor
public enum Status { public enum Status {
PLATFORM_TRUCK("1", "平台车辆配货"), PLATFORM_TRUCK(1, "平台车辆配货"),
OWN_TRUCK("2", "自有车辆配货"), OWN_TRUCK(2, "自有车辆配货"),
; ;
private final String code; private final Integer code;
private final String name; private final String name;
public static Optional<Status> getByCode(String code) { public static Optional<Status> getByCode(String c) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst(); return Arrays.stream(values()).filter(e -> e.code.equals(c)).findFirst();
} }
} }
......
...@@ -3,13 +3,17 @@ package com.clx.performance.component; ...@@ -3,13 +3,17 @@ package com.clx.performance.component;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.param.feign.UpdateOrderInfoParam; import com.clx.order.param.feign.UpdateOrderInfoParam;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
import com.clx.performance.dao.OrderChildDao;
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.OrderGoodsPendingVehicleUsageEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum; import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsTruckBindEnum; import com.clx.performance.enums.OrderGoodsTruckBindEnum;
import com.clx.performance.model.OrderChild;
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;
...@@ -43,6 +47,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -43,6 +47,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent; private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private final OrderChildDao orderChildDao;
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());
} }
...@@ -51,7 +57,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -51,7 +57,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
@XxlJob("OrderGoodsSuccess") @XxlJob("OrderGoodsSuccess")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void consuming() { public void consuming() {
log.info("货单已完结定时器启动"); log.info("货单-最晚接单时间-定时器启动");
long nowTimeMillis = System.currentTimeMillis(); long nowTimeMillis = System.currentTimeMillis();
LocalDateTime nowDateTime = new Date(nowTimeMillis).toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime(); LocalDateTime nowDateTime = new Date(nowTimeMillis).toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
Set<ZSetOperations.TypedTuple<String>> orderGoodsIds = redisTemplate.opsForZSet().rangeByScoreWithScores( Set<ZSetOperations.TypedTuple<String>> orderGoodsIds = redisTemplate.opsForZSet().rangeByScoreWithScores(
...@@ -60,18 +66,18 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -60,18 +66,18 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
//延时任务score最大值(当前时间) //延时任务score最大值(当前时间)
); );
if (orderGoodsIds == null) { if (orderGoodsIds == null) {
log.info("货单已完结定时器查询redis条数为null"); log.info("货单-最晚接单时间-定时器查询redis条数为null");
return; return;
} }
if (orderGoodsIds.isEmpty()) { if (orderGoodsIds.isEmpty()) {
log.info("货单已完结定时器查询redis条数为空"); log.info("货单-最晚接单时间-定时器查询redis条数为空");
return; return;
} }
if (!CollectionUtil.isEmpty(orderGoodsIds)) { if (!CollectionUtil.isEmpty(orderGoodsIds)) {
log.info("货单已完结定时器查询redis条数:{}", orderGoodsIds.size()); log.info("货单-最晚接单时间-定时器查询redis条数:{}", orderGoodsIds.size());
for (ZSetOperations.TypedTuple<String> orderGoodsId : orderGoodsIds) { for (ZSetOperations.TypedTuple<String> orderGoodsId : orderGoodsIds) {
log.info("货单" + orderGoodsId + "过了最晚拉运时间"); log.info("货单" + orderGoodsId + "过了最晚接单时间");
String orderGoodsNo = orderGoodsId.getValue(); String orderGoodsNo = orderGoodsId.getValue();
log.info("处理当前货单编号:{}", orderGoodsNo); log.info("处理当前货单编号:{}", orderGoodsNo);
Optional<OrderGoods> optional = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo); Optional<OrderGoods> optional = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo);
...@@ -81,56 +87,47 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -81,56 +87,47 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
continue; continue;
} }
OrderGoods orderGoods = optional.get(); OrderGoods orderGoods = optional.get();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderGoods.getOrderNo());
if (orderInfoFeign == null) {
redisTemplate.opsForZSet().remove(RedisConstants.ORDER_GOODS_STATUS_LAZY, orderGoodsId.getValue());
log.info("当前货单编号未查询出订单数据,执行删除redis ORDER_GOODS_STATUS_LAZY id: {}", orderGoodsId.getValue());
continue;
} else {
log.info("当前货单编号已经查出数据{}", orderGoodsNo);
}
if (OrderGoodsStatusEnum.Status.SUCCESS.getCode().equals(orderGoods.getOrderGoodsStatus())) {
log.info("当前货单状态判断为已完成");
} else {
log.info("当前货单状态判断不是已完成:货单状态为{}", orderGoods.getOrderGoodsStatus());
}
if (OrderGoodsStatusEnum.Status.SUCCESS.getCode().equals(orderGoods.getOrderGoodsStatus())) { List<OrderChild> orderChildren = orderChildDao.selectInTransitOrderChild(orderGoodsNo);
log.info("当前货单状态为已完成"); if (CollectionUtil.isEmpty(orderChildren)) {
//如果当前货单已完成,则判断之前所有货单是否等于订单总吨数,等于则更新订单为已完成 if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) == 0) {
List<OrderGoods> list = orderGoodsDao.getOrderGoodsListByOrderNoAndLastArriveSendTime(orderGoods.getOrderNo(), nowDateTime); //更新货单已完成
BigDecimal childSum = list.stream().map(OrderGoods::getExtractWeight).reduce(BigDecimal.ZERO, BigDecimal::add); orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoodsNo, OrderGoodsStatusEnum.Status.SUCCESS.getCode());
log.info("算出所有货单总量:{}, 订单总吨数:{}", childSum, orderInfoFeign.getTransportWeight()); } else {
//更新已完结
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoodsNo, OrderGoodsStatusEnum.Status.COMPLETED.getCode());
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderGoods.getOrderNo());
param.setResidueWeight(orderGoods.getResidueTransportWeight());
if (orderGoods.getTruckDemand().equals(1) || orderGoods.getTruckDemand().equals(3)) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
if (OrderGoodsPendingVehicleUsageEnum.Status.PLATFORM_TRUCK.getCode().equals(orderGoods.getVehicleUsage())) {
}
} else {
if (childSum.compareTo(new BigDecimal(orderInfoFeign.getTransportWeight())) == 0) { }
log.info("已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成"); orderFeign.rollbackOrderWeight(param);
//已完成的货单已经等于订单的拉运吨数,提前更新订单状态 已完成
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderGoods.getOrderNo());
BigDecimal residueTransportWeight = orderGoods.getResidueTransportWeight();
UpdateOrderInfoParam updateOrderInfoParam = new UpdateOrderInfoParam(); UpdateOrderInfoParam updateOrderInfoParam = new UpdateOrderInfoParam();
updateOrderInfoParam.setOrderId(orderInfoFeign.getId()); updateOrderInfoParam.setOrderId(orderInfoFeign.getId());
updateOrderInfoParam.setOrderStatus(OrderEnum.Status.SUCCESS.getCode()); updateOrderInfoParam.setResidueWeight(residueTransportWeight.add(new BigDecimal(orderInfoFeign.getResidueWeight())));
orderFeign.updateOrderInfo(updateOrderInfoParam); updateOrderInfoParam.setVehicleUsage(orderGoods.getVehicleUsage());
} else {
log.info("判断吨数不一致:childSum{}, transportWeight {}", childSum, new BigDecimal(orderInfoFeign.getTransportWeight()));
log.info("订单ID:{},返还订单剩余吨数{}", orderInfoFeign.getId(), residueTransportWeight);
//返还订单剩余吨数
orderFeign.updateOrderInfo(updateOrderInfoParam);
} }
} else {
log.info("当前货单状态为已完结");
//更新货单已完结
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoodsNo, OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.EXPIRE.getCode());
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsNo);
BigDecimal residueTransportWeight = orderGoods.getResidueTransportWeight();
UpdateOrderInfoParam updateOrderInfoParam = new UpdateOrderInfoParam();
updateOrderInfoParam.setOrderId(orderInfoFeign.getId());
updateOrderInfoParam.setResidueWeight(residueTransportWeight.add(new BigDecimal(orderInfoFeign.getResidueWeight())));
updateOrderInfoParam.setVehicleUsage(orderGoods.getVehicleUsage());
log.info("订单ID:{},返还订单剩余吨数{}", orderInfoFeign.getId(), residueTransportWeight);
//返还订单剩余吨数
orderFeign.updateOrderInfo(updateOrderInfoParam);
} }
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.EXPIRE.getCode());
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoodsNo);
redisTemplate.opsForZSet().remove(RedisConstants.ORDER_GOODS_STATUS_LAZY, orderGoodsId.getValue()); redisTemplate.opsForZSet().remove(RedisConstants.ORDER_GOODS_STATUS_LAZY, orderGoodsId.getValue());
log.info("删除redis ORDER_GOODS_STATUS_LAZY id: {}", orderGoodsId.getValue()); log.info("删除redis ORDER_GOODS_STATUS_LAZY id: {}", orderGoodsId.getValue());
......
...@@ -79,4 +79,11 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -79,4 +79,11 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
); );
List<OrderChild> selectResidueWeight(String orderNo); List<OrderChild> selectResidueWeight(String orderNo);
/**
* 查询在途运单
* @param orderGoodsNo
* @return
*/
List<OrderChild> selectInTransitOrderChild(String orderGoodsNo);
} }
...@@ -265,6 +265,15 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -265,6 +265,15 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
); );
} }
@Override
public List<OrderChild> selectInTransitOrderChild(String orderGoodsNo) {
//查询小于 100(完成)的运单都属于在途
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo)
.lt(OrderChild::getStatus, OrderChildEnum.Status.COMPLETE.getCode())
);
}
@Override @Override
public List<OrderChild> getOrderChildByOrderNo(String orderNo) { public List<OrderChild> getOrderChildByOrderNo(String orderNo) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper(); LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper();
......
...@@ -1278,7 +1278,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1278,7 +1278,7 @@ public class OrderChildServiceImpl implements OrderChildService {
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());
} }
......
...@@ -93,7 +93,7 @@ public class OrderGoodsSqlProvider { ...@@ -93,7 +93,7 @@ public class OrderGoodsSqlProvider {
FROM("order_goods a"); FROM("order_goods a");
WHERE("a.pending_order_way = 1"); WHERE("a.pending_order_way = 1");
WHERE("a.last_arrive_send_time >= now()"); WHERE("a.last_order_time >= now()");
WHERE("(a.order_goods_status = 20 or a.order_goods_status = 30)"); WHERE("(a.order_goods_status = 20 or a.order_goods_status = 30)");
WHERE("a.residue_transport_weight >0"); WHERE("a.residue_transport_weight >0");
ORDER_BY("a.pending_order_time desc"); ORDER_BY("a.pending_order_time desc");
......
...@@ -158,7 +158,7 @@ public class OneGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -158,7 +158,7 @@ public class OneGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList()); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
} }
mqMap.put(orderGoodsNo, postedTime); mqMap.put(orderGoodsNo, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastOrderTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
......
...@@ -172,7 +172,7 @@ public class ThreeGoodsOrderStrategy extends GoodsOrderStrategy implements Initi ...@@ -172,7 +172,7 @@ public class ThreeGoodsOrderStrategy extends GoodsOrderStrategy implements Initi
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, truckList);
} }
mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime); mqMap.put(orderNoPrefix + beginOrderGoodsId, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastOrderTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
......
...@@ -166,7 +166,7 @@ public class TwoGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -166,7 +166,7 @@ public class TwoGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList()); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
} }
mqMap.put(orderGoodsNo, postedTime); mqMap.put(orderGoodsNo, postedTime);
orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastArriveSendTime(), orderGoodsNo); orderGoodsStatusLazyComponent.expireProduce(orderGoods.getLastOrderTime(), orderGoodsNo);
beginOrderGoodsId = beginOrderGoodsId + 1; beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论