Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
4d6b622f
提交
4d6b622f
authored
10月 31, 2023
作者:
liruixin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
违约结算单
上级
d4f3fe26
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
119 行增加
和
4 行删除
+119
-4
OrderGoodsEditVO.java
...main/java/com/clx/performance/vo/pc/OrderGoodsEditVO.java
+1
-1
QuotationService.java
.../com/clx/performance/extranal/order/QuotationService.java
+10
-0
QuotationServiceImpl.java
...performance/extranal/order/impl/QuotationServiceImpl.java
+25
-0
OrderCancelHandler.java
...java/com/clx/performance/listener/OrderCancelHandler.java
+7
-0
OrderChildDtsListener.java
...a/com/clx/performance/listener/OrderChildDtsListener.java
+1
-1
BreakContractSettlementOwnerService.java
...ce/breakcontract/BreakContractSettlementOwnerService.java
+3
-1
BreakContractSettlementOwnerServiceImpl.java
...reakcontract/BreakContractSettlementOwnerServiceImpl.java
+72
-1
没有找到文件。
performance-api/src/main/java/com/clx/performance/vo/pc/OrderGoodsEditVO.java
浏览文件 @
4d6b622f
...
@@ -12,7 +12,7 @@ public class OrderGoodsEditVO {
...
@@ -12,7 +12,7 @@ public class OrderGoodsEditVO {
@ApiModelProperty
(
"订单编号"
)
@ApiModelProperty
(
"订单编号"
)
private
String
orderNo
;
private
String
orderNo
;
@ApiModelProperty
(
"拉运吨数"
)
@ApiModelProperty
(
"拉运吨数"
)
private
String
transportWeight
;
private
BigDecimal
transportWeight
;
@ApiModelProperty
(
"有效运费"
)
@ApiModelProperty
(
"有效运费"
)
private
BigDecimal
validFreightPrice
;
private
BigDecimal
validFreightPrice
;
@ApiModelProperty
(
"用车需求: 1平台车辆 2部分平台车辆 3自有车辆"
)
@ApiModelProperty
(
"用车需求: 1平台车辆 2部分平台车辆 3自有车辆"
)
...
...
performance-web/src/main/java/com/clx/performance/extranal/order/QuotationService.java
0 → 100644
浏览文件 @
4d6b622f
package
com
.
clx
.
performance
.
extranal
.
order
;
import
com.clx.order.vo.pc.owner.OwnerQuotationDetailVO
;
import
com.msl.common.base.Optional
;
public
interface
QuotationService
{
Optional
<
OwnerQuotationDetailVO
>
getQuotationByOrderNo
(
String
orderNo
);
}
performance-web/src/main/java/com/clx/performance/extranal/order/impl/QuotationServiceImpl.java
0 → 100644
浏览文件 @
4d6b622f
package
com
.
clx
.
performance
.
extranal
.
order
.
impl
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.pc.owner.OwnerQuotationDetailVO
;
import
com.clx.performance.extranal.order.QuotationService
;
import
com.msl.common.base.Optional
;
import
com.msl.common.result.Result
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
@Service
@Slf4j
@AllArgsConstructor
public
class
QuotationServiceImpl
implements
QuotationService
{
private
final
OrderFeign
orderFeign
;
@Override
public
Optional
<
OwnerQuotationDetailVO
>
getQuotationByOrderNo
(
String
orderNo
)
{
return
Optional
.
ofNullable
(
orderFeign
.
getQuotationByOrderNo
(
orderNo
))
.
filter
(
Result:
:
succeed
)
.
map
(
Result:
:
getData
);
}
}
performance-web/src/main/java/com/clx/performance/listener/OrderCancelHandler.java
浏览文件 @
4d6b622f
...
@@ -3,6 +3,7 @@ package com.clx.performance.listener;
...
@@ -3,6 +3,7 @@ package com.clx.performance.listener;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.enums.RoleEnum
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.service.OrderCancelService
;
import
com.clx.performance.service.OrderCancelService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -10,6 +11,8 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
...
@@ -10,6 +11,8 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Objects
;
/**
/**
* 处理货单取消吨数回填
* 处理货单取消吨数回填
*/
*/
...
@@ -29,6 +32,10 @@ public class OrderCancelHandler {
...
@@ -29,6 +32,10 @@ public class OrderCancelHandler {
}
else
{
}
else
{
orderCancelService
.
orderCancelProcess
(
param
);
orderCancelService
.
orderCancelProcess
(
param
);
}
}
//货主端取消订单进行违约计费
if
(
Objects
.
equals
(
param
.
getCreateByType
(),
RoleEnum
.
Type
.
OWNER
)){
}
}
}
}
}
performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java
浏览文件 @
4d6b622f
...
@@ -96,7 +96,7 @@ public class OrderChildDtsListener {
...
@@ -96,7 +96,7 @@ public class OrderChildDtsListener {
List
<
OrderGoods
>
list
=
orderGoodsDao
.
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
after
.
getOrderNo
(),
nowDateTime
);
List
<
OrderGoods
>
list
=
orderGoodsDao
.
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
after
.
getOrderNo
(),
nowDateTime
);
BigDecimal
childSum
=
list
.
stream
().
map
(
OrderGoods:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
childSum
=
list
.
stream
().
map
(
OrderGoods:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
log
.
info
(
"算出所有货单总量:{}, 订单总吨数:{}"
,
childSum
,
orderInfoFeign
.
getTransportWeight
());
log
.
info
(
"算出所有货单总量:{}, 订单总吨数:{}"
,
childSum
,
orderInfoFeign
.
getTransportWeight
());
if
(
childSum
.
compareTo
(
new
BigDecimal
(
orderInfoFeign
.
getTransportWeight
()
))
==
0
)
{
if
(
childSum
.
compareTo
(
orderInfoFeign
.
getTransportWeight
(
))
==
0
)
{
// 按照时间 倒序查出最后一条进行中的运单
// 按照时间 倒序查出最后一条进行中的运单
OrderChild
orderChild
=
orderChildDao
.
getGoingLatestOrderChildByOrderNo
(
after
.
getOrderNo
());
OrderChild
orderChild
=
orderChildDao
.
getGoingLatestOrderChildByOrderNo
(
after
.
getOrderNo
());
if
(
Objects
.
nonNull
(
orderChild
)
&&
orderChild
.
getChildNo
().
equals
(
after
.
getChildNo
())){
if
(
Objects
.
nonNull
(
orderChild
)
&&
orderChild
.
getChildNo
().
equals
(
after
.
getChildNo
())){
...
...
performance-web/src/main/java/com/clx/performance/service/breakcontract/BreakContractSettlementOwnerService.java
浏览文件 @
4d6b622f
...
@@ -36,7 +36,9 @@ public interface BreakContractSettlementOwnerService {
...
@@ -36,7 +36,9 @@ public interface BreakContractSettlementOwnerService {
void
updateOwnerBreakContractPayeeConfirm
(
CarrierBreakPayeeConfirmParam
param
);
void
updateOwnerBreakContractPayeeConfirm
(
CarrierBreakPayeeConfirmParam
param
);
void
saveBreakContractSettlementOwner
(
OrderAdjustTonnageDownParam
param
);
void
saveSettlementOwnerForTonnageDown
(
OrderAdjustTonnageDownParam
param
);
void
saveSettlementOwnerForCancelOrder
(
String
orderNo
);
SettlementPlatformAccountVO
getCarrierSettlementPlatformAccount
(
Integer
id
);
SettlementPlatformAccountVO
getCarrierSettlementPlatformAccount
(
Integer
id
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/breakcontract/BreakContractSettlementOwnerServiceImpl.java
浏览文件 @
4d6b622f
...
@@ -5,12 +5,16 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -5,12 +5,16 @@ import com.alibaba.fastjson.JSONObject;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.pc.owner.OwnerQuotationDetailVO
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.breakcontract.BreakContractOwnerRuleDao
;
import
com.clx.performance.dao.breakcontract.BreakContractOwnerRuleDao
;
import
com.clx.performance.dao.breakcontract.BreakContractSettlementLogDao
;
import
com.clx.performance.dao.breakcontract.BreakContractSettlementLogDao
;
import
com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDao
;
import
com.clx.performance.dao.breakcontract.BreakContractSettlementOwnerDao
;
import
com.clx.performance.dao.settle.SettlementPlatformAccountDao
;
import
com.clx.performance.dao.settle.SettlementPlatformAccountDao
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.extranal.order.QuotationService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.breakcontract.BreakContractOwnerRule
;
import
com.clx.performance.model.breakcontract.BreakContractOwnerRule
;
import
com.clx.performance.model.breakcontract.BreakContractSettlementLog
;
import
com.clx.performance.model.breakcontract.BreakContractSettlementLog
;
...
@@ -34,6 +38,7 @@ import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractS
...
@@ -34,6 +38,7 @@ import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractS
import
com.clx.performance.vo.pc.owner.settle.SettlementPlatformAccountVO
;
import
com.clx.performance.vo.pc.owner.settle.SettlementPlatformAccountVO
;
import
com.clx.user.vo.pc.owner.OwnerBindCardVO
;
import
com.clx.user.vo.pc.owner.OwnerBindCardVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.utils.LocalDateTimeUtils
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
com.msl.user.utils.TokenUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
...
@@ -43,6 +48,7 @@ import org.springframework.stereotype.Service;
...
@@ -43,6 +48,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
...
@@ -67,6 +73,8 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
...
@@ -67,6 +73,8 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
private
final
BreakContractOwnerRuleDao
breakContractOwnerRuleDao
;
private
final
BreakContractOwnerRuleDao
breakContractOwnerRuleDao
;
private
final
SettlementPlatformAccountDao
settlementPlatformAccountDao
;
private
final
SettlementPlatformAccountDao
settlementPlatformAccountDao
;
private
final
OwnerAccountService
ownerAccountService
;
private
final
OwnerAccountService
ownerAccountService
;
private
final
OrderFeign
orderFeign
;
private
final
QuotationService
quotationService
;
@Override
@Override
...
@@ -280,7 +288,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
...
@@ -280,7 +288,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
}
}
@Override
@Override
public
void
save
BreakContractSettlementOwner
(
OrderAdjustTonnageDownParam
param
)
{
public
void
save
SettlementOwnerForTonnageDown
(
OrderAdjustTonnageDownParam
param
)
{
//下调货物吨数
//下调货物吨数
if
(
param
.
getWeight
().
compareTo
(
BigDecimal
.
ZERO
)
<=
0
){
if
(
param
.
getWeight
().
compareTo
(
BigDecimal
.
ZERO
)
<=
0
){
return
;
return
;
...
@@ -348,4 +356,67 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
...
@@ -348,4 +356,67 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
}
}
return
vo
;
return
vo
;
}
}
@Override
public
void
saveSettlementOwnerForCancelOrder
(
String
orderNo
)
{
//获取订单信息
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
if
(
Objects
.
isNull
(
orderInfoFeign
)){
log
.
info
(
"货主取消保存违约结算单获取订单数据为空"
);
return
;
}
//获取订单配置的违约金方案
OwnerQuotationDetailVO
quotationDetailVO
=
quotationService
.
getQuotationByOrderNo
(
orderNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
//获取违约金方案详情
BreakContractOwnerRule
ownerRule
=
breakContractOwnerRuleDao
.
getEntityByKey
(
quotationDetailVO
.
getLiquidatedDamagesPlanId
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(
Objects
.
equals
(
ownerRule
.
getStatus
(),
2
)){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
BREAK_CONTRACT_RULE_NO_FOUND
);
}
String
autoRuleJson
=
ownerRule
.
getAutoRuleJson
();
//系统自动违规
BreakContractOwnerRuleVO
.
AutoRule
autoRule
=
JSONObject
.
parseObject
(
autoRuleJson
,
BreakContractOwnerRuleVO
.
AutoRule
.
class
);
BreakContractOwnerRuleVO
.
OrderCancelRule
orderCancelRule
=
autoRule
.
getOrderCancelRule
();
//订单取消规则
//运单状态(不包括取消)
List
<
Integer
>
statusList
=
Arrays
.
asList
(
new
Integer
[]{
OrderChildEnum
.
Status
.
CREATED
.
getCode
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
UNLOAD
.
getCode
(),
OrderChildEnum
.
Status
.
UNSETTLE
.
getCode
()});
BigDecimal
totalFreight
;
//总费用
List
<
OrderChild
>
orderChilds
=
orderChildDao
.
listOrderChildByOrderNoAndStatus
(
orderNo
,
statusList
);
LocalDateTime
now
=
LocalDateTime
.
now
();
//当前时间
//没有司机拉运
if
(
CollectionUtils
.
isEmpty
(
orderChilds
)){
totalFreight
=
orderInfoFeign
.
getTransportWeight
().
multiply
(
orderInfoFeign
.
getValidFreightPrice
());
}
else
{
BigDecimal
deliveredWeight
=
BigDecimal
.
ZERO
;
//已拉运的重量
BigDecimal
cancelWeight
=
BigDecimal
.
ZERO
;
//可取消的重量
BigDecimal
deliveredFreight
=
BigDecimal
.
ZERO
;
//已拉运的费用
BigDecimal
seconds
=
BigDecimal
.
ZERO
;
//总毫秒数
for
(
OrderChild
orderChild
:
orderChilds
){
if
(
orderChild
.
getLoadNet
()
!=
null
){
deliveredWeight
=
deliveredWeight
.
add
(
orderChild
.
getWeight
())
;
deliveredFreight
=
deliveredFreight
.
add
(
orderChild
.
getOrderFreightPrice
().
multiply
(
orderChild
.
getWeight
()));
}
else
{
deliveredWeight
=
deliveredWeight
.
add
(
orderChild
.
getLoadNet
())
;
deliveredFreight
=
deliveredFreight
.
add
(
orderChild
.
getOrderFreightPrice
().
multiply
(
orderChild
.
getLoadNet
()));
}
if
(
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
())
||
Objects
.
equals
(
orderChild
.
getStatus
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
()))
{
cancelWeight
=
cancelWeight
.
add
(
orderChild
.
getWeight
());
seconds
=
seconds
.
add
(
new
BigDecimal
(
LocalDateTimeUtils
.
getSecondsDiff
(
orderChild
.
getPayTime
(),
now
)));
}
}
BigDecimal
noTransitWeight
=
orderInfoFeign
.
getTransportWeight
().
subtract
(
deliveredWeight
);
//未拉运的重量
BigDecimal
noTransitFreight
=
noTransitWeight
.
multiply
(
orderInfoFeign
.
getValidFreightPrice
());
//未拉运的费用
totalFreight
=
deliveredFreight
.
add
(
noTransitFreight
);
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论