Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
c5365ef7
提交
c5365ef7
authored
1月 08, 2024
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化相关代码及承运同步网络货运异步
上级
20f64779
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
418 行增加
和
350 行删除
+418
-350
OrderCancelComponent.java
...a/com/clx/performance/component/OrderCancelComponent.java
+90
-87
OwnerAccountComponent.java
.../com/clx/performance/component/OwnerAccountComponent.java
+60
-0
RabbitKeyConstants.java
...java/com/clx/performance/constant/RabbitKeyConstants.java
+3
-0
OrderCancelFeignController.java
...formance/controller/feign/OrderCancelFeignController.java
+1
-7
OrderCancelController.java
.../clx/performance/controller/pc/OrderCancelController.java
+6
-6
TransportSyncController.java
...ance/controller/pc/transport/TransportSyncController.java
+10
-1
OrderCancelResult.java
.../main/java/com/clx/performance/dto/OrderCancelResult.java
+15
-0
OrderCancelService.java
.../java/com/clx/performance/service/OrderCancelService.java
+2
-2
OrderCancelServiceImpl.java
.../clx/performance/service/impl/OrderCancelServiceImpl.java
+224
-237
OwnerAccountServiceImpl.java
...clx/performance/service/impl/OwnerAccountServiceImpl.java
+0
-3
GoodsOrderStrategy.java
...java/com/clx/performance/strategy/GoodsOrderStrategy.java
+7
-7
没有找到文件。
performance-web/src/main/java/com/clx/performance/component/OrderCancelComponent.java
浏览文件 @
c5365ef7
...
@@ -11,19 +11,16 @@ import com.clx.order.vo.feign.FeignOrderInfoVO;
...
@@ -11,19 +11,16 @@ import com.clx.order.vo.feign.FeignOrderInfoVO;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.d
ao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.d
to.OrderCancelResult
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
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.service.IntegralMqService
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.OrderGoodsTruckBindService
;
import
com.clx.performance.service.OrderGoodsTruckBindService
;
import
com.clx.performance.service.OwnerAccountService
;
import
com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService
;
import
com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService
;
import
com.clx.performance.service.child.OrderChildPostService
;
import
com.clx.performance.service.child.OrderChildPostService
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
import
com.clx.user.enums.driver.DriverInfoEnum
;
...
@@ -39,6 +36,7 @@ import org.springframework.stereotype.Component;
...
@@ -39,6 +36,7 @@ import org.springframework.stereotype.Component;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.*
;
import
java.util.function.BiFunction
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Component
@Component
...
@@ -66,11 +64,6 @@ public class OrderCancelComponent implements InitializingBean {
...
@@ -66,11 +64,6 @@ public class OrderCancelComponent implements InitializingBean {
@Autowired
@Autowired
private
BreakContractSettlementOwnerService
breakContractSettlementOwnerService
;
private
BreakContractSettlementOwnerService
breakContractSettlementOwnerService
;
public
static
Map
<
Integer
,
String
>
statusCodeMap
=
new
HashMap
<>();
@Autowired
private
IntegralMqService
integralMqService
;
@Autowired
@Autowired
private
OrderChildLogService
orderChildLogService
;
private
OrderChildLogService
orderChildLogService
;
...
@@ -84,80 +77,51 @@ public class OrderCancelComponent implements InitializingBean {
...
@@ -84,80 +77,51 @@ public class OrderCancelComponent implements InitializingBean {
private
OrderGoodsService
orderGoodsService
;
private
OrderGoodsService
orderGoodsService
;
@Autowired
@Autowired
SettlementOwnerDetailDao
settlementOwnerDetailDao
;
private
OwnerAccountComponent
ownerAccountComponent
;
public
static
Map
<
Integer
,
String
>
statusCodeMap
=
new
HashMap
<>();
@Autowired
OwnerAccountService
ownerAccountService
;
public
static
Map
<
Integer
,
BiFunction
<
String
,
Integer
,
OrderCancelResult
>>
cancelTypeMap
=
new
HashMap
<>();
/**
* 货主取消订单
* @param param
* @return
*/
public
List
<
String
>
ownerProcess
(
OrderCancelParam
param
)
{
public
List
<
String
>
ownerProcess
(
OrderCancelParam
param
)
{
String
orderNo
=
param
.
getOrderNo
();
String
orderNo
=
param
.
getOrderNo
();
List
<
OrderGoods
>
orderGoodsList
=
null
;
Integer
orderStatusCode
=
OrderEnum
.
Status
.
CANCELED
.
getCode
();
Integer
orderStatusCode
=
OrderEnum
.
Status
.
CANCELED
.
getCode
();
String
now
=
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"yyyy-MM-dd HH:mm:ss"
).
get
();
List
<
String
>
childNoList
=
new
LinkedList
<>();
switch
(
param
.
getCancelType
())
{
case
1
:
//单纯取消订单
log
.
info
(
"1:货主单纯取消订单"
);
if
(
CollectionUtil
.
isNotEmpty
(
orderChildDao
.
getOrderChildByOrderNo
(
orderNo
)))
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前订单已发生变化,请重新选择取消方式"
);
}
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
if
(
CollectionUtil
.
isNotEmpty
(
orderGoodsList
))
{
List
<
Integer
>
ids
=
new
LinkedList
<>();
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
if
(
orderGoods
.
getPendingOrderWay
().
equals
(
PendingOrderWayStatusEnum
.
Status
.
DX
.
getCode
()))
{
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
}
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
ids
.
add
(
orderGoods
.
getId
());
//根据不同的取消类型执行不同的取消逻辑
}
OrderCancelResult
result
=
cancelTypeMap
.
get
(
param
.
getCancelType
()).
apply
(
orderNo
,
orderStatusCode
);
orderGoodsDao
.
batchUpdateOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
(),
orderStatusCode
=
result
.
getOrderStatusCode
();
ids
);
this
.
breakContractSettlementOwner
(
orderNo
,
orderStatusCode
,
param
.
getCancelType
());
log
.
info
(
"执行货主取消订单更改状态"
);
if
(!
orderFeign
.
updateOrderStatusByOrderNo
(
orderNo
,
orderStatusCode
).
succeed
())
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
//1网运单 2普通单
ownerAccountComponent
.
thawOwnerAccountByOrderNo
(
orderNo
);
Integer
invoiceType
=
settlementOwnerDetailDao
.
getInvoiceType
(
orderNo
);
List
<
String
>
childNoList
=
result
.
getChildNoList
();
log
.
info
(
"invoiceType={}"
,
invoiceType
);
for
(
String
childNo
:
childNoList
)
{
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
// 订单取消
orderChildPostService
.
orderCancel
(
childNo
);
if
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
().
equals
(
invoiceType
))
{
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
());
}
else
{
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
NETWORK
.
getCode
());
}
}
thawAccountParam
.
setOrderNo
(
orderNo
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
break
;
case
2
:
//取消未拉运吨数的货单
log
.
info
(
"2:货主取消未拉运吨数的货单"
);
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
return
childNoList
;
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
update
.
setId
(
orderGoods
.
getId
());
if
(
orderGoods
.
getResidueTransportWeight
().
compareTo
(
orderGoods
.
getExtractWeight
())
==
0
)
{
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
());
}
else
{
orderStatusCode
=
OrderEnum
.
Status
.
COMPLETED
.
getCode
();
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
}
if
(
orderGoods
.
getPendingOrderWay
().
equals
(
PendingOrderWayStatusEnum
.
Status
.
DX
.
getCode
()))
{
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
}
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
orderGoodsDao
.
updateEntityByKey
(
update
);
}
}
break
;
/**
* 货主取消未拉运+未到达货源地吨数
case
3
:
//取消未拉运+未到达货源地吨数
* @param orderNo
* @param orderStatusCode
* @return
*/
private
OrderCancelResult
cancelOrderAndOrderGoodsAndOrderChild
(
String
orderNo
,
Integer
orderStatusCode
)
{
log
.
info
(
"3:货主取消未拉运+未到达货源地吨数"
);
log
.
info
(
"3:货主取消未拉运+未到达货源地吨数"
);
String
now
=
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
()).
get
();
List
<
String
>
childNoList
=
new
LinkedList
<>();
List
<
OrderChild
>
orderChildren
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
List
<
OrderChild
>
orderChildren
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
log
.
info
(
"执行货主取消未拉运+未到达货源地吨数,当前运单个数"
+
orderChildren
.
size
());
log
.
info
(
"执行货主取消未拉运+未到达货源地吨数,当前运单个数"
+
orderChildren
.
size
());
for
(
OrderChild
orderChild
:
orderChildren
)
{
for
(
OrderChild
orderChild
:
orderChildren
)
{
...
@@ -176,12 +140,12 @@ public class OrderCancelComponent implements InitializingBean {
...
@@ -176,12 +140,12 @@ public class OrderCancelComponent implements InitializingBean {
log
.
info
(
"childNoList:{}"
,
childNoList
);
log
.
info
(
"childNoList:{}"
,
childNoList
);
orderChildDao
.
batchUpdateOrderChildStatus
(
orderChildDao
.
batchUpdateOrderChildStatus
(
OrderChildEnum
.
Status
.
OWNER_CANCEL
.
getCode
(),
"货主取消"
,
OrderChildEnum
.
Status
.
OWNER_CANCEL
.
getCode
(),
"货主取消"
,
now
,
now
,
childNoList
);
now
,
now
,
childNoList
);
orderChildMap
=
orderChildren
.
stream
()
orderChildMap
=
orderChildren
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
OrderChild:
:
getOrderGoodsNo
));
.
collect
(
Collectors
.
groupingBy
(
OrderChild:
:
getOrderGoodsNo
));
}
}
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
OrderGoods
update
=
new
OrderGoods
();
...
@@ -208,27 +172,64 @@ public class OrderCancelComponent implements InitializingBean {
...
@@ -208,27 +172,64 @@ public class OrderCancelComponent implements InitializingBean {
orderGoodsDao
.
updateEntityByKey
(
update
);
orderGoodsDao
.
updateEntityByKey
(
update
);
}
}
return
OrderCancelResult
.
builder
().
orderStatusCode
(
orderStatusCode
).
childNoList
(
childNoList
).
build
();
break
;
default
:
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"参数有误"
);
}
}
this
.
breakContractSettlementOwner
(
orderNo
,
orderStatusCode
,
param
.
getCancelType
());
/**
* 货主取消未拉运吨数的货单
* @param orderNo
* @param orderStatusCode
* @return
*/
public
OrderCancelResult
cancelOrderAndOrderGoods
(
String
orderNo
,
Integer
orderStatusCode
)
{
log
.
info
(
"2:货主取消未拉运吨数的货单"
);
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
update
.
setId
(
orderGoods
.
getId
());
if
(
orderGoods
.
getResidueTransportWeight
().
compareTo
(
orderGoods
.
getExtractWeight
())
==
0
)
{
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
());
}
else
{
orderStatusCode
=
OrderEnum
.
Status
.
COMPLETED
.
getCode
();
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
}
if
(
orderGoods
.
getPendingOrderWay
().
equals
(
PendingOrderWayStatusEnum
.
Status
.
DX
.
getCode
()))
{
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
}
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
log
.
info
(
"执行货主取消订单更改状态"
);
orderGoodsDao
.
updateEntityByKey
(
update
);
if
(!
orderFeign
.
updateOrderStatusByOrderNo
(
orderNo
,
orderStatusCode
).
succeed
())
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
for
(
String
childNo
:
childNoList
)
{
return
OrderCancelResult
.
builder
().
orderStatusCode
(
orderStatusCode
).
build
();
// 订单取消
orderChildPostService
.
orderCancel
(
childNo
);
}
}
return
childNoList
;
/**
* 货主只取消订单
* @param orderNo
* @param orderStatusCode
* @return
*/
private
OrderCancelResult
cancelOrder
(
String
orderNo
,
Integer
orderStatusCode
)
{
List
<
OrderGoods
>
orderGoodsList
;
log
.
info
(
"1:货主只取消订单"
);
if
(
CollectionUtil
.
isNotEmpty
(
orderChildDao
.
getOrderChildByOrderNo
(
orderNo
)))
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前订单已发生变化,请重新选择取消方式"
);
}
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
if
(
CollectionUtil
.
isNotEmpty
(
orderGoodsList
))
{
List
<
Integer
>
ids
=
new
LinkedList
<>();
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
if
(
orderGoods
.
getPendingOrderWay
().
equals
(
PendingOrderWayStatusEnum
.
Status
.
DX
.
getCode
()))
{
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
}
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
ids
.
add
(
orderGoods
.
getId
());
}
orderGoodsDao
.
batchUpdateOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
(),
ids
);
}
return
OrderCancelResult
.
builder
().
orderStatusCode
(
orderStatusCode
).
build
();
}
}
public
void
backFillTonnage
(
OrderGoods
orderGoods
,
BigDecimal
weight
)
{
public
void
backFillTonnage
(
OrderGoods
orderGoods
,
BigDecimal
weight
)
{
...
@@ -424,6 +425,8 @@ public class OrderCancelComponent implements InitializingBean {
...
@@ -424,6 +425,8 @@ public class OrderCancelComponent implements InitializingBean {
statusCodeMap
.
put
(
OrderEnum
.
Status
.
POST_ORDER
.
getCode
(),
OrderEnum
.
Status
.
POST_ORDER
.
getName
());
statusCodeMap
.
put
(
OrderEnum
.
Status
.
POST_ORDER
.
getCode
(),
OrderEnum
.
Status
.
POST_ORDER
.
getName
());
statusCodeMap
.
put
(
OrderEnum
.
Status
.
ON_ORDER
.
getCode
(),
OrderEnum
.
Status
.
ON_ORDER
.
getName
());
statusCodeMap
.
put
(
OrderEnum
.
Status
.
ON_ORDER
.
getCode
(),
OrderEnum
.
Status
.
ON_ORDER
.
getName
());
statusCodeMap
.
put
(
OrderEnum
.
Status
.
IN_TRANSIT
.
getCode
(),
OrderEnum
.
Status
.
IN_TRANSIT
.
getName
());
statusCodeMap
.
put
(
OrderEnum
.
Status
.
IN_TRANSIT
.
getCode
(),
OrderEnum
.
Status
.
IN_TRANSIT
.
getName
());
cancelTypeMap
.
put
(
1
,
this
::
cancelOrder
);
cancelTypeMap
.
put
(
2
,
this
::
cancelOrderAndOrderGoods
);
cancelTypeMap
.
put
(
3
,
this
::
cancelOrderAndOrderGoodsAndOrderChild
);
}
}
}
}
performance-web/src/main/java/com/clx/performance/component/OwnerAccountComponent.java
0 → 100644
浏览文件 @
c5365ef7
package
com
.
clx
.
performance
.
component
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.performance.enums.OwnerAccountEnum
;
import
com.clx.performance.param.pc.owner.ThawAccountParam
;
import
com.clx.performance.param.pc.owner.UpdateStatusParam
;
import
com.clx.performance.service.OwnerAccountService
;
import
com.clx.performance.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.service.settle.SettlementOwnerService
;
import
com.msl.common.result.Result
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
@Component
@Slf4j
@AllArgsConstructor
public
class
OwnerAccountComponent
{
private
final
SettlementOwnerDetailService
settlementOwnerDetailService
;
private
final
OwnerAccountService
ownerAccountService
;
private
final
SettlementOwnerService
settlementOwnerService
;
private
final
OrderFeign
orderFeign
;
public
void
thawOwnerAccountByOrderNo
(
String
orderNo
)
{
Boolean
flag
=
settlementOwnerDetailService
.
thawAndLockSettlement
(
orderNo
);
if
(
flag
)
{
log
.
info
(
"当前存在在途运单"
);
orderFeign
.
saveOrderSettlementJobRecord
(
orderNo
);
return
;
}
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
Integer
invoiceType
=
settlementOwnerDetailService
.
getInvoiceType
(
orderNo
);
//1 网运单 2 普通单
log
.
info
(
"invoiceType={}"
,
invoiceType
);
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
thawAccountParam
.
setOrderNo
(
orderNo
);
if
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
().
equals
(
invoiceType
))
{
log
.
info
(
"执行普通单解冻"
);
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
());
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
}
else
{
log
.
info
(
"执行网运单解冻"
);
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
NETWORK
.
getCode
());
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
}
//通知结算单锁定
settlementOwnerService
.
updateStatusByOrderNo
(
orderNo
,
1
,
10
,
20
);
}
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
浏览文件 @
c5365ef7
...
@@ -69,6 +69,9 @@ public class RabbitKeyConstants {
...
@@ -69,6 +69,9 @@ public class RabbitKeyConstants {
public
static
final
String
ORDER_CHILD_SYNC_TRANSPORT_ROUTE_KEY
=
"clx-order.order.child.sync.transport.route.key"
;
public
static
final
String
ORDER_CHILD_SYNC_TRANSPORT_ROUTE_KEY
=
"clx-order.order.child.sync.transport.route.key"
;
public
static
final
String
ORDER_THAW_SETTLEMENT_LAZY_EXCHANGE
=
"clx-order.thaw.settlement.lazy.exchange"
;
public
static
final
String
ORDER_THAW_SETTLEMENT_LAZY_ROUTE_KEY
=
"clx-order.thaw.settlement.lazy.route.key"
;
// 预付运费和保证金 自动冻结 触发消息队列
// 预付运费和保证金 自动冻结 触发消息队列
public
static
final
String
FREEZE_TRIGGER_EXCHANGE
=
"clx-order.freeze.trigger.exchange"
;
public
static
final
String
FREEZE_TRIGGER_EXCHANGE
=
"clx-order.freeze.trigger.exchange"
;
...
...
performance-web/src/main/java/com/clx/performance/controller/feign/OrderCancelFeignController.java
浏览文件 @
c5365ef7
...
@@ -2,7 +2,6 @@ package com.clx.performance.controller.feign;
...
@@ -2,7 +2,6 @@ package com.clx.performance.controller.feign;
import
com.clx.performance.param.pc.OrderCancelFeignParam
;
import
com.clx.performance.param.pc.OrderCancelFeignParam
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.service.OrderCancelService
;
import
com.clx.performance.service.OrderCancelService
;
import
com.msl.common.result.Result
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
...
@@ -26,14 +25,9 @@ public class OrderCancelFeignController {
...
@@ -26,14 +25,9 @@ public class OrderCancelFeignController {
private
final
OrderCancelService
orderCancelService
;
private
final
OrderCancelService
orderCancelService
;
@ApiOperation
(
value
=
"承运
单
发起订单取消货主端进行确认"
,
notes
=
"<br>By:胡宇帆"
)
@ApiOperation
(
value
=
"承运
端
发起订单取消货主端进行确认"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/orderCancel"
)
@PostMapping
(
"/orderCancel"
)
public
Result
<
Object
>
orderCancel
(
@RequestBody
OrderCancelFeignParam
param
)
{
public
Result
<
Object
>
orderCancel
(
@RequestBody
OrderCancelFeignParam
param
)
{
// OrderCancelParam cancelParam = new OrderCancelParam();
// cancelParam.setOrderNo(param.getOrderNo());
// cancelParam.setCancelType(3);
// cancelParam.setCreateByType(1);
// orderCancelService.platformCancelOrderPrePC(cancelParam);
orderCancelService
.
ownerConfirmCancelOrderPre
(
param
.
getOrderNo
());
orderCancelService
.
ownerConfirmCancelOrderPre
(
param
.
getOrderNo
());
return
Result
.
ok
();
return
Result
.
ok
();
}
}
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/OrderCancelController.java
浏览文件 @
c5365ef7
...
@@ -34,12 +34,12 @@ public class OrderCancelController {
...
@@ -34,12 +34,12 @@ public class OrderCancelController {
private
final
OrderCancelService
orderCancelService
;
private
final
OrderCancelService
orderCancelService
;
@ApiOperation
(
value
=
"承运端取消订单"
,
notes
=
"<br>By:胡宇帆"
)
//
@ApiOperation(value = "承运端取消订单", notes = "<br>By:胡宇帆")
@PostMapping
(
"/platformCancelOrderPre"
)
//
@PostMapping("/platformCancelOrderPre")
public
Result
<
Object
>
platformCancelOrderPre
(
@RequestBody
OrderCancelParam
param
)
{
//
public Result<Object> platformCancelOrderPre(@RequestBody OrderCancelParam param) {
orderCancelService
.
platformCancelOrderPre
(
param
);
//
orderCancelService.platformCancelOrderPre(param);
return
Result
.
ok
();
//
return Result.ok();
}
//
}
@ApiOperation
(
value
=
"货主端取消订单"
,
notes
=
"<br>By:胡宇帆"
)
@ApiOperation
(
value
=
"货主端取消订单"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/ownCancelOrderPre"
)
@PostMapping
(
"/ownCancelOrderPre"
)
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/transport/TransportSyncController.java
浏览文件 @
c5365ef7
...
@@ -56,6 +56,9 @@ public class TransportSyncController {
...
@@ -56,6 +56,9 @@ public class TransportSyncController {
private
final
SettlementOwnerService
settlementOwnerService
;
private
final
SettlementOwnerService
settlementOwnerService
;
private
final
OrderChildSyncTransportRecordService
childSyncTransportRecordService
;
/**
/**
* 支付结果
* 支付结果
* @param param
* @param param
...
@@ -107,7 +110,13 @@ public class TransportSyncController {
...
@@ -107,7 +110,13 @@ public class TransportSyncController {
return
ThirdComponent
.
encrypt
(
JSON
.
toJSONString
(
Result
.
ok
()));
return
ThirdComponent
.
encrypt
(
JSON
.
toJSONString
(
Result
.
ok
()));
}
}
@ApiOperation
(
value
=
"addOrderChildSyncTransportRecord"
,
notes
=
"<br>By:胡宇帆"
)
@GetMapping
(
"/addOrderChildSyncTransportRecord"
)
public
Result
<
Object
>
syncTest
(
@RequestParam
(
"id"
)
Integer
id
)
{
SettlementDriverDetail
driverDetail
=
settlementDriverDetailDao
.
getEntityByKey
(
id
).
get
();
childSyncTransportRecordService
.
addOrderChildSyncTransportRecord
(
driverDetail
);
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"syncTest"
,
notes
=
"<br>By:胡宇帆"
)
@ApiOperation
(
value
=
"syncTest"
,
notes
=
"<br>By:胡宇帆"
)
@GetMapping
(
"/syncTest"
)
@GetMapping
(
"/syncTest"
)
...
...
performance-web/src/main/java/com/clx/performance/dto/OrderCancelResult.java
0 → 100644
浏览文件 @
c5365ef7
package
com
.
clx
.
performance
.
dto
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.util.List
;
@Data
@Builder
public
class
OrderCancelResult
{
private
Integer
orderStatusCode
;
private
List
<
String
>
childNoList
;
}
performance-web/src/main/java/com/clx/performance/service/OrderCancelService.java
浏览文件 @
c5365ef7
...
@@ -28,10 +28,10 @@ public interface OrderCancelService {
...
@@ -28,10 +28,10 @@ public interface OrderCancelService {
* 平台取消订单前置(只修改订单状态)
* 平台取消订单前置(只修改订单状态)
* @param param
* @param param
*/
*/
void
platformCancelOrderPre
(
OrderCancelParam
param
);
//
void platformCancelOrderPre(OrderCancelParam param);
/**
/**
* 修改订单状态后执行
规划
吨数
* 修改订单状态后执行
归还
吨数
* @param param
* @param param
*/
*/
void
orderCancelProcess
(
OrderCancelParam
param
);
void
orderCancelProcess
(
OrderCancelParam
param
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderCancelServiceImpl.java
浏览文件 @
c5365ef7
...
@@ -13,6 +13,7 @@ import com.clx.order.vo.feign.FeignOrderVO;
...
@@ -13,6 +13,7 @@ import com.clx.order.vo.feign.FeignOrderVO;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.component.GoodsOrderTruckRecordComponent
;
import
com.clx.performance.component.GoodsOrderTruckRecordComponent
;
import
com.clx.performance.component.OrderCancelComponent
;
import
com.clx.performance.component.OrderCancelComponent
;
import
com.clx.performance.component.OwnerAccountComponent
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
...
@@ -82,14 +83,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -82,14 +83,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private
final
OwnerInfoService
ownerInfoService
;
private
final
OwnerInfoService
ownerInfoService
;
private
final
OwnerAccountComponent
ownerAccountComponent
;
private
final
SettlementOwnerDetailDao
settlementOwnerDetailDao
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
ownerConfirmCancelOrderPre
(
String
orderNo
)
{
public
void
ownerConfirmCancelOrderPre
(
String
orderNo
)
{
String
now
=
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
()
,
"yyyy-MM-dd HH:mm:ss"
).
get
();
String
now
=
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
()).
get
();
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
Integer
orderStatusCode
=
OrderEnum
.
Status
.
CANCELED
.
getCode
();
Integer
orderStatusCode
=
OrderEnum
.
Status
.
CANCELED
.
getCode
();
if
(
CollectionUtil
.
isEmpty
(
orderGoodsList
))
{
if
(
CollectionUtil
.
isEmpty
(
orderGoodsList
))
{
...
@@ -98,24 +98,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -98,24 +98,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if
(!
result
.
succeed
())
{
if
(!
result
.
succeed
())
{
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
//1网运单 2普通单
Integer
invoiceType
=
settlementOwnerDetailDao
.
getInvoiceType
(
orderNo
);
log
.
info
(
"invoiceType={}"
,
invoiceType
);
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
if
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
().
equals
(
invoiceType
))
{
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
());
}
else
{
}
else
{
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
NETWORK
.
getCode
());
}
thawAccountParam
.
setOrderNo
(
orderNo
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
this
.
ownerConfirmCancelProcess
(
orderNo
);
return
;
}
List
<
OrderChild
>
orderChildrenList
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
null
);
List
<
OrderChild
>
orderChildrenList
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
null
);
if
(
CollectionUtil
.
isEmpty
(
orderChildrenList
))
{
if
(
CollectionUtil
.
isEmpty
(
orderChildrenList
))
{
...
@@ -131,21 +114,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -131,21 +114,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
orderGoodsDao
.
batchUpdateOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
(),
orderGoodsDao
.
batchUpdateOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
(),
ids
);
ids
);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
//1网运单 2普通单
Integer
invoiceType
=
settlementOwnerDetailDao
.
getInvoiceType
(
orderNo
);
log
.
info
(
"invoiceType={}"
,
invoiceType
);
ThawAccountParam
thawAccountParam
=
new
ThawAccountParam
();
if
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
().
equals
(
invoiceType
))
{
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
ORDINARY
.
getCode
());
}
else
{
thawAccountParam
.
setOrderType
(
OwnerAccountEnum
.
OrderChildTypeStatus
.
NETWORK
.
getCode
());
}
thawAccountParam
.
setOrderNo
(
orderNo
);
log
.
info
(
"执行解冻账户,参数:{}"
,
JSONUtil
.
parse
(
thawAccountParam
));
ownerAccountService
.
ownerAccountThaw
(
thawAccountParam
);
}
else
{
}
else
{
List
<
OrderChild
>
arriveSendChildList
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
List
<
OrderChild
>
arriveSendChildList
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
orderStatusCode
=
OrderEnum
.
Status
.
COMPLETED
.
getCode
();
orderStatusCode
=
OrderEnum
.
Status
.
COMPLETED
.
getCode
();
...
@@ -207,14 +175,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -207,14 +175,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
}
}
}
Result
<
Object
>
result
=
orderFeign
.
updateOrderStatusByOrderNo
(
orderNo
,
orderStatusCode
);
Result
<
Object
>
result
=
orderFeign
.
updateOrderStatusByOrderNo
(
orderNo
,
orderStatusCode
);
if
(!
result
.
succeed
())
{
if
(!
result
.
succeed
())
{
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
//进行解冻账户
ownerAccountComponent
.
thawOwnerAccountByOrderNo
(
orderNo
);
//开始执行订单取消吨数回填
this
.
ownerConfirmCancelProcess
(
orderNo
);
this
.
ownerConfirmCancelProcess
(
orderNo
);
}
}
@Override
@Override
...
@@ -332,9 +302,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -332,9 +302,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"远程调用更新订单余量失败"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"远程调用更新订单余量失败"
);
}
}
if
(!
orderFeign
.
saveOrderSettlementJobRecord
(
orderNo
).
succeed
())
{
//
if (!orderFeign.saveOrderSettlementJobRecord(orderNo).succeed()) {
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"货主取消订单失败,原因:远程调用结算单锁定失败"
);
//
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用结算单锁定失败");
}
//
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
e
.
getMessage
());
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
e
.
getMessage
());
...
@@ -349,6 +319,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -349,6 +319,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
ownerCancelOrderPre
(
OrderCancelParam
param
)
{
public
void
ownerCancelOrderPre
(
OrderCancelParam
param
)
{
String
orderNo
=
param
.
getOrderNo
();
String
orderNo
=
param
.
getOrderNo
();
List
<
String
>
childNoList
=
orderCancelComponent
.
ownerProcess
(
param
);
List
<
String
>
childNoList
=
orderCancelComponent
.
ownerProcess
(
param
);
param
.
setChildNoList
(
childNoList
);
param
.
setChildNoList
(
childNoList
);
OrderCancelReasonParam
orderCancelReasonParam
=
new
OrderCancelReasonParam
();
OrderCancelReasonParam
orderCancelReasonParam
=
new
OrderCancelReasonParam
();
...
@@ -357,11 +328,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -357,11 +328,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
orderCancelReasonParam
.
setCreateNo
(
loginUserInfo
.
getUserNo
());
orderCancelReasonParam
.
setCreateNo
(
loginUserInfo
.
getUserNo
());
orderCancelReasonParam
.
setCreateName
(
loginUserInfo
.
getUserName
());
orderCancelReasonParam
.
setCreateName
(
loginUserInfo
.
getUserName
());
orderFeign
.
orderCancelReason
(
orderCancelReasonParam
);
orderFeign
.
orderCancelReason
(
orderCancelReasonParam
);
//TODO 注意判断普通单还是网运单 普通单类型 2 网运单 1
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
param
).
toString
().
getBytes
()).
build
();
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
param
).
toString
().
getBytes
()).
build
();
...
@@ -375,131 +343,131 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -375,131 +343,131 @@ public class OrderCancelServiceImpl implements OrderCancelService {
*
*
* @param param
* @param param
*/
*/
@Override
//
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
//
@Transactional(rollbackFor = Exception.class)
public
void
platformCancelOrderPre
(
OrderCancelParam
param
)
{
//
public void platformCancelOrderPre(OrderCancelParam param) {
String
orderNo
=
param
.
getOrderNo
();
//
String orderNo = param.getOrderNo();
List
<
OrderGoods
>
orderGoodsList
=
null
;
//
List<OrderGoods> orderGoodsList = null;
Integer
orderStatusCode
=
OrderEnum
.
Status
.
CANCELED
.
getCode
();
//
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
String
now
=
DateUtils
.
formatDateTime
(
LocalDateTime
.
now
(),
"yyyy-MM-dd HH:mm:ss"
).
get
();
// String now = DateUtils.formatDateTime(LocalDateTime.now()
).get();
switch
(
param
.
getCancelType
())
{
//
switch (param.getCancelType()) {
case
1
:
//单纯取消订单
//
case 1: //单纯取消订单
if
(
CollectionUtil
.
isNotEmpty
(
orderChildDao
.
getOrderChildByOrderNo
(
orderNo
)))
{
//
if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) {
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前订单已发生变化,请重新选择取消方式"
);
//
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
//
}
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
//
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
//
if
(
CollectionUtil
.
isNotEmpty
(
orderGoodsList
))
{
//
if (CollectionUtil.isNotEmpty(orderGoodsList)) {
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())) {
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
//
orderGoodsTruckBindService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
//
}
ids
.
add
(
orderGoods
.
getId
());
//
ids.add(orderGoods.getId());
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
//
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo());
//
}
//
}
orderGoodsDao
.
batchUpdateOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
(),
//
orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(),
ids
);
//
ids);
}
//
}
break
;
//
break;
case
2
:
//取消未拉运吨数的货单
//
case 2: //取消未拉运吨数的货单
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
//
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
//
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
//
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods
update
=
new
OrderGoods
();
//
OrderGoods update = new OrderGoods();
update
.
setId
(
orderGoods
.
getId
());
//
update.setId(orderGoods.getId());
//提取和剩余吨数一样,代表一直没人拉
//
//提取和剩余吨数一样,代表一直没人拉
if
(
orderGoods
.
getResidueTransportWeight
().
compareTo
(
orderGoods
.
getExtractWeight
())
==
0
)
{
//
if (orderGoods.getResidueTransportWeight().compareTo(orderGoods.getExtractWeight()) == 0) {
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
());
//
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
}
else
{
//
} else {
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
()))
{
//
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
//
orderGoodsTruckBindService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
//
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo());
}
//
}
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
//
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo());
//
orderGoodsDao
.
updateEntityByKey
(
update
);
//
orderGoodsDao.updateEntityByKey(update);
}
//
}
break
;
//
break;
//
case
3
:
//取消未拉运+未到达货源地吨数
//
case 3: //取消未拉运+未到达货源地吨数
List
<
OrderChild
>
orderChildren
=
orderChildDao
.
selectResidueWeight
(
orderNo
,
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
//
List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
if
(
CollectionUtil
.
isEmpty
(
orderChildren
))
{
//
if (CollectionUtil.isEmpty(orderChildren)) {
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前订单已发生变化,请重新选择取消方式"
);
//
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
//
}
List
<
String
>
childNoList
=
new
LinkedList
<>();
//
List<String > childNoList = new LinkedList<>();
for
(
OrderChild
orderChild
:
orderChildren
)
{
//
for (OrderChild orderChild : orderChildren) {
//释放车辆
//
//释放车辆
driverService
.
updateOrderStatus
(
orderChild
.
getDriverUserNo
(),
DriverInfoEnum
.
DriverStatus
.
NO
.
getCode
(),
orderChild
.
getTruckId
(),
1
);
//
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
childNoList
.
add
(
orderChild
.
getChildNo
());
//
childNoList.add(orderChild.getChildNo());
}
//
}
if
(
CollectionUtil
.
isNotEmpty
(
childNoList
))
{
//
if (CollectionUtil.isNotEmpty(childNoList)) {
orderChildDao
.
batchUpdateOrderChildStatus
(
//
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum
.
Status
.
OWNER_CANCEL
.
getCode
(),
"平台取消"
,
//
OrderChildEnum.Status.OWNER_CANCEL.getCode(), "平台取消",
now
,
now
,
childNoList
);
//
now, now, childNoList);
}
//
}
//
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
//
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map
<
String
,
List
<
OrderChild
>>
orderChildMap
=
orderChildren
.
stream
()
//
Map<String, List<OrderChild>> orderChildMap = orderChildren.stream()
.
collect
(
Collectors
.
groupingBy
(
OrderChild:
:
getOrderGoodsNo
));
//
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
//
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods
update
=
new
OrderGoods
();
//
OrderGoods update = new OrderGoods();
update
.
setId
(
orderGoods
.
getId
());
//
update.setId(orderGoods.getId());
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 = orderChildMap.get(orderGoods.getOrderGoodsNo())
.
stream
().
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
//
.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
//当前产生可取消运单的吨数加货单剩余吨数如果等于货单提取的吨数,那么就是已取消
//
//当前产生可取消运单的吨数加货单剩余吨数如果等于货单提取的吨数,那么就是已取消
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 {
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
()))
{
//
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindService
.
updateCancelTruckBind
(
orderGoods
.
getOrderGoodsNo
());
//
orderGoodsTruckBindService.updateCancelTruckBind(orderGoods.getOrderGoodsNo());
}
//
}
goodsOrderTruckRecordComponent
.
deleteTruckRecord
(
orderGoods
.
getOrderGoodsNo
());
//
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo());
//
orderGoodsDao
.
updateEntityByKey
(
update
);
//
orderGoodsDao.updateEntityByKey(update);
}
//
}
//
break
;
//
break;
//
default
:
//
default:
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"参数有误"
);
//
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数有误");
//
}
//
}
//
log
.
info
(
"记录订单取消原因"
);
//
log.info("记录订单取消原因");
OrderCancelReasonParam
orderCancelReasonParam
=
new
OrderCancelReasonParam
();
//
OrderCancelReasonParam orderCancelReasonParam = new OrderCancelReasonParam();
orderCancelReasonParam
.
setOrderNo
(
orderNo
);
//
orderCancelReasonParam.setOrderNo(orderNo);
orderCancelReasonParam
.
setReason
(
param
.
getCancelReason
());
//
orderCancelReasonParam.setReason(param.getCancelReason());
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
//
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
orderCancelReasonParam
.
setCreateNo
(
loginUserInfo
.
getUserNo
());
//
orderCancelReasonParam.setCreateNo(loginUserInfo.getUserNo());
orderCancelReasonParam
.
setCreateName
(
loginUserInfo
.
getUserName
());
//
orderCancelReasonParam.setCreateName(loginUserInfo.getUserName());
orderFeign
.
orderCancelReason
(
orderCancelReasonParam
);
//
orderFeign.orderCancelReason(orderCancelReasonParam);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
//
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
//
log
.
info
(
"执行订单状态更改"
);
//
log.info("执行订单状态更改");
if
(!
orderFeign
.
updateOrderStatusByOrderNo
(
orderNo
,
orderStatusCode
).
succeed
())
{
//
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"货主取消订单失败,原因:远程调用取消订单失败"
);
//
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
//
}
log
.
info
(
"执行承运端订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
//
log.info("执行承运端订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
//
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
param
).
toString
().
getBytes
()).
build
();
//
Message message = MessageBuilder.withBody(JSONUtil.parse(param).toString().getBytes()).build();
rabbitTemplate
.
send
(
//
rabbitTemplate.send(
RabbitKeyConstants
.
ORDER_CANCEL_EXCHANGE
,
RabbitKeyConstants
.
ORDER_CANCEL_ROUTE_KEY
,
message
//
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
//
);
}
//
}
/**
/**
* 执行订单取消后归还吨数
* 执行订单取消后归还吨数
...
@@ -523,18 +491,90 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -523,18 +491,90 @@ public class OrderCancelServiceImpl implements OrderCancelService {
List
<
OrderGoods
>
orderGoodsList
=
null
;
List
<
OrderGoods
>
orderGoodsList
=
null
;
switch
(
param
.
getCancelType
())
{
switch
(
param
.
getCancelType
())
{
case
1
:
//单纯取消订单及货单
case
1
:
//单纯取消订单及货单
orderGoodsList
=
getOrderGoods
(
orderNo
,
orderInfoFeign
,
truckDemandMap
,
vehicleUsageMap
,
rollbackOrderWeightParam
,
truckDemand
);
break
;
case
2
:
//取消未拉运吨数的货单及订单
orderGoodsList
=
getGoods
(
orderNo
,
orderInfoFeign
,
truckDemandMap
,
vehicleUsageMap
,
rollbackOrderWeightParam
,
truckDemand
);
break
;
case
3
:
//取消未拉运+未到达货源地吨数
orderGoodsList
=
getOrderGoods
(
param
,
orderNo
,
orderInfoFeign
,
truckDemandMap
,
vehicleUsageMap
,
rollbackOrderWeightParam
,
truckDemand
);
break
;
default
:
return
;
}
if
(!
orderFeign
.
rollbackOrderWeight
(
rollbackOrderWeightParam
).
succeed
())
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"远程调用更新订单余量失败"
);
}
// if (!orderFeign.saveOrderSettlementJobRecord(orderNo).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用结算单锁定失败");
// }
//订单取消恢复货单的剩余吨数为0
orderGoodsService
.
batchUpdateResidueWeight
(
orderGoodsList
);
//触发自动冻结的mq消费逻辑
triggerAutoFreeze
(
orderInfoFeign
.
getOwnerUserNo
(),
orderNo
);
}
private
List
<
OrderGoods
>
getOrderGoods
(
OrderCancelParam
param
,
String
orderNo
,
FeignOrderVO
orderInfoFeign
,
Map
<
Integer
,
BigDecimal
>
truckDemandMap
,
Map
<
Integer
,
BigDecimal
>
vehicleUsageMap
,
RollbackOrderWeightParam
rollbackOrderWeightParam
,
Integer
truckDemand
)
{
List
<
OrderGoods
>
orderGoodsList
;
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
Map
<
String
,
List
<
OrderChild
>>
orderChildMap
=
new
HashMap
<>();
if
(
CollectionUtil
.
isNotEmpty
(
param
.
getChildNoList
()))
{
List
<
OrderChild
>
orderChildren
=
orderChildDao
.
selectInOrderChildNoList
(
param
.
getChildNoList
());
orderChildMap
=
orderChildren
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrderChild:
:
getOrderGoodsNo
));
}
if
(!
orderInfoFeign
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
if
(!
orderInfoFeign
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
update
.
setId
(
orderGoods
.
getId
());
truckDemandMap
.
put
(
orderGoods
.
getTruckDemand
(),
truckDemandMap
.
put
(
orderGoods
.
getTruckDemand
(),
truckDemandMap
.
get
(
orderGoods
.
getTruckDemand
())
truckDemandMap
.
get
(
orderGoods
.
getTruckDemand
())
.
add
(
orderGoods
.
getResidueTransportWeight
()));
.
add
(
orderGoods
.
getResidueTransportWeight
()));
if
(
CollectionUtil
.
isNotEmpty
(
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
())))
{
BigDecimal
childSum
=
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
()).
stream
()
.
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
update
.
setAlreadyTransportWeight
(
orderGoods
.
getAlreadyTransportWeight
()
.
subtract
(
childSum
)
);
update
.
setResidueTransportWeight
(
orderGoods
.
getResidueTransportWeight
().
add
(
childSum
));
truckDemandMap
.
put
(
orderGoods
.
getTruckDemand
(),
truckDemandMap
.
get
(
orderGoods
.
getTruckDemand
())
.
add
(
childSum
));
orderGoodsDao
.
updateEntityByKey
(
update
);
}
}
}
}
else
{
}
else
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
update
.
setId
(
orderGoods
.
getId
());
vehicleUsageMap
.
put
(
orderGoods
.
getVehicleUsage
(),
vehicleUsageMap
.
put
(
orderGoods
.
getVehicleUsage
(),
vehicleUsageMap
.
get
(
orderGoods
.
getVehicleUsage
())
vehicleUsageMap
.
get
(
orderGoods
.
getVehicleUsage
())
.
add
(
orderGoods
.
getResidueTransportWeight
()));
.
add
(
orderGoods
.
getResidueTransportWeight
()));
if
(
CollectionUtil
.
isNotEmpty
(
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
())))
{
BigDecimal
childSum
=
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
()).
stream
()
.
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
update
.
setAlreadyTransportWeight
(
orderGoods
.
getAlreadyTransportWeight
()
.
subtract
(
childSum
)
);
update
.
setResidueTransportWeight
(
orderGoods
.
getResidueTransportWeight
().
add
(
childSum
));
vehicleUsageMap
.
put
(
orderGoods
.
getTruckDemand
(),
vehicleUsageMap
.
get
(
orderGoods
.
getTruckDemand
())
.
add
(
childSum
));
orderGoodsDao
.
updateEntityByKey
(
update
);
}
}
}
}
}
//归还吨数
//归还吨数
...
@@ -559,8 +599,11 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -559,8 +599,11 @@ public class OrderCancelServiceImpl implements OrderCancelService {
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
platformResidueSum
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
platformResidueSum
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
ownResidueSum
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
ownResidueSum
);
}
}
break
;
return
orderGoodsList
;
case
2
:
//取消未拉运吨数的货单及订单
}
private
List
<
OrderGoods
>
getGoods
(
String
orderNo
,
FeignOrderVO
orderInfoFeign
,
Map
<
Integer
,
BigDecimal
>
truckDemandMap
,
Map
<
Integer
,
BigDecimal
>
vehicleUsageMap
,
RollbackOrderWeightParam
rollbackOrderWeightParam
,
Integer
truckDemand
)
{
List
<
OrderGoods
>
orderGoodsList
;
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
if
(!
orderInfoFeign
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
if
(!
orderInfoFeign
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
...
@@ -598,64 +641,23 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -598,64 +641,23 @@ public class OrderCancelServiceImpl implements OrderCancelService {
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
platformResidueSum
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
platformResidueSum
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
ownResidueSum
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
ownResidueSum
);
}
}
break
;
return
orderGoodsList
;
case
3
:
//取消未拉运+未到达货源地吨数
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
Map
<
String
,
List
<
OrderChild
>>
orderChildMap
=
new
HashMap
<>();
if
(
CollectionUtil
.
isNotEmpty
(
param
.
getChildNoList
()))
{
List
<
OrderChild
>
orderChildren
=
orderChildDao
.
selectInOrderChildNoList
(
param
.
getChildNoList
());
orderChildMap
=
orderChildren
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrderChild:
:
getOrderGoodsNo
));
}
}
private
List
<
OrderGoods
>
getOrderGoods
(
String
orderNo
,
FeignOrderVO
orderInfoFeign
,
Map
<
Integer
,
BigDecimal
>
truckDemandMap
,
Map
<
Integer
,
BigDecimal
>
vehicleUsageMap
,
RollbackOrderWeightParam
rollbackOrderWeightParam
,
Integer
truckDemand
)
{
List
<
OrderGoods
>
orderGoodsList
;
orderGoodsList
=
orderGoodsDao
.
getOrderGoodsListByOrderNo
(
orderNo
);
if
(!
orderInfoFeign
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
if
(!
orderInfoFeign
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
update
.
setId
(
orderGoods
.
getId
());
truckDemandMap
.
put
(
orderGoods
.
getTruckDemand
(),
truckDemandMap
.
put
(
orderGoods
.
getTruckDemand
(),
truckDemandMap
.
get
(
orderGoods
.
getTruckDemand
())
truckDemandMap
.
get
(
orderGoods
.
getTruckDemand
())
.
add
(
orderGoods
.
getResidueTransportWeight
()));
.
add
(
orderGoods
.
getResidueTransportWeight
()));
if
(
CollectionUtil
.
isNotEmpty
(
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
())))
{
BigDecimal
childSum
=
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
()).
stream
()
.
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
update
.
setAlreadyTransportWeight
(
orderGoods
.
getAlreadyTransportWeight
()
.
subtract
(
childSum
)
);
update
.
setResidueTransportWeight
(
orderGoods
.
getResidueTransportWeight
().
add
(
childSum
));
truckDemandMap
.
put
(
orderGoods
.
getTruckDemand
(),
truckDemandMap
.
get
(
orderGoods
.
getTruckDemand
())
.
add
(
childSum
));
orderGoodsDao
.
updateEntityByKey
(
update
);
}
}
}
}
else
{
}
else
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
for
(
OrderGoods
orderGoods
:
orderGoodsList
)
{
OrderGoods
update
=
new
OrderGoods
();
update
.
setId
(
orderGoods
.
getId
());
vehicleUsageMap
.
put
(
orderGoods
.
getVehicleUsage
(),
vehicleUsageMap
.
put
(
orderGoods
.
getVehicleUsage
(),
vehicleUsageMap
.
get
(
orderGoods
.
getVehicleUsage
())
vehicleUsageMap
.
get
(
orderGoods
.
getVehicleUsage
())
.
add
(
orderGoods
.
getResidueTransportWeight
()));
.
add
(
orderGoods
.
getResidueTransportWeight
()));
if
(
CollectionUtil
.
isNotEmpty
(
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
())))
{
BigDecimal
childSum
=
orderChildMap
.
get
(
orderGoods
.
getOrderGoodsNo
()).
stream
()
.
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
update
.
setAlreadyTransportWeight
(
orderGoods
.
getAlreadyTransportWeight
()
.
subtract
(
childSum
)
);
update
.
setResidueTransportWeight
(
orderGoods
.
getResidueTransportWeight
().
add
(
childSum
));
vehicleUsageMap
.
put
(
orderGoods
.
getTruckDemand
(),
vehicleUsageMap
.
get
(
orderGoods
.
getTruckDemand
())
.
add
(
childSum
));
orderGoodsDao
.
updateEntityByKey
(
update
);
}
}
}
}
}
//归还吨数
//归还吨数
...
@@ -680,27 +682,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -680,27 +682,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
platformResidueSum
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
platformResidueSum
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
ownResidueSum
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
ownResidueSum
);
}
}
break
;
return
orderGoodsList
;
default
:
return
;
}
if
(!
orderFeign
.
rollbackOrderWeight
(
rollbackOrderWeightParam
).
succeed
())
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"远程调用更新订单余量失败"
);
}
if
(!
orderFeign
.
saveOrderSettlementJobRecord
(
orderNo
).
succeed
())
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"货主取消订单失败,原因:远程调用结算单锁定失败"
);
}
//订单取消恢复货单的剩余吨数为0
orderGoodsService
.
batchUpdateResidueWeight
(
orderGoodsList
);
//触发自动冻结的mq消费逻辑
triggerAutoFreeze
(
orderInfoFeign
.
getOwnerUserNo
(),
orderNo
);
}
}
//订单取消增加自动冻结的消息触发
//订单取消增加自动冻结的消息触发
...
@@ -722,6 +704,11 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -722,6 +704,11 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
}
}
/**
* 客服取消订单
* @param orderChildNo
* @param remark
*/
@Override
@Override
public
void
artificialCancelOrder
(
String
orderChildNo
,
String
remark
)
{
public
void
artificialCancelOrder
(
String
orderChildNo
,
String
remark
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OwnerAccountServiceImpl.java
浏览文件 @
c5365ef7
...
@@ -1213,7 +1213,4 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
...
@@ -1213,7 +1213,4 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
}
}
}
}
public
static
void
main
(
String
[]
args
)
{
}
}
}
performance-web/src/main/java/com/clx/performance/strategy/GoodsOrderStrategy.java
浏览文件 @
c5365ef7
...
@@ -44,13 +44,13 @@ public abstract class GoodsOrderStrategy {
...
@@ -44,13 +44,13 @@ public abstract class GoodsOrderStrategy {
if
(
Objects
.
equals
(
orderInfo
.
getStopFlag
(),
OrderStopEnum
.
Status
.
YES
.
getCode
()))
{
if
(
Objects
.
equals
(
orderInfo
.
getStopFlag
(),
OrderStopEnum
.
Status
.
YES
.
getCode
()))
{
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"订单已暂停,无法进行提量"
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"订单已暂停,无法进行提量"
);
}
}
//
String transportBeginTime = orderInfo.getTransportBeginTime();
String
transportBeginTime
=
orderInfo
.
getTransportBeginTime
();
//
for (OrderGoodsChildParams param : orderGoodsParams.getOrderGoodsChildParams()) {
for
(
OrderGoodsChildParams
param
:
orderGoodsParams
.
getOrderGoodsChildParams
())
{
//
String pendingOrderTime = param.getPendingOrderTime();
String
pendingOrderTime
=
param
.
getPendingOrderTime
();
//
if (DateUtils.parseDateTime(pendingOrderTime).get().isBefore(DateUtils.parseDateTime(transportBeginTime).get())) {
if
(
DateUtils
.
parseDateTime
(
pendingOrderTime
).
get
().
isBefore
(
DateUtils
.
parseDateTime
(
transportBeginTime
).
get
()))
{
//
throw new ServiceSystemException(ResultEnum.DATA_ERROR, "挂单时间不能早于拉运开始时间");
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"挂单时间不能早于拉运开始时间"
);
//
}
}
//
}
}
//多个定向单不允许车辆重复
//多个定向单不允许车辆重复
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
=
orderGoodsParams
.
getOrderGoodsChildParams
();
Set
<
String
>
set
=
new
HashSet
<>();
Set
<
String
>
set
=
new
HashSet
<>();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论