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

定向货单取消解绑

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