Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
e914a41b
提交
e914a41b
authored
10月 21, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交挂单运费相关代码
上级
37f41811
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
78 行增加
和
4 行删除
+78
-4
OrderGoodsDao.java
.../src/main/java/com/clx/performance/dao/OrderGoodsDao.java
+3
-0
PendingFreightDao.java
.../main/java/com/clx/performance/dao/PendingFreightDao.java
+2
-0
OrderGoodsDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
+22
-0
PendingFreightDaoImpl.java
...a/com/clx/performance/dao/impl/PendingFreightDaoImpl.java
+9
-0
OrderGoodsDtsListener.java
...a/com/clx/performance/listener/OrderGoodsDtsListener.java
+2
-1
SyncPendingFreight4OrderGoodsListener.java
...mance/listener/SyncPendingFreight4OrderGoodsListener.java
+1
-1
PendingFreightService.java
...va/com/clx/performance/service/PendingFreightService.java
+2
-1
PendingFreightServiceImpl.java
...x/performance/service/impl/PendingFreightServiceImpl.java
+37
-1
没有找到文件。
clx-performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java
浏览文件 @
e914a41b
...
...
@@ -112,4 +112,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void
batchCancelOrderGoodsWeight
(
List
<
OrderGoodsCancelWeightDTO
>
cancelOrderGoodsList
);
OrderGoods
queryLineNewestPendingFreight
(
Integer
sendAddressId
,
Integer
receiveAddressId
);
List
<
OrderGoods
>
queryLineAvgPendingFreight
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
LocalDateTime
begin
,
LocalDateTime
end
);
}
clx-performance-web/src/main/java/com/clx/performance/dao/PendingFreightDao.java
浏览文件 @
e914a41b
...
...
@@ -19,4 +19,6 @@ public interface PendingFreightDao extends BaseDao<PendingFreightMapper, Pending
void
updateOrderedAndLoadTruckRate
(
String
orderNo
,
BigDecimal
orderedRate
,
BigDecimal
loadTruckRate
);
IPage
<
PendingFreight
>
pagePendingFreight
(
PagePendingFreightParam
param
);
void
updatePendingFreight
(
String
orderNo
,
BigDecimal
pendingFreight
,
BigDecimal
avgPendingFreight
);
}
clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
浏览文件 @
e914a41b
...
...
@@ -303,4 +303,26 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
public
void
batchCancelOrderGoodsWeight
(
List
<
OrderGoodsCancelWeightDTO
>
cancelOrderGoodsList
)
{
baseMapper
.
batchCancelOrderGoodsWeight
(
cancelOrderGoodsList
);
}
@Override
public
OrderGoods
queryLineNewestPendingFreight
(
Integer
sendAddressId
,
Integer
receiveAddressId
)
{
LambdaQueryWrapper
<
OrderGoods
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
OrderGoods
::
getSendAddressId
,
sendAddressId
);
query
.
eq
(
OrderGoods
::
getReceiveAddressId
,
receiveAddressId
);
query
.
orderByDesc
(
OrderGoods
::
getId
);
query
.
last
(
"limit 1"
);
return
baseMapper
.
selectOne
(
query
);
}
@Override
public
List
<
OrderGoods
>
queryLineAvgPendingFreight
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
LocalDateTime
begin
,
LocalDateTime
end
)
{
LambdaQueryWrapper
<
OrderGoods
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
OrderGoods
::
getSendAddressId
,
sendAddressId
);
query
.
eq
(
OrderGoods
::
getReceiveAddressId
,
receiveAddressId
);
query
.
ge
(
OrderGoods
::
getCreateTime
,
begin
);
query
.
le
(
OrderGoods
::
getCreateTime
,
end
);
return
baseMapper
.
selectList
(
query
);
}
}
clx-performance-web/src/main/java/com/clx/performance/dao/impl/PendingFreightDaoImpl.java
浏览文件 @
e914a41b
...
...
@@ -46,4 +46,13 @@ public class PendingFreightDaoImpl extends BaseDaoImpl<PendingFreightMapper, Pen
query
.
orderByDesc
(
PendingFreight
::
getId
);
return
baseMapper
.
selectPage
(
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
()),
query
);
}
@Override
public
void
updatePendingFreight
(
String
orderNo
,
BigDecimal
pendingFreight
,
BigDecimal
avgPendingFreight
)
{
LambdaUpdateWrapper
<
PendingFreight
>
update
=
new
LambdaUpdateWrapper
<>();
update
.
set
(
PendingFreight
::
getHistoryFreight
,
pendingFreight
);
update
.
set
(
PendingFreight
::
getHistoryAvgFreight
,
avgPendingFreight
);
update
.
eq
(
PendingFreight
::
getOrderNo
,
orderNo
);
baseMapper
.
update
(
update
);
}
}
clx-performance-web/src/main/java/com/clx/performance/listener/OrderGoodsDtsListener.java
浏览文件 @
e914a41b
...
...
@@ -97,7 +97,8 @@ public class OrderGoodsDtsListener {
}
else
{
if
(!
Objects
.
equals
(
before
.
getOrderGoodsStatus
(),
after
.
getOrderGoodsStatus
())
||
!
Objects
.
equals
(
before
.
getAlreadyTransportWeight
(),
after
.
getAlreadyTransportWeight
())
||
!
Objects
.
equals
(
before
.
getExtractWeight
(),
after
.
getExtractWeight
())){
||
!
Objects
.
equals
(
before
.
getExtractWeight
(),
after
.
getExtractWeight
())
||
!
Objects
.
equals
(
before
.
getPendingOrderFreight
(),
after
.
getPendingOrderFreight
())){
isSend
=
true
;
}
...
...
clx-performance-web/src/main/java/com/clx/performance/listener/SyncPendingFreight4OrderGoodsListener.java
浏览文件 @
e914a41b
...
...
@@ -31,7 +31,7 @@ public class SyncPendingFreight4OrderGoodsListener {
OrderGoods
data
=
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
OrderGoods
>>()
{
}).
getData
();
pendingFreightService
.
dealPendingFreight4OrderGoods
(
data
.
getOrderNo
()
);
pendingFreightService
.
dealPendingFreight4OrderGoods
(
data
);
}
catch
(
Exception
e
){
log
.
info
(
"监听到同步挂单运费表---货单信息部分发生异常,异常原因:{}"
,
ExceptionUtils
.
getStackTrace
(
e
));
}
...
...
clx-performance-web/src/main/java/com/clx/performance/service/PendingFreightService.java
浏览文件 @
e914a41b
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.param.mq.SyncPendingFreightInternalReportParam
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.pc.PagePendingFreightParam
;
import
com.clx.performance.vo.pc.PagePendingFreightVO
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
...
...
@@ -18,7 +19,7 @@ public interface PendingFreightService {
void
dealPendingFreight4InternalReport
(
SyncPendingFreightInternalReportParam
param
);
void
dealPendingFreight4OrderGoods
(
String
orderNo
);
void
dealPendingFreight4OrderGoods
(
OrderGoods
orderGoods
);
void
dealPendingFreight4OrderChild
(
String
orderNo
);
...
...
clx-performance-web/src/main/java/com/clx/performance/service/impl/PendingFreightServiceImpl.java
浏览文件 @
e914a41b
...
...
@@ -37,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -128,12 +129,47 @@ public class PendingFreightServiceImpl implements PendingFreightService {
//处理挂单运费货单数据
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
dealPendingFreight4OrderGoods
(
String
orderNo
)
{
public
void
dealPendingFreight4OrderGoods
(
OrderGoods
orderGoods
)
{
String
orderNo
=
orderGoods
.
getOrderNo
();
//计算历史运费和历史平均运费
OrderedAndLoadTruckRateDTO
dto
=
calcOrderedAndLoadTruckRate
(
orderNo
);
//计算线路挂单运费
BigDecimal
pendingFreight
=
this
.
queryLinePendingFreight
(
orderGoods
.
getSendAddressId
(),
orderGoods
.
getReceiveAddressId
());
//计算线路平均挂单运费
BigDecimal
avgPendingFreight
=
this
.
queryLineAvgPendingFreight
(
orderGoods
.
getSendAddressId
(),
orderGoods
.
getReceiveAddressId
());
pendingFreightDao
.
updateOrderedAndLoadTruckRate
(
orderNo
,
dto
.
getOrderedRate
(),
dto
.
getLoadTruckRate
());
pendingFreightDao
.
updatePendingFreight
(
orderNo
,
pendingFreight
,
avgPendingFreight
);
}
//查询该线路最新的历史运费
public
BigDecimal
queryLinePendingFreight
(
Integer
sendAddressId
,
Integer
receiveAddressId
){
OrderGoods
orderGoods
=
orderGoodsDao
.
queryLineNewestPendingFreight
(
sendAddressId
,
receiveAddressId
);
return
orderGoods
.
getPendingOrderFreight
().
movePointLeft
(
2
);
}
//查询该线路最新的历史平均运费
public
BigDecimal
queryLineAvgPendingFreight
(
Integer
sendAddressId
,
Integer
receiveAddressId
){
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
monthAgo
=
now
.
minusMonths
(
1
);
List
<
OrderGoods
>
list
=
orderGoodsDao
.
queryLineAvgPendingFreight
(
sendAddressId
,
receiveAddressId
,
monthAgo
,
now
);
if
(
CollectionUtils
.
isEmpty
(
list
)){
return
null
;
}
BigDecimal
total
=
BigDecimal
.
ZERO
;
for
(
OrderGoods
orderGoods
:
list
)
{
total
=
total
.
add
(
orderGoods
.
getPendingOrderFreight
());
}
return
total
.
movePointLeft
(
2
).
divide
(
new
BigDecimal
(
list
.
size
()),
2
,
RoundingMode
.
HALF_UP
);
}
//处理挂单运费运单数据
@Override
public
void
dealPendingFreight4OrderChild
(
String
orderNo
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论