Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
b58df0d0
提交
b58df0d0
authored
10月 18, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加挂单运费相关代码
上级
d726f37a
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
304 行增加
和
22 行删除
+304
-22
RabbitBeanConfig.java
...ain/java/com/clx/performance/config/RabbitBeanConfig.java
+55
-0
RabbitKeyConstants.java
...java/com/clx/performance/constant/RabbitKeyConstants.java
+25
-0
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+2
-0
PendingFreightDao.java
.../main/java/com/clx/performance/dao/PendingFreightDao.java
+2
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+9
-0
PendingFreightDaoImpl.java
...a/com/clx/performance/dao/impl/PendingFreightDaoImpl.java
+9
-0
OrderedAndLoadTruckRateDTO.java
...a/com/clx/performance/dto/OrderedAndLoadTruckRateDTO.java
+33
-0
OrderChildDtsListener.java
...a/com/clx/performance/listener/OrderChildDtsListener.java
+19
-0
OrderGoodsDtsListener.java
...a/com/clx/performance/listener/OrderGoodsDtsListener.java
+5
-19
SyncPendingFreight4OrderChildListener.java
...mance/listener/SyncPendingFreight4OrderChildListener.java
+39
-0
SyncPendingFreight4OrderGoodsListener.java
...mance/listener/SyncPendingFreight4OrderGoodsListener.java
+39
-0
PendingFreightService.java
...va/com/clx/performance/service/PendingFreightService.java
+5
-3
PendingFreightServiceImpl.java
...x/performance/service/impl/PendingFreightServiceImpl.java
+62
-0
没有找到文件。
clx-performance-web/src/main/java/com/clx/performance/config/RabbitBeanConfig.java
浏览文件 @
b58df0d0
...
...
@@ -352,4 +352,59 @@ public class RabbitBeanConfig {
/**
* 监听货单同步到挂单运费表
*/
@Bean
public
Queue
syncPendingFreight4OrderGoodsQueue
()
{
return
new
Queue
(
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_QUEUE
,
true
,
false
,
false
);
}
/**
* 监听货单同步到挂单运费表
**/
@Bean
public
DirectExchange
syncPendingFreight4OrderGoodsExchange
()
{
return
new
DirectExchange
(
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_EXCHANGE
);
}
/**
* 监听货单同步到挂单运费表
*/
@Bean
public
Binding
syncPendingFreight4OrderGoodsBind
()
{
return
BindingBuilder
.
bind
(
syncPendingFreight4OrderGoodsQueue
()).
to
(
syncPendingFreight4OrderGoodsExchange
())
.
with
(
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_ROUTING_KEY
);
}
/**
* 监听运单同步到挂单运费表
*/
@Bean
public
Queue
syncPendingFreight4OrderChildQueue
()
{
return
new
Queue
(
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_QUEUE
,
true
,
false
,
false
);
}
/**
* 监听运单同步到挂单运费表
**/
@Bean
public
DirectExchange
syncPendingFreight4OrderChildExchange
()
{
return
new
DirectExchange
(
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_EXCHANGE
);
}
/**
* 监听运单同步到挂单运费表
*/
@Bean
public
Binding
syncPendingFreight4OrderChildBind
()
{
return
BindingBuilder
.
bind
(
syncPendingFreight4OrderChildQueue
()).
to
(
syncPendingFreight4OrderChildExchange
())
.
with
(
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_ROUTING_KEY
);
}
}
clx-performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
浏览文件 @
b58df0d0
...
...
@@ -175,4 +175,29 @@ public class RabbitKeyConstants {
//货单同步挂单运费表queue
public
static
final
String
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_QUEUE
=
"clx_performance.sync.pending.freight.for.order.goods.queue"
;
//货单同步挂单运费表exchange
public
static
final
String
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_EXCHANGE
=
"clx_performance.sync.pending.freight.for.order.goods.exchange"
;
//货单同步挂单运费表routing_key
public
static
final
String
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_ROUTING_KEY
=
"clx_performance.sync.pending.freight.for.order.goods.routing.key"
;
//货单同步挂单运费表queue
public
static
final
String
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_QUEUE
=
"clx_performance.sync.pending.freight.for.order.child.queue"
;
//货单同步挂单运费表exchange
public
static
final
String
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_EXCHANGE
=
"clx_performance.sync.pending.freight.for.order.child.exchange"
;
//货单同步挂单运费表routing_key
public
static
final
String
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_ROUTING_KEY
=
"clx_performance.sync.pending.freight.for.order.child.routing.key"
;
}
clx-performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
b58df0d0
...
...
@@ -217,4 +217,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
int
countTakeByOrderGoodsNo
(
String
orderGoodsNo
);
int
countLoadByOrderGoodsNo
(
String
orderGoodsNo
);
List
<
OrderChild
>
listNoCancelOrderChild
(
String
orderNo
);
}
clx-performance-web/src/main/java/com/clx/performance/dao/PendingFreightDao.java
浏览文件 @
b58df0d0
...
...
@@ -13,4 +13,6 @@ import java.math.BigDecimal;
*/
public
interface
PendingFreightDao
extends
BaseDao
<
PendingFreightMapper
,
PendingFreight
,
Integer
>
{
long
updateInternalReportData
(
String
orderNo
,
String
name
,
BigDecimal
logisticsFreight
);
void
updateOrderedAndLoadTruckRate
(
String
orderNo
,
BigDecimal
orderedRate
,
BigDecimal
loadTruckRate
);
}
clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
b58df0d0
...
...
@@ -721,4 +721,13 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public
int
countLoadByOrderGoodsNo
(
String
orderGoodsNo
)
{
return
baseMapper
.
countLoadByOrderGoodsNo
(
orderGoodsNo
);
}
@Override
public
List
<
OrderChild
>
listNoCancelOrderChild
(
String
orderNo
)
{
return
list
(
lQrWrapper
()
.
eq
(
OrderChild
::
getOrderNo
,
orderNo
)
.
lt
(
OrderChild
::
getStatus
,
OrderChildEnum
.
Status
.
DRIVER_CANCEL
.
getCode
())
);
}
}
clx-performance-web/src/main/java/com/clx/performance/dao/impl/PendingFreightDaoImpl.java
浏览文件 @
b58df0d0
...
...
@@ -26,4 +26,13 @@ public class PendingFreightDaoImpl extends BaseDaoImpl<PendingFreightMapper, Pen
update
.
eq
(
PendingFreight
::
getOrderNo
,
orderNo
);
return
baseMapper
.
update
(
update
);
}
@Override
public
void
updateOrderedAndLoadTruckRate
(
String
orderNo
,
BigDecimal
orderedRate
,
BigDecimal
loadTruckRate
)
{
LambdaUpdateWrapper
<
PendingFreight
>
update
=
new
LambdaUpdateWrapper
<>();
update
.
set
(
PendingFreight
::
getOrderedRate
,
orderedRate
);
update
.
set
(
PendingFreight
::
getLoadTruckRate
,
loadTruckRate
);
update
.
eq
(
PendingFreight
::
getOrderNo
,
orderNo
);
baseMapper
.
update
(
update
);
}
}
clx-performance-web/src/main/java/com/clx/performance/dto/OrderedAndLoadTruckRateDTO.java
0 → 100644
浏览文件 @
b58df0d0
package
com
.
clx
.
performance
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
/**
* @ClassName OrderedAndLoadTruckRateDTO
* @Description
* @Author kavin
* @Date 2024/10/18 16:25
* @Version 1.0
*/
@Getter
@Setter
public
class
OrderedAndLoadTruckRateDTO
{
@Schema
(
description
=
"订单号"
)
private
String
orderNo
;
@Schema
(
description
=
"挂单吨数"
)
private
BigDecimal
pendingWeight
;
@Schema
(
description
=
"装车吨数"
)
private
BigDecimal
loadNet
;
@Schema
(
description
=
"已拉运吨数"
)
private
BigDecimal
alreadyTransportWeight
;
@Schema
(
description
=
"接单率"
)
BigDecimal
orderedRate
;
@Schema
(
description
=
"装车率"
)
BigDecimal
loadTruckRate
;
}
clx-performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java
浏览文件 @
b58df0d0
...
...
@@ -94,6 +94,7 @@ public class OrderChildDtsListener {
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
log
.
info
(
"修改:{}"
,
after
);
syncPerformanceProgress
(
before
,
after
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
());
syncPendingFreight
(
before
,
after
);
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
(!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())
||
!
Objects
.
equals
(
before
.
getLoadNet
(),
after
.
getLoadNet
()))
||
...
...
@@ -291,6 +292,24 @@ public class OrderChildDtsListener {
}
}
//同步挂单运费表-----运单部分
public
void
syncPendingFreight
(
OrderChild
before
,
OrderChild
after
){
//状态发生变化,并且是取消
if
((!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())
&&
after
.
getStatus
()
>
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
())
// 装车吨数发生变化
||
Objects
.
equals
(
after
.
getLoadNet
(),
before
.
getLoadNet
())
){
log
.
info
(
"开始发送同步挂单运费表消息,订单号:{},运单号:{}"
,
after
.
getOrderNo
(),
after
.
getChildNo
());
Message
body
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
after
)).
getBytes
()).
build
();
rabbitTemplate
.
send
(
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_EXCHANGE
,
SYNC_PENDING_FREIGHT_FOR_ORDER_CHILD_ROUTING_KEY
,
body
);
log
.
info
(
"结束发送同步挂单运费表消息,订单号:{},运单号:{}"
,
after
.
getOrderNo
(),
after
.
getChildNo
());
}
}
/**
* 后续逻辑处理
* @param before
...
...
clx-performance-web/src/main/java/com/clx/performance/listener/OrderGoodsDtsListener.java
浏览文件 @
b58df0d0
...
...
@@ -89,7 +89,7 @@ public class OrderGoodsDtsListener {
}
}
//同步挂单运费
public
void
syncPendingFreight
(
OrderGoods
before
,
OrderGoods
after
,
Integer
updateType
)
{
boolean
isSend
=
false
;
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())){
...
...
@@ -99,29 +99,15 @@ public class OrderGoodsDtsListener {
||
!
Objects
.
equals
(
before
.
getAlreadyTransportWeight
(),
after
.
getAlreadyTransportWeight
())
||
!
Objects
.
equals
(
before
.
getExtractWeight
(),
after
.
getExtractWeight
())){
}
}
if
(
after
.
getOrderGoodsStatus
()
>=
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
()){
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())){
isSend
=
true
;
}
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
())
&&
(!
Objects
.
equals
(
before
.
getOrderGoodsStatus
(),
after
.
getOrderGoodsStatus
())
||
!
Objects
.
equals
(
before
.
getSeniorLogisticsManagerId
(),
after
.
getSeniorLogisticsManagerId
())
||
!
Objects
.
equals
(
before
.
getExtractWeight
(),
after
.
getExtractWeight
())
||
!
Objects
.
equals
(
before
.
getPendingOrderFreight
(),
after
.
getPendingOrderFreight
())
)){
isSend
=
true
;
}
if
(
isSend
){
log
.
info
(
"开始发送同步履约进度
表消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
log
.
info
(
"开始发送同步挂单运费
表消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
Message
body
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
after
)).
getBytes
()).
build
();
rabbitTemplate
.
send
(
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_EXCHANGE
,
SYNC_PERFORMANCE_PROGRESS_FOR_ORDER_GOODS_ROUTING_KEY
,
body
);
log
.
info
(
"结束发送同步履约进度表消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
}
rabbitTemplate
.
send
(
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_EXCHANGE
,
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_ROUTING_KEY
,
body
);
log
.
info
(
"结束发送同步挂单运费表消息,订单号:{},货单号:{}"
,
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
());
}
}
...
...
clx-performance-web/src/main/java/com/clx/performance/listener/SyncPendingFreight4OrderChildListener.java
0 → 100644
浏览文件 @
b58df0d0
package
com
.
clx
.
performance
.
listener
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.service.PendingFreightService
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.stereotype.Component
;
/**
* 处理货单取消吨数回填
*/
@Slf4j
@Component
@AllArgsConstructor
public
class
SyncPendingFreight4OrderChildListener
{
private
final
PendingFreightService
pendingFreightService
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_QUEUE
)
public
void
onMessage
(
Message
message
)
{
try
{
log
.
info
(
"监听到同步挂单运费表---运单信息部分,消息内容{}"
,
new
String
(
message
.
getBody
()));
OrderChild
data
=
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
OrderChild
>>()
{
}).
getData
();
pendingFreightService
.
dealPendingFreight4OrderChild
(
data
.
getOrderNo
());
}
catch
(
Exception
e
){
log
.
info
(
"监听到同步挂单运费表---运单信息部分发生异常,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
}
clx-performance-web/src/main/java/com/clx/performance/listener/SyncPendingFreight4OrderGoodsListener.java
0 → 100644
浏览文件 @
b58df0d0
package
com
.
clx
.
performance
.
listener
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.common.MqWrapper
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.service.PendingFreightService
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.stereotype.Component
;
/**
* 处理货单取消吨数回填
*/
@Slf4j
@Component
@AllArgsConstructor
public
class
SyncPendingFreight4OrderGoodsListener
{
private
final
PendingFreightService
pendingFreightService
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
SYNC_PENDING_FREIGHT_FOR_ORDER_GOODS_QUEUE
)
public
void
onMessage
(
Message
message
)
{
try
{
log
.
info
(
"监听到同步挂单运费表---货单信息部分,消息内容{}"
,
new
String
(
message
.
getBody
()));
OrderGoods
data
=
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
OrderGoods
>>()
{
}).
getData
();
pendingFreightService
.
dealPendingFreight4OrderGoods
(
data
.
getOrderNo
());
}
catch
(
Exception
e
){
log
.
info
(
"监听到同步挂单运费表---货单信息部分发生异常,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
}
}
clx-performance-web/src/main/java/com/clx/performance/service/PendingFreightService.java
浏览文件 @
b58df0d0
...
...
@@ -2,7 +2,6 @@ package com.clx.performance.service;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.param.mq.SyncPendingFreightInternalReportParam
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author kavin
...
...
@@ -12,7 +11,10 @@ import org.springframework.transaction.annotation.Transactional;
public
interface
PendingFreightService
{
void
dealPendingFreight4OrderInfo
(
OrderInfoMessage
data
);
//处理挂单运费内部上报数据
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
dealPendingFreight4InternalReport
(
SyncPendingFreightInternalReportParam
param
);
void
dealPendingFreight4OrderGoods
(
String
orderNo
);
void
dealPendingFreight4OrderChild
(
String
orderNo
);
}
clx-performance-web/src/main/java/com/clx/performance/service/impl/PendingFreightServiceImpl.java
浏览文件 @
b58df0d0
...
...
@@ -3,22 +3,30 @@ package com.clx.performance.service.impl;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.param.mq.SyncPendingFreightInternalReportParam
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dao.PendingFreightDao
;
import
com.clx.performance.dto.OrderedAndLoadTruckRateDTO
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.PendingFreight
;
import
com.clx.performance.service.PendingFreightService
;
import
com.clx.performance.service.PerformanceProgressService
;
import
com.clx.performance.utils.gd.GdService
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -36,6 +44,9 @@ public class PendingFreightServiceImpl implements PendingFreightService {
private
final
PendingFreightDao
pendingFreightDao
;
private
final
AddressService
addressService
;
private
final
GdService
gdService
;
private
final
PerformanceProgressService
performanceProgressService
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderChildDao
orderChildDao
;
//处理挂单运费订单部分
...
...
@@ -102,9 +113,60 @@ public class PendingFreightServiceImpl implements PendingFreightService {
}
//处理挂单运费货单数据
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
dealPendingFreight4OrderGoods
(
String
orderNo
)
{
OrderedAndLoadTruckRateDTO
dto
=
calcOrderedAndLoadTruckRate
(
orderNo
);
pendingFreightDao
.
updateOrderedAndLoadTruckRate
(
orderNo
,
dto
.
getOrderedRate
(),
dto
.
getLoadTruckRate
());
}
//处理挂单运费运单数据
@Override
public
void
dealPendingFreight4OrderChild
(
String
orderNo
)
{
OrderedAndLoadTruckRateDTO
dto
=
calcOrderedAndLoadTruckRate
(
orderNo
);
pendingFreightDao
.
updateOrderedAndLoadTruckRate
(
orderNo
,
dto
.
getOrderedRate
(),
dto
.
getLoadTruckRate
());
}
//计算接单率和装车率
public
OrderedAndLoadTruckRateDTO
calcOrderedAndLoadTruckRate
(
String
orderNo
){
List
<
OrderGoods
>
orderGoods
=
orderGoodsDao
.
listByField
(
OrderGoods:
:
getOrderNo
,
orderNo
);
BigDecimal
pendingWeight
=
BigDecimal
.
ZERO
;
//挂单量
BigDecimal
alreadyTransportWeight
=
BigDecimal
.
ZERO
;
//已拉运吨数
BigDecimal
orderedRate
;
//接单率
BigDecimal
loadTruckRate
;
//装车率
BigDecimal
loadNet
=
BigDecimal
.
ZERO
;
//总的装车吨数
for
(
OrderGoods
item
:
orderGoods
)
{
alreadyTransportWeight
=
alreadyTransportWeight
.
add
(
item
.
getAlreadyTransportWeight
());
pendingWeight
=
pendingWeight
.
add
(
performanceProgressService
.
calcPendingWeight
(
item
));
}
//计算接单率
orderedRate
=
alreadyTransportWeight
.
divide
(
pendingWeight
,
3
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
"100"
));
//计算装车率
List
<
OrderChild
>
childList
=
orderChildDao
.
listNoCancelOrderChild
(
orderNo
);
if
(
CollectionUtils
.
isNotEmpty
(
childList
)){
for
(
OrderChild
child
:
childList
)
{
if
(
Objects
.
nonNull
(
child
.
getLoadNet
())){
loadNet
=
loadNet
.
add
(
child
.
getLoadNet
());
}
}
}
loadTruckRate
=
loadNet
.
divide
(
pendingWeight
,
3
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
"100"
));
OrderedAndLoadTruckRateDTO
dto
=
new
OrderedAndLoadTruckRateDTO
();
dto
.
setOrderNo
(
orderNo
);
dto
.
setPendingWeight
(
pendingWeight
);
dto
.
setAlreadyTransportWeight
(
alreadyTransportWeight
);
dto
.
setLoadNet
(
loadNet
);
dto
.
setLoadTruckRate
(
loadTruckRate
);
dto
.
setOrderedRate
(
orderedRate
);
return
dto
;
}
public
Optional
<
FeignAddressVO
>
getAddressDetail
(
OrderInfoMessage
data
){
Optional
<
FeignAddressVO
>
sendAndReceiveAddress
=
addressService
.
getSendAndReceiveAddress
(
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论