Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
3d936a99
提交
3d936a99
authored
6月 27, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'refs/heads/v17.5_order_child_sync_broker_20240617' into dev
上级
1b8f8dc5
f6eaa5da
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
50 个修改的文件
包含
512 行增加
和
223 行删除
+512
-223
OrderChildSyncTransportRecordEnum.java
.../performance/enums/OrderChildSyncTransportRecordEnum.java
+33
-0
TransportSyncTypeEnum.java
...java/com/clx/performance/enums/TransportSyncTypeEnum.java
+1
-0
SettlementOwnerDetailEnum.java
...x/performance/enums/settle/SettlementOwnerDetailEnum.java
+17
-0
PageCarrierSettlementPlatformServiceFeeParam.java
...c/owner/PageCarrierSettlementPlatformServiceFeeParam.java
+4
-4
SettlementSettleMqParam.java
...va/com/clx/performance/vo/mq/SettlementSettleMqParam.java
+1
-0
OrderGoodsVO.java
...src/main/java/com/clx/performance/vo/pc/OrderGoodsVO.java
+4
-0
OpenOrderChildTruckDTO.java
.../clx/performance/vo/pc/broker/OpenOrderChildTruckDTO.java
+6
-0
TransportParam.java
...java/com/clx/performance/vo/pc/broker/TransportParam.java
+6
-6
CarrierPageSettlementDriverVO.java
...e/vo/pc/carrier/settle/CarrierPageSettlementDriverVO.java
+1
-1
CarrierPageSettlementOwnerDetailVO.java
...pc/carrier/settle/CarrierPageSettlementOwnerDetailVO.java
+5
-0
CarrierSettlementOwnerDetailVO.java
.../vo/pc/carrier/settle/CarrierSettlementOwnerDetailVO.java
+4
-0
SettlementPlatformServiceFeeVO.java
.../vo/pc/carrier/settle/SettlementPlatformServiceFeeVO.java
+3
-0
OrderChildLoanComponent.java
...om/clx/performance/component/OrderChildLoanComponent.java
+24
-14
PayNotifyController.java
...x/performance/controller/payment/PayNotifyController.java
+3
-8
PlatformServiceFeeConfigController.java
...roller/pc/carrier/PlatformServiceFeeConfigController.java
+1
-0
OrderChildSyncTransportInvoiceRecordDao.java
...formance/dao/OrderChildSyncTransportInvoiceRecordDao.java
+1
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+1
-0
OrderChildSyncTransportInvoiceRecordDaoImpl.java
...dao/impl/OrderChildSyncTransportInvoiceRecordDaoImpl.java
+9
-0
OrderChildSyncTransportRecordDaoImpl.java
...dao/impl/settle/OrderChildSyncTransportRecordDaoImpl.java
+11
-1
SettlementOwnerDetailDaoImpl.java
...ormance/dao/impl/settle/SettlementOwnerDetailDaoImpl.java
+19
-0
OrderChildSyncTransportRecordDao.java
...formance/dao/settle/OrderChildSyncTransportRecordDao.java
+4
-0
SettlementOwnerDetailDao.java
.../clx/performance/dao/settle/SettlementOwnerDetailDao.java
+3
-0
BrokerServiceImpl.java
...x/performance/extranal/broker/impl/BrokerServiceImpl.java
+3
-0
BrokerFeign.java
.../src/main/java/com/clx/performance/feign/BrokerFeign.java
+1
-1
OrderChildPaySyncTransportJob.java
...om/clx/performance/job/OrderChildPaySyncTransportJob.java
+22
-22
OrderChildSyncTransportInvoiceExceptionJob.java
...mance/job/OrderChildSyncTransportInvoiceExceptionJob.java
+61
-61
SettlementJob.java
...ava/com/clx/performance/job/settlement/SettlementJob.java
+6
-0
OrderChildSyncTransportListener.java
...performance/listener/OrderChildSyncTransportListener.java
+0
-0
OrderGoods.java
...b/src/main/java/com/clx/performance/model/OrderGoods.java
+3
-0
SettlementDriver.java
...va/com/clx/performance/model/settle/SettlementDriver.java
+1
-1
SettlementOwnerDetail.java
...m/clx/performance/model/settle/SettlementOwnerDetail.java
+2
-0
PaymentService.java
...main/java/com/clx/performance/service/PaymentService.java
+3
-0
OrderChildPoundAuditServiceImpl.java
...ormance/service/impl/OrderChildPoundAuditServiceImpl.java
+70
-6
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+12
-6
PaymentServiceImpl.java
.../com/clx/performance/service/impl/PaymentServiceImpl.java
+16
-4
OrderChildBrokerServiceImpl.java
...ance/service/impl/broker/OrderChildBrokerServiceImpl.java
+28
-13
NetworkDriverAccountServiceImpl.java
.../service/impl/settle/NetworkDriverAccountServiceImpl.java
+6
-4
OrderChildSyncTransportRecordServiceImpl.java
...impl/settle/OrderChildSyncTransportRecordServiceImpl.java
+30
-2
SettlementCommonServiceImpl.java
...ance/service/impl/settle/SettlementCommonServiceImpl.java
+11
-10
SettlementDriverDetailServiceImpl.java
...ervice/impl/settle/SettlementDriverDetailServiceImpl.java
+2
-2
SettlementMqHandlerServiceImpl.java
...e/service/impl/settle/SettlementMqHandlerServiceImpl.java
+47
-10
SettlementMqServiceImpl.java
...formance/service/impl/settle/SettlementMqServiceImpl.java
+2
-1
SettlementOwnerDetailServiceImpl.java
...service/impl/settle/SettlementOwnerDetailServiceImpl.java
+6
-20
SettlementServiceImpl.java
...erformance/service/impl/settle/SettlementServiceImpl.java
+8
-21
SettlementMqService.java
...m/clx/performance/service/settle/SettlementMqService.java
+1
-1
OrderGoodsSqlProvider.java
...om/clx/performance/sqlProvider/OrderGoodsSqlProvider.java
+5
-3
SettlementPlatformServiceFeeSqlProvider.java
...vider/settle/SettlementPlatformServiceFeeSqlProvider.java
+2
-1
OwnGoodsOrderStrategy.java
.../clx/performance/strategy/impl/OwnGoodsOrderStrategy.java
+1
-0
PartGoodsOrderStrategy.java
...clx/performance/strategy/impl/PartGoodsOrderStrategy.java
+1
-0
PlatformGoodsOrderStrategy.java
...performance/strategy/impl/PlatformGoodsOrderStrategy.java
+1
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/OrderChildSyncTransportRecordEnum.java
0 → 100644
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.Optional
;
public
enum
OrderChildSyncTransportRecordEnum
{
;
@Getter
@AllArgsConstructor
public
enum
Status
{
INIT
(
0
,
"未同步"
),
SYNC
(
1
,
"已同步"
),
SUC
(
2
,
"回调成功"
),
FAIL
(
3
,
"回调失败"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
Status
>
getByCode
(
Integer
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
Status:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/enums/TransportSyncTypeEnum.java
浏览文件 @
3d936a99
...
...
@@ -16,6 +16,7 @@ public enum TransportSyncTypeEnum {
NO_PASS
(
1
,
"未通过风控异常"
),
EXCEPTION
(
2
,
"同步异常"
),
RESULT
(
3
,
"查询状态"
),
;
...
...
performance-api/src/main/java/com/clx/performance/enums/settle/SettlementOwnerDetailEnum.java
浏览文件 @
3d936a99
...
...
@@ -66,5 +66,22 @@ public enum SettlementOwnerDetailEnum {
}
}
@Getter
@AllArgsConstructor
public
enum
PayStatus
{
NO
(
0
,
"否"
),
YES
(
1
,
"是"
),
;
private
final
Integer
code
;
private
final
String
msg
;
public
static
Optional
<
PayStatus
>
getByCode
(
int
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
Objects
.
equals
(
e
.
getCode
(),
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
int
code
)
{
return
getByCode
(
code
).
map
(
PayStatus:
:
getMsg
).
orElse
(
null
);
}
}
}
performance-api/src/main/java/com/clx/performance/param/pc/owner/PageCarrierSettlementPlatformServiceFeeParam.java
浏览文件 @
3d936a99
...
...
@@ -19,12 +19,12 @@ public class PageCarrierSettlementPlatformServiceFeeParam extends PageParam {
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"JS415"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"
车主
编码"
,
example
=
"201457878"
)
@ApiModelProperty
(
value
=
"
司机
编码"
,
example
=
"201457878"
)
private
Long
driverUserNo
;
@ApiModelProperty
(
value
=
"
车主
姓名"
,
example
=
"张三"
)
private
String
driver
User
Name
;
@ApiModelProperty
(
value
=
"
车主
手机"
,
example
=
"13000000000"
)
@ApiModelProperty
(
value
=
"
司机
姓名"
,
example
=
"张三"
)
private
String
driverName
;
@ApiModelProperty
(
value
=
"
司机
手机"
,
example
=
"13000000000"
)
private
String
driverMobile
;
@ApiModelProperty
(
value
=
"开始时间"
)
...
...
performance-api/src/main/java/com/clx/performance/vo/mq/SettlementSettleMqParam.java
浏览文件 @
3d936a99
...
...
@@ -19,5 +19,6 @@ public class SettlementSettleMqParam {
private
String
childNo
;
//运单编号
private
Integer
InvoiceType
;
//开票类型
private
String
remark
;
//备注
}
performance-api/src/main/java/com/clx/performance/vo/pc/OrderGoodsVO.java
浏览文件 @
3d936a99
...
...
@@ -157,6 +157,10 @@ public class OrderGoodsVO {
@ApiModelProperty
(
"接单保证金(分/车)"
)
private
BigDecimal
deposit
;
@ApiModelProperty
(
"是否支持借款:0:否 1:是"
)
private
Integer
supportLoan
;
@ApiModelProperty
(
"结算方式 1装车净重 2卸车净重"
)
private
Integer
settlementWay
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/broker/OpenOrderChildTruckDTO.java
浏览文件 @
3d936a99
...
...
@@ -51,6 +51,12 @@ public class OpenOrderChildTruckDTO {
private
String
licenceImgSecondBack
;
@ApiModelProperty
(
value
=
"道路运输许可证图片地址"
,
dataType
=
"String"
)
private
String
transportLicenceImg
;
@ApiModelProperty
(
value
=
"挂车行驶证主页照片"
,
dataType
=
"String"
)
private
String
licenceImgMain2
;
@ApiModelProperty
(
value
=
"挂车行驶证副业正面照片"
,
dataType
=
"String"
)
private
String
licenceImgSecond2
;
@ApiModelProperty
(
value
=
"挂车道路运输许可证图片地址"
,
dataType
=
"String"
)
private
String
transportLicenceImg2
;
@ApiModelProperty
(
value
=
"车辆燃料类型 1:柴油 2 天然气 3其他 4新能源/电"
,
dataType
=
"Integer"
)
private
Integer
powerType
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportParam.java
浏览文件 @
3d936a99
...
...
@@ -35,26 +35,26 @@ public class TransportParam {
@ApiModelProperty
(
value
=
"货单"
,
required
=
true
)
@NotNull
(
message
=
"货单不能为空"
)
private
OpenOrderDTO
order
Info
;
private
OpenOrderDTO
order
;
@ApiModelProperty
(
value
=
"图片"
,
required
=
true
)
@NotEmpty
(
message
=
"运单图片不能为空"
)
private
List
<
OpenOrderChildImageDTO
>
imageList
;
private
List
<
OpenOrderChildImageDTO
>
orderChildImage
;
@ApiModelProperty
(
value
=
"司机"
,
required
=
true
)
@NotNull
(
message
=
"司机不能为空"
)
private
OpenOrderChildDriverDTO
driverInfo
;
private
OpenOrderChildDriverDTO
orderChildDriver
;
@ApiModelProperty
(
value
=
"车主"
,
required
=
true
)
@NotNull
(
message
=
"车主不能为空"
)
private
OpenOrderChildTruckOwnerDTO
o
wnerInfo
;
private
OpenOrderChildTruckOwnerDTO
o
rderChildTruckOwner
;
@ApiModelProperty
(
value
=
"车辆"
,
required
=
true
)
@NotNull
(
message
=
"车辆不能为空"
)
private
OpenOrderChildTruckDTO
truckInfo
;
private
OpenOrderChildTruckDTO
orderChildTruck
;
@ApiModelProperty
(
value
=
"运单"
,
required
=
true
)
@NotNull
(
message
=
"运单不能为空"
)
private
OpenOrderChildDTO
orderChild
Info
;
private
OpenOrderChildDTO
orderChild
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierPageSettlementDriverVO.java
浏览文件 @
3d936a99
...
...
@@ -69,7 +69,7 @@ public class CarrierPageSettlementDriverVO {
@ApiModelProperty
(
value
=
"开票公司id"
)
private
Integer
invoicingCompanyId
;
@ApiModelProperty
(
value
=
"开票公司简称"
)
private
Integer
invoicingCompanyShorterName
;
private
String
invoicingCompanyShorterName
;
@MoneyOutConvert
@ApiModelProperty
(
value
=
"平台服务费"
)
private
BigDecimal
platformServiceFee
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierPageSettlementOwnerDetailVO.java
浏览文件 @
3d936a99
...
...
@@ -70,6 +70,11 @@ public class CarrierPageSettlementOwnerDetailVO {
@ApiModelProperty
(
value
=
"开票标识:1网运单 2普通单"
)
private
Integer
invoiceType
;
@MoneyOutConvert
@ApiModelProperty
(
value
=
"开票服务费"
)
private
BigDecimal
invoiceServiceFee
;
@ApiModelProperty
(
value
=
"开票服务率"
)
private
BigDecimal
invoiceServiceFeeRate
;
@MoneyOutConvert
@ApiModelProperty
(
value
=
"借款抵扣金额"
)
private
BigDecimal
loanFreight
;
@ApiModelProperty
(
"结算方式 1装车净重 2卸车净重"
)
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/CarrierSettlementOwnerDetailVO.java
浏览文件 @
3d936a99
...
...
@@ -82,6 +82,10 @@ public class CarrierSettlementOwnerDetailVO {
@ApiModelProperty
(
value
=
"结算凭证"
,
example
=
"/a.png"
)
private
String
invoiceImg
;
@ApiModelProperty
(
value
=
"开票服务费"
,
example
=
"1.23"
)
@MoneyOutConvert
private
BigDecimal
invoiceServiceFee
;
@ApiModelProperty
(
value
=
"收款人"
,
example
=
"收款人"
)
private
String
payee
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/carrier/settle/SettlementPlatformServiceFeeVO.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
vo
.
pc
.
carrier
.
settle
;
import
com.msl.common.convertor.type.MoneyOutConvert
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
...
...
@@ -41,8 +42,10 @@ public class SettlementPlatformServiceFeeVO {
private
String
receiveAddress
;
@ApiModelProperty
(
value
=
"车牌号"
,
example
=
""
)
private
String
truckNo
;
@MoneyOutConvert
@ApiModelProperty
(
value
=
"结算金额(分)"
,
example
=
""
)
private
BigDecimal
settlementFreight
;
@MoneyOutConvert
@ApiModelProperty
(
value
=
"开票服务费(分)"
,
example
=
""
)
private
BigDecimal
invoiceServiceFee
;
@ApiModelProperty
(
value
=
"开票服务率%"
,
example
=
""
)
...
...
performance-web/src/main/java/com/clx/performance/component/OrderChildLoanComponent.java
浏览文件 @
3d936a99
...
...
@@ -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.QuotationEnum
;
import
com.clx.order.enums.StatusEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
...
...
@@ -40,6 +41,7 @@ import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
import
com.clx.performance.service.PaymentService
;
import
com.clx.performance.service.loan.OwnerLoanRecordService
;
import
com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService
;
import
com.clx.performance.service.settle.SettlementCommonService
;
import
com.clx.user.vo.feign.OwnerInfoFeignVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.AllArgsConstructor
;
...
...
@@ -93,6 +95,8 @@ public class OrderChildLoanComponent {
private
final
OrderService
orderService
;
private
final
SettlementCommonService
settlementCommonService
;
/**
* 接单校验判断
*
...
...
@@ -112,6 +116,19 @@ public class OrderChildLoanComponent {
log
.
info
(
"2.百分百预付不需要考虑借款账户"
);
return
;
}
if
(!
Objects
.
equals
(
orderInfoVO
.
getSupportLoan
(),
StatusEnum
.
YES
.
getCode
())){
log
.
info
(
"3.2当前运单不支持货主借款"
);
return
;
}
if
(
Objects
.
equals
(
orderGoods
.
getPlatformFreightQuotationTaxType
(),
QuotationEnum
.
PlatformFreightQuotationTaxType
.
NO
.
getCode
())
&&
Objects
.
equals
(
orderGoods
.
getSettlementWay
(),
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
log
.
info
(
"3.2当前运单不支持货主借款"
);
return
;
}
List
<
OrderChildLoanRetryRecord
>
orderChildLoanRetryRecordList
=
orderChildLoanRetryRecordDao
.
listByField
(
OrderChildLoanRetryRecord:
:
getOwnerUserNo
,
ownerInfoFeignVO
.
getUserNo
());
if
(
CollectionUtil
.
isNotEmpty
(
orderChildLoanRetryRecordList
))
{
...
...
@@ -209,7 +226,7 @@ public class OrderChildLoanComponent {
log
.
info
(
"1.运单确认收货后借款相关处理执行"
);
//临时结算金额,借款抵扣后需要重新赋值结算金额为0,如果不需要借款相关逻辑,正常设置结算金额
settlementOwnerDetail
.
setSettlementFreight
(
settlementFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
settlementOwnerDetail
.
setSettlementFreight
(
settlement
CommonService
.
settlement
FreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
OwnerQuotationDetailVO
quotationDetailVO
=
orderFeign
.
getQuotationByOrderNo
(
settlementDriverDetail
.
getOrderNo
()).
getData
();
BigDecimal
freightFreezeRate
=
quotationDetailVO
.
getFreightFreezeRate
();
...
...
@@ -235,6 +252,12 @@ public class OrderChildLoanComponent {
return
;
}
if
(!
Objects
.
equals
(
orderInfo
.
getPlatformFreightQuotationTaxType
(),
QuotationEnum
.
PlatformFreightQuotationTaxType
.
NO
.
getCode
())){
log
.
info
(
"3.3当前运单未税不支持借款"
);
return
;
}
Integer
loanTypeFlag
=
null
;
String
childNo
=
settlementDriverDetail
.
getChildNo
();
...
...
@@ -543,19 +566,6 @@ public class OrderChildLoanComponent {
return
false
;
}
/**
* 抵扣金额
*/
private
BigDecimal
settlementFreightCalc
(
Integer
settlementWay
,
SettlementOwnerDetail
settlementOwnerDetail
)
{
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
LOAD
.
getCode
()))
{
//订单结算方式为“装车净重”时,结算金额=实际净重*平台运费报价-预付运费-货损金额。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getPrepayFreight
()).
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
else
{
//订单结算方式为“卸车净重”时,结算金额=实际净重*平台运费报价-预付运费
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
()).
subtract
(
settlementOwnerDetail
.
getPrepayFreight
());
}
}
public
Integer
loanFlagTypeProcess
(
List
<
OwnerLoanAccountRunningWaterRecord
>
runningWaterRecordList
)
{
Map
<
Integer
,
List
<
OwnerLoanAccountRunningWaterRecord
>>
listMap
=
runningWaterRecordList
.
stream
().
collect
(
Collectors
.
groupingBy
(
OwnerLoanAccountRunningWaterRecord:
:
getLoanType
));
List
<
OwnerLoanAccountRunningWaterRecord
>
vList
=
listMap
.
get
(
OwnerLoanRecordEnum
.
LoanType
.
VIRTUAL_CURRENCY
.
getCode
());
...
...
performance-web/src/main/java/com/clx/performance/controller/payment/PayNotifyController.java
浏览文件 @
3d936a99
...
...
@@ -117,18 +117,13 @@ public class PayNotifyController {
if
(
Objects
.
isNull
(
notify
)
||
Objects
.
isNull
(
notify
.
getCode
())
||
Objects
.
isNull
(
notify
.
getAction
()))
{
return
new
Result
<>();
}
String
paymentItem
=
PayUnitTypeEnum
.
FREEZE_PLATFORM_FEE
.
getCode
()+
""
;
int
operation
=
PayOperationStatusEnum
.
ADJUSTMENT
.
getValue
();
if
(
notify
.
getCode
()
!=
0
)
{
paymentService
.
updateOrderPaymentFail
(
notify
.
getOrderNo
(),
notify
.
getMsg
(),
operation
,
paymentItem
);
paymentService
.
updateOrderPaymentStatusById
(
notify
.
getOrderNo
(),
PaymentStatusEnum
.
FAIL
.
getValue
());
// 支付失败处理
log
.
info
(
"支付失败处理 唯一id {}"
,
notify
.
getOrderNo
());
// 支付失败处理
}
else
{
paymentService
.
updateOrderPaymentSuccess
(
notify
.
getOrderNo
(),
operation
,
paymentItem
);
paymentService
.
updateOrderPaymentStatusById
(
notify
.
getOrderNo
(),
PaymentStatusEnum
.
SUCCESS
.
getValue
());
// 支付支付成功处理
log
.
info
(
" 支付支付成功处理 唯一id {}"
,
notify
.
getOrderNo
());
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/carrier/PlatformServiceFeeConfigController.java
浏览文件 @
3d936a99
...
...
@@ -43,6 +43,7 @@ public class PlatformServiceFeeConfigController {
@ApiOperation
(
value
=
"编辑平台费率配置"
,
notes
=
"<br>By:杨启发"
)
@PostMapping
(
"/updatePlatformServiceFeeConfig"
)
@UnitCovert
public
Result
updatePlatformServiceFeeConfig
(
@RequestBody
@Validated
SavePlatformServiceFeeConfigParam
param
)
{
platformServiceFeeConfigService
.
updatePlatformServiceFeeConfig
(
param
);
return
Result
.
ok
();
...
...
performance-web/src/main/java/com/clx/performance/dao/OrderChildSyncTransportInvoiceRecordDao.java
浏览文件 @
3d936a99
...
...
@@ -14,4 +14,5 @@ import java.util.List;
public
interface
OrderChildSyncTransportInvoiceRecordDao
extends
BaseDao
<
OrderChildSyncTransportInvoiceRecordMapper
,
OrderChildSyncTransportInvoiceRecord
,
Integer
>
{
List
<
OrderChildSyncTransportInvoiceRecord
>
selectListForJob
();
List
<
OrderChildSyncTransportInvoiceRecord
>
selectListForJobOfFirst
();
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
3d936a99
...
...
@@ -127,6 +127,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.
set
(
OrderChild:
:
getUnloadTare
,
item
.
getUnloadTare
())
.
set
(
OrderChild:
:
getWeight
,
item
.
getWeight
())
.
set
(
OrderChild:
:
getFreight
,
item
.
getFreight
())
.
set
(
OrderChild:
:
getPlatformServiceFee
,
item
.
getPlatformServiceFee
())
);
}
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildSyncTransportInvoiceRecordDaoImpl.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
dao
.
impl
;
import
com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao
;
import
com.clx.performance.enums.TransportSyncTypeEnum
;
import
com.clx.performance.mapper.OrderChildSyncTransportInvoiceRecordMapper
;
import
com.clx.performance.model.OrderChildSyncTransportInvoiceRecord
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
...
...
@@ -23,4 +24,12 @@ public class OrderChildSyncTransportInvoiceRecordDaoImpl extends BaseDaoImpl<Ord
.
le
(
OrderChildSyncTransportInvoiceRecord:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMinutes
(
10
))
);
}
@Override
public
List
<
OrderChildSyncTransportInvoiceRecord
>
selectListForJobOfFirst
()
{
return
list
(
lUdWrapper
()
.
eq
(
OrderChildSyncTransportInvoiceRecord:
:
getType
,
TransportSyncTypeEnum
.
Type
.
RESULT
.
getCode
())
.
le
(
OrderChildSyncTransportInvoiceRecord:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMinutes
(
3
))
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/settle/OrderChildSyncTransportRecordDaoImpl.java
浏览文件 @
3d936a99
...
...
@@ -4,7 +4,7 @@ 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.SettlementOwnerDetai
l
;
import
com.
msl.common.base.Optiona
l
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -23,6 +23,7 @@ public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChild
public
List
<
OrderChildSyncTransportRecord
>
selectListForJob
()
{
return
baseMapper
.
selectList
(
lQrWrapper
()
.
gt
(
OrderChildSyncTransportRecord:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMonths
(
3
))
.
le
(
OrderChildSyncTransportRecord:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMinutes
(
6
))
.
eq
(
OrderChildSyncTransportRecord:
:
getStatus
,
0
)
);
}
...
...
@@ -33,4 +34,13 @@ public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChild
.
set
(
OrderChildSyncTransportRecord:
:
getStatus
,
2
)
);
}
@Override
public
Optional
<
OrderChildSyncTransportRecord
>
getByChildNo
(
String
childNo
)
{
return
Optional
.
of
(
childNo
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
OrderChildSyncTransportRecord:
:
getChildNo
,
item
)
)
.
map
(
super
::
getOne
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/settle/SettlementOwnerDetailDaoImpl.java
浏览文件 @
3d936a99
...
...
@@ -44,6 +44,15 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.
set
(
SettlementOwnerDetail:
:
getInvoicingCompanyGroupCode
,
item
.
getInvoicingCompanyGroupCode
())
.
set
(
SettlementOwnerDetail:
:
getInvoiceServiceFeeRate
,
item
.
getInvoiceServiceFeeRate
())
.
set
(
SettlementOwnerDetail:
:
getInvoiceServiceFee
,
item
.
getInvoiceServiceFee
())
.
set
(
SettlementOwnerDetail:
:
getRemark
,
item
.
getRemark
())
);
}
@Override
public
boolean
updatePayStatus
(
SettlementOwnerDetail
item
)
{
return
update
(
lUdWrapper
()
.
eq
(
SettlementOwnerDetail:
:
getId
,
item
.
getId
())
.
set
(
SettlementOwnerDetail:
:
getPayStatus
,
item
.
getPayStatus
())
);
}
...
...
@@ -168,6 +177,16 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.
gt
(
SettlementOwnerDetail:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMonths
(
3
))
.
eq
(
SettlementOwnerDetail:
:
getInvoiceChannel
,
SettlementOwnerDetailEnum
.
InvoiceChannel
.
BROKER
.
getCode
())
.
eq
(
SettlementOwnerDetail:
:
getInvoiceStatus
,
SettlementOwnerDetailEnum
.
InvoiceStatus
.
NO
.
getCode
())
.
eq
(
SettlementOwnerDetail:
:
getPayStatus
,
SettlementOwnerDetailEnum
.
PayStatus
.
YES
.
getCode
())
.
eq
(
SettlementOwnerDetail:
:
getInvoiceType
,
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
())
);
}
@Override
public
List
<
SettlementOwnerDetail
>
listPayStatusSync
()
{
return
list
(
lUdWrapper
()
.
gt
(
SettlementOwnerDetail:
:
getCreateTime
,
LocalDateTime
.
now
().
minusMonths
(
3
))
.
eq
(
SettlementOwnerDetail:
:
getInvoiceChannel
,
SettlementOwnerDetailEnum
.
InvoiceChannel
.
BROKER
.
getCode
())
.
eq
(
SettlementOwnerDetail:
:
getPayStatus
,
SettlementOwnerDetailEnum
.
PayStatus
.
NO
.
getCode
())
.
eq
(
SettlementOwnerDetail:
:
getInvoiceType
,
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
())
);
}
...
...
performance-web/src/main/java/com/clx/performance/dao/settle/OrderChildSyncTransportRecordDao.java
浏览文件 @
3d936a99
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.dao.settle;
import
com.clx.performance.mapper.settle.OrderChildSyncTransportRecordMapper
;
import
com.clx.performance.model.settle.OrderChildSyncTransportRecord
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
java.util.List
;
...
...
@@ -18,4 +19,7 @@ public interface OrderChildSyncTransportRecordDao extends BaseDao<OrderChildSync
List
<
OrderChildSyncTransportRecord
>
selectListForJob
();
void
updateStatus
(
String
childNo
);
Optional
<
OrderChildSyncTransportRecord
>
getByChildNo
(
String
childNo
);
}
performance-web/src/main/java/com/clx/performance/dao/settle/SettlementOwnerDetailDao.java
浏览文件 @
3d936a99
...
...
@@ -22,6 +22,7 @@ import java.util.Set;
public
interface
SettlementOwnerDetailDao
extends
BaseDao
<
SettlementOwnerDetailMapper
,
SettlementOwnerDetail
,
Integer
>
{
boolean
updateInvoiceType
(
SettlementOwnerDetail
item
);
boolean
updatePayStatus
(
SettlementOwnerDetail
item
);
boolean
updateSettlementNo
(
SettlementOwnerDetail
item
);
boolean
updateInvoiceStatusBySettlementNo
(
@Param
(
"settlementNo"
)
String
settlementNo
,
@Param
(
"invoiceStatus"
)
Integer
invoiceStatus
);
...
...
@@ -49,4 +50,6 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM
void
updateSettlementMerge
(
String
settlementNo
,
List
<
String
>
settlementNos
);
List
<
SettlementOwnerDetail
>
listInvoiceStatusSync
();
List
<
SettlementOwnerDetail
>
listPayStatusSync
();
}
performance-web/src/main/java/com/clx/performance/extranal/broker/impl/BrokerServiceImpl.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
extranal
.
broker
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.config.SettlementConfig
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.extranal.broker.BrokerService
;
...
...
@@ -29,6 +30,7 @@ public class BrokerServiceImpl implements BrokerService {
log
.
info
(
"运单同步网络货运失败, msg:{}"
,
result
.
getMsg
());
throw
new
ServiceSystemException
(
ResultEnum
.
FEIGN_ERROR
,
result
.
getMsg
());
}
log
.
info
(
"运单同步网络货运, result:{}"
,
JSON
.
toJSONString
(
result
));
}
@Override
public
TransportVO
getOrderChildStatus
(
String
childNo
)
{
...
...
@@ -37,6 +39,7 @@ public class BrokerServiceImpl implements BrokerService {
if
(
result
.
getCode
()
!=
0
)
{
log
.
info
(
"运单同步网络货运失败, msg:{}"
,
result
.
getMsg
());
}
log
.
info
(
"运单同步网络货运, result:{}"
,
JSON
.
toJSONString
(
result
));
return
result
.
getData
();
}
...
...
performance-
api
/src/main/java/com/clx/performance/feign/BrokerFeign.java
→
performance-
web
/src/main/java/com/clx/performance/feign/BrokerFeign.java
浏览文件 @
3d936a99
...
...
@@ -22,7 +22,7 @@ public interface BrokerFeign {
Result
<
Object
>
saveTransport
(
@RequestBody
TransportParam
param
);
@RequestMapping
(
value
=
"/broker-service/open/transport/getTransportByChildNo"
,
method
=
RequestMethod
.
GET
)
Result
<
TransportVO
>
getTransportByChildNo
(
@RequestParam
@NotBlank
(
message
=
"运单编号不能为空"
)
String
childNo
,
Result
<
TransportVO
>
getTransportByChildNo
(
@RequestParam
@NotBlank
(
message
=
"运单编号不能为空"
)
String
orderCode
,
@RequestParam
@NotNull
(
message
=
"userCode不能为空"
)
String
userCode
);
}
performance-web/src/main/java/com/clx/performance/job/OrderChildPaySyncTransportJob.java
浏览文件 @
3d936a99
...
...
@@ -52,28 +52,28 @@ public class OrderChildPaySyncTransportJob {
* 同步网络货运运单支付(禁用网络货运同步)
*/
// @XxlJob("orderChildPaySyncTransportJob")
public
void
orderChildPaySyncTransportJob
()
{
List
<
OrderChildSyncTransportRecord
>
recordList
=
orderChildSyncTransportRecordDao
.
selectListForJob
();
if
(
CollectionUtil
.
isEmpty
(
recordList
))
{
return
;
}
List
<
String
>
orderChilList
=
recordList
.
stream
().
map
(
OrderChildSyncTransportRecord:
:
getChildNo
).
collect
(
Collectors
.
toList
());
OrderChildPaySyncParam
param
=
new
OrderChildPaySyncParam
();
param
.
setChildNoList
(
orderChilList
);
HttpDTO
httpDTO
=
transportFeignService
.
orderChildPaySync
(
param
);
String
decrypt
=
ThirdComponent
.
decrypt
(
httpDTO
.
getData
());
OrderChildSyncDTO
bean
=
JSONUtil
.
toBean
(
decrypt
,
OrderChildSyncDTO
.
class
);
if
(
bean
.
getCode
()
==
0
)
{
for
(
OrderChildSyncTransportRecord
record
:
recordList
)
{
OrderChildSyncTransportRecord
update
=
new
OrderChildSyncTransportRecord
();
update
.
setId
(
record
.
getId
());
update
.
setStatus
(
1
);
orderChildSyncTransportRecordDao
.
updateEntityByKey
(
update
);
}
}
}
//
public void orderChildPaySyncTransportJob() {
//
List<OrderChildSyncTransportRecord> recordList = orderChildSyncTransportRecordDao.selectListForJob();
//
if (CollectionUtil.isEmpty(recordList)) {
//
return;
//
}
//
//
List<String> orderChilList = recordList.stream().map(OrderChildSyncTransportRecord::getChildNo).collect(Collectors.toList());
//
OrderChildPaySyncParam param = new OrderChildPaySyncParam();
//
param.setChildNoList(orderChilList);
//
HttpDTO httpDTO = transportFeignService.orderChildPaySync(param);
//
String decrypt = ThirdComponent.decrypt(httpDTO.getData());
//
OrderChildSyncDTO bean = JSONUtil.toBean(decrypt, OrderChildSyncDTO.class);
//
if (bean.getCode() == 0) {
//
for (OrderChildSyncTransportRecord record : recordList) {
//
OrderChildSyncTransportRecord update = new OrderChildSyncTransportRecord();
//
update.setId(record.getId());
//
update.setStatus(1);
//
orderChildSyncTransportRecordDao.updateEntityByKey(update);
//
}
//
}
//
//
}
/**
...
...
performance-web/src/main/java/com/clx/performance/job/OrderChildSyncTransportInvoiceExceptionJob.java
浏览文件 @
3d936a99
...
...
@@ -52,65 +52,65 @@ public class OrderChildSyncTransportInvoiceExceptionJob {
* 同步网络货运(禁用网络货运同步)
*/
// @XxlJob("orderChildSyncTransportInvoiceExceptionJob")
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
orderChildSyncTransportInvoiceExceptionJob
()
{
//只查询同步异常的网络货运任务
List
<
OrderChildSyncTransportInvoiceRecord
>
recordList
=
orderChildSyncTransportInvoiceRecordDao
.
selectListForJob
();
if
(
CollectionUtil
.
isEmpty
(
recordList
))
{
return
;
}
List
<
Integer
>
ids
=
new
LinkedList
<>();
for
(
OrderChildSyncTransportInvoiceRecord
record
:
recordList
)
{
log
.
info
(
"orderChildSyncTransportInvoiceExceptionJob执行:{}"
,
JSONUtil
.
parse
(
record
));
if
(
record
.
getCreateTime
().
plusMinutes
(
10
).
isBefore
(
LocalDateTime
.
now
()))
{
log
.
info
(
"当前记录运单号:{},生成不足10分钟,先不执行"
,
record
.
getChildNo
());
continue
;
}
String
data
=
transportFeignService
.
getRiskStatus
(
ThirdOrderChildRiskStatusParam
.
builder
().
childNo
(
record
.
getChildNo
()).
build
()).
getData
();
String
decrypt
=
ThirdComponent
.
decrypt
(
data
);
Result
result
=
JSONUtil
.
toBean
(
decrypt
,
Result
.
class
);
if
(
result
.
succeed
())
{
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
record
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
record
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
JSON
json
=
JSONUtil
.
parse
(
result
.
getData
());
Object
status
=
json
.
getByPath
(
"status"
);
ids
.
add
(
record
.
getId
());
OrderChildSyncDTO
bean
=
new
OrderChildSyncDTO
();
bean
.
setCode
(
0
);
OrderChildSyncResultDTO
dto
=
new
OrderChildSyncResultDTO
();
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
record
.
getChildNo
()).
get
();
log
.
info
(
"查询网络货运结果数据:{}"
,
JSONUtil
.
parse
(
result
));
if
(
ObjectUtil
.
equal
(
status
,
1
))
{
dto
.
setStatus
(
1
);
bean
.
setData
(
dto
);
orderChildPaySync
.
extracted
(
orderChild
,
bean
,
""
,
settlementOwnerDetail
,
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
(),
settlementDriverDetail
);
}
else
if
(
ObjectUtil
.
equal
(
status
,
0
)){
dto
.
setStatus
(
2
);
bean
.
setData
(
dto
);
orderChildPaySync
.
extracted
(
orderChild
,
bean
,
""
,
settlementOwnerDetail
,
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
(),
settlementDriverDetail
);
}
else
if
(
ObjectUtil
.
equal
(
status
,
2
)){
// orderChildPaySync.transportOrderChildProcess(orderChild);
dto
.
setStatus
(
2
);
bean
.
setData
(
dto
);
orderChildPaySync
.
extracted
(
orderChild
,
bean
,
""
,
settlementOwnerDetail
,
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
(),
settlementDriverDetail
);
}
else
{
Object
riskReason
=
json
.
getByPath
(
"riskReason"
);
OrderChildSyncTransportInvoiceRecord
entity
=
new
OrderChildSyncTransportInvoiceRecord
();
entity
.
setChildNo
(
json
.
getByPath
(
"childNo"
).
toString
());
entity
.
setType
(
TransportSyncTypeEnum
.
Type
.
NO_PASS
.
getCode
());
entity
.
setRemark
(
riskReason
==
null
?
""
:
riskReason
.
toString
());
orderChildSyncTransportInvoiceRecordDao
.
saveEntity
(
entity
);
}
}
}
orderChildSyncTransportInvoiceRecordDao
.
deleteByKeys
(
ids
);
}
//
@Transactional(rollbackFor = Exception.class)
//
public void orderChildSyncTransportInvoiceExceptionJob() {
//
//只查询同步异常的网络货运任务
//
List<OrderChildSyncTransportInvoiceRecord> recordList = orderChildSyncTransportInvoiceRecordDao.selectListForJob();
//
if (CollectionUtil.isEmpty(recordList)) {
//
return;
//
}
//
List<Integer> ids = new LinkedList<>();
//
//
for (OrderChildSyncTransportInvoiceRecord record : recordList) {
//
log.info("orderChildSyncTransportInvoiceExceptionJob执行:{}", JSONUtil.parse(record));
//
if (record.getCreateTime().plusMinutes(10).isBefore(LocalDateTime.now())) {
//
log.info("当前记录运单号:{},生成不足10分钟,先不执行", record.getChildNo());
//
continue;
//
}
//
//
String data = transportFeignService.getRiskStatus(ThirdOrderChildRiskStatusParam.builder().childNo(record.getChildNo()).build()).getData();
//
String decrypt = ThirdComponent.decrypt(data);
//
Result result = JSONUtil.toBean(decrypt, Result.class);
//
if (result.succeed()) {
//
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(record.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
//
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(record.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
//
//
JSON json = JSONUtil.parse(result.getData());
//
Object status = json.getByPath("status");
//
ids.add(record.getId());
//
OrderChildSyncDTO bean = new OrderChildSyncDTO();
//
bean.setCode(0);
//
OrderChildSyncResultDTO dto = new OrderChildSyncResultDTO();
//
OrderChild orderChild = orderChildDao.getByChildNo(record.getChildNo()).get();
//
log.info("查询网络货运结果数据:{}", JSONUtil.parse(result));
//
if (ObjectUtil.equal(status, 1)) {
//
dto.setStatus(1);
//
bean.setData(dto);
//
orderChildPaySync.extracted(orderChild, bean, "", settlementOwnerDetail,
//
SettlementOwnerEnum.InvoiceType.ONLINE.getCode(), settlementDriverDetail);
//
} else if (ObjectUtil.equal(status, 0)){
//
dto.setStatus(2);
//
bean.setData(dto);
//
orderChildPaySync.extracted(orderChild, bean, "", settlementOwnerDetail,
//
SettlementOwnerEnum.InvoiceType.ORDINARY.getCode(), settlementDriverDetail);
//
//
}else if (ObjectUtil.equal(status, 2)){
//
//
orderChildPaySync.transportOrderChildProcess(orderChild);
//
dto.setStatus(2);
//
bean.setData(dto);
//
orderChildPaySync.extracted(orderChild, bean, "", settlementOwnerDetail,
//
SettlementOwnerEnum.InvoiceType.ORDINARY.getCode(), settlementDriverDetail);
//
} else {
//
Object riskReason = json.getByPath("riskReason");
//
OrderChildSyncTransportInvoiceRecord entity = new OrderChildSyncTransportInvoiceRecord();
//
entity.setChildNo(json.getByPath("childNo").toString());
//
entity.setType(TransportSyncTypeEnum.Type.NO_PASS.getCode());
//
entity.setRemark(riskReason == null ? "" : riskReason.toString());
//
orderChildSyncTransportInvoiceRecordDao.saveEntity(entity);
//
}
//
}
//
}
//
//
orderChildSyncTransportInvoiceRecordDao.deleteByKeys(ids);
//
}
}
performance-web/src/main/java/com/clx/performance/job/settlement/SettlementJob.java
浏览文件 @
3d936a99
...
...
@@ -33,8 +33,14 @@ public class SettlementJob {
*/
@XxlJob
(
"settlementInvoiceTypeSync"
)
public
void
settlementInvoiceTypeSync
()
{
// 首次
List
<
OrderChildSyncTransportInvoiceRecord
>
recordList
=
orderChildSyncTransportInvoiceRecordDao
.
selectListForJobOfFirst
();
// 异常
List
<
OrderChildSyncTransportInvoiceRecord
>
recordList1
=
orderChildSyncTransportInvoiceRecordDao
.
selectListForJob
();
recordList
.
addAll
(
recordList1
);
log
.
info
(
"待同步无车承运运单状态,size:{}"
,
recordList
.
size
());
if
(
recordList
.
isEmpty
())
{
return
;}
...
...
performance-web/src/main/java/com/clx/performance/listener/OrderChildSyncTransportListener.java
浏览文件 @
3d936a99
差异被折叠。
点击展开。
performance-web/src/main/java/com/clx/performance/model/OrderGoods.java
浏览文件 @
3d936a99
...
...
@@ -201,6 +201,9 @@ public class OrderGoods implements HasKey<Integer> {
@ApiModelProperty
(
"接单保证金(分/车)"
)
private
BigDecimal
deposit
;
@ApiModelProperty
(
"是否支持借款:0:否 1:是"
)
private
Integer
supportLoan
;
@TableField
(
"create_time"
)
@ApiModelProperty
(
"创建时间"
)
private
LocalDateTime
createTime
;
...
...
performance-web/src/main/java/com/clx/performance/model/settle/SettlementDriver.java
浏览文件 @
3d936a99
...
...
@@ -49,7 +49,7 @@ public class SettlementDriver implements HasKey<Integer> {
private
Integer
prepayFreightFlag
;
//预付运费标示 0:未预付 1:已预付
private
String
payErrorMsg
;
//支付失败原因
private
Integer
invoicingCompanyId
;
//开票公司id
private
Integer
invoicingCompanyShorterName
;
//开票公司简称
private
String
invoicingCompanyShorterName
;
//开票公司简称
private
String
invoicingCompanyGroupCode
;
//开票公司统一社会信用代码
private
BigDecimal
platformServiceFee
;
//平台服务费(分)
private
BigDecimal
platformServiceFeeRate
;
//平台服务费费率%
...
...
performance-web/src/main/java/com/clx/performance/model/settle/SettlementOwnerDetail.java
浏览文件 @
3d936a99
...
...
@@ -61,6 +61,8 @@ public class SettlementOwnerDetail implements HasKey<Integer> {
private
String
invoicingCompanyGroupCode
;
//开票公司统一社会信用代码
private
Integer
reportFlag
;
//是否上报 0-否;1-是
private
Integer
invoiceChannel
;
//开票渠道:1无车承运
private
String
remark
;
//备注
private
Integer
payStatus
;
//支付状态:0未支付 1已支付(网络货运是否支付)
private
Integer
status
;
//状态
private
LocalDateTime
createTime
;
//创建时间
private
LocalDateTime
modifiedTime
;
//修改时间
...
...
performance-web/src/main/java/com/clx/performance/service/PaymentService.java
浏览文件 @
3d936a99
...
...
@@ -23,6 +23,9 @@ public interface PaymentService {
void
updateOrderPaymentFail
(
String
orderNo
,
String
msg
,
Integer
operation
,
String
paymentItem
);
void
updateOrderPaymentSuccess
(
String
orderNo
,
Integer
operation
,
String
paymentItem
);
void
updateOrderPaymentStatusById
(
String
id
,
int
status
);
void
updateOrderPaymentSerialNoSuccess
(
String
orderNo
,
String
serialNo
,
Integer
operation
,
String
paymentItem
);
WalletResidueDTO
getWalletAndCard
(
Integer
userCode
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildPoundAuditServiceImpl.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.order.enums.QuotationEnum
;
import
com.clx.performance.dao.*
;
import
com.clx.performance.dto.payment.PaymentDTO
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.settle.SettlementWayEnum
;
import
com.clx.performance.model.*
;
import
com.clx.performance.param.pc.PoundAuditParam
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderChildPoundAuditService
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.param.pc.payment.PayPlatformFeeParam
;
import
com.clx.performance.service.*
;
import
com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -48,7 +50,7 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
private
final
OrderChildLogService
orderChildLogService
;
private
final
OrderChildService
orderChildService
;
private
final
PaymentService
paymentService
;
@Override
public
OrderChildPoundAuditDetailVO
getPoundAuditDetail
(
String
childNo
)
{
...
...
@@ -128,6 +130,13 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
orderChild
.
setWeight
(
orderChildWeightCalc
(
orderChild
));
orderChild
.
setFreight
(
orderChildFreightCalc
(
orderChild
));
//计算司机保证金
PaymentDTO
paymentDTO
=
getPaymentDTO
(
orderChild
);
if
(
Objects
.
nonNull
(
paymentDTO
.
getPlatformServiceFeeNew
())
&&
paymentDTO
.
getPlatformServiceFeeNew
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
orderChild
.
setPlatformServiceFee
(
paymentDTO
.
getPlatformServiceFeeNew
());
}
// 更新装车净重
updateOrderGoodsAmountLoad
(
orderGoods
,
orderChild
.
getChildNo
(),
dif
);
...
...
@@ -144,13 +153,29 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
//保存磅单审核日志数据
orderChildPoundLogDao
.
saveEntity
(
poundLog
);
//判断是否平衡冻结金额
if
(
Objects
.
nonNull
(
paymentDTO
.
getChangeDeposit
())
&&
paymentDTO
.
getChangeDeposit
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
){
paymentChangePlatformFee
(
orderChild
.
getChildNo
(),
paymentDTO
.
getChangeDeposit
());
}
//保存运单日志数据
orderChildLogService
.
saveOrderChildLog
(
param
.
getChildNo
(),
type
,
OrderChildLogEnum
.
Type
.
getByCode
(
type
).
isPresent
()
?
OrderChildLogEnum
.
Type
.
getByCode
(
type
).
get
().
getMsg
()
:
""
,
OrderChildLogEnum
.
CreateType
.
PLATFORM
.
getCode
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
}
/***
* 平衡司机冻结保证金
*/
public
void
paymentChangePlatformFee
(
String
childNo
,
BigDecimal
changeDeposite
){
if
(
changeDeposite
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
){
PayPlatformFeeParam
payPlatformFeeParam
=
new
PayPlatformFeeParam
();
payPlatformFeeParam
.
setTradeNo
(
childNo
);
payPlatformFeeParam
.
setFigure
(
changeDeposite
.
intValue
());
//冻结司机押金
paymentService
.
paymentChangePlatformFee
(
payPlatformFeeParam
);
}
}
/**
* 装车补偿
*/
...
...
@@ -185,4 +210,43 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
return
totalFreight
.
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/***
* 获取最新的保证金金额和本次调增的金额
*/
public
PaymentDTO
getPaymentDTO
(
OrderChild
orderChild
){
//计算司机保证金
BigDecimal
freightPrice
=
orderChild
.
getFreightPrice
();
BigDecimal
deposit
=
orderChild
.
getDeposit
();
BigDecimal
platformServiceFeeRate
=
orderChild
.
getPlatformServiceFeeRate
();
BigDecimal
platformServiceFee
=
orderChild
.
getPlatformServiceFee
();
//平台服务费
BigDecimal
freight
=
orderChild
.
getFreight
();
//本次调整金额
BigDecimal
changeDeposit
=
BigDecimal
.
ZERO
;
//本次调整金额
BigDecimal
platformServiceFeeNew
=
BigDecimal
.
ZERO
;
log
.
info
(
"运单号 {} ,原始冻结金额 {} "
,
orderChild
.
getChildNo
(),
platformServiceFee
);
/**
* 如果之前未冻结保证金,本次不调整
* 如果 平台服务费率 为0 本次不处理
* 如果 本次吨数为 0 本次不处理
* 如果 本次调整金额为 0 本次不处理
* **/
if
(
Objects
.
nonNull
(
deposit
)
&&
deposit
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
Objects
.
nonNull
(
platformServiceFee
)
&&
platformServiceFee
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
Objects
.
nonNull
(
platformServiceFeeRate
)
&&
platformServiceFeeRate
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
Objects
.
nonNull
(
freight
)
&&
freight
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
platformServiceFeeNew
=
freight
//平台服务费率 * 100
.
multiply
(
platformServiceFeeRate
).
movePointLeft
(
2
).
setScale
(
2
,
RoundingMode
.
HALF_UP
);
changeDeposit
=
platformServiceFeeNew
.
subtract
(
platformServiceFee
);
log
.
info
(
"运单号 {} ,原始冻结金额 {} ,最新冻结金额 {},运费差 {} 运费价格{},费率 {}"
,
orderChild
.
getChildNo
(),
platformServiceFee
,
platformServiceFeeNew
,
changeDeposit
,
freightPrice
,
platformServiceFeeRate
);
}
return
PaymentDTO
.
builder
().
changeDeposit
(
changeDeposit
).
platformServiceFeeNew
(
platformServiceFeeNew
).
build
();
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -451,7 +451,7 @@ public class OrderChildServiceImpl implements OrderChildService {
// 平台服务费 (订单运费报价为“未税”订单结算方式为“卸车净重(减货损))
if
(
Objects
.
equals
(
orderGoods
.
getPlatformFreightQuotationTaxType
(),
QuotationEnum
.
PlatformFreightQuotationTaxType
.
NO
.
getCode
())
&&
Objects
.
equals
(
orderChild
.
getSettle
Time
(),
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
&&
Objects
.
equals
(
orderChild
.
getSettle
mentWay
(),
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
orderChild
.
setPlatformServiceFeeRate
(
orderGoods
.
getPlatformServiceFeeRate
());
orderChild
.
setPlatformServiceFee
(
orderGoods
.
getDeposit
());
orderChild
.
setDeposit
(
orderGoods
.
getDeposit
());
...
...
@@ -843,6 +843,7 @@ public class OrderChildServiceImpl implements OrderChildService {
BigDecimal
changeDeposit
=
BigDecimal
.
ZERO
;
//本次调整金额
BigDecimal
platformServiceFeeNew
=
BigDecimal
.
ZERO
;
log
.
info
(
"运单号 {} ,原始冻结金额 {} "
,
orderChild
.
getChildNo
(),
platformServiceFee
);
/**
* 如果之前未冻结保证金,本次不调整
* 如果 平台服务费率 为0 本次不处理
...
...
@@ -855,8 +856,13 @@ public class OrderChildServiceImpl implements OrderChildService {
Objects
.
nonNull
(
net
)
&&
net
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
platformServiceFeeNew
=
net
.
multiply
(
freightPrice
).
setScale
(
2
,
RoundingMode
.
HALF_UP
).
multiply
(
platformServiceFeeRate
).
setScale
(
2
,
RoundingMode
.
HALF_UP
);
platformServiceFeeNew
=
net
.
multiply
(
freightPrice
).
setScale
(
2
,
RoundingMode
.
HALF_UP
)
//平台服务费率 * 100
.
multiply
(
platformServiceFeeRate
).
movePointLeft
(
2
).
setScale
(
2
,
RoundingMode
.
HALF_UP
);
changeDeposit
=
platformServiceFeeNew
.
subtract
(
platformServiceFee
);
log
.
info
(
"运单号 {} ,原始冻结金额 {} ,最新冻结金额 {},运费差 {} 吨数{} 运费价格{},费率 {}"
,
orderChild
.
getChildNo
(),
platformServiceFee
,
platformServiceFeeNew
,
changeDeposit
,
net
,
freightPrice
,
platformServiceFeeRate
);
}
return
PaymentDTO
.
builder
().
changeDeposit
(
changeDeposit
).
platformServiceFeeNew
(
platformServiceFeeNew
).
build
();
...
...
@@ -983,7 +989,7 @@ public class OrderChildServiceImpl implements OrderChildService {
if
(
orderChild
.
getUnloadTime
()
==
null
&&
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
()))
{
//计算司机保证金
BigDecimal
net
=
param
.
getUnloadRough
().
subtract
(
param
.
getUnloadTare
()
);
BigDecimal
net
=
orderChild
.
getLoadNet
(
);
PaymentDTO
paymentDTO
=
getPaymentDTO
(
net
,
orderChild
);
if
(
Objects
.
nonNull
(
paymentDTO
.
getPlatformServiceFeeNew
())
&&
paymentDTO
.
getPlatformServiceFeeNew
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
...
...
@@ -1004,7 +1010,7 @@ public class OrderChildServiceImpl implements OrderChildService {
}
}
else
{
//计算司机保证金
BigDecimal
net
=
param
.
getUnloadRough
().
subtract
(
param
.
getUnloadTare
()
);
BigDecimal
net
=
orderChild
.
getLoadNet
(
);
PaymentDTO
paymentDTO
=
getPaymentDTO
(
net
,
orderChild
);
if
(
Objects
.
nonNull
(
paymentDTO
.
getPlatformServiceFeeNew
())
&&
paymentDTO
.
getPlatformServiceFeeNew
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
...
...
@@ -1030,7 +1036,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* 平衡司机冻结保证金
*/
public
void
paymentChangePlatformFee
(
String
childNo
,
BigDecimal
changeDeposite
){
if
(
changeDeposite
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
){
if
(
changeDeposite
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
){
PayPlatformFeeParam
payPlatformFeeParam
=
new
PayPlatformFeeParam
();
payPlatformFeeParam
.
setTradeNo
(
childNo
);
payPlatformFeeParam
.
setFigure
(
changeDeposite
.
intValue
());
...
...
@@ -2002,7 +2008,7 @@ public class OrderChildServiceImpl implements OrderChildService {
}
//判断余额是否能够缴纳保证金
if
(
data
.
getResidue
()
<
deposit
.
longValue
())
{
String
remark
=
truckOwnerFlag
?
"账户可用余额不足,接单保证金冻结失败,请尽快充值,本次需
重置
"
+
deposit
.
movePointLeft
(
2
)
+
"元"
:
"车主钱包余额不足,保证金冻结失败请联系车主充值"
;
String
remark
=
truckOwnerFlag
?
"账户可用余额不足,接单保证金冻结失败,请尽快充值,本次需
充值
"
+
deposit
.
movePointLeft
(
2
)
+
"元"
:
"车主钱包余额不足,保证金冻结失败请联系车主充值"
;
if
(
truckOwnerFlag
){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
APP_POP_UP_OWNER_RESIDUE_ERROR
,
remark
);
}
else
{
...
...
performance-web/src/main/java/com/clx/performance/service/impl/PaymentServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -192,7 +192,7 @@ public class PaymentServiceImpl implements PaymentService {
OrderPayment
orderPayment
=
new
OrderPayment
()
.
setAmount
(
payDTO
.
getFigure
())
.
setOrderNo
(
payDTO
.
getTradeNo
())
.
setRelationNo
(
pay
OrderNoGenerate
())
.
setRelationNo
(
pay
DTO
.
getTradeNo
())
.
setPaymentItem
(
PayUnitTypeEnum
.
FREEZE_PLATFORM_FEE
.
getCode
()
+
""
)
.
setStatus
(
PaymentStatusEnum
.
CREATE
.
getValue
())
.
setOperation
(
PayOperationStatusEnum
.
FREEZE
.
getValue
());
...
...
@@ -243,7 +243,7 @@ public class PaymentServiceImpl implements PaymentService {
saveOrderPayment
(
orderPayment
);
/** 调整冻结记录 **/
FreezeBatchDTO
freezeBatchDTO
=
buildChangeFreezeBatchDTO
(
orderPaymentOptional
,
orderPayment
.
get
RelationNo
()
,
param
.
getFigure
());
FreezeBatchDTO
freezeBatchDTO
=
buildChangeFreezeBatchDTO
(
orderPaymentOptional
,
orderPayment
.
get
Id
()
,
param
.
getFigure
());
log
.
info
(
"发起支付请求日志 {}"
,
freezeBatchDTO
);
Result
<
Object
>
notify
=
(
Result
<
Object
>)
postRequest
(
mslPaymentConfig
.
getHost
()
+
...
...
@@ -391,6 +391,18 @@ public class PaymentServiceImpl implements PaymentService {
orderPaymentDao
.
updateEntityByKey
(
orderPaymentOptional
);
}
@Override
public
void
updateOrderPaymentStatusById
(
String
id
,
int
status
)
{
//查询冻结记录
OrderPayment
orderPaymentOptional
=
orderPaymentDao
.
getEntityByKey
(
Integer
.
valueOf
(
id
)).
orNull
();
if
(
null
==
orderPaymentOptional
){
log
.
error
(
"数据不存在 {}, {}"
,
id
);
}
orderPaymentOptional
.
setStatus
(
status
);
orderPaymentDao
.
updateEntityByKey
(
orderPaymentOptional
);
}
@Override
public
void
updateOrderPaymentSerialNoSuccess
(
String
orderNo
,
String
serialNo
,
Integer
operation
,
String
paymentItem
)
{
OrderPayment
orderPaymentOptional
=
...
...
@@ -493,7 +505,7 @@ public class PaymentServiceImpl implements PaymentService {
/**
* 构建 司机平台服务费冻结实体
*/
public
FreezeBatchDTO
buildChangeFreezeBatchDTO
(
OrderPayment
orderPaymentOptional
,
String
orderNo
,
Integer
figure
){
public
FreezeBatchDTO
buildChangeFreezeBatchDTO
(
OrderPayment
orderPaymentOptional
,
Integer
orderNo
,
Integer
figure
){
FreezeBatchDTO
freezeBatchDTO
=
new
FreezeBatchDTO
();
List
<
FreezeUnitDTO
>
FreezeUnitList
=
new
ArrayList
<
FreezeUnitDTO
>();
FreezeUnitDTO
freightPayUnitDTO
=
new
FreezeUnitDTO
();
...
...
@@ -509,7 +521,7 @@ public class PaymentServiceImpl implements PaymentService {
FreezeUnitList
.
add
(
freightPayUnitDTO
);
freezeBatchDTO
.
setFreezeUnitList
(
FreezeUnitList
);
freezeBatchDTO
.
setOrderNo
(
orderNo
);
freezeBatchDTO
.
setOrderNo
(
orderNo
+
""
);
freezeBatchDTO
.
setSystem
(
SystemCodeEnum
.
PERFORMANCE_SERVICE
.
getCode
());
//回调地址
freezeBatchDTO
.
setNotifyUrl
(
mslPaymentConfig
.
getNotifyhost
()
+
NOTIFY_ADJUST_PLATFORM_FEE_URL
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.service.impl.broker;
import
com.clx.order.feign.AddressFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.pc.carrier.InvoicingCompanyVO
;
import
com.clx.performance.dao.OrderChildImageDao
;
import
com.clx.performance.enums.PowerTypeEnum
;
...
...
@@ -28,10 +29,12 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
OrderChildBrokerServiceImpl
implements
OrderChildBrokerService
{
private
static
final
String
LONG_TERM_TIME
=
"2099-01-01 00:00:00"
;
@Autowired
private
BrokerService
brokerService
;
...
...
@@ -59,6 +62,9 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
String
host
=
documentFeign
.
getHost
().
getData
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderGoods
.
getOrderNo
());
String
ownerMobile
=
ownerFeign
.
getOwnerInfo
(
orderInfoFeign
.
getOwnerUserNo
()).
getData
().
getMobile
();
FeignAddressVO
data
=
addressFeign
.
getSendAndReceiveAddress
(
orderChild
.
getSendAddressId
(),
orderChild
.
getReceiveAddressId
()).
getData
();
FeignAddressVO
.
Address
receiveAddress
=
data
.
getReceiveAddress
();
FeignAddressVO
.
Address
sendAddress
=
data
.
getSendAddress
();
...
...
@@ -80,7 +86,7 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
TransportParam
transportParam
=
new
TransportParam
();
transportParam
.
setTransportPlatformCode
(
invoicingCompanyByGroupCode
.
getNetworkCargoCompanyCode
());
transportParam
.
setOrderCode
(
orderChild
.
getChildNo
());
transportParam
.
setOwnerMobile
(
truckOwnerInfo
.
getMobile
()
);
transportParam
.
setOwnerMobile
(
ownerMobile
);
// 货单
OpenOrderDTO
orderInfo
=
new
OpenOrderDTO
();
...
...
@@ -137,7 +143,9 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
driverInfo
.
setCardNo
(
driverUserIdCardVO
.
getCardNo
());
driverInfo
.
setIdCardAddress
(
driverUserIdCardVO
.
getAddress
());
driverInfo
.
setCardStartTime
(
driverUserIdCardVO
.
getCardStartTime
());
driverInfo
.
setCardEndTime
(
driverUserIdCardVO
.
getCardEndTime
());
driverInfo
.
setCardEndTime
(
Objects
.
equals
(
driverUserIdCardVO
.
getCardLongTerm
(),
1
)
?
LONG_TERM_TIME
:
driverUserIdCardVO
.
getCardEndTime
());
driverInfo
.
setCardLongTerm
(
driverUserIdCardVO
.
getCardLongTerm
());
driverInfo
.
setCardFrontImg
(
host
+
driverUserIdCardVO
.
getCardFaceImg
());
driverInfo
.
setCardBackImg
(
host
+
driverUserIdCardVO
.
getCardBackImg
());
...
...
@@ -150,7 +158,9 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
driverInfo
.
setLicenceImg
(
host
+
driverLicenceFeignVO
.
getLicenceImg
());
driverInfo
.
setLicenceBackImg
(
host
+
driverLicenceFeignVO
.
getLicenceBackImg
());
driverInfo
.
setLicenceStartTime
(
DateUtils
.
formatDateTime
(
driverLicenceFeignVO
.
getLicenceStartTime
()).
get
());
driverInfo
.
setLicenceEndTime
(
DateUtils
.
formatDateTime
(
driverLicenceFeignVO
.
getLicenceEndTime
()).
get
());
driverInfo
.
setLicenceEndTime
(
Objects
.
equals
(
driverLicenceFeignVO
.
getLicenceLongTerm
(),
1
)
?
LONG_TERM_TIME
:
DateUtils
.
formatDateTime
(
driverLicenceFeignVO
.
getLicenceEndTime
()).
get
());
// driverInfo.setTransportLicenceImg(truckInfoFeignVo.getTransportLicenceImg());
driverInfo
.
setOccupationalLicenceNo
(
driverLicenceFeignVO
.
getOccupationalLicenceNo
());
driverInfo
.
setOccupationalLicenceImg
(
host
+
driverLicenceFeignVO
.
getOccupationalLicenceImg
());
...
...
@@ -168,7 +178,9 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
ownerInfo
.
setCardNo
(
truckOwnerUserIdCardVO
.
getCardNo
());
ownerInfo
.
setIdCardAddress
(
truckOwnerUserIdCardVO
.
getAddress
());
ownerInfo
.
setCardStartTime
(
truckOwnerUserIdCardVO
.
getCardStartTime
());
ownerInfo
.
setCardEndTime
(
truckOwnerUserIdCardVO
.
getCardEndTime
());
ownerInfo
.
setCardEndTime
(
Objects
.
equals
(
truckOwnerUserIdCardVO
.
getCardLongTerm
(),
1
)
?
LONG_TERM_TIME
:
truckOwnerUserIdCardVO
.
getCardEndTime
());
ownerInfo
.
setCardLongTerm
(
truckOwnerUserIdCardVO
.
getCardLongTerm
());
ownerInfo
.
setCardFrontImg
(
host
+
truckOwnerUserIdCardVO
.
getCardFaceImg
());
ownerInfo
.
setCardBackImg
(
host
+
truckOwnerUserIdCardVO
.
getCardBackImg
());
...
...
@@ -200,6 +212,9 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
truckInfo
.
setLicenceImgSecond
(
host
+
truckInfoFeignVo
.
getLicenceImgSecond
());
truckInfo
.
setLicenceImgSecondBack
(
host
+
truckInfoFeignVo
.
getLicenceImgSecondBack
());
truckInfo
.
setTransportLicenceImg
(
host
+
truckInfoFeignVo
.
getTransportLicenceImg
());
truckInfo
.
setLicenceImgMain2
(
host
+
truckInfoFeignVo
.
getLicenceImgMain2
());
truckInfo
.
setLicenceImgSecond2
(
host
+
truckInfoFeignVo
.
getLicenceImgSecond2
());
truckInfo
.
setTransportLicenceImg2
(
host
+
truckInfoFeignVo
.
getTransportLicenceImg2
());
truckInfo
.
setPowerType
(
StringUtils
.
isBlank
(
truckInfoFeignVo
.
getPowerType
())
?
PowerTypeEnum
.
Type
.
OTHER
.
getCode
()
:
PowerTypeEnum
.
Type
.
getCodeByName
(
truckInfoFeignVo
.
getPowerType
()));
...
...
@@ -211,11 +226,11 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
orderChildInfo
.
setSourceOrderNo
(
orderChild
.
getOrderNo
());
orderChildInfo
.
setSourceSettlementNo
(
settlementOwnerDetail
.
getSettlementNo
());
orderChildInfo
.
setFreightPrice
(
orderChild
.
getFreightPrice
().
intValue
());
orderChildInfo
.
setFreight
(
orderChild
.
getFreight
().
intValue
());
orderChildInfo
.
setDriverFreight
(
orderChild
.
getFreight
().
intValue
());
orderChildInfo
.
setDriverFreightPrice
(
orderChild
.
getFreightPrice
().
intValue
());
orderChildInfo
.
set
Driver
FreightPrice
(
settlementOwnerDetail
.
getFreightPrice
().
intValue
());
orderChildInfo
.
setFreightPrice
(
settlementOwnerDetail
.
getFreightPrice
().
intValue
());
orderChildInfo
.
setInvoiceFreight
(
settlementOwnerDetail
.
getInvoiceFreight
().
intValue
());
orderChildInfo
.
setLossFee
(
settlementOwnerDetail
.
getLossFreight
().
intValue
());
orderChildInfo
.
setLossFeePrice
(
settlementOwnerDetail
.
getLossPrice
().
intValue
());
...
...
@@ -225,7 +240,7 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
orderChildInfo
.
setSendNet
(
orderChild
.
getLoadNet
());
orderChildInfo
.
setPay
Finished
Time
(
DateUtils
.
formatDateTime
(
orderChild
.
getPayTime
()).
get
());
orderChildInfo
.
setPayTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getPayTime
()).
get
());
orderChildInfo
.
setLoadTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getLoadTime
()).
get
());
orderChildInfo
.
setUnloadTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getUnloadTime
()).
get
());
orderChildInfo
.
setPayFinishedTime
(
DateUtils
.
formatDateTime
(
orderChild
.
getConfirmTime
()).
get
());
...
...
@@ -234,12 +249,12 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
orderChildInfo
.
setReceiveRough
(
orderChild
.
getUnloadRough
());
orderChildInfo
.
setReceiveNet
(
orderChild
.
getUnloadNet
());
transportParam
.
setOrder
Info
(
orderInfo
);
transportParam
.
set
ImageList
(
imageList
);
transportParam
.
set
DriverInfo
(
driverInfo
);
transportParam
.
setO
wnerInfo
(
ownerInfo
);
transportParam
.
set
TruckInfo
(
truckInfo
);
transportParam
.
setOrderChild
Info
(
orderChildInfo
);
transportParam
.
setOrder
(
orderInfo
);
transportParam
.
set
OrderChildImage
(
imageList
);
transportParam
.
set
OrderChildDriver
(
driverInfo
);
transportParam
.
setO
rderChildTruckOwner
(
ownerInfo
);
transportParam
.
set
OrderChildTruck
(
truckInfo
);
transportParam
.
setOrderChild
(
orderChildInfo
);
brokerService
.
orderChildSync
(
transportParam
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/NetworkDriverAccountServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -69,13 +69,15 @@ public class NetworkDriverAccountServiceImpl implements NetworkDriverAccountServ
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
Result
<
WalletResidueCardVO
>
result
=
paymentServiceFeign
.
getWallet
(
userCode
);
log
.
info
(
"WalletResidueCardVO:result:{}"
,
JSONUtil
.
parse
(
result
));
WalletResidueCardVO
data
=
result
.
getData
();
NetworkDriverAccount
account
=
networkDriverAccountDao
.
getOneByField
(
NetworkDriverAccount:
:
getDriverUserNo
,
loginUserInfo
.
getUserNo
()).
get
();
log
.
info
(
"WalletResidueCardVO:{}"
,
JSONUtil
.
parse
(
data
));
log
.
info
(
"NetworkDriverAccount:{}"
,
JSONUtil
.
parse
(
account
));
data
.
setAssetSum
(
data
.
getAssetSum
().
add
(
account
.
getAccountBalance
().
movePointLeft
(
2
)));
data
.
setFrozen
(
new
BigDecimal
(
data
.
getFrozen
()).
add
(
account
.
getFrozenBalance
().
movePointLeft
(
2
)).
longValue
(
));
data
.
setResidue
(
new
BigDecimal
(
data
.
getResidue
()).
add
(
account
.
getUsableBalance
().
movePointLeft
(
2
)).
longValue
(
));
data
.
setFrozen
(
data
.
getFrozen
().
add
(
account
.
getFrozenBalance
()
));
data
.
setResidue
(
data
.
getResidue
().
add
(
account
.
getUsableBalance
()
));
log
.
info
(
"WalletResidueCardVO222:{}"
,
JSONUtil
.
parse
(
data
));
return
data
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/settle/OrderChildSyncTransportRecordServiceImpl.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
service
.
impl
.
settle
;
import
com.clx.order.enums.QuotationEnum
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.settle.NetworkCaseOutRecordDao
;
import
com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dto.PayStatusNotifyDTO
;
import
com.clx.performance.enums.NetworkDriverAccountEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.settle.SettlementOwnerDetailEnum
;
import
com.clx.performance.enums.settle.SettlementWayEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.settle.OrderChildSyncTransportRecord
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.param.pc.payment.PayPlatformFeeParam
;
import
com.clx.performance.service.PaymentService
;
import
com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService
;
...
...
@@ -49,6 +56,11 @@ public class OrderChildSyncTransportRecordServiceImpl implements OrderChildSyncT
private
final
OrderChildDao
orderChildDao
;
private
final
PaymentService
paymentService
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
SettlementOwnerDetailDao
settlementOwnerDetailDao
;
@Override
public
void
addOrderChildSyncTransportRecord
(
SettlementDriverDetail
detail
)
{
OrderChildSyncTransportRecord
record
=
struct
.
convertRecord
(
detail
);
...
...
@@ -61,17 +73,33 @@ public class OrderChildSyncTransportRecordServiceImpl implements OrderChildSyncT
@Override
public
void
updateStatus
(
PayStatusNotifyDTO
payStatusNotifyDTO
)
{
String
childNo
=
payStatusNotifyDTO
.
getChildNo
();
//支付平台服务费
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
SettlementOwnerDetail
settlementOwnerDetail
=
settlementOwnerDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
settlementOwnerDetail
.
setPayStatus
(
SettlementOwnerDetailEnum
.
PayStatus
.
YES
.
getCode
());
settlementOwnerDetailDao
.
updatePayStatus
(
settlementOwnerDetail
);
orderChildSyncTransportRecordDao
.
updateStatus
(
childNo
);
networkCaseOutRecordDao
.
updateStatus
(
payStatusNotifyDTO
.
getChildNo
(),
NetworkDriverAccountEnum
.
CaseOutRecordStatus
.
PAYED
.
getCode
(),
NetworkDriverAccountEnum
.
CaseOutRecordStatus
.
PAYED
.
getMsg
()
);
SettlementDriverDetail
driverDetail
=
settlementDriverDetailService
.
selectOneByChildNo
(
childNo
);
networkDriverRunningWaterRecordService
.
generateCaseOutSuccessRunningWaterRecord
(
driverDetail
);
if
(
Objects
.
equals
(
orderGoods
.
getPlatformFreightQuotationTaxType
(),
QuotationEnum
.
PlatformFreightQuotationTaxType
.
NO
.
getCode
())
&&
Objects
.
equals
(
orderGoods
.
getSettlementWay
(),
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
// 未税,卸车减货损账户不变动
}
else
{
networkDriverRunningWaterRecordService
.
generateCaseOutSuccessRunningWaterRecord
(
driverDetail
);
}
try
{
//支付平台服务费
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
childNo
).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
if
(
Objects
.
nonNull
(
orderChild
.
getPlatformServiceFee
())
&&
!
Objects
.
equals
(
orderChild
.
getPlatformServiceFee
().
intValue
(),
0
))
{
PayPlatformFeeParam
payPlatformFeeParam
=
PayPlatformFeeParam
.
builder
()
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementCommonServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -19,9 +19,9 @@ public class SettlementCommonServiceImpl implements SettlementCommonService {
*/
@Override
public
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
);
return
settlementOwnerDetail
.
getFreight
().
subtract
(
settlementOwnerDetail
.
getLossFreight
())
.
setScale
(
0
,
RoundingMode
.
HALF_UP
)
.
divide
(
BigDecimal
.
ONE
.
subtract
(
settlementOwnerDetail
.
getInvoiceServiceFeeRate
()
.
movePointLeft
(
2
)
),
0
,
RoundingMode
.
HALF_UP
)
.
multiply
(
settlementOwnerDetail
.
getInvoiceServiceFeeRate
()
.
movePointLeft
(
2
)
).
setScale
(
0
,
RoundingMode
.
HALF_UP
);
}
/**
...
...
@@ -30,31 +30,31 @@ public class SettlementCommonServiceImpl implements SettlementCommonService {
@Override
public
BigDecimal
invoiceFreightCalc
(
Integer
settlementWay
,
BigDecimal
invoiceServiceFeeRate
,
SettlementOwnerDetail
settlementOwnerDetail
)
{
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
LOAD
.
getCode
()))
{
//订单结算方式为“装车净重”时,开票金额=实际净重*平台运费报价-货损金额。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
setScale
(
0
,
RoundingMode
.
HALF_UP
)
.
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
else
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
if
(
invoiceServiceFeeRate
!=
null
){
//结算方式为“卸车净重(减货损)”,平台运费报价为“未税”时,开票金额=平台运费单价*实际净重-货损单价*货损吨数+开票服务费。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getLoss
Price
())
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
setScale
(
0
,
RoundingMode
.
HALF_UP
)
.
subtract
(
settlementOwnerDetail
.
getLoss
Freight
())
.
add
(
settlementOwnerDetail
.
getInvoiceServiceFee
());
}
else
{
//结算方式为“卸车净重(减货损)”,平台运费报价为“含税”时 开票金额=平台运费单价*实际净重-货损单价*货损吨数
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
setScale
(
0
,
RoundingMode
.
HALF_UP
)
.
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
}
else
{
//订单结算方式为“卸车净重”时,开票金额=实际净重*平台运费报价。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
());
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
setScale
(
0
,
RoundingMode
.
HALF_UP
)
;
}
}
@Override
public
BigDecimal
settlementFreightCalc
(
Integer
settlementWay
,
SettlementOwnerDetail
settlementOwnerDetail
)
{
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
LOAD
.
getCode
()))
{
//订单结算方式为“装车净重”时,结算金额=实际净重*平台运费报价-预付运费-货损金额。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
setScale
(
0
,
RoundingMode
.
HALF_UP
)
.
subtract
(
settlementOwnerDetail
.
getPrepayFreight
()).
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
else
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
...
...
@@ -64,7 +64,8 @@ public class SettlementCommonServiceImpl implements SettlementCommonService {
.
subtract
(
settlementOwnerDetail
.
getLoanFreight
());
}
else
{
//订单结算方式为“卸车净重”时,结算金额=实际净重*平台运费报价-预付运费
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
()).
subtract
(
settlementOwnerDetail
.
getPrepayFreight
());
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
()).
setScale
(
0
,
RoundingMode
.
HALF_UP
)
.
subtract
(
settlementOwnerDetail
.
getPrepayFreight
());
}
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementDriverDetailServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -73,8 +73,8 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
:
orderChild
.
getPlatformServiceFeeRate
());
settlementDriverDetail
.
setPlatformServiceFee
(
settlementDriverDetail
.
getSettlementFreight
()
.
multiply
(
settlementDriverDetail
.
getPlatformServiceFeeRate
()
.
setScale
(
0
,
RoundingMode
.
HALF_UP
))
)
;
.
multiply
(
settlementDriverDetail
.
getPlatformServiceFeeRate
()
.
movePointLeft
(
2
))
.
setScale
(
0
,
RoundingMode
.
HALF_UP
));
settlementDriverDetailDao
.
saveEntity
(
settlementDriverDetail
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
service
.
impl
.
settle
;
import
cn.hutool.json.JSONUtil
;
import
com.clx.order.enums.QuotationEnum
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
import
com.clx.performance.config.MslPaymentConfig
;
import
com.clx.performance.constant.RedissonConstants
;
...
...
@@ -121,6 +122,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired
private
SettlementMqService
settlementMqService
;
@Autowired
private
OrderChildSyncTransportRecordDao
orderChildSyncTransportRecordDao
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
settlementStatistics
(
SettlementStatisticsMqParam
mq
)
{
...
...
@@ -204,6 +208,14 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
//插入同步网络货运待支付记录
childSyncTransportRecordService
.
addOrderChildSyncTransportRecord
(
settlementDriverDetail
);
}
if
(
Objects
.
equals
(
orderGoods
.
getPlatformFreightQuotationTaxType
(),
QuotationEnum
.
PlatformFreightQuotationTaxType
.
NO
.
getCode
())
&&
Objects
.
equals
(
orderGoods
.
getSettlementWay
(),
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
//插入同步网络货运待支付记录
childSyncTransportRecordService
.
addOrderChildSyncTransportRecord
(
settlementDriverDetail
);
}
}
// 更新结算单
...
...
@@ -213,6 +225,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriverDetailDao
.
updateSettlementNo
(
settlementDriverDetail
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
settle
(
SettlementSettleMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
get
();
...
...
@@ -220,9 +233,10 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
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
());
orderChildSyncTransportListener
.
extracted
(
orderChild
,
settlementOwnerDetail
,
settlementDriverDetail
,
mq
.
getInvoiceType
()
,
mq
.
getRemark
()
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
invoiceTypeSync
(
SettlementInvoiceTypeSyncMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
...
...
@@ -231,6 +245,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
if
(!
Objects
.
equals
(
settlementOwnerDetail
.
getInvoiceChannel
(),
SettlementOwnerDetailEnum
.
InvoiceChannel
.
BROKER
.
getCode
())){
return
;
}
if
(
settlementOwnerDetail
.
getInvoiceType
()
!=
null
)
{
return
;}
try
{
// 获取状态
...
...
@@ -240,24 +255,29 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return
;
}
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
))
{
String
remark
=
""
;
Integer
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
// if (Objects.equals(result.getRiskStatus(), 1) || Objects.equals(result.getRiskStatus(), 2)) {
// invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
// remark += result.getRiskReason();
// }
if
(
Objects
.
equals
(
result
.
getSyncStatus
(),
2
))
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
();
}
else
if
(
Objects
.
equals
(
result
.
getSyncStatus
(),
0
))
{
remark
+=
result
.
getSyncMsg
();
}
if
(
Objects
.
equals
(
result
.
getSyncStatus
(),
0
))
{
OrderChildSyncTransportInvoiceRecord
entity
=
new
OrderChildSyncTransportInvoiceRecord
();
entity
.
setChildNo
(
orderChild
.
getChildNo
());
entity
.
setType
(
TransportSyncTypeEnum
.
Type
.
EXCEPTION
.
getCode
());
entity
.
setRemark
(
"处理中"
);
orderChildSyncTransportInvoiceRecordDao
.
saveEntity
(
entity
);
return
;
}
else
{
invoiceType
=
SettlementOwnerEnum
.
InvoiceType
.
ONLINE
.
getCode
();
}
// 发送mq (结算)
settlementMqService
.
settle
(
orderChild
.
getChildNo
(),
invoiceType
);
settlementMqService
.
settle
(
orderChild
.
getChildNo
(),
invoiceType
,
remark
);
}
catch
(
Exception
e
){
OrderChildSyncTransportInvoiceRecord
entity
=
new
OrderChildSyncTransportInvoiceRecord
();
entity
.
setChildNo
(
orderChild
.
getChildNo
());
...
...
@@ -267,6 +287,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
invoiceStatusSync
(
SettlementInvoiceStatusSyncMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
...
...
@@ -276,6 +297,10 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return
;
}
if
(!
Objects
.
equals
(
settlementOwnerDetail
.
getInvoiceStatus
(),
SettlementOwnerDetailEnum
.
InvoiceStatus
.
NO
.
getCode
())){
return
;
}
// 获取状态
TransportVO
result
=
brokerService
.
getOrderChildStatus
(
mq
.
getChildNo
());
if
(
result
==
null
){
...
...
@@ -292,6 +317,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
payStatusSync
(
SettlementPayStatusSyncMqParam
mq
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
...
...
@@ -301,6 +327,13 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return
;
}
OrderChildSyncTransportRecord
orderChildSyncTransportRecord
=
orderChildSyncTransportRecordDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(!
Objects
.
equals
(
orderChildSyncTransportRecord
.
getStatus
(),
OrderChildSyncTransportRecordEnum
.
Status
.
INIT
.
getCode
())){
return
;
}
// 获取状态
TransportVO
result
=
brokerService
.
getOrderChildStatus
(
mq
.
getChildNo
());
if
(
result
==
null
){
...
...
@@ -382,7 +415,11 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriver
.
setStatus
(
SettlementDriverEnum
.
Status
.
WAIT_SETTLEMENT
.
getCode
());
}
settlementDriver
.
setInvoicingCompanyId
(
detail
.
getInvoicingCompanyId
());
settlementDriver
.
setInvoicingCompanyShorterName
(
detail
.
getInvoicingCompanyShorterName
());
settlementDriver
.
setInvoicingCompanyGroupCode
(
detail
.
getInvoicingCompanyGroupCode
());
settlementDriver
.
setPlatformServiceFeeRate
(
detail
.
getPlatformServiceFeeRate
());
settlementDriver
.
setPlatformServiceFee
(
detail
.
getPlatformServiceFee
());
settlementDriverDao
.
saveEntity
(
settlementDriver
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -68,11 +68,12 @@ public class SettlementMqServiceImpl implements SettlementMqService {
}
@Override
public
void
settle
(
String
childNo
,
Integer
invoiceType
)
{
public
void
settle
(
String
childNo
,
Integer
invoiceType
,
String
remark
)
{
SettlementSettleMqParam
mq
=
new
SettlementSettleMqParam
();
mq
.
setChildNo
(
childNo
);
mq
.
setInvoiceType
(
invoiceType
);
mq
.
setRemark
(
remark
);
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
();
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOwnerDetailServiceImpl.java
浏览文件 @
3d936a99
...
...
@@ -84,10 +84,10 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
settlementOwnerDetail
.
setLossFreight
(
lossFreightCalc
(
settlementOwnerDetail
.
getLossPrice
(),
settlementOwnerDetail
.
getLossWeight
()));
// 预付运费
BigDecimal
ans
=
settlementOwnerDetail
.
getFreight
().
subtract
(
settlementOwnerDetail
.
getLossFreight
()
);
if
(
ans
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
}
settlementOwnerDetail
.
setPrepayFreight
(
BigDecimal
.
ZERO
);
//借款抵扣金额初始化
settlementOwnerDetail
.
setLoanFreight
(
BigDecimal
.
ZERO
);
// 开票服务费
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
...
...
@@ -102,10 +102,8 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
orderGoods
.
getInvoiceServiceFeeRate
(),
settlementOwnerDetail
));
// // 结算金额
// settlementOwnerDetail.setSettlementFreight(settlementFreightCalc(orderGoods.getSettlementWay(),settlementOwnerDetail));
//
//借款抵扣金额初始化
settlementOwnerDetail
.
setLoanFreight
(
BigDecimal
.
ZERO
);
// settlementOwnerDetail.setSettlementFreight(
// settlementCommonService.settlementFreightCalc(orderGoods.getSettlementWay(),settlementOwnerDetail));
settlementOwnerDetail
.
setFinalPaymentStatus
(
SettlementOwnerDetailEnum
.
FinalPaymentStatus
.
NO
.
getCode
());
//设置开票公司信息
...
...
@@ -154,18 +152,6 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
}
/**
* 结算金额
*/
private
BigDecimal
settlementFreightCalc
(
Integer
settlementWay
,
SettlementOwnerDetail
settlementOwnerDetail
){
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
LOAD
.
getCode
())){
//订单结算方式为“装车净重”时,结算金额=实际净重*平台运费报价-预付运费-货损金额。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getPrepayFreight
()).
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
else
{
//订单结算方式为“卸车净重”时,结算金额=实际净重*平台运费报价-预付运费
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
()).
subtract
(
settlementOwnerDetail
.
getPrepayFreight
());
}
}
@Override
public
IPage
<
CarrierPageSettlementOwnerDetailVO
>
pageSettlementOwnerDetail
(
PageCarrierSettlementOwnerDetailParam
param
)
{
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementServiceImpl.java
浏览文件 @
3d936a99
package
com
.
clx
.
performance
.
service
.
impl
.
settle
;
import
cn.hutool.json.JSONUtil
;
import
com.clx.order.enums.InvoicingCompanyEnum
;
import
com.clx.order.vo.pc.carrier.InvoicingCompanyVO
;
import
com.clx.performance.component.IdGenerateSnowFlake
;
import
com.clx.performance.config.SettlementConfig
;
...
...
@@ -108,7 +109,12 @@ public class SettlementServiceImpl implements SettlementService {
settlementOwnerDetail
.
setInvoicingCompanyId
(
invoiceCompany
.
getId
());
settlementOwnerDetail
.
setInvoicingCompanyShorterName
(
invoiceCompany
.
getCompanyShorterName
());
settlementOwnerDetail
.
setInvoicingCompanyGroupCode
(
invoiceCompany
.
getCompanyGroupCode
());
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
invoiceCompany
.
getServiceFeeRate
());
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
BigDecimal
.
ZERO
);
if
(
Objects
.
equals
(
invoiceCompany
.
getQuotationType
(),
InvoicingCompanyEnum
.
TaxType
.
TAX_EXCLUDED
.
getCode
()))
{
settlementOwnerDetail
.
setInvoiceServiceFeeRate
(
invoiceCompany
.
getServiceFeeRate
()
==
null
?
BigDecimal
.
ZERO
:
invoiceCompany
.
getServiceFeeRate
());
}
settlementDriverDetail
.
setInvoicingCompanyId
(
invoiceCompany
.
getId
());
settlementDriverDetail
.
setInvoicingCompanyShorterName
(
invoiceCompany
.
getCompanyShorterName
());
...
...
@@ -131,7 +137,7 @@ public class SettlementServiceImpl implements SettlementService {
orderGoods
.
getInvoiceServiceFeeRate
(),
settlementOwnerDetail
));
// 结算金额
settlementOwnerDetail
.
setSettlementFreight
(
settlementFreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
settlementOwnerDetail
.
setSettlementFreight
(
settlement
CommonService
.
settlement
FreightCalc
(
orderChild
.
getSettlementWay
(),
settlementOwnerDetail
));
log
.
info
(
"当前货主结算信息{},车主结算信息:{}"
,
JSONUtil
.
parse
(
settlementOwnerDetail
),
JSONUtil
.
parse
(
settlementDriverDetail
));
settlementOwnerDetailDao
.
updateInvoiceType
(
settlementOwnerDetail
);
...
...
@@ -223,23 +229,4 @@ public class SettlementServiceImpl implements SettlementService {
}
}
/**
* 结算金额
*/
private
BigDecimal
settlementFreightCalc
(
Integer
settlementWay
,
SettlementOwnerDetail
settlementOwnerDetail
)
{
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
LOAD
.
getCode
()))
{
//订单结算方式为“装车净重”时,结算金额=实际净重*平台运费报价-预付运费-货损金额。
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
())
.
subtract
(
settlementOwnerDetail
.
getPrepayFreight
()).
subtract
(
settlementOwnerDetail
.
getLossFreight
());
}
else
if
(
Objects
.
equals
(
settlementWay
,
SettlementWayEnum
.
WayType
.
UNLOAD_LOSS
.
getCode
()))
{
//结算方式为“卸车净重(减货损)“,结算金额=开票金额-预付运费金额-借款抵扣金额。
return
settlementOwnerDetail
.
getInvoiceFreight
()
.
subtract
(
settlementOwnerDetail
.
getPrepayFreight
())
.
subtract
(
settlementOwnerDetail
.
getLoanFreight
());
}
else
{
//订单结算方式为“卸车净重”时,结算金额=实际净重*平台运费报价-预付运费
return
settlementOwnerDetail
.
getWeight
().
multiply
(
settlementOwnerDetail
.
getFreightPrice
()).
subtract
(
settlementOwnerDetail
.
getPrepayFreight
());
}
}
}
performance-web/src/main/java/com/clx/performance/service/settle/SettlementMqService.java
浏览文件 @
3d936a99
...
...
@@ -8,7 +8,7 @@ public interface SettlementMqService {
void
invoiceTypeSync
(
String
childNo
);
void
settle
(
String
childNo
,
Integer
invoiceType
);
void
settle
(
String
childNo
,
Integer
invoiceType
,
String
remark
);
void
invoiceStatusSync
(
String
childNo
);
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/OrderGoodsSqlProvider.java
浏览文件 @
3d936a99
...
...
@@ -40,7 +40,9 @@ public class OrderGoodsSqlProvider {
" date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time,"
+
" date_format(a.modified_time, '%Y-%m-%d %H:%i:%s') as modified_time,"
+
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight,"
+
"a.user_no,a.user_name,a.stop_flag,a.batch_number,a.last_arrive_receive_time,a.last_load_time,a.last_order_time,a.vehicle_usage"
);
"a.user_no,a.user_name,a.stop_flag,a.batch_number,a.last_arrive_receive_time,a.last_load_time,a.last_order_time,a.vehicle_usage,"
+
" a.platform_freight_quotation_tax_type, a.platform_service_fee_rate, "
+
" a.deposit, a.invoice_service_fee_rate, a.settlement_way, a.support_loan "
);
FROM
(
"order_goods a"
);
if
(
StringUtils
.
isNotBlank
(
param
.
getBeginTime
())
&&
StringUtils
.
isNotBlank
(
param
.
getEndTime
()))
{
...
...
@@ -196,8 +198,8 @@ public class OrderGoodsSqlProvider {
.
append
(
o
.
getGoodsId
()).
append
(
"','"
).
append
(
o
.
getCreateTime
()).
append
(
"','"
).
append
(
o
.
getModifiedTime
()).
append
(
"','"
).
append
(
o
.
getUserName
()).
append
(
"','"
)
.
append
(
o
.
getUserNo
()).
append
(
"','"
).
append
(
o
.
getBatchNumber
()).
append
(
"','"
).
append
(
o
.
getLastArriveReceiveTime
()).
append
(
"','"
)
.
append
(
o
.
getLastLoadTime
()).
append
(
"','"
).
append
(
o
.
getLastOrderTime
()).
append
(
"','"
).
append
(
o
.
getSettlementAccountPeriod
()).
append
(
"','"
).
append
(
o
.
getSettlementWay
()).
append
(
"','"
)
.
append
(
o
.
getPlatformFreightQuotationTaxType
()).
append
(
"',
'"
).
append
(
o
.
getPlatformServiceFeeRate
()).
append
(
"','"
).
append
(
o
.
getDeposit
()).
append
(
"','
"
).
append
(
o
.
getInvoiceServiceFeeRate
())
.
append
(
"
'
)"
);
.
append
(
o
.
getPlatformFreightQuotationTaxType
()).
append
(
"',
"
).
append
(
o
.
getPlatformServiceFeeRate
()).
append
(
","
).
append
(
o
.
getDeposit
()).
append
(
",
"
).
append
(
o
.
getInvoiceServiceFeeRate
())
.
append
(
")"
);
if
(
i
<
orderGoodsList
.
size
()
-
1
)
{
sqlList
.
append
(
","
);
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/settle/SettlementPlatformServiceFeeSqlProvider.java
浏览文件 @
3d936a99
...
...
@@ -20,10 +20,11 @@ public class SettlementPlatformServiceFeeSqlProvider {
FROM
(
TABLE
);
if
(
StringUtils
.
isNotBlank
(
param
.
getChildNo
()))
{
WHERE
(
"child_no = #{param.childNo}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getDriver
UserName
()))
{
WHERE
(
"child_no = #{param.childNo}
"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getDriver
Name
()))
{
WHERE
(
"driver_name like CONCAT(#{param.driverName},'%')
"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getDriverMobile
()))
{
WHERE
(
"driver_mobile = #{param.driverMobile}"
);}
if
(
Objects
.
nonNull
(
param
.
getDriverUserNo
()))
{
WHERE
(
"driver_user_no = #{param.driverUserNo}"
);}
if
(
Objects
.
nonNull
(
param
.
getBeginTime
()))
{
WHERE
(
"create_time >= #{param.beginTime}"
);}
if
(
Objects
.
nonNull
(
param
.
getEndTime
()))
{
WHERE
(
"create_time <= #{param.endTime}"
);}
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/OwnGoodsOrderStrategy.java
浏览文件 @
3d936a99
...
...
@@ -184,6 +184,7 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
orderGoods
.
setInvoiceServiceFeeRate
(
orderInfoFeign
.
getPlatformFreightQuotationTaxRate
());
orderGoods
.
setPlatformServiceFeeRate
(
orderInfoFeign
.
getPlatformServiceFeeRate
());
orderGoods
.
setDeposit
(
orderInfoFeign
.
getDeposit
());
orderGoods
.
setSupportLoan
(
orderInfoFeign
.
getSupportLoan
());
List
<
OrderOwnTruckVo
>
orderOwnTruckVos
=
orderFeign
.
selectTruckListFeign
(
orderNo
);
if
(
orderOwnTruckVos
==
null
||
orderOwnTruckVos
.
isEmpty
())
{
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/PartGoodsOrderStrategy.java
浏览文件 @
3d936a99
...
...
@@ -187,6 +187,7 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
orderGoods
.
setInvoiceServiceFeeRate
(
orderInfoFeign
.
getPlatformFreightQuotationTaxRate
());
orderGoods
.
setPlatformServiceFeeRate
(
orderInfoFeign
.
getPlatformServiceFeeRate
());
orderGoods
.
setDeposit
(
orderInfoFeign
.
getDeposit
());
orderGoods
.
setSupportLoan
(
orderInfoFeign
.
getSupportLoan
());
if
(
CollectionUtil
.
isNotEmpty
(
child
.
getTruckList
()))
{
orderGoodsTruckBindDao
.
saveBatchEntity
(
orderNo
,
orderGoodsNo
,
child
.
getTruckList
(),
now
);
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/PlatformGoodsOrderStrategy.java
浏览文件 @
3d936a99
...
...
@@ -181,6 +181,7 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
orderGoods
.
setInvoiceServiceFeeRate
(
orderInfoFeign
.
getPlatformFreightQuotationTaxRate
());
orderGoods
.
setPlatformServiceFeeRate
(
orderInfoFeign
.
getPlatformServiceFeeRate
());
orderGoods
.
setDeposit
(
orderInfoFeign
.
getDeposit
());
orderGoods
.
setSupportLoan
(
orderInfoFeign
.
getSupportLoan
());
if
(
CollectionUtil
.
isNotEmpty
(
child
.
getTruckList
()))
{
orderGoodsTruckBindDao
.
saveBatchEntity
(
orderNo
,
orderGoodsNo
,
child
.
getTruckList
(),
now
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论