Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
e903ec2c
提交
e903ec2c
authored
9月 19, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
承运优化需求9.25-车主结算
上级
ea68f379
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
157 行增加
和
61 行删除
+157
-61
SettlementDriverSettleMqParam.java
.../clx/performance/vo/mq/SettlementDriverSettleMqParam.java
+13
-0
RabbitSettlementConfig.java
...va/com/clx/performance/config/RabbitSettlementConfig.java
+15
-1
RabbitKeySettlementConstants.java
...lx/performance/constant/RabbitKeySettlementConstants.java
+8
-1
EventListenerComponent.java
...ava/com/clx/performance/event/EventListenerComponent.java
+4
-0
SettlementDriverSettlementListener.java
...e/listener/settle/SettlementDriverSettlementListener.java
+43
-0
SettlementSettleListener.java
...performance/listener/settle/SettlementSettleListener.java
+3
-3
SettlementMqHandlerServiceImpl.java
...e/service/impl/settle/SettlementMqHandlerServiceImpl.java
+56
-51
SettlementMqServiceImpl.java
...formance/service/impl/settle/SettlementMqServiceImpl.java
+13
-0
SettlementOrderChildRiskServiceImpl.java
...vice/impl/settle/SettlementOrderChildRiskServiceImpl.java
+0
-5
SettlementMqHandlerService.java
...erformance/service/settle/SettlementMqHandlerService.java
+1
-0
SettlementMqService.java
...m/clx/performance/service/settle/SettlementMqService.java
+1
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/vo/mq/SettlementDriverSettleMqParam.java
0 → 100644
浏览文件 @
e903ec2c
package
com
.
clx
.
performance
.
vo
.
mq
;
import
lombok.*
;
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
SettlementDriverSettleMqParam
{
private
String
childNo
;
//运单编号
}
performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java
浏览文件 @
e903ec2c
...
...
@@ -87,7 +87,7 @@ public class RabbitSettlementConfig {
}
/**
* 结算
*
货主
结算
*/
@Bean
public
Queue
settlementSettleQueue
()
{
...
...
@@ -98,6 +98,20 @@ public class RabbitSettlementConfig {
return
BindingBuilder
.
bind
(
settlementSettleQueue
()).
to
(
settlementDefaultExchange
())
.
with
(
RabbitKeySettlementConstants
.
SETTLEMENT_SETTLE_ROUTING_KEY
);
}
/**
* 车主结算
*/
@Bean
public
Queue
settlementDriverSettlementQueue
()
{
return
new
Queue
(
RabbitKeySettlementConstants
.
SETTLEMENT_DRIVER_SETTLE_QUEUE
);
}
@Bean
public
Binding
settlementDriverSettlementQueueBinding
()
{
return
BindingBuilder
.
bind
(
settlementDriverSettlementQueue
()).
to
(
settlementDefaultExchange
())
.
with
(
RabbitKeySettlementConstants
.
SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY
);
}
/**
* 支付状态
*/
...
...
performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java
浏览文件 @
e903ec2c
...
...
@@ -52,10 +52,17 @@ public class RabbitKeySettlementConstants {
public
static
final
String
SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY
=
PREFIX
+
"settlementInvoiceType.sync"
+
QUEUE_ROUTING_KEY
;
/**
* 结算
*
货主
结算
*/
public
static
final
String
SETTLEMENT_SETTLE_QUEUE
=
PREFIX
+
"settlement.settle"
+
QUEUE
;
public
static
final
String
SETTLEMENT_SETTLE_ROUTING_KEY
=
PREFIX
+
"settlement.settle"
+
QUEUE_ROUTING_KEY
;
/**
* 车主结算
*/
public
static
final
String
SETTLEMENT_DRIVER_SETTLE_QUEUE
=
PREFIX
+
"settlementDriver.settle"
+
QUEUE
;
public
static
final
String
SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY
=
PREFIX
+
"settlementDriver.settle"
+
QUEUE_ROUTING_KEY
;
/**
* 开票状态同步
*/
...
...
performance-web/src/main/java/com/clx/performance/event/EventListenerComponent.java
浏览文件 @
e903ec2c
...
...
@@ -147,6 +147,10 @@ public class EventListenerComponent {
// 发送mq 结算统计
settlementMqService
.
settlementStatistics
(
settlementDriverDetail
.
getChildNo
());
// 发送mq 司机结算
settlementMqService
.
settlementDriverSettle
(
settlementDriverDetail
.
getChildNo
());
}
catch
(
Exception
e
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
GET_LOAN_RECORD
,
e
.
getMessage
());
}
finally
{
...
...
performance-web/src/main/java/com/clx/performance/listener/settle/SettlementDriverSettlementListener.java
0 → 100644
浏览文件 @
e903ec2c
package
com
.
clx
.
performance
.
listener
.
settle
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeySettlementConstants
;
import
com.clx.performance.service.settle.SettlementMqHandlerService
;
import
com.clx.performance.vo.mq.SettlementDriverSettleMqParam
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 车主结算 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public
class
SettlementDriverSettlementListener
{
@Autowired
private
SettlementMqHandlerService
settlementMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeySettlementConstants
.
SETTLEMENT_DRIVER_SETTLE_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"结算-车主结算, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
SettlementDriverSettleMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"结算-车主结算 失败"
,
e
);
}
}
private
void
process
(
SettlementDriverSettleMqParam
mq
){
settlementMqHandlerService
.
settlementDriverSettlement
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/listener/settle/SettlementSettleListener.java
浏览文件 @
e903ec2c
...
...
@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 结算 mq
* @Description:
货主
结算 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
...
...
@@ -28,10 +28,10 @@ public class SettlementSettleListener {
@RabbitListener
(
queues
=
RabbitKeySettlementConstants
.
SETTLEMENT_SETTLE_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"结算-结算, message:{}"
,
new
String
(
message
.
getBody
()));
log
.
info
(
"结算-
货主
结算, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
SettlementSettleMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"结算-结算 失败"
,
e
);
log
.
info
(
"结算-
货主
结算 失败"
,
e
);
}
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java
浏览文件 @
e903ec2c
...
...
@@ -176,6 +176,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
if
(
Objects
.
equals
(
mq
.
getType
(),
SettlementStatisticsMqParam
.
Type
.
SEPARATE
.
getCode
())){
settlementStatisticsSeparate
(
settlementOwnerDetail
,
settlementDriverDetail
);
// 发送mq (运单更新)
orderChildBrokerMqService
.
orderChildUpdate
(
settlementDriverDetail
.
getChildNo
());
return
;
}
...
...
@@ -240,8 +243,6 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
}
}
//生成车主结算单
settlementDriverSave
(
settlementDriverDetail
,
settlementNo
);
//车主结算单自动支付
log
.
info
(
" 运单号 {}, 是否是普通单 {} "
,
settlementDriverDetail
.
getChildNo
(),
settlementDriverDetail
.
getInvoiceType
());
if
(!
settlementDriverDetail
.
getInvoiceType
().
equals
(
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
()))
{
...
...
@@ -268,6 +269,56 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriverDetail
.
setSettlementNo
(
settlementNo
);
settlementOwnerDetailDao
.
updateSettlementNo
(
settlementOwnerDetail
);
settlementDriverDetailDao
.
updateSettlementNo
(
settlementDriverDetail
);
// 发送mq (运单更新)
orderChildBrokerMqService
.
orderChildUpdate
(
settlementDriverDetail
.
getChildNo
());
}
@Override
public
void
settlementDriverSettlement
(
SettlementDriverSettleMqParam
mq
)
{
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriver
settlementDriver
=
settlementDriverDao
.
findByChildNo
(
settlementDriverDetail
.
getChildNo
()).
orNull
();
if
(
settlementDriver
!=
null
)
{
return
;}
String
settlementNo
=
settlementNoGenerate
();
settlementDriver
=
new
SettlementDriver
();
settlementDriver
.
setDriverUserNo
(
settlementDriverDetail
.
getDriverUserNo
());
settlementDriver
.
setDriverName
(
settlementDriverDetail
.
getDriverName
());
settlementDriver
.
setSettlementNo
(
settlementNo
);
settlementDriver
.
setChildNo
(
settlementDriverDetail
.
getChildNo
());
settlementDriver
.
setOrderGoodsNo
(
settlementDriverDetail
.
getOrderGoodsNo
());
settlementDriver
.
setOrderNo
(
settlementDriverDetail
.
getOrderNo
());
settlementDriver
.
setGoodsId
(
settlementDriverDetail
.
getGoodsId
());
settlementDriver
.
setGoodsName
(
settlementDriverDetail
.
getGoodsName
());
settlementDriver
.
setTruckNo
(
settlementDriverDetail
.
getTruckNo
());
settlementDriver
.
setFreightPrice
(
settlementDriverDetail
.
getFreightPrice
());
settlementDriver
.
setWeight
(
settlementDriverDetail
.
getWeight
());
settlementDriver
.
setFreight
(
settlementDriverDetail
.
getFreight
());
settlementDriver
.
setLossPrice
(
settlementDriverDetail
.
getLossPrice
());
settlementDriver
.
setLossWeight
(
settlementDriverDetail
.
getLossWeight
());
settlementDriver
.
setLoanFlag
(
settlementDriverDetail
.
getLoanFlag
());
settlementDriver
.
setLossFreight
(
settlementDriverDetail
.
getLossFreight
());
settlementDriver
.
setPrepayFreightFlag
(
settlementDriverDetail
.
getPrepayFreightFlag
());
settlementDriver
.
setSettlementFreight
(
settlementDriverDetail
.
getSettlementFreight
());
settlementDriver
.
setInvoiceType
(
settlementDriverDetail
.
getInvoiceType
());
settlementDriver
.
setSettlementPlatform
(
settlementDriverDetail
.
getInvoiceType
()
==
1
?
String
.
valueOf
(
SettlementPlatformEnum
.
Platform
.
WY
.
getCode
()):
String
.
valueOf
(
SettlementPlatformEnum
.
Platform
.
MSL
.
getCode
()));
settlementDriver
.
setStatus
(
SettlementDriverEnum
.
Status
.
WAIT_SETTLEMENT
.
getCode
());
settlementDriver
.
setInvoicingCompanyId
(
settlementDriverDetail
.
getInvoicingCompanyId
());
settlementDriver
.
setInvoicingCompanyShorterName
(
settlementDriverDetail
.
getInvoicingCompanyShorterName
());
settlementDriver
.
setInvoicingCompanyGroupCode
(
settlementDriverDetail
.
getInvoicingCompanyGroupCode
());
settlementDriver
.
setPlatformServiceFeeRate
(
settlementDriverDetail
.
getPlatformServiceFeeRate
());
settlementDriver
.
setPlatformServiceFee
(
settlementDriverDetail
.
getPlatformServiceFee
());
settlementDriverDao
.
saveEntity
(
settlementDriver
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -921,56 +972,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Override
public
void
riskAdd
(
SettlementOrderChildRiskAddMqParam
mq
)
{
SettlementOrderChildRisk
settlementOrderChildRisk
=
settlementOrderChildRiskDao
.
getById
(
mq
.
getId
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
if
(
Objects
.
equals
(
settlementOrderChildRisk
.
getStatus
(),
SettlementOrderChildRiskEnum
.
Status
.
PROCESSED
.
getCode
()))
{
return
;
}
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
settlementOrderChildRisk
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
InvoicingCompanyVO
invoicingCompanyByGroupCode
=
invoicingCompanyService
.
getInvoicingCompanyByGroupCode
(
orderChild
.
getInvoicingCompanyGroupCode
());
if
(!
Objects
.
equals
(
invoicingCompanyByGroupCode
.
getRiskProcessType
(),
InvoicingCompanyEnum
.
RiskProcessType
.
AUTO
.
getCode
()))
{
return
;
}
// 转普通单
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
settlementOrderChildRisk
.
getChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
settlementOrderChildRisk
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriver
settlementDriver
=
settlementDriverDao
.
findByChildNo
(
settlementOrderChildRisk
.
getChildNo
()).
orNull
();
settlementOrderChildRisk
.
setStatus
(
SettlementOrderChildRiskEnum
.
Status
.
PROCESSED
.
getCode
());
settlementOrderChildRisk
.
setProcessMethod
(
SettlementOrderChildRiskEnum
.
ProcessMethod
.
CONVERT_ORDINARY
.
getCode
());
settlementOrderChildRisk
.
setProcessBy
(
"系统"
);
settlementOrderChildRisk
.
setProcessTime
(
LocalDateTime
.
now
());
settlementOwnerDetail
.
setInvoiceType
(
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
());
settlementOwnerDetail
.
setInvoicingCompanyId
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyShorterName
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyGroupCode
(
null
);
settlementOwnerDetail
.
setInvoiceTypeStatus
(
SettlementOwnerDetailEnum
.
InvoiceTypeStatus
.
SUCCESS
.
getCode
());
settlementOwnerDetail
.
setInvoiceTypeModifiedTime
(
LocalDateTime
.
now
());
settlementOwnerDetailDao
.
updateConvertOrdinary
(
settlementOwnerDetail
);
settlementDriverDetail
.
setInvoiceType
(
settlementOwnerDetail
.
getInvoiceType
());
settlementDriverDetail
.
setInvoicingCompanyId
(
settlementOwnerDetail
.
getInvoicingCompanyId
());
settlementDriverDetail
.
setInvoicingCompanyShorterName
(
settlementOwnerDetail
.
getInvoicingCompanyShorterName
());
settlementDriverDetail
.
setInvoicingCompanyGroupCode
(
settlementOwnerDetail
.
getInvoicingCompanyGroupCode
());
settlementDriverDetailDao
.
updateConvertOrdinary
(
settlementDriverDetail
);
settlementOrderChildRisk
.
setInvoiceType
(
settlementOwnerDetail
.
getInvoiceType
());
if
(
settlementDriver
!=
null
)
{
// 删除结算单
settlementDriverDao
.
deleteByKey
(
settlementDriver
.
getId
());
}
settlementOrderChildRiskDao
.
updateProcess
(
settlementOrderChildRisk
);
// 发送mq (风控处理)
settlementMqService
.
riskProcess
(
settlementOrderChildRisk
.
getId
());
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -988,6 +990,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementMqService
.
settlementStatistics
(
childNo
,
SettlementStatisticsMqParam
.
Type
.
SEPARATE
.
getCode
());
}
// 发送mq (车主结算)
settlementMqService
.
settlementDriverSettle
(
childNo
);
// 发送mq (运单更新)
orderChildBrokerMqService
.
orderChildUpdate
(
childNo
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java
浏览文件 @
e903ec2c
...
...
@@ -57,6 +57,19 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
@Override
public
void
settlementDriverSettle
(
String
childNo
)
{
SettlementDriverSettleMqParam
mq
=
new
SettlementDriverSettleMqParam
();
mq
.
setChildNo
(
childNo
);
MqDelay
delay
=
new
MqDelay
<>(
RabbitKeySettlementConstants
.
DEFAULT_EXCHANGE
,
RabbitKeySettlementConstants
.
SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeySettlementConstants
.
DEFAULT_EXCHANGE
,
RabbitKeySettlementConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
@Override
public
void
invoiceTypeSync
(
String
childNo
)
{
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOrderChildRiskServiceImpl.java
浏览文件 @
e903ec2c
...
...
@@ -97,11 +97,6 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementDriverDetailDao
.
updateConvertOrdinary
(
settlementDriverDetail
);
settlementOrderChildRisk
.
setInvoiceType
(
settlementOwnerDetail
.
getInvoiceType
());
if
(
settlementDriver
!=
null
)
{
// 删除结算单
settlementDriverDao
.
deleteByKey
(
settlementDriver
.
getId
());
}
}
else
{
...
...
performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqHandlerService.java
浏览文件 @
e903ec2c
...
...
@@ -9,6 +9,7 @@ public interface SettlementMqHandlerService {
void
settlementDetailAdd
(
SettlementDetailAddMqParam
mq
);
void
settlementStatistics
(
SettlementStatisticsMqParam
mq
);
void
settlementDriverSettlement
(
SettlementDriverSettleMqParam
mq
);
void
settle
(
SettlementSettleMqParam
mq
);
...
...
performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java
浏览文件 @
e903ec2c
...
...
@@ -6,6 +6,7 @@ public interface SettlementMqService {
void
settlementStatistics
(
String
childNo
);
void
settlementStatistics
(
String
childNo
,
Integer
type
);
void
settlementDriverSettle
(
String
childNo
);
void
invoiceTypeSync
(
String
childNo
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论