Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
5a40a9ab
提交
5a40a9ab
authored
6月 22, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
承运与无车承运对接
上级
90534f28
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
254 行增加
和
27 行删除
+254
-27
BrokerFeign.java
.../src/main/java/com/clx/performance/feign/BrokerFeign.java
+11
-0
SettlementSettleMqParam.java
...va/com/clx/performance/vo/mq/SettlementSettleMqParam.java
+23
-0
RabbitSettlementConfig.java
...va/com/clx/performance/config/RabbitSettlementConfig.java
+12
-0
RabbitKeySettlementConstants.java
...lx/performance/constant/RabbitKeySettlementConstants.java
+6
-0
OrderChildSyncTransportInvoiceRecordDaoImpl.java
...dao/impl/OrderChildSyncTransportInvoiceRecordDaoImpl.java
+5
-3
BrokerService.java
...va/com/clx/performance/extranal/broker/BrokerService.java
+3
-0
BrokerServiceImpl.java
...x/performance/extranal/broker/impl/BrokerServiceImpl.java
+17
-1
OrderChildSyncTransportInvoiceExceptionJob.java
...mance/job/OrderChildSyncTransportInvoiceExceptionJob.java
+2
-2
DriverSettlementJob.java
...m/clx/performance/job/settlement/DriverSettlementJob.java
+1
-1
SettlementJob.java
...ava/com/clx/performance/job/settlement/SettlementJob.java
+81
-0
SettlementOwnerMontnJob.java
...x/performance/job/settlement/SettlementOwnerMontnJob.java
+1
-1
OrderChildSyncTransportListener.java
...performance/listener/OrderChildSyncTransportListener.java
+14
-15
SettlementSettleListener.java
...performance/listener/settle/SettlementSettleListener.java
+43
-0
OrderChildSyncBroker.java
...performance/service/impl/broker/OrderChildSyncBroker.java
+1
-4
SettlementMqHandlerServiceImpl.java
...e/service/impl/settle/SettlementMqHandlerServiceImpl.java
+15
-0
SettlementMqServiceImpl.java
...formance/service/impl/settle/SettlementMqServiceImpl.java
+15
-0
SettlementMqHandlerService.java
...erformance/service/settle/SettlementMqHandlerService.java
+3
-0
SettlementMqService.java
...m/clx/performance/service/settle/SettlementMqService.java
+1
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/feign/BrokerFeign.java
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
feign
;
import
com.clx.performance.vo.pc.broker.TransportParam
;
import
com.clx.performance.vo.pc.broker.TransportVO
;
import
com.msl.common.result.Result
;
import
feign.Param
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
@FeignClient
(
name
=
"broker-service"
,
configuration
=
PerformanceClientConfiguration
.
class
,
url
=
"${settlement.brokerHost}"
)
public
interface
BrokerFeign
{
...
...
@@ -15,4 +21,9 @@ public interface BrokerFeign {
*/
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/broker-service/open/transport/saveTransport"
)
Result
<
String
>
saveTransport
(
@RequestBody
TransportParam
param
);
@RequestMapping
(
value
=
"/broker-service/open/transport/getTransportByChildNo"
,
method
=
RequestMethod
.
GET
)
Result
<
TransportVO
>
getTransportByChildNo
(
@RequestParam
@NotBlank
(
message
=
"运单编号不能为空"
)
String
childNo
,
@RequestParam
@NotNull
(
message
=
"userCode不能为空"
)
String
userCode
);
}
performance-api/src/main/java/com/clx/performance/vo/mq/SettlementSettleMqParam.java
0 → 100644
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
vo
.
mq
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description: 结算
* @Date: 2023-10-19 15:45:25
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
SettlementSettleMqParam
{
private
String
childNo
;
//运单编号
private
Integer
InvoiceType
;
//开票类型
}
performance-web/src/main/java/com/clx/performance/config/RabbitSettlementConfig.java
浏览文件 @
5a40a9ab
...
...
@@ -72,6 +72,18 @@ public class RabbitSettlementConfig {
public
Binding
settlementDetailInvoiceTypeSyncQueueBinding
()
{
return
BindingBuilder
.
bind
(
settlementDetailInvoiceTypeSyncQueue
()).
to
(
settlementDefaultExchange
()).
with
(
RabbitKeySettlementConstants
.
SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY
);
}
/**
* 结算
*/
@Bean
public
Queue
settlementSettleQueue
()
{
return
new
Queue
(
RabbitKeySettlementConstants
.
SETTLEMENT_SETTLE_QUEUE
);
}
@Bean
public
Binding
settlementSettleQueueQueueBinding
()
{
return
BindingBuilder
.
bind
(
settlementSettleQueue
()).
to
(
settlementDefaultExchange
())
.
with
(
RabbitKeySettlementConstants
.
SETTLEMENT_SETTLE_ROUTING_KEY
);
}
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeySettlementConstants.java
浏览文件 @
5a40a9ab
...
...
@@ -45,4 +45,10 @@ public class RabbitKeySettlementConstants {
public
static
final
String
SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_QUEUE
=
PREFIX
+
"settlementDetailInvoiceType.sync"
+
QUEUE
;
public
static
final
String
SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY
=
PREFIX
+
"settlementDetailInvoiceType.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
;
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildSyncTransportInvoiceRecordDaoImpl.java
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
dao
.
impl
;
import
com.clx.performance.enums.TransportSyncTypeEnum
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao
;
import
com.clx.performance.mapper.OrderChildSyncTransportInvoiceRecordMapper
;
import
com.clx.performance.model.OrderChildSyncTransportInvoiceRecord
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
...
...
@@ -19,6 +19,8 @@ public class OrderChildSyncTransportInvoiceRecordDaoImpl extends BaseDaoImpl<Ord
@Override
public
List
<
OrderChildSyncTransportInvoiceRecord
>
selectListForJob
()
{
return
baseMapper
.
selectList
(
null
);
return
list
(
lUdWrapper
()
.
le
(
OrderChildSyncTransportInvoiceRecord:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMinutes
(
10
))
);
}
}
performance-web/src/main/java/com/clx/performance/extranal/broker/BrokerService.java
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
extranal
.
broker
;
import
com.clx.performance.vo.pc.broker.TransportParam
;
import
com.clx.performance.vo.pc.broker.TransportVO
;
public
interface
BrokerService
{
void
orderChildSync
(
TransportParam
param
);
TransportVO
getTransportByChildNo
(
String
childNo
);
}
performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
extranal
.
broker
.
impl
;
import
com.clx.performance.config.SettlementConfig
;
import
com.clx.performance.extranal.broker.BrokerService
;
import
com.clx.performance.feign.BrokerFeign
;
import
com.clx.performance.vo.pc.broker.TransportParam
;
import
com.clx.performance.vo.pc.broker.TransportVO
;
import
com.msl.common.result.Result
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -13,13 +15,27 @@ import org.springframework.stereotype.Service;
public
class
BrokerServiceImpl
implements
BrokerService
{
@Autowired
public
BrokerFeign
brokerFeign
;
@Autowired
private
SettlementConfig
settlementConfig
;
@Override
public
void
orderChildSync
(
TransportParam
param
)
{
param
.
setUserCode
(
settlementConfig
.
getBrokerUserCode
());
Result
<
String
>
result
=
brokerFeign
.
saveTransport
(
param
);
if
(
result
.
getCode
()
!=
0
)
{
log
.
info
(
"运单同步网络货运失败, msg:{}"
,
result
.
getMsg
());
}
}
@Override
public
TransportVO
getTransportByChildNo
(
String
childNo
)
{
Result
<
TransportVO
>
result
=
brokerFeign
.
getTransportByChildNo
(
childNo
,
settlementConfig
.
getBrokerUserCode
());
if
(
result
.
getCode
()
!=
0
)
{
log
.
info
(
"运单同步网络货运失败, msg:{}"
,
result
.
getMsg
());
}
return
result
.
getData
();
}
}
performance-web/src/main/java/com/clx/performance/job/OrderChildSyncTransportInvoiceExceptionJob.java
浏览文件 @
5a40a9ab
...
...
@@ -49,9 +49,9 @@ public class OrderChildSyncTransportInvoiceExceptionJob {
private
final
SettlementDriverDetailDao
settlementDriverDetailDao
;
/**
* 同步网络货运
* 同步网络货运
(禁用)
*/
@XxlJob
(
"orderChildSyncTransportInvoiceExceptionJob"
)
//
@XxlJob("orderChildSyncTransportInvoiceExceptionJob")
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
orderChildSyncTransportInvoiceExceptionJob
()
{
//只查询同步异常的网络货运任务
...
...
performance-web/src/main/java/com/clx/performance/job/DriverSettlementJob.java
→
performance-web/src/main/java/com/clx/performance/job/
settlement/
DriverSettlementJob.java
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
job
;
package
com
.
clx
.
performance
.
job
.
settlement
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
...
...
performance-web/src/main/java/com/clx/performance/job/settlement/SettlementJob.java
0 → 100644
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
job
.
settlement
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao
;
import
com.clx.performance.enums.TransportSyncTypeEnum
;
import
com.clx.performance.enums.settle.SettlementOwnerEnum
;
import
com.clx.performance.extranal.broker.BrokerService
;
import
com.clx.performance.model.OrderChildSyncTransportInvoiceRecord
;
import
com.clx.performance.service.settle.SettlementMqService
;
import
com.clx.performance.vo.pc.broker.TransportVO
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
@AllArgsConstructor
public
class
SettlementJob
{
private
final
OrderChildSyncTransportInvoiceRecordDao
orderChildSyncTransportInvoiceRecordDao
;
private
final
BrokerService
brokerService
;
private
final
SettlementMqService
settlementMqService
;
/**
* 同步无车承运运单状态
*/
@XxlJob
(
"settlementInvoiceTypeSync"
)
public
void
settlementInvoiceTypeSync
()
{
List
<
OrderChildSyncTransportInvoiceRecord
>
recordList
=
orderChildSyncTransportInvoiceRecordDao
.
selectListForJob
();
log
.
info
(
"待同步无车承运运单状态,size:{}"
,
recordList
.
size
());
if
(
recordList
.
isEmpty
())
{
return
;}
List
<
Integer
>
ids
=
new
LinkedList
<>();
for
(
OrderChildSyncTransportInvoiceRecord
item
:
recordList
)
{
log
.
info
(
"同步无车承运运单状态:{}"
,
JSONUtil
.
parse
(
item
));
try
{
// 获取状态
TransportVO
result
=
brokerService
.
getTransportByChildNo
(
item
.
getChildNo
());
Integer
invoiceType
;
if
(
Objects
.
equals
(
result
.
getRiskStatus
(),
1
)
||
Objects
.
equals
(
result
.
getRiskStatus
(),
2
))
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
();
}
else
if
(
Objects
.
equals
(
result
.
getSyncStatus
(),
2
))
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
();
}
else
if
(
Objects
.
equals
(
result
.
getSyncStatus
(),
0
))
{
OrderChildSyncTransportInvoiceRecord
entity
=
new
OrderChildSyncTransportInvoiceRecord
();
entity
.
setChildNo
(
item
.
getChildNo
());
entity
.
setType
(
TransportSyncTypeEnum
.
Type
.
EXCEPTION
.
getCode
());
entity
.
setRemark
(
"处理中"
);
orderChildSyncTransportInvoiceRecordDao
.
saveEntity
(
entity
);
continue
;
}
else
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
}
// 发送mq (结算)
settlementMqService
.
settle
(
item
.
getChildNo
(),
invoiceType
);
}
catch
(
Exception
e
){
OrderChildSyncTransportInvoiceRecord
entity
=
new
OrderChildSyncTransportInvoiceRecord
();
entity
.
setChildNo
(
item
.
getChildNo
());
entity
.
setType
(
TransportSyncTypeEnum
.
Type
.
EXCEPTION
.
getCode
());
entity
.
setRemark
(
"接口调用失败"
);
orderChildSyncTransportInvoiceRecordDao
.
saveEntity
(
entity
);
}
}
orderChildSyncTransportInvoiceRecordDao
.
deleteByKeys
(
ids
);
}
}
performance-web/src/main/java/com/clx/performance/job/SettlementOwnerMontnJob.java
→
performance-web/src/main/java/com/clx/performance/job/
settlement/
SettlementOwnerMontnJob.java
浏览文件 @
5a40a9ab
package
com
.
clx
.
performance
.
job
;
package
com
.
clx
.
performance
.
job
.
settlement
;
import
com.clx.performance.dao.settle.SettlementOwnerDao
;
import
com.clx.performance.enums.settle.SettlementOwnerEnum
;
...
...
performance-web/src/main/java/com/clx/performance/listener/OrderChildSyncTransportListener.java
浏览文件 @
5a40a9ab
...
...
@@ -98,7 +98,7 @@ public class OrderChildSyncTransportListener {
}
public
void
transportOrderChildProcess
(
OrderChild
orderChild
)
{
//
Integer invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
Integer
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
();
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
...
...
@@ -115,18 +115,23 @@ public class OrderChildSyncTransportListener {
// 同步broker
orderChildSyncBrokerService
.
orderChildSync
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
// extracted(orderChild, bean, JSONUtil.parse(bean).toString(), settlementOwnerDetail, invoiceType, settlementDriverDetail);
}
public
void
extracted
(
OrderChild
orderChild
,
OrderChildSyncDTO
bean
,
String
remark
,
SettlementOwnerDetail
settlementOwnerDetail
,
Integer
invoiceType
,
SettlementDriverDetail
settlementDriverDetail
)
{
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
if
(
null
!=
bean
&&
bean
.
getCode
()
==
0
)
{
log
.
info
(
"当前OrderChildSyncTransportListener监听同步网络货运成功,运单号为{}"
,
orderChild
.
getChildNo
());
if
(
null
!=
bean
.
getData
()
&&
bean
.
getData
().
getStatus
()
==
1
)
{
if
(
null
!=
bean
&&
bean
.
getCode
()
==
0
&&
null
!=
bean
.
getData
()
&&
bean
.
getData
().
getStatus
()
==
1
){
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
}
extracted
(
orderChild
,
settlementOwnerDetail
,
settlementDriverDetail
,
invoiceType
);
}
public
void
extracted
(
OrderChild
orderChild
,
SettlementOwnerDetail
settlementOwnerDetail
,
SettlementDriverDetail
settlementDriverDetail
,
Integer
invoiceType
)
{
if
(
Objects
.
equals
(
invoiceType
,
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
()))
{
//通过风控
List
<
OwnerRunningWaterRecord
>
runningWaterRecordList
=
ownerRunningWaterRecordDao
.
getOwnerRunningWaterRecord
(
orderChild
.
getOrderNo
());
BigDecimal
frozen
=
runningWaterRecordList
.
stream
().
filter
(
item
->
{
...
...
@@ -144,7 +149,6 @@ public class OrderChildSyncTransportListener {
BigDecimal
ans
=
getPrepayFreightPay
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
,
frozen
);
BigDecimal
subtract
=
frozen
.
subtract
(
takeOut
);
log
.
info
(
"冻结预付运费:{}, 扣除的流水总和:{}"
,
frozen
,
takeOut
);
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
settlementDriverDetail
.
setPrepayFreight
(
ans
);
//冻结的预付运费为0 或者 此刻预付运费也可能为0,那么就不用生成扣除相关流水逻辑
if
(
subtract
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
||
ans
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
...
...
@@ -178,13 +182,8 @@ public class OrderChildSyncTransportListener {
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO
.
getCode
());
}
}
else
{
log
.
info
(
"当前OrderChildSyncTransportListener监听同步网络货运失败,变为普通单,运单号{}, 错误信息{}"
,
orderChild
.
getChildNo
(),
remark
);
settlementDriverDetail
.
setPrepayFreightFlag
(
SettlementDriverEnum
.
PrepayFreightFlag
.
NO_PAY
.
getCode
());
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO
.
getCode
());
}
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
// 结算金额
settlementOwnerDetail
.
setSettlementFreight
(
settlementFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
...
...
performance-web/src/main/java/com/clx/performance/listener/settle/SettlementSettleListener.java
0 → 100644
浏览文件 @
5a40a9ab
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.SettlementSettleMqParam
;
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
SettlementSettleListener
{
@Autowired
private
SettlementMqHandlerService
settlementMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeySettlementConstants
.
SETTLEMENT_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
<
SettlementSettleMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"结算-结算 失败"
,
e
);
}
}
private
void
process
(
SettlementSettleMqParam
mq
){
settlementMqHandlerService
.
settle
(
mq
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildSyncBroker.java
浏览文件 @
5a40a9ab
...
...
@@ -4,7 +4,6 @@ import com.clx.order.feign.AddressFeign;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.pc.carrier.InvoicingCompanyVO
;
import
com.clx.performance.config.SettlementConfig
;
import
com.clx.performance.dao.OrderChildImageDao
;
import
com.clx.performance.enums.PowerTypeEnum
;
import
com.clx.performance.extranal.broker.BrokerService
;
...
...
@@ -52,8 +51,7 @@ public class OrderChildSyncBroker implements OrderChildSyncBrokerService {
private
OrderChildImageDao
orderChildImageDao
;
@Autowired
private
InvoicingCompanyService
invoicingCompanyService
;
@Autowired
private
SettlementConfig
settlementConfig
;
@Override
public
void
orderChildSync
(
OrderChild
orderChild
,
OrderGoods
orderGoods
,
SettlementOwnerDetail
settlementOwnerDetail
,
...
...
@@ -80,7 +78,6 @@ public class OrderChildSyncBroker implements OrderChildSyncBrokerService {
// 参数组装
TransportParam
transportParam
=
new
TransportParam
();
transportParam
.
setUserCode
(
settlementConfig
.
getBrokerUserCode
());
transportParam
.
setTransportPlatformCode
(
invoicingCompanyByGroupCode
.
getNetworkCargoCompanyCode
());
transportParam
.
setOrderCode
(
orderChild
.
getChildNo
());
transportParam
.
setOwnerMobile
(
truckOwnerInfo
.
getMobile
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java
浏览文件 @
5a40a9ab
...
...
@@ -15,6 +15,7 @@ import com.clx.performance.enums.settle.*;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.extranal.user.OwnerInfoService
;
import
com.clx.performance.listener.OrderChildSyncTransportListener
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.settle.*
;
...
...
@@ -31,6 +32,7 @@ import com.clx.performance.utils.LocalDateTimeUtils;
import
com.clx.performance.utils.RedisUtil
;
import
com.clx.performance.vo.mq.SettlementDetailAddMqParam
;
import
com.clx.performance.vo.mq.SettlementDetailInvoiceTypeSyncMqParam
;
import
com.clx.performance.vo.mq.SettlementSettleMqParam
;
import
com.clx.user.vo.feign.DriverInfoFeignVo
;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
import
com.msl.common.enums.ResultCodeEnum
;
...
...
@@ -104,6 +106,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired
private
OrderService
orderService
;
@Autowired
private
OrderChildSyncTransportListener
orderChildSyncTransportListener
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -195,6 +200,16 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriverDetailDao
.
updateSettlementNo
(
settlementDriverDetail
);
}
@Override
public
void
settle
(
SettlementSettleMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
get
();
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
orderChildSyncTransportListener
.
extracted
(
orderChild
,
settlementOwnerDetail
,
settlementDriverDetail
,
mq
.
getInvoiceType
());
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
settlementDetailAdd
(
SettlementDetailAddMqParam
mq
)
{
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java
浏览文件 @
5a40a9ab
...
...
@@ -7,6 +7,7 @@ import com.clx.performance.constant.RabbitKeySettlementConstants;
import
com.clx.performance.service.settle.SettlementMqService
;
import
com.clx.performance.vo.mq.SettlementDetailAddMqParam
;
import
com.clx.performance.vo.mq.SettlementDetailInvoiceTypeSyncMqParam
;
import
com.clx.performance.vo.mq.SettlementSettleMqParam
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
...
...
@@ -47,4 +48,18 @@ public class SettlementMqServiceImpl implements SettlementMqService {
rabbitTemplate
.
send
(
RabbitKeySettlementConstants
.
DEFAULT_EXCHANGE
,
RabbitKeySettlementConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
@Override
public
void
settle
(
String
childNo
,
Integer
invoiceType
)
{
SettlementSettleMqParam
mq
=
new
SettlementSettleMqParam
();
mq
.
setChildNo
(
childNo
);
mq
.
setInvoiceType
(
invoiceType
);
log
.
info
(
"运单号 {} 开票标识 {} "
,
childNo
,
invoiceType
);
MqDelay
<
MqWrapper
<
SettlementSettleMqParam
>>
delay
=
new
MqDelay
<>(
RabbitKeySettlementConstants
.
DEFAULT_EXCHANGE
,
RabbitKeySettlementConstants
.
SETTLEMENT_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
);
}
}
performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqHandlerService.java
浏览文件 @
5a40a9ab
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.service.settle;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.vo.mq.SettlementDetailAddMqParam
;
import
com.clx.performance.vo.mq.SettlementDetailInvoiceTypeSyncMqParam
;
import
com.clx.performance.vo.mq.SettlementSettleMqParam
;
public
interface
SettlementMqHandlerService
{
...
...
@@ -10,6 +11,8 @@ public interface SettlementMqHandlerService {
void
settlementDetailInvoiceTypeSync
(
SettlementDetailInvoiceTypeSyncMqParam
mq
);
void
settle
(
SettlementSettleMqParam
mq
);
void
settlementDriverNotify
(
String
childNo
,
Integer
payType
,
String
payErrorMsg
);
String
paySettlementDriver
(
SettlementDriverDetail
detail
);
...
...
performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java
浏览文件 @
5a40a9ab
...
...
@@ -6,4 +6,5 @@ public interface SettlementMqService {
void
invoiceTypeSync
(
String
childNo
,
Integer
invoiceType
);
void
settle
(
String
childNo
,
Integer
invoiceType
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论