提交 21f100d7 authored 作者: huyufan's avatar huyufan

优化相关代码

上级 93996aaf
......@@ -186,7 +186,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
List<Integer> ids = new LinkedList<>();
for (OrderChild orderChild : orderChildrenList) {
childSum.add(orderChild.getWeight());
childSum = childSum.add(orderChild.getWeight());
ids.add(orderChild.getId());
}
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), ids);
......@@ -212,7 +212,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
}
//只更新货单未拉运吨数,已拉运吨数
//只更新货单已拉运吨数
orderGoodsDao.updateOrderGoodsSetAlreadyWeight(childSum, orderGoods.getId());
orderFeign.rollbackOrderWeight(param);
} else {
......
......@@ -74,4 +74,8 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
List<OrderGoods> selectListByOrderGoodsList(List<String> orderNos);
Integer updateOrderGoods(OrderGoodsEditParams orderGoodsEditParams);
boolean batchUpdateOrderGoodsStatus(Integer status, List<Integer> ids);
boolean batchUpdateOrderGoodsWeight(BigDecimal residueWeight, List<Integer> ids);
}
......@@ -194,5 +194,19 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
return baseMapper.updateOrderGoods(orderGoodsEditParams);
}
@Override
public boolean batchUpdateOrderGoodsStatus(Integer status, List<Integer> ids) {
return update(lUdWrapper().in(OrderGoods :: getId,ids)
.set(OrderGoods :: getOrderGoodsStatus, status))
;
}
@Override
public boolean batchUpdateOrderGoodsWeight(BigDecimal residueWeight, List<Integer> ids) {
return update(lUdWrapper().in(OrderGoods :: getId,ids)
.set(OrderGoods::getResidueTransportWeight, residueWeight)
);
}
}
......@@ -30,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -48,7 +49,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final RabbitTemplate rabbitTemplate;
//
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrderPre(String orderNo) {
......@@ -410,13 +411,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
for (OrderChild orderChild : orderChildrenList) {
OrderChild update = new OrderChild();
update.setId(orderChild.getId());
update.setStatus(OrderChildEnum.Status.OWNER_CANCEL.getCode());
//TODO 补充批量更新接口 关闭运单状态
orderChildDao.updateEntityByKey(update);
}
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.OWNER_CANCEL.getCode(),
orderChildrenList.stream().map(OrderChild::getId).collect(Collectors.toList()));
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
......@@ -436,29 +434,25 @@ public class OrderCancelServiceImpl implements OrderCancelService {
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成
update.setResidueTransportWeight(BigDecimal.ZERO);
update.setAlreadyTransportWeight(orderGoods.getAlreadyTransportWeight().subtract(sum));
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(BigDecimal.ZERO, sum, orderGoods.getId());
}
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已取消
for (OrderGoods orderGoods : orderGoodsList) {
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
update.setResidueTransportWeight(BigDecimal.ZERO);
// for (OrderGoods orderGoods : orderGoodsList) {
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight()));
//// OrderGoods update = new OrderGoods();
//// update.setId(orderGoods.getId());
//// //TODO 补充批量更新接口 关闭货单状态
//// update.setResidueTransportWeight(BigDecimal.ZERO);
//
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(BigDecimal.ZERO, BigDecimal.ZERO, orderGoods.getId());
// }
orderGoodsDao.batchUpdateOrderGoodsWeight(BigDecimal.ZERO, orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
orderGoodsDao.updateEntityByKey(update);
}
}
Integer truckDemand = orderInfoFeignVO.getTruckDemand();
......@@ -491,13 +485,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
for (OrderChild orderChild : orderChildrenList) {
OrderChild update = new OrderChild();
update.setId(orderChild.getId());
update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
//TODO 补充批量更新接口 关闭运单状态
orderChildDao.updateEntityByKey(update);
}
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), orderChildrenList.stream().map(OrderChild::getId).collect(Collectors.toList()));
//货单
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
......@@ -518,29 +513,26 @@ public class OrderCancelServiceImpl implements OrderCancelService {
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
update.setAlreadyTransportWeight(orderGoods.getAlreadyTransportWeight().subtract(sum));
update.setResidueTransportWeight(BigDecimal.ZERO);
//update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(BigDecimal.ZERO, sum, orderGoods.getId());
}
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已取消
for (OrderGoods orderGoods : orderGoodsList) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
update.setResidueTransportWeight(BigDecimal.ZERO);
//update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
}
// for (OrderGoods orderGoods : orderGoodsList) {
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
orderGoodsDao.batchUpdateOrderGoodsWeight(BigDecimal.ZERO, orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
}
//归还吨数
......@@ -552,7 +544,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
param.setResidueWeight(residueSum);
param.setPlatformResidueCarryWeight(platformResidueSum);
param.setOwnResidueCarryWeight(ownResidueSum);
orderFeign.rollbackOrderWeight(param);
try {
Result<Object> result = orderFeign.rollbackOrderWeight(param);
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "远程调用更新订单余量失败");
}
} catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, e.getMessage());
}
}
......@@ -571,23 +572,21 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
orderGoodsDao.batchUpdateOrderGoodsStatus(
OrderGoodsStatusEnum.Status.CANCEL.getCode(),
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
orderGoodsDao.updateEntityByKey(update);
}
break;
case 2: //取消未拉运吨数的货单
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
// if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
// }
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) {
......@@ -613,9 +612,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isEmpty(orderChildren)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
// if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
// }
List<Integer> ids = orderChildren.stream().map(OrderChild::getId).collect(Collectors.toList());
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.OWNER_CANCEL.getCode(), ids);
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
......@@ -671,23 +670,19 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
orderGoodsDao.batchUpdateOrderGoodsStatus(
OrderGoodsStatusEnum.Status.CANCEL.getCode(),
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
orderGoodsDao.updateEntityByKey(update);
}
break;
case 2: //取消未拉运吨数的货单
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
// if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
// }
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) {
......@@ -713,9 +708,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isEmpty(orderChildren)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
// if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
// }
List<Integer> ids = orderChildren.stream().map(OrderChild::getId).collect(Collectors.toList());
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), ids);
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
......
......@@ -177,7 +177,7 @@ public class OrderGoodsSqlProvider {
public String updateOrderGoodsSetAlreadyWeight(@Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value ="id") Integer id){
String sql = new SQL() {{
UPDATE("order_goods")
.SET("already_transport_weight = already_transport_weight + #{residueWeight}")
.SET("already_transport_weight = already_transport_weight - #{residueWeight}")
.WHERE("id = #{id}");
}}.toString();
......@@ -188,7 +188,7 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{
UPDATE("order_goods")
.SET("residue_transport_weight = residue_transport_weight + #{residueWeight}")
.SET("already_transport_weight = already_transport_weight + #{alreadyWeight}")
.SET("already_transport_weight = already_transport_weight - #{alreadyWeight}")
.WHERE("id = #{id}");
}}.toString();
......@@ -248,7 +248,7 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{
UPDATE("order_goods")
.SET("residue_transport_weight = residue_transport_weight + #{residueWeight}")
.SET("already_transport_weight = already_transport_weight + #{alreadyWeight}")
.SET("already_transport_weight = already_transport_weight - #{alreadyWeight}")
.SET("status = #{status}")
.WHERE("id = #{id}");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论