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

取消接口

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