Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
226f7387
提交
226f7387
authored
2月 07, 2024
作者:
huyufan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118' into test
上级
b7bf4ffc
19d820a2
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
46 行增加
和
54 行删除
+46
-54
OwnerLoanRecordServiceImpl.java
...ormance/service/impl/loan/OwnerLoanRecordServiceImpl.java
+46
-54
没有找到文件。
performance-web/src/main/java/com/clx/performance/service/impl/loan/OwnerLoanRecordServiceImpl.java
浏览文件 @
226f7387
...
...
@@ -41,6 +41,7 @@ import com.clx.user.feign.OwnerFeign;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.document.api.feign.ContractEvidenceFeign
;
...
...
@@ -72,7 +73,7 @@ import java.util.stream.Collectors;
@Service
@Slf4j
@AllArgsConstructor
public
class
OwnerLoanRecordServiceImpl
implements
OwnerLoanRecordService
{
public
class
OwnerLoanRecordServiceImpl
implements
OwnerLoanRecordService
{
private
final
OwnerLoanRecordDao
ownerLoanRecordDao
;
...
...
@@ -87,7 +88,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
private
final
OwnerBindCardRecordDao
ownerBindCardRecordDao
;
private
final
NbBankService
bankService
;
private
final
OwnerLoanAccountRunningWaterRecordDao
ownerLoanAccountRunningWaterRecordDao
;
private
final
BorrowerDao
borrowerDao
;
...
...
@@ -98,10 +99,6 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
private
final
ContractTemplateFeign
contractTemplateFeign
;
private
final
PaymentFromConfig
paymentFromConfig
;
private
final
DataSourceTransactionManager
dataSourceTransactionManager
;
private
final
TransactionDefinition
transactionDefinition
;
@Override
public
IPage
<
OwnerLoanRecordVO
>
pageOwnerLoanRecord
(
PageCarrierOwnerLoanRecordParam
param
)
{
IPage
<
OwnerLoanRecord
>
page
=
ownerLoanRecordDao
.
pageOwnerLoanRecord
(
param
);
...
...
@@ -114,8 +111,6 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
}
@Override
public
void
ownerLoanRecordSubmit
(
OwnerLoanRecordParam
param
)
{
...
...
@@ -152,7 +147,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
if
(
OwnerLoanRecordEnum
.
LoanType
.
FUND
.
getCode
().
equals
(
param
.
getLoanType
()))
{
//资金 TODO 调宁波银企直连的产品,从诚联信账户中给鑫祥和执行转账
NbBankOrderPayResultVO
orderPayResultVO
=
bankService
.
orderDirectPay
(
param
.
getLoanNo
()
,
NbBankOrderPayResultVO
orderPayResultVO
=
bankService
.
orderDirectPay
(
param
.
getLoanNo
(),
ownerLoanRecord
.
getLoanBalance
().
intValue
(),
""
,
""
,
""
);
ownerLoanRecord
.
setRunningWaterOpenNo
(
orderPayResultVO
.
getTransSeqNo
());
ownerLoanRecord
.
setMerchantRunningWaterNo
(
orderPayResultVO
.
getMerSeqNo
());
...
...
@@ -199,6 +194,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
/**
* 生成借款流水
*
* @param ownerLoanRecord
*/
private
void
initOwnerLoanRunningWaterRecord
(
OwnerLoanRecord
ownerLoanRecord
)
{
...
...
@@ -220,6 +216,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
/**
* 生成还款记录
*
* @param ownerLoanRecord
*/
private
void
initOwnerRepayment
(
OwnerLoanRecord
ownerLoanRecord
)
{
...
...
@@ -248,14 +245,14 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
@Override
public
OwnerLoanRecordDetail
getOwnerLoanRecordDetail
()
{
List
<
BorrowerSelectVO
>
borrowerList
=
borrowerDao
.
selectAllBorrowConfig
();
Map
<
String
,
BorrowerSelectVO
>
map
=
new
TreeMap
<>();
Map
<
String
,
BorrowerSelectVO
>
map
=
new
TreeMap
<>();
for
(
BorrowerSelectVO
item
:
borrowerList
)
{
if
(
map
.
containsKey
(
item
.
getName
()))
{
if
(
Objects
.
equals
(
item
.
getType
(),
OwnerLoanRecordEnum
.
LoanType
.
VIRTUAL_CURRENCY
.
getCode
()))
{
map
.
put
(
item
.
getName
(),
item
);
if
(
map
.
containsKey
(
item
.
getName
()))
{
if
(
Objects
.
equals
(
item
.
getType
(),
OwnerLoanRecordEnum
.
LoanType
.
VIRTUAL_CURRENCY
.
getCode
()))
{
map
.
put
(
item
.
getName
(),
item
);
}
}
else
{
map
.
put
(
item
.
getName
(),
item
);
}
else
{
map
.
put
(
item
.
getName
(),
item
);
}
}
OwnerLoanRecordDetail
detail
=
new
OwnerLoanRecordDetail
();
...
...
@@ -269,8 +266,8 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
detail
.
setCompanyName
(
ownerInfoFeignVO
.
getCompanyName
());
//收款方
List
<
PayeeVO
>
payeeList
=
ClxPayeeConfig
.
payeeList
.
stream
().
map
(
item
->
PayeeVO
.
builder
().
name
(
item
.
getName
()).
account
(
item
.
getAccount
()).
id
(
item
.
getId
()).
build
()
List
<
PayeeVO
>
payeeList
=
ClxPayeeConfig
.
payeeList
.
stream
().
map
(
item
->
PayeeVO
.
builder
().
name
(
item
.
getName
()).
account
(
item
.
getAccount
()).
id
(
item
.
getId
()).
build
()
).
collect
(
Collectors
.
toList
());
detail
.
setPayeeList
(
payeeList
);
...
...
@@ -278,8 +275,6 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
}
@Override
public
CarrierCashierInfoVO
getCashierInfo
(
Integer
id
)
{
OwnerLoanRecord
ownerLoanRecord
=
ownerLoanRecordDao
.
getEntityByKey
(
id
).
orElseThrow
(
...
...
@@ -319,12 +314,13 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
PerformanceResultEnum
.
DATA_NOT_FIND
);
ExportOwnerLoanRecordVO
exportOwnerLoanRecordVO
=
ownerLoanRecordStruct
.
convert
(
ownerLoanRecord
);
//货主借款: 收款方鑫祥和 付款方为诚联信 借款方为货主
Map
<
String
,
String
>
map
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
exportOwnerLoanRecordVO
),
new
TypeReference
<
Map
<
String
,
String
>>(){});
Map
<
String
,
String
>
map
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
exportOwnerLoanRecordVO
),
new
TypeReference
<
Map
<
String
,
String
>>()
{
});
// 创建合同
GenerateContractParam
feignParam
=
new
GenerateContractParam
();
if
(
Objects
.
equals
(
OwnerRePaymentEnum
.
Channel
.
ORDER
.
getCode
(),
param
.
getPayWay
()))
{
if
(
Objects
.
equals
(
OwnerRePaymentEnum
.
Channel
.
ORDER
.
getCode
(),
param
.
getPayWay
()))
{
feignParam
.
setTemplateNo
(
paymentFromConfig
.
getLoanOrderTemplateNo
());
}
else
{
}
else
{
feignParam
.
setTemplateNo
(
paymentFromConfig
.
getLoanTransferTemplateNo
());
}
...
...
@@ -335,48 +331,44 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
getLoanBalance
(
LoanBalanceDTO
param
)
{
BigDecimal
orderChildPrice
=
param
.
getOrderChildPrice
();
Long
userNo
=
param
.
getOwnerUserNo
();
String
childNo
=
param
.
getChildNo
();
log
.
info
(
"执行借款,借款金额{}, 货主编号:{}, 运单号:{}"
,
orderChildPrice
,
userNo
,
childNo
);
TransactionStatus
transactionStatus
=
dataSourceTransactionManager
.
getTransaction
(
transactionDefinition
);
try
{
List
<
OwnerLoanRecord
>
updateList
=
new
LinkedList
<>();
List
<
OwnerLoanRecord
>
ownerLoanRecords
=
ownerLoanRecordDao
.
selectLoanBalance
(
userNo
);
BigDecimal
orderChildPriceTemp
=
orderChildPrice
;
for
(
OwnerLoanRecord
ownerLoanRecord
:
ownerLoanRecords
)
{
BigDecimal
loanResidueBalance
=
ownerLoanRecord
.
getLoanResidueBalance
();
log
.
info
(
"当前借款金额:{},借款单号{},借款剩余金额{}"
,
orderChildPriceTemp
,
ownerLoanRecord
.
getLoanNo
(),
loanResidueBalance
);
if
(
loanResidueBalance
.
compareTo
(
orderChildPriceTemp
)
>=
0
)
{
log
.
info
(
"当前借款单的剩余金额足够借款金额"
);
generateFrozenOwnerLoanRunningWater
(
ownerLoanRecord
,
childNo
,
orderChildPrice
);
updateList
.
add
(
ownerLoanRecord
.
setLoanResidueBalance
(
loanResidueBalance
.
subtract
(
orderChildPriceTemp
)));
orderChildPriceTemp
=
BigDecimal
.
ZERO
;
break
;
}
else
{
log
.
info
(
"当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余"
);
generateFrozenOwnerLoanRunningWater
(
ownerLoanRecord
,
childNo
,
orderChildPrice
);
updateList
.
add
(
ownerLoanRecord
.
setLoanResidueBalance
(
BigDecimal
.
ZERO
));
orderChildPriceTemp
=
orderChildPriceTemp
.
subtract
(
loanResidueBalance
);
}
}
if
(
orderChildPriceTemp
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
log
.
info
(
"执行借款发现:货主货款不足,进行手动回滚事务"
);
dataSourceTransactionManager
.
rollback
(
transactionStatus
);
List
<
OwnerLoanRecord
>
updateList
=
new
LinkedList
<>();
List
<
OwnerLoanRecord
>
ownerLoanRecords
=
ownerLoanRecordDao
.
selectLoanBalance
(
userNo
);
BigDecimal
orderChildPriceTemp
=
orderChildPrice
;
for
(
OwnerLoanRecord
ownerLoanRecord
:
ownerLoanRecords
)
{
BigDecimal
loanResidueBalance
=
ownerLoanRecord
.
getLoanResidueBalance
();
log
.
info
(
"当前借款金额:{},借款单号{},借款剩余金额{}"
,
orderChildPriceTemp
,
ownerLoanRecord
.
getLoanNo
(),
loanResidueBalance
);
if
(
loanResidueBalance
.
compareTo
(
orderChildPriceTemp
)
>=
0
)
{
log
.
info
(
"当前借款单的剩余金额足够借款金额"
);
generateFrozenOwnerLoanRunningWater
(
ownerLoanRecord
,
childNo
,
orderChildPrice
);
updateList
.
add
(
ownerLoanRecord
.
setLoanResidueBalance
(
loanResidueBalance
.
subtract
(
orderChildPriceTemp
)));
orderChildPriceTemp
=
BigDecimal
.
ZERO
;
break
;
}
else
{
log
.
info
(
"当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余"
);
generateFrozenOwnerLoanRunningWater
(
ownerLoanRecord
,
childNo
,
orderChildPrice
);
updateList
.
add
(
ownerLoanRecord
.
setLoanResidueBalance
(
BigDecimal
.
ZERO
));
orderChildPriceTemp
=
orderChildPriceTemp
.
subtract
(
loanResidueBalance
);
}
}
for
(
OwnerLoanRecord
update
:
updateList
)
{
ownerLoanRecordDao
.
updateEntityByKey
(
update
);
}
log
.
info
(
"执行借款成功,借款金额{}, 货主编号:{}, 运单号:{}"
,
orderChildPrice
,
userNo
,
childNo
);
}
catch
(
Exception
e
)
{
log
.
info
(
"借款产生异常,异常信息:{}"
,
ExceptionUtils
.
getThrowableCount
(
e
));
dataSourceTransactionManager
.
rollback
(
transactionStatus
);
if
(
orderChildPriceTemp
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"执行借款发现:货主货款不足"
);
}
for
(
OwnerLoanRecord
update
:
updateList
)
{
ownerLoanRecordDao
.
updateEntityByKey
(
update
);
}
log
.
info
(
"执行借款成功,借款金额{}, 货主编号:{}, 运单号:{}"
,
orderChildPrice
,
userNo
,
childNo
);
}
public
void
generateFrozenOwnerLoanRunningWater
(
OwnerLoanRecord
ownerLoanRecord
,
String
childNo
,
BigDecimal
orderChildPrice
)
{
log
.
info
(
"13.生成借款冻结流水"
);
OwnerLoanAccount
update
=
new
OwnerLoanAccount
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论