Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
38412ced
提交
38412ced
authored
11月 01, 2023
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
处理BUg
上级
eddd013e
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
35 行增加
和
262 行删除
+35
-262
OrderCancelServiceImpl.java
.../clx/performance/service/impl/OrderCancelServiceImpl.java
+35
-262
没有找到文件。
performance-web/src/main/java/com/clx/performance/service/impl/OrderCancelServiceImpl.java
浏览文件 @
38412ced
...
...
@@ -19,7 +19,9 @@ import com.clx.performance.model.OrderChild;
import
com.clx.performance.model.OrderGoods
;
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.OwnerAccountService
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
...
...
@@ -56,260 +58,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private
final
DriverService
driverService
;
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrderPre(String orderNo) {
//// FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
//// BigDecimal orderTransportWeight = new BigDecimal(orderInfoFeign.getTransportWeight());
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// if (CollectionUtil.isEmpty(orderGoodsList)) {
// //未产生货单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("1");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
// return;
// }
//
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, null);
//
// if (CollectionUtil.isEmpty(orderChildrenList)) {
// //说明此刻未产生运单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else {
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// List<OrderChild> orderChildren = orderChildMap.get(orderGoods.getOrderGoodsNo());
// if (CollectionUtil.isEmpty(orderChildren)) {
// //没有运单,直接是取消
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// } else {
// if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) {
// //货单还有余量,是已完结
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// } else {
// List<OrderChild> orderChildrenListComplete = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.COMPLETE.getCode());
// if (CollectionUtil.isNotEmpty(orderChildrenListComplete)) {
// Map<String, List<OrderChild>> orderChildCompleteMap = orderChildrenListComplete.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
// //没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
// List<OrderChild> childList = orderChildCompleteMap.get(orderGoods.getOrderGoodsNo());
// BigDecimal reduce = childList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
// } else {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// }
// }
//
// }
// }
// orderGoodsDao.updateEntityByKey(update);
// }
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.COMPLETED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// }
//
// log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("1");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
//
// }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrder(String orderNo) {
// log.info("开始执行平台订单取消吨数回填");
// FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
// truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
// truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
//
// //非部分平台车辆拉运
// if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// 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);
// }
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
// List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildren)) {
// sum = orderChildren.stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
//
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } 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);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// Integer truckDemand = orderInfoFeignVO.getTruckDemand();
// BigDecimal residueWeight = truckDemandMap.get(truckDemand);
// if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
// log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
// return;
// }
//
// //归还吨数
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(BigDecimal.ZERO);
// param.setPlatformResidueCarryWeight(residueWeight);
// }
// if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(residueWeight);
// param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
// }
// orderFeign.rollbackOrderWeight(param);
//
// } else {
// Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// 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);
// }
// //货单
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
// //运单
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
//
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) {
// sum = orderChildMap.get(orderGoodsNo).stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
//
// }
//
// } 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);
// }
// }
//
// //归还吨数
// BigDecimal platformResidueSum = vehicleUsageMap.get(1);
// BigDecimal ownResidueSum = vehicleUsageMap.get(2);
// BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// param.setResidueWeight(residueSum);
// param.setPlatformResidueCarryWeight(platformResidueSum);
// param.setOwnResidueCarryWeight(ownResidueSum);
// orderFeign.rollbackOrderWeight(param);
// }
//
//
// }
//
//
private
final
OwnerAccountService
ownerAccountService
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
ownerCancelOrderPre
(
String
orderNo
)
{
...
...
@@ -320,6 +71,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if
(!
result
.
succeed
())
{
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
thawAccountParam
.
setOrderNo
(
orderNo
);
thawAccountParam
.
setOrderType
(
"1"
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
this
.
ownerCancelOrder
(
orderNo
);
return
;
}
...
...
@@ -333,12 +91,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
orderGoodsDao
.
batchUpdateOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
(),
orderGoodsList
.
stream
().
map
(
OrderGoods:
:
getId
).
collect
(
Collectors
.
toList
()));
...
...
@@ -382,6 +134,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
thawAccountParam
.
setOrderNo
(
orderNo
);
thawAccountParam
.
setOrderType
(
"1"
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
this
.
ownerCancelOrder
(
orderNo
);
// log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
...
...
@@ -394,8 +153,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
//@Override
//@Transactional(rollbackFor = Exception.class)
public
void
ownerCancelOrder
(
String
orderNo
)
{
log
.
info
(
"开始执行订单取消吨数回填"
);
FeignOrderVO
orderInfoFeignVO
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
...
...
@@ -666,6 +423,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderFeign
.
orderCancelReason
(
orderCancelReasonParam
);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
thawAccountParam
.
setOrderNo
(
orderNo
);
thawAccountParam
.
setOrderType
(
"1"
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
param
).
toString
().
getBytes
()).
build
();
...
...
@@ -782,6 +547,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderCancelReasonParam
.
setCreateName
(
loginUserInfo
.
getUserName
());
orderFeign
.
orderCancelReason
(
orderCancelReasonParam
);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
thawAccountParam
.
setOrderNo
(
orderNo
);
thawAccountParam
.
setOrderType
(
"1"
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
param
).
toString
().
getBytes
()).
build
();
rabbitTemplate
.
send
(
RabbitKeyConstants
.
ORDER_CANCEL_EXCHANGE
,
RabbitKeyConstants
.
ORDER_CANCEL_ROUTE_KEY
,
message
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论