Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
61061b52
提交
61061b52
authored
6月 24, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'refs/heads/v17.5_order_child_sync_broker_20240617' into dev
上级
fe4e798f
56d9aa24
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
127 行增加
和
107 行删除
+127
-107
BrokerFeign.java
.../src/main/java/com/clx/performance/feign/BrokerFeign.java
+1
-2
NetworkSyncComponent.java
...a/com/clx/performance/component/NetworkSyncComponent.java
+16
-15
OrderChildLoanComponent.java
...om/clx/performance/component/OrderChildLoanComponent.java
+11
-0
OrderChildSyncTransportRecordDaoImpl.java
...dao/impl/settle/OrderChildSyncTransportRecordDaoImpl.java
+6
-1
BrokerService.java
...va/com/clx/performance/extranal/broker/BrokerService.java
+1
-1
BrokerServiceImpl.java
...x/performance/extranal/broker/impl/BrokerServiceImpl.java
+5
-2
OrderChildPaySyncTransportJob.java
...om/clx/performance/job/OrderChildPaySyncTransportJob.java
+1
-1
OrderChildSyncTransportInvoiceExceptionJob.java
...mance/job/OrderChildSyncTransportInvoiceExceptionJob.java
+1
-1
OrderChildSyncTransportListener.java
...performance/listener/OrderChildSyncTransportListener.java
+4
-11
OrderChild.java
...b/src/main/java/com/clx/performance/model/OrderChild.java
+1
-1
OrderChildBrokerService.java
...x/performance/service/broker/OrderChildBrokerService.java
+1
-1
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+9
-4
OrderChildBrokerServiceImpl.java
...ance/service/impl/broker/OrderChildBrokerServiceImpl.java
+3
-3
SettlementMqHandlerServiceImpl.java
...e/service/impl/settle/SettlementMqHandlerServiceImpl.java
+56
-21
SettlementServiceImpl.java
...erformance/service/impl/settle/SettlementServiceImpl.java
+11
-43
没有找到文件。
performance-api/src/main/java/com/clx/performance/feign/BrokerFeign.java
浏览文件 @
61061b52
...
...
@@ -3,7 +3,6 @@ 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
;
...
...
@@ -20,7 +19,7 @@ public interface BrokerFeign {
* 运单同步
*/
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/broker-service/open/transport/saveTransport"
)
Result
<
String
>
saveTransport
(
@RequestBody
TransportParam
param
);
Result
<
Object
>
saveTransport
(
@RequestBody
TransportParam
param
);
@RequestMapping
(
value
=
"/broker-service/open/transport/getTransportByChildNo"
,
method
=
RequestMethod
.
GET
)
Result
<
TransportVO
>
getTransportByChildNo
(
@RequestParam
@NotBlank
(
message
=
"运单编号不能为空"
)
String
childNo
,
...
...
performance-web/src/main/java/com/clx/performance/component/NetworkSyncComponent.java
浏览文件 @
61061b52
...
...
@@ -25,20 +25,21 @@ public class NetworkSyncComponent {
public
void
ownerSettlementSync
(
SettlementOwner
settlementOwner
,
List
<
SettlementOwnerDetail
>
settlementOwnerDetailList
){
//TODO 通知网络货运做货主计费开票标识通知
OwnerSettlementSyncParam
param
=
new
OwnerSettlementSyncParam
();
String
mobile
=
ownerFeign
.
getOwnerInfo
(
settlementOwner
.
getOwnerUserNo
()).
getData
().
getMobile
();
param
.
setOwnerMobile
(
mobile
);
List
<
OwnerSettlementSyncParam
.
SettlementItem
>
settlementList
=
new
LinkedList
<>();
for
(
SettlementOwnerDetail
settlementOwnerDetail
:
settlementOwnerDetailList
)
{
String
childNo
=
settlementOwnerDetail
.
getChildNo
();
OwnerSettlementSyncParam
.
SettlementItem
item
=
new
OwnerSettlementSyncParam
.
SettlementItem
();
item
.
setChildNo
(
childNo
);
item
.
setSettlementNo
(
settlementOwnerDetail
.
getSettlementNo
());
settlementList
.
add
(
item
);
}
param
.
setSettlementList
(
settlementList
);
HttpDTO
httpDTO
=
transportFeignService
.
ownerSettlementSync
(
param
);
String
decrypt
=
ThirdComponent
.
decrypt
(
httpDTO
.
getData
());
log
.
info
(
"通知网络货运做货主计费开票标识通知请求解密后:{}"
,
decrypt
);
// 禁用网络货运同步
// OwnerSettlementSyncParam param = new OwnerSettlementSyncParam();
// String mobile = ownerFeign.getOwnerInfo(settlementOwner.getOwnerUserNo()).getData().getMobile();
// param.setOwnerMobile(mobile);
// List<OwnerSettlementSyncParam.SettlementItem> settlementList = new LinkedList<>();
// for (SettlementOwnerDetail settlementOwnerDetail : settlementOwnerDetailList) {
// String childNo = settlementOwnerDetail.getChildNo();
// OwnerSettlementSyncParam.SettlementItem item = new OwnerSettlementSyncParam.SettlementItem();
// item.setChildNo(childNo);
// item.setSettlementNo(settlementOwnerDetail.getSettlementNo());
// settlementList.add(item);
// }
// param.setSettlementList(settlementList);
// HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param);
// String decrypt = ThirdComponent.decrypt(httpDTO.getData());
// log.info("通知网络货运做货主计费开票标识通知请求解密后:{}", decrypt);
}
}
performance-web/src/main/java/com/clx/performance/component/OrderChildLoanComponent.java
浏览文件 @
61061b52
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.component;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.clx.order.enums.StatusEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
import
com.clx.order.vo.pc.owner.OwnerQuotationDetailVO
;
...
...
@@ -25,6 +26,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum;
import
com.clx.performance.enums.settle.SettlementWayEnum
;
import
com.clx.performance.event.OwnerLoanThawEvent
;
import
com.clx.performance.event.OwnerRepaymentUpdateEvent
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OwnerRunningWaterRecord
;
...
...
@@ -89,6 +91,8 @@ public class OrderChildLoanComponent {
private
final
PaymentService
paymentService
;
private
final
OrderService
orderService
;
/**
* 接单校验判断
*
...
...
@@ -201,6 +205,7 @@ public class OrderChildLoanComponent {
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
childLoanConfirmAfterProcess
(
SettlementDriverDetail
settlementDriverDetail
,
SettlementOwnerDetail
settlementOwnerDetail
,
OrderChild
orderChild
)
{
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
settlementDriverDetail
.
getOrderNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_INVALID
);
log
.
info
(
"1.运单确认收货后借款相关处理执行"
);
//临时结算金额,借款抵扣后需要重新赋值结算金额为0,如果不需要借款相关逻辑,正常设置结算金额
...
...
@@ -224,6 +229,12 @@ public class OrderChildLoanComponent {
log
.
info
(
"3.当前是网运单,但预付运费不为0,说明已经处理"
);
return
;
}
if
(!
Objects
.
equals
(
orderInfo
.
getSupportLoan
(),
StatusEnum
.
YES
.
getCode
())){
log
.
info
(
"3.2当前运单不支持货主借款"
);
return
;
}
Integer
loanTypeFlag
=
null
;
String
childNo
=
settlementDriverDetail
.
getChildNo
();
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/settle/OrderChildSyncTransportRecordDaoImpl.java
浏览文件 @
61061b52
...
...
@@ -4,9 +4,11 @@ package com.clx.performance.dao.impl.settle;
import
com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao
;
import
com.clx.performance.mapper.settle.OrderChildSyncTransportRecordMapper
;
import
com.clx.performance.model.settle.OrderChildSyncTransportRecord
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
...
...
@@ -19,7 +21,10 @@ public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChild
@Override
public
List
<
OrderChildSyncTransportRecord
>
selectListForJob
()
{
return
baseMapper
.
selectList
(
lQrWrapper
().
eq
(
OrderChildSyncTransportRecord:
:
getStatus
,
0
));
return
baseMapper
.
selectList
(
lQrWrapper
()
.
gt
(
OrderChildSyncTransportRecord:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMonths
(
3
))
.
eq
(
OrderChildSyncTransportRecord:
:
getStatus
,
0
)
);
}
@Override
...
...
performance-web/src/main/java/com/clx/performance/extranal/broker/BrokerService.java
浏览文件 @
61061b52
...
...
@@ -7,5 +7,5 @@ public interface BrokerService {
void
orderChildSync
(
TransportParam
param
);
TransportVO
get
TransportByChildNo
(
String
childNo
);
TransportVO
get
OrderChildStatus
(
String
childNo
);
}
performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java
浏览文件 @
61061b52
package
com
.
clx
.
performance
.
extranal
.
broker
.
impl
;
import
com.clx.performance.config.SettlementConfig
;
import
com.clx.performance.enums.ResultEnum
;
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.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -22,13 +24,14 @@ public class BrokerServiceImpl implements BrokerService {
param
.
setUserCode
(
settlementConfig
.
getBrokerUserCode
());
Result
<
String
>
result
=
brokerFeign
.
saveTransport
(
param
);
Result
<
Object
>
result
=
brokerFeign
.
saveTransport
(
param
);
if
(
result
.
getCode
()
!=
0
)
{
log
.
info
(
"运单同步网络货运失败, msg:{}"
,
result
.
getMsg
());
throw
new
ServiceSystemException
(
ResultEnum
.
FEIGN_ERROR
,
result
.
getMsg
());
}
}
@Override
public
TransportVO
get
TransportByChildNo
(
String
childNo
)
{
public
TransportVO
get
OrderChildStatus
(
String
childNo
)
{
Result
<
TransportVO
>
result
=
brokerFeign
.
getTransportByChildNo
(
childNo
,
settlementConfig
.
getBrokerUserCode
());
if
(
result
.
getCode
()
!=
0
)
{
...
...
performance-web/src/main/java/com/clx/performance/job/OrderChildPaySyncTransportJob.java
浏览文件 @
61061b52
...
...
@@ -49,7 +49,7 @@ public class OrderChildPaySyncTransportJob {
private
final
OrderGoodsDao
orderGoodsDao
;
/**
* 同步网络货运
* 同步网络货运
运单支付(禁用网络货运同步)
*/
// @XxlJob("orderChildPaySyncTransportJob")
public
void
orderChildPaySyncTransportJob
()
{
...
...
performance-web/src/main/java/com/clx/performance/job/OrderChildSyncTransportInvoiceExceptionJob.java
浏览文件 @
61061b52
...
...
@@ -49,7 +49,7 @@ public class OrderChildSyncTransportInvoiceExceptionJob {
private
final
SettlementDriverDetailDao
settlementDriverDetailDao
;
/**
* 同步网络货运(禁用)
* 同步网络货运(禁用
网络货运同步
)
*/
// @XxlJob("orderChildSyncTransportInvoiceExceptionJob")
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
performance-web/src/main/java/com/clx/performance/listener/OrderChildSyncTransportListener.java
浏览文件 @
61061b52
...
...
@@ -26,13 +26,12 @@ import com.clx.performance.model.*;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.service.TransportSyncService
;
import
com.clx.performance.service.broker.OrderChild
Sync
BrokerService
;
import
com.clx.performance.service.broker.OrderChildBrokerService
;
import
com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.stereotype.Component
;
...
...
@@ -72,7 +71,7 @@ public class OrderChildSyncTransportListener {
private
final
ApplicationEventPublisher
applicationEventPublisher
;
private
final
InvoicingCompanyService
invoicingCompanyService
;
private
final
SettlementConfig
settlementConfig
;
private
final
OrderChild
SyncBrokerService
orderChildSync
BrokerService
;
private
final
OrderChild
BrokerService
orderChild
BrokerService
;
private
final
OrderChildDao
orderChildDao
;
/**
* 承运同步网络货运运单
...
...
@@ -105,13 +104,7 @@ public class OrderChildSyncTransportListener {
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
// // 开票服务费
// settlementOwnerDetail.setInvoiceServiceFee(invoiceServiceFeeCalc(orderChild.getSettlementWay(), settlementOwnerDetail));
// // 开票金额
// settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(),
// orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail));
// // 同步网络货运
// // 同步网络货运(禁用网络货运同步)
// ThirdOrderChildBrokerParam param = transportSyncService.generateOrderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
// HttpDTO httpDTOResult = transportFeignService.orderChildSync(param);
// String decrypt = ThirdComponent.decrypt(httpDTOResult.getData());
...
...
@@ -119,7 +112,7 @@ public class OrderChildSyncTransportListener {
// extracted(orderChild, bean, JSONUtil.parse(bean).toString(), settlementOwnerDetail, invoiceType, settlementDriverDetail);
// 同步broker
orderChild
Sync
BrokerService
.
orderChildSync
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
orderChildBrokerService
.
orderChildSync
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
}
public
void
extracted
(
OrderChild
orderChild
,
OrderChildSyncDTO
bean
,
String
remark
,
...
...
performance-web/src/main/java/com/clx/performance/model/OrderChild.java
浏览文件 @
61061b52
...
...
@@ -93,7 +93,7 @@ public class OrderChild implements HasKey<Integer> {
private
Integer
settlementAccountPeriod
;
//结算账期 1拉运完成结 2月结
private
Integer
settlementWay
;
//结算方式 1装车净重
private
Integer
settlementWay
;
//结算方式 1装车净重
2卸车净重 3卸车净重(减货损)
private
Integer
invoicingCompanyId
;
//开票公司id
private
String
invoicingCompanyShorterName
;
//开票公司简称
private
String
invoicingCompanyGroupCode
;
//开票公司统一社会信用代码
...
...
performance-web/src/main/java/com/clx/performance/service/broker/OrderChild
Sync
BrokerService.java
→
performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerService.java
浏览文件 @
61061b52
...
...
@@ -5,7 +5,7 @@ import com.clx.performance.model.OrderGoods;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
public
interface
OrderChild
Sync
BrokerService
{
public
interface
OrderChildBrokerService
{
void
orderChildSync
(
OrderChild
orderChild
,
OrderGoods
orderGoods
,
SettlementOwnerDetail
settlementOwnerDetail
,
SettlementDriverDetail
settlementDriverDetail
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
61061b52
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.order.enums.InvoicingCompanyEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.QuotationEnum
;
import
com.clx.order.enums.VehicleUsageEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignAddressVO
;
...
...
@@ -447,10 +448,14 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild
.
setInvoicingCompanyGroupCode
(
orderInfo
.
getInvoicingCompanyGroupCode
());
orderChild
.
setReportFlag
(
orderInfo
.
getReportFlag
());
// 平台服务费
orderChild
.
setPlatformServiceFeeRate
(
orderGoods
.
getPlatformServiceFeeRate
());
orderChild
.
setPlatformServiceFee
(
orderGoods
.
getDeposit
());
orderChild
.
setDeposit
(
orderGoods
.
getDeposit
());
// 平台服务费 (订单运费报价为“未税”订单结算方式为“卸车净重(减货损))
if
(
Objects
.
equals
(
orderGoods
.
getPlatformFreightQuotationTaxType
(),
QuotationEnum
.
PlatformFreightQuotationTaxType
.
NO
.
getCode
())
&&
Objects
.
equals
(
orderChild
.
getSettleTime
(),
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
orderChild
.
setPlatformServiceFeeRate
(
orderGoods
.
getPlatformServiceFeeRate
());
orderChild
.
setPlatformServiceFee
(
orderGoods
.
getDeposit
());
orderChild
.
setDeposit
(
orderGoods
.
getDeposit
());
}
// 更新货单数据
updateOrderGoodsAmount
(
orderGoods
,
orderChild
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChild
SyncBroker
.java
→
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChild
BrokerServiceImpl
.java
浏览文件 @
61061b52
...
...
@@ -13,7 +13,7 @@ import com.clx.performance.model.OrderChildImage;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.service.broker.OrderChild
Sync
BrokerService
;
import
com.clx.performance.service.broker.OrderChildBrokerService
;
import
com.clx.performance.vo.pc.broker.*
;
import
com.clx.user.feign.DocumentFeign
;
import
com.clx.user.feign.DriverFeign
;
...
...
@@ -31,7 +31,7 @@ import java.util.List;
@Slf4j
@Service
public
class
OrderChild
SyncBroker
implements
OrderChildSync
BrokerService
{
public
class
OrderChild
BrokerServiceImpl
implements
OrderChild
BrokerService
{
@Autowired
private
BrokerService
brokerService
;
...
...
@@ -228,7 +228,7 @@ public class OrderChildSyncBroker implements OrderChildSyncBrokerService {
orderChildInfo
.
setPayFinishedTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getPayTime
()).
get
());
orderChildInfo
.
setLoadTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getLoadTime
()).
get
());
orderChildInfo
.
setUnloadTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getUnloadTime
()).
get
());
orderChildInfo
.
setPayFinishedTime
(
DateUtils
.
formatDateTime
(
orderChild
.
get
Finish
Time
()).
get
());
orderChildInfo
.
setPayFinishedTime
(
DateUtils
.
formatDateTime
(
orderChild
.
get
Confirm
Time
()).
get
());
orderChildInfo
.
setReceiveTare
(
orderChild
.
getUnloadTare
());
orderChildInfo
.
setReceiveRough
(
orderChild
.
getUnloadRough
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java
浏览文件 @
61061b52
...
...
@@ -226,10 +226,19 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Override
public
void
invoiceTypeSync
(
SettlementInvoiceTypeSyncMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(!
Objects
.
equals
(
settlementOwnerDetail
.
getInvoiceChannel
(),
SettlementOwnerDetailEnum
.
InvoiceChannel
.
BROKER
.
getCode
())){
return
;
}
try
{
// 获取状态
TransportVO
result
=
brokerService
.
getTransportByChildNo
(
mq
.
getChildNo
());
TransportVO
result
=
brokerService
.
getOrderChildStatus
(
mq
.
getChildNo
());
if
(
result
==
null
){
log
.
info
(
"运单号 {} 未找到运单信息"
,
mq
.
getChildNo
());
return
;
}
Integer
invoiceType
;
if
(
Objects
.
equals
(
result
.
getRiskStatus
(),
1
)
||
Objects
.
equals
(
result
.
getRiskStatus
(),
2
))
{
...
...
@@ -260,8 +269,19 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Override
public
void
invoiceStatusSync
(
SettlementInvoiceStatusSyncMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(!
Objects
.
equals
(
settlementOwnerDetail
.
getInvoiceChannel
(),
SettlementOwnerDetailEnum
.
InvoiceChannel
.
BROKER
.
getCode
())){
return
;
}
// 获取状态
TransportVO
result
=
brokerService
.
getTransportByChildNo
(
mq
.
getChildNo
());
TransportVO
result
=
brokerService
.
getOrderChildStatus
(
mq
.
getChildNo
());
if
(
result
==
null
){
log
.
info
(
"运单号 {} 未找到运单信息"
,
mq
.
getChildNo
());
return
;
}
if
(
Objects
.
equals
(
result
.
getInvoiceStatus
(),
1
)
)
{
InvoicingStatusNotifyDTO
invoicingStatusNotifyDTO
=
new
InvoicingStatusNotifyDTO
();
...
...
@@ -274,11 +294,21 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Override
public
void
payStatusSync
(
SettlementPayStatusSyncMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(!
Objects
.
equals
(
settlementOwnerDetail
.
getInvoiceChannel
(),
SettlementOwnerDetailEnum
.
InvoiceChannel
.
BROKER
.
getCode
())){
return
;
}
// 获取状态
TransportVO
result
=
brokerService
.
getTransportByChildNo
(
mq
.
getChildNo
());
TransportVO
result
=
brokerService
.
getOrderChildStatus
(
mq
.
getChildNo
());
if
(
result
==
null
){
log
.
info
(
"运单号 {} 未找到运单信息"
,
mq
.
getChildNo
());
return
;
}
if
(
Objects
.
equals
(
result
.
getSettleStatus
(),
1
)
)
{
PayStatusNotifyDTO
payStatusNotifyDTO
=
new
PayStatusNotifyDTO
();
payStatusNotifyDTO
.
setChildNo
(
mq
.
getChildNo
());
orderChildSyncTransportRecordService
.
updateStatus
(
payStatusNotifyDTO
);
...
...
@@ -293,25 +323,30 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
settlementDriverDetail
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementPlatformServiceFee
settlementPlatformServiceFee
=
new
SettlementPlatformServiceFee
();
settlementPlatformServiceFee
.
setChildNo
(
settlementDriverDetail
.
getChildNo
());
settlementPlatformServiceFee
.
setDriverUserNo
(
settlementDriverDetail
.
getDriverUserNo
());
settlementPlatformServiceFee
.
setDriverName
(
settlementDriverDetail
.
getDriverName
());
settlementPlatformServiceFee
.
setDriverMobile
(
orderChild
.
getDriverMobile
());
settlementPlatformServiceFee
.
setSendAddressId
(
orderChild
.
getSendAddressId
());
settlementPlatformServiceFee
.
setSendAddress
(
orderChild
.
getSendAddress
());
settlementPlatformServiceFee
.
setReceiveAddressId
(
orderChild
.
getReceiveAddressId
());
settlementPlatformServiceFee
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
settlementPlatformServiceFee
.
setTruckNo
(
orderChild
.
getTruckNo
());
settlementPlatformServiceFee
.
setSettlementFreight
(
settlementDriverDetail
.
getSettlementFreight
());
settlementPlatformServiceFee
.
setInvoiceServiceFeeRate
(
settlementDriverDetail
.
getPlatformServiceFeeRate
());
settlementPlatformServiceFee
.
setInvoiceServiceFee
(
settlementDriverDetail
.
getPlatformServiceFee
());
// 平台服务费
orderChild
.
setPlatformServiceFee
(
settlementDriverDetail
.
getPlatformServiceFee
());
SettlementPlatformServiceFee
settlementPlatformServiceFee
=
null
;
if
(
settlementDriverDetail
.
getPlatformServiceFee
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
settlementPlatformServiceFee
=
new
SettlementPlatformServiceFee
();
settlementPlatformServiceFee
.
setChildNo
(
settlementDriverDetail
.
getChildNo
());
settlementPlatformServiceFee
.
setDriverUserNo
(
settlementDriverDetail
.
getDriverUserNo
());
settlementPlatformServiceFee
.
setDriverName
(
settlementDriverDetail
.
getDriverName
());
settlementPlatformServiceFee
.
setDriverMobile
(
orderChild
.
getDriverMobile
());
settlementPlatformServiceFee
.
setSendAddressId
(
orderChild
.
getSendAddressId
());
settlementPlatformServiceFee
.
setSendAddress
(
orderChild
.
getSendAddress
());
settlementPlatformServiceFee
.
setReceiveAddressId
(
orderChild
.
getReceiveAddressId
());
settlementPlatformServiceFee
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
settlementPlatformServiceFee
.
setTruckNo
(
orderChild
.
getTruckNo
());
settlementPlatformServiceFee
.
setSettlementFreight
(
settlementDriverDetail
.
getSettlementFreight
());
settlementPlatformServiceFee
.
setInvoiceServiceFeeRate
(
settlementDriverDetail
.
getPlatformServiceFeeRate
());
settlementPlatformServiceFee
.
setInvoiceServiceFee
(
settlementDriverDetail
.
getPlatformServiceFee
());
// 平台服务费
orderChild
.
setPlatformServiceFee
(
settlementDriverDetail
.
getPlatformServiceFee
());
}
orderChildDao
.
updatePlatformServiceFee
(
orderChild
);
settlementPlatformServiceFeeDao
.
saveEntity
(
settlementPlatformServiceFee
);
if
(
settlementPlatformServiceFee
!=
null
)
{
settlementPlatformServiceFeeDao
.
saveEntity
(
settlementPlatformServiceFee
);
}
log
.
info
(
"更新网络标识 {} "
,
orderChild
.
getChildNo
());
// 更新网络标识
settlementService
.
updateSettlementDetailInvoiceType
(
settlementOwnerDetail
.
getChildNo
(),
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementServiceImpl.java
浏览文件 @
61061b52
...
...
@@ -26,6 +26,7 @@ import com.clx.performance.model.OwnerAccount;
import
com.clx.performance.model.OwnerRunningWaterRecord
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.service.settle.SettlementCommonService
;
import
com.clx.performance.service.settle.SettlementMqService
;
import
com.clx.performance.service.settle.SettlementService
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -70,6 +71,8 @@ public class SettlementServiceImpl implements SettlementService {
private
InvoicingCompanyService
invoicingCompanyService
;
@Autowired
private
SettlementConfig
settlementConfig
;
@Autowired
private
SettlementCommonService
settlementCommonService
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -97,15 +100,15 @@ public class SettlementServiceImpl implements SettlementService {
if
(
settlementOwnerDetail
.
getSettlementFreight
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO_REQUIRE
.
getCode
());
}
// 如果开票标识为“普通单”时,开票费率从开票公司“五寨华祥”中获取
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
BigDecimal
.
ZERO
);
// 设置开票公司信息
// 如果开票标识为“普通单”时,开票公司“五寨华祥”
InvoicingCompanyVO
invoiceCompany
=
invoicingCompanyService
.
getInvoicingCompanyByGroupCode
(
settlementConfig
.
getOrdinaryInvoiceCompanyGroupCode
());
//设置开票公司信息
settlementOwnerDetail
.
setInvoicingCompanyId
(
invoiceCompany
.
getId
());
settlementOwnerDetail
.
setInvoicingCompanyShorterName
(
invoiceCompany
.
getCompanyShorterName
());
settlementOwnerDetail
.
setInvoicingCompanyGroupCode
(
invoiceCompany
.
getCompanyGroupCode
());
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
invoiceCompany
.
getServiceFeeRate
());
settlementDriverDetail
.
setInvoicingCompanyId
(
invoiceCompany
.
getId
());
settlementDriverDetail
.
setInvoicingCompanyShorterName
(
invoiceCompany
.
getCompanyShorterName
());
...
...
@@ -114,17 +117,17 @@ public class SettlementServiceImpl implements SettlementService {
if
(
settlementDriverDetail
.
getSettlementFreight
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO_REQUIRE
.
getCode
());
}
// 如果开票标识为“网运单”时,开票费率取货单单所记录的开票费率
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
orderGoods
.
getInvoiceServiceFeeRate
()==
null
?
BigDecimal
.
ZERO
:
orderGoods
.
getInvoiceServiceFeeRate
());
}
settlementOwnerDetail
.
setInvoiceType
(
invoiceType
);
settlementDriverDetail
.
setInvoiceType
(
invoiceType
);
// 开票服务费
settlementOwnerDetail
.
setInvoiceServiceFee
(
invoiceServiceFeeCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
settlementOwnerDetail
.
setInvoiceServiceFee
(
settlementCommonService
.
invoiceServiceFeeCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
// 开票金额
settlementOwnerDetail
.
setInvoiceFreight
(
invoiceFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
.
setInvoiceFreight
(
settlementCommonService
.
invoiceFreightCalc
(
orderChild
.
getSettlementWay
(),
orderGoods
.
getInvoiceServiceFeeRate
(),
settlementOwnerDetail
));
// 结算金额
...
...
@@ -220,41 +223,6 @@ public class SettlementServiceImpl implements SettlementService {
}
}
/**
* 开票服务费金额
*/
private
BigDecimal
invoiceServiceFeeCalc
(
Integer
settlementWay
,
SettlementOwnerDetail
settlementOwnerDetail
)
{
return
settlementOwnerDetail
.
getFreight
().
subtract
(
settlementOwnerDetail
.
getLossFreight
())
.
divide
(
BigDecimal
.
ONE
.
subtract
(
settlementOwnerDetail
.
getInvoiceServiceFeeRate
()),
0
,
RoundingMode
.
HALF_UP
)
.
multiply
(
settlementOwnerDetail
.
getInvoiceServiceFeeRate
()).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/**
* 开票金额
*/
private
BigDecimal
invoiceFreightCalc
(
Integer
settlementWay
,
BigDecimal
invoiceServiceFeeRate
,
SettlementOwnerDetail
settlementOwnerDetail
)
{
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
LOAD
.
getCode
()))
{
//订单结算方式为“装车净重”时,开票金额=实际净重*平台运费报价-货损金额。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
else
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
if
(
invoiceServiceFeeRate
!=
null
){
//结算方式为“卸车净重(减货损)”,平台运费报价为“未税”时,开票金额=平台运费单价*实际净重-货损单价*货损吨数+开票服务费。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getLossPrice
())
.
add
(
settlementOwnerDetail
.
getInvoiceServiceFee
());
}
else
{
//结算方式为“卸车净重(减货损)”,平台运费报价为“含税”时 开票金额=平台运费单价*实际净重-货损单价*货损吨数
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
}
else
{
//订单结算方式为“卸车净重”时,开票金额=实际净重*平台运费报价。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
());
}
}
/**
* 结算金额
*/
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论