提交 42a875ec authored 作者: huyufan's avatar huyufan

定向货单取消解绑

上级 2e704eb5
......@@ -95,6 +95,13 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
*/
List<OrderChild> selectArriveSendOrderChild(String orderGoodsNo);
/**
* 查询到达货源地之后的运单
* @param orderGoodsNo
* @return
*/
List<OrderChild> selectArriveSendOrderChildGe(String orderGoodsNo);
void batchUpdateOrderChildStatus(Integer status, List<Integer> ids);
......
......@@ -302,6 +302,15 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public List<OrderChild> selectArriveSendOrderChildGe(String orderGoodsNo) {
//查询小于 40 未到达货源地的运单
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo)
.ge(OrderChild::getStatus, OrderChildEnum.Status.ARRIVE_SEND.getCode())
.le(OrderChild::getStatus, OrderChildEnum.Status.COMPLETE.getCode())
);
}
@Override
public void batchUpdateOrderChildStatus(Integer status, List<Integer> ids) {
baseMapper.updateOrderGoodsSetResidueWeight(status, ids);
......
package com.clx.performance.dao.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
......@@ -90,7 +91,7 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
update(lUdWrapper()
.set(OrderGoodsTruckBind::getStatus, code)
.eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
.in(OrderGoodsTruckBind::getTruckNo, truckList)
.notIn(CollectionUtil.isNotEmpty(truckList), OrderGoodsTruckBind::getTruckNo, truckList)
);
}
......
......@@ -77,4 +77,6 @@ public interface OrderChildService {
* @return
*/
List<OrderChild> selectInTransitOrderChild(String orderNo);
void updateCancelTruckBind(String orderGoodsNo);
}
......@@ -19,6 +19,7 @@ import com.clx.performance.param.mq.OrderCancelMqParam;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.service.OrderCancelService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OwnerAccountService;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.exception.ServiceSystemException;
......@@ -60,6 +61,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderChildService orderChildService;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -93,11 +96,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List<Integer> ids = new LinkedList<>();
for (OrderGoods orderGoods : orderGoodsList) {
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
ids.add(orderGoods.getId());
}
orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(),
ids);
......@@ -136,15 +137,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
List<OrderChild> arriveSendOrderChild = orderChildDao.selectArriveSendOrderChild(orderGoods.getOrderGoodsNo());
if (CollectionUtil.isNotEmpty(arriveSendOrderChild)) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode(),
arriveSendOrderChild.stream().map(OrderChild::getTruckNo).collect(Collectors.toList()));
}else {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
}
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
orderGoodsDao.updateEntityByKey(update);
}
......@@ -354,8 +347,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List<Integer> ids = new LinkedList<>();
for (OrderGoods orderGoods : orderGoodsList) {
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
ids.add(orderGoods.getId());
}
......@@ -380,8 +372,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
orderGoodsDao.updateEntityByKey(update);
}
......@@ -420,8 +411,11 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else {
BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo())
.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal reduce = BigDecimal.ZERO;
for (OrderChild orderChild : orderChildMap.get(orderGoods.getOrderGoodsNo())) {
reduce = reduce.add(orderChild.getWeight());
}
if (orderGoods.getExtractWeight().compareTo(orderGoods.getResidueTransportWeight().add(reduce)) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else {
......@@ -429,6 +423,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
}
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
orderGoodsDao.updateEntityByKey(update);
}
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
......@@ -485,9 +482,15 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if (CollectionUtil.isNotEmpty(orderGoodsList)) {
orderGoodsDao.batchUpdateOrderGoodsStatus(
OrderGoodsStatusEnum.Status.CANCEL.getCode(),
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
List<Integer> ids = new LinkedList<>();
for (OrderGoods orderGoods : orderGoodsList) {
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
ids.add(orderGoods.getId());
}
orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(),
ids);
}
break;
case 2: //取消未拉运吨数的货单
......@@ -503,6 +506,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
orderGoodsDao.updateEntityByKey(update);
}
break;
......@@ -542,6 +548,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
}
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderChildService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
orderGoodsDao.updateEntityByKey(update);
}
......
......@@ -1862,6 +1862,17 @@ public class OrderChildServiceImpl implements OrderChildService {
return orderChildDao.selectInTransitOrderChild(orderNo);
}
@Override
public void updateCancelTruckBind(String orderGoodsNo) {
List<OrderChild> arriveSendOrderChild = orderChildDao.selectArriveSendOrderChildGe(orderGoodsNo);
List<String> truckList = null;
if (CollectionUtils.isEmpty(arriveSendOrderChild)) {
truckList = arriveSendOrderChild.stream().map(OrderChild::getTruckNo).collect(Collectors.toList());
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoodsNo, OrderGoodsTruckBindEnum.Status.CANCEL.getCode(), truckList);
}
/**
* @return
* @Author kavin
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论