Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
571de275
提交
571de275
authored
12月 11, 2023
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改逻辑
上级
671de885
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
72 行增加
和
81 行删除
+72
-81
SettlementServiceImpl.java
...erformance/service/impl/settle/SettlementServiceImpl.java
+72
-81
没有找到文件。
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementServiceImpl.java
浏览文件 @
571de275
...
@@ -75,99 +75,90 @@ public class SettlementServiceImpl implements SettlementService {
...
@@ -75,99 +75,90 @@ public class SettlementServiceImpl implements SettlementService {
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
// 开票金额
settlementOwnerDetail
.
setInvoiceFreight
(
invoiceFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
// 结算金额
settlementOwnerDetail
.
setSettlementFreight
(
settlementFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO
.
getCode
());
if
(
settlementOwnerDetail
.
getInvoiceType
()
!=
null
)
{
return
;}
if
(
settlementOwnerDetail
.
getInvoiceType
()
!=
null
)
{
return
;}
//设置司机预付运费标示
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
if
(
settlementOwnerDetail
.
getPrepayFreight
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
//是否通过风控,调用网络货运
settlementDriverDetail
.
setPrepayFreightFlag
(
1
);
ThirdOrderChildBrokerParam
param
=
transportSyncService
.
generateOrderChildSync
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
}
else
{
HttpDTO
httpDTOResult
=
transportFeignService
.
orderChildSync
(
param
);
settlementDriverDetail
.
setPrepayFreightFlag
(
0
);
String
decrypt
=
ThirdComponent
.
decrypt
(
httpDTOResult
.
getData
());
}
OrderChildSyncDTO
bean
=
JSONUtil
.
toBean
(
decrypt
,
OrderChildSyncDTO
.
class
);
log
.
info
(
"OrderChildSyncDTO信息为:{}"
,
JSONUtil
.
parse
(
bean
));
if
(
bean
.
getCode
()
==
0
)
{
Integer
status
=
bean
.
getData
().
getStatus
();
// 货主结算金额<0走普通单
BigDecimal
ans
=
settlementOwnerDetail
.
getFreight
().
subtract
(
settlementOwnerDetail
.
getLossFreight
());
if
(
settlementOwnerDetail
.
getSettlementFreight
().
compareTo
(
BigDecimal
.
ZERO
)
<
0
){
if
(
status
==
1
)
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
();
//通过风控
settlementDriverDetail
.
setPrepayFreightFlag
(
0
);
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
}
else
{
List
<
OwnerRunningWaterRecord
>
runningWaterRecordList
=
ownerRunningWaterRecordDao
.
getOwnerRunningWaterRecord
(
orderChild
.
getOrderNo
());
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
BigDecimal
frozen
=
runningWaterRecordList
.
stream
().
filter
(
item
->
{
//是否通过风控,调用网络货运
return
item
.
getRunningWaterType
().
equals
(
OwnerAccountEnum
.
RunningWaterStatus
.
FROZEN
.
getCode
());
ThirdOrderChildBrokerParam
param
=
transportSyncService
.
generateOrderChildSync
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
}).
map
(
OwnerRunningWaterRecord:
:
getAlterationBalance
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
HttpDTO
httpDTOResult
=
transportFeignService
.
orderChildSync
(
param
);
String
decrypt
=
ThirdComponent
.
decrypt
(
httpDTOResult
.
getData
());
BigDecimal
takeOut
=
runningWaterRecordList
.
stream
().
filter
(
item
->
{
OrderChildSyncDTO
bean
=
JSONUtil
.
toBean
(
decrypt
,
OrderChildSyncDTO
.
class
);
return
item
.
getRunningWaterType
().
equals
(
OwnerAccountEnum
.
RunningWaterStatus
.
TAKE_OUT
.
getCode
());
log
.
info
(
"OrderChildSyncDTO信息为:{}"
,
JSONUtil
.
parse
(
bean
));
}).
map
(
OwnerRunningWaterRecord:
:
getAlterationBalance
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
bean
.
getCode
()
==
0
)
{
BigDecimal
subtract
=
frozen
.
subtract
(
takeOut
);
Integer
status
=
bean
.
getData
().
getStatus
();
if
(
subtract
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
BigDecimal
ans
=
settlementOwnerDetail
.
getFreight
().
subtract
(
settlementOwnerDetail
.
getLossFreight
());
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
if
(
status
==
1
)
{
}
//通过风控
if
(
subtract
.
subtract
(
ans
).
compareTo
(
BigDecimal
.
ZERO
)
>=
0
)
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
OwnerAccount
account
=
ownerAccountDao
.
getAccountByOwnerUserNoAndAccountType
(
orderChild
.
getOwnerUserNo
(),
List
<
OwnerRunningWaterRecord
>
runningWaterRecordList
=
ownerRunningWaterRecordDao
.
getOwnerRunningWaterRecord
(
orderChild
.
getOrderNo
());
OwnerAccountEnum
.
AccountTypeStatus
.
PREPAID_FREIGHT_ACCOUNT
.
getCode
());
BigDecimal
frozen
=
runningWaterRecordList
.
stream
().
filter
(
item
->
{
return
item
.
getRunningWaterType
().
equals
(
OwnerAccountEnum
.
RunningWaterStatus
.
FROZEN
.
getCode
());
settlementOwnerDetail
.
setPrepayFreight
(
ans
);
}).
map
(
OwnerRunningWaterRecord:
:
getAlterationBalance
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
//生成扣除流水
OwnerRunningWaterRecord
runningWaterRecord
=
new
OwnerRunningWaterRecord
();
BigDecimal
takeOut
=
runningWaterRecordList
.
stream
().
filter
(
item
->
{
runningWaterRecord
.
setOwnerUserName
(
orderChild
.
getOwnerName
());
return
item
.
getRunningWaterType
().
equals
(
OwnerAccountEnum
.
RunningWaterStatus
.
TAKE_OUT
.
getCode
());
runningWaterRecord
.
setMobile
(
orderChild
.
getDriverMobile
());
}).
map
(
OwnerRunningWaterRecord:
:
getAlterationBalance
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
runningWaterRecord
.
setCreateBy
(
"系统"
);
BigDecimal
subtract
=
frozen
.
subtract
(
takeOut
);
runningWaterRecord
.
setOrderId
(
orderChild
.
getId
());
if
(
subtract
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
runningWaterRecord
.
setOrderNo
(
orderChild
.
getOrderNo
());
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
}
runningWaterRecord
.
setRelationId
(
null
);
if
(
subtract
.
subtract
(
ans
).
compareTo
(
BigDecimal
.
ZERO
)
>=
0
)
{
runningWaterRecord
.
setAlterationBalance
(
ans
);
OwnerAccount
account
=
ownerAccountDao
.
getAccountByOwnerUserNoAndAccountType
(
orderChild
.
getOwnerUserNo
(),
runningWaterRecord
.
setFrozenBalance
(
ans
);
OwnerAccountEnum
.
AccountTypeStatus
.
PREPAID_FREIGHT_ACCOUNT
.
getCode
());
runningWaterRecord
.
setUsableBalance
(
account
.
getUsableBalance
());
runningWaterRecord
.
setTakeOutBalance
(
BigDecimal
.
ZERO
);
settlementOwnerDetail
.
setPrepayFreight
(
ans
);
runningWaterRecord
.
setAccountBalance
(
account
.
getAccountBalance
());
//生成扣除流水
runningWaterRecord
.
setOwnerUserNo
(
account
.
getOwnerUserNo
());
OwnerRunningWaterRecord
runningWaterRecord
=
new
OwnerRunningWaterRecord
();
runningWaterRecord
.
setOwnerUserName
(
orderChild
.
getOwnerName
());
runningWaterRecord
.
setAccountType
(
OwnerAccountEnum
.
AccountTypeStatus
.
PREPAID_FREIGHT_ACCOUNT
.
getCode
());
runningWaterRecord
.
setMobile
(
orderChild
.
getDriverMobile
());
runningWaterRecord
.
setRunningWaterType
(
OwnerAccountEnum
.
RunningWaterStatus
.
TAKE_OUT
.
getCode
());
runningWaterRecord
.
setCreateBy
(
"系统"
);
runningWaterRecord
.
setRunningWaterNo
(
idGenerateSnowFlake
.
nextId
(
IdTypeEnum
.
Type
.
TAKE_OUT
.
getCode
()));
runningWaterRecord
.
setOrderId
(
orderChild
.
getId
());
ownerRunningWaterRecordDao
.
saveEntity
(
runningWaterRecord
);
runningWaterRecord
.
setOrderNo
(
orderChild
.
getOrderNo
());
runningWaterRecord
.
setRelationId
(
null
);
runningWaterRecord
.
setAlterationBalance
(
ans
);
runningWaterRecord
.
setFrozenBalance
(
ans
);
runningWaterRecord
.
setUsableBalance
(
account
.
getUsableBalance
());
runningWaterRecord
.
setTakeOutBalance
(
BigDecimal
.
ZERO
);
runningWaterRecord
.
setAccountBalance
(
account
.
getAccountBalance
());
runningWaterRecord
.
setOwnerUserNo
(
account
.
getOwnerUserNo
());
runningWaterRecord
.
setAccountType
(
OwnerAccountEnum
.
AccountTypeStatus
.
PREPAID_FREIGHT_ACCOUNT
.
getCode
());
runningWaterRecord
.
setRunningWaterType
(
OwnerAccountEnum
.
RunningWaterStatus
.
TAKE_OUT
.
getCode
());
runningWaterRecord
.
setRunningWaterNo
(
idGenerateSnowFlake
.
nextId
(
IdTypeEnum
.
Type
.
TAKE_OUT
.
getCode
()));
ownerRunningWaterRecordDao
.
saveEntity
(
runningWaterRecord
);
}
else
{
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
}
}
else
{
}
else
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
(
);
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
}
}
}
else
{
}
else
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_SYNC_ERROR
);
settlementDriverDetail
.
setPrepayFreightFlag
(
0
);
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
();
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO
.
getCode
());
}
}
}
else
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_SYNC_ERROR
);
if
(
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
().
equals
(
invoiceType
)
&&
settlementOwnerDetail
.
getPrepayFreight
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
settlementDriverDetail
.
setPrepayFreightFlag
(
1
);
}
}
}
if
(
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
().
equals
(
invoiceType
)
&&
settlementOwnerDetail
.
getPrepayFreight
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
settlementDriverDetail
.
setPrepayFreightFlag
(
1
);
}
settlementOwnerDetail
.
setInvoiceType
(
invoiceType
);
settlementOwnerDetail
.
setInvoiceType
(
invoiceType
);
settlementDriverDetail
.
setInvoiceType
(
invoiceType
);
settlementDriverDetail
.
setInvoiceType
(
invoiceType
);
// 开票金额
settlementOwnerDetail
.
setInvoiceFreight
(
invoiceFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
// 结算金额
settlementOwnerDetail
.
setSettlementFreight
(
settlementFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
//设置司机预付运费标示
if
(
settlementOwnerDetail
.
getPrepayFreight
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
settlementDriverDetail
.
setPrepayFreightFlag
(
1
);
}
else
{
settlementDriverDetail
.
setPrepayFreightFlag
(
0
);
}
// // 网运单更新预付运费
// // 网运单更新预付运费
// if (Objects.equals(settlementOwnerDetail.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
// if (Objects.equals(settlementOwnerDetail.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论