Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
63b7da8b
提交
63b7da8b
authored
7月 18, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加履约进度表订单相关保存和更新接口
上级
b99f753c
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
148 行增加
和
6 行删除
+148
-6
RabbitKeyConstants.java
...java/com/clx/performance/constant/RabbitKeyConstants.java
+6
-0
PerformanceProgressDao.java
.../java/com/clx/performance/dao/PerformanceProgressDao.java
+3
-1
PerformanceProgressDaoImpl.java
.../clx/performance/dao/impl/PerformanceProgressDaoImpl.java
+7
-1
AddressService.java
...ava/com/clx/performance/extranal/user/AddressService.java
+5
-0
AddressServiceImpl.java
...lx/performance/extranal/user/impl/AddressServiceImpl.java
+7
-0
OrderGoodsDtsListener.java
...a/com/clx/performance/listener/OrderGoodsDtsListener.java
+22
-0
PerformanceProgress.java
...n/java/com/clx/performance/model/PerformanceProgress.java
+1
-4
PerformanceProgressService.java
...m/clx/performance/service/PerformanceProgressService.java
+3
-0
PerformanceProgressServiceImpl.java
...formance/service/impl/PerformanceProgressServiceImpl.java
+93
-0
PerformanceProgressStruct.java
...com/clx/performance/struct/PerformanceProgressStruct.java
+1
-0
没有找到文件。
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
浏览文件 @
63b7da8b
...
...
@@ -110,4 +110,10 @@ public class RabbitKeyConstants {
//货主结算单数据同步货主客户端 需要手动创建对列交换机
public
static
final
String
CLX_PERFORMANCE_SETTLEMENT_OWNER_QUEUE
=
"clx_performance.settlement_owner_queue"
;
//同步履约进度表消息----订单部分
public
static
final
String
SYNC_PERFORMANCE_PROGRESS_QUEUE
=
"clx_order.sync.performance.progress.queue"
;
}
performance-web/src/main/java/com/clx/performance/dao/PerformanceProgressDao.java
浏览文件 @
63b7da8b
...
...
@@ -16,5 +16,7 @@ import java.util.List;
public
interface
PerformanceProgressDao
extends
BaseDao
<
PerformanceProgressMapper
,
PerformanceProgress
,
Integer
>
{
IPage
<
PerformanceProgress
>
pagePerformanceProgress
(
List
<
Integer
>
statusList
,
PagePerformanceProgress
param
);
void
updateRecordOrder
(
Integer
seq
,
boolean
isUp
);
void
updateRecordOrder
(
Long
seq
,
boolean
isUp
);
long
getMaxSeq
();
}
performance-web/src/main/java/com/clx/performance/dao/impl/PerformanceProgressDaoImpl.java
浏览文件 @
63b7da8b
...
...
@@ -31,7 +31,7 @@ public class PerformanceProgressDaoImpl extends BaseDaoImpl<PerformanceProgressM
}
@Override
public
void
updateRecordOrder
(
Integer
seq
,
boolean
isUp
)
{
public
void
updateRecordOrder
(
Long
seq
,
boolean
isUp
)
{
LambdaUpdateWrapper
<
PerformanceProgress
>
update
=
new
LambdaUpdateWrapper
<>();
if
(
isUp
){
update
.
gt
(
PerformanceProgress
::
getSeq
,
seq
);
...
...
@@ -41,4 +41,10 @@ public class PerformanceProgressDaoImpl extends BaseDaoImpl<PerformanceProgressM
update
.
setSql
(
"seq = seq + 1"
);
baseMapper
.
update
(
null
,
update
);
}
@Override
public
long
getMaxSeq
()
{
LambdaQueryWrapper
<
PerformanceProgress
>
query
=
new
LambdaQueryWrapper
<>();
return
baseMapper
.
selectCount
(
query
);
}
}
performance-web/src/main/java/com/clx/performance/extranal/user/AddressService.java
浏览文件 @
63b7da8b
package
com
.
clx
.
performance
.
extranal
.
user
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.SystemAddressVO
;
import
com.msl.common.base.Optional
;
public
interface
AddressService
{
Optional
<
FeignAddressVO
>
getSendAndReceiveAddress
(
Integer
sendAddressId
,
Integer
receiveAddressId
);
Optional
<
SystemAddressVO
>
getSystemAddress
(
Integer
addressId
);
}
performance-web/src/main/java/com/clx/performance/extranal/user/impl/AddressServiceImpl.java
浏览文件 @
63b7da8b
...
...
@@ -2,6 +2,7 @@ package com.clx.performance.extranal.user.impl;
import
com.clx.order.feign.AddressFeign
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.SystemAddressVO
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.msl.common.base.Optional
;
import
com.msl.common.result.Result
;
...
...
@@ -22,4 +23,10 @@ public class AddressServiceImpl implements AddressService {
.
map
(
Result:
:
getData
);
}
@Override
public
Optional
<
SystemAddressVO
>
getSystemAddress
(
Integer
addressId
)
{
return
Optional
.
ofNullable
(
addressFeign
.
getSystemAddress
(
addressId
))
.
filter
(
Result:
:
succeed
)
.
map
(
Result:
:
getData
);
}
}
performance-web/src/main/java/com/clx/performance/listener/OrderGoodsDtsListener.java
浏览文件 @
63b7da8b
...
...
@@ -11,6 +11,7 @@ import com.clx.performance.dto.dts.DataTransportDTO;
import
com.clx.performance.enums.DtsOperationTypeEnum
;
import
com.clx.performance.enums.OrderGoodsLogsEnum
;
import
com.clx.performance.enums.OrderGoodsPendingOrderWayStatusEnum
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.service.OrderGoodsLogService
;
import
com.msl.common.utils.DtsMapConvertUtil
;
...
...
@@ -46,9 +47,11 @@ public class OrderGoodsDtsListener {
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
INSERT
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//同步after数据
log
.
info
(
"新增:{}"
,
JSON
.
toJSONString
(
after
));
orderGoodsChangeAfter
(
before
,
after
,
DtsOperationTypeEnum
.
INSERT
.
getCode
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
UPDATE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
log
.
info
(
"修改:{}"
,
JSON
.
toJSONString
(
after
));
backFillOrderWeight
(
after
);
orderGoodsChangeAfter
(
before
,
after
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
());
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//数据删除
log
.
info
(
"删除:{}"
,
JSON
.
toJSONString
(
before
));
...
...
@@ -82,4 +85,23 @@ public class OrderGoodsDtsListener {
after
.
getOrderNo
(),
after
.
getOrderGoodsNo
(),
after
.
getResidueTransportWeight
());
}
}
public
void
orderGoodsChangeAfter
(
OrderGoods
before
,
OrderGoods
after
,
Integer
updateType
)
{
if
(
after
.
getOrderGoodsStatus
()
>
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
()){
if
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
INSERT
.
getCode
())
||
(
Objects
.
equals
(
updateType
,
DtsOperationTypeEnum
.
UPDATE
.
getCode
())
||!
Objects
.
equals
(
before
.
getSeniorLogisticsManagerId
(),
after
.
getSeniorLogisticsManagerId
())
||!
Objects
.
equals
(
before
.
getPendingOrderFreight
(),
after
.
getPendingOrderFreight
())
)
){
}
}
}
}
performance-web/src/main/java/com/clx/performance/model/PerformanceProgress.java
浏览文件 @
63b7da8b
...
...
@@ -30,7 +30,7 @@ public class PerformanceProgress implements HasKey<Integer> {
@TableField
(
"seq"
)
@ApiModelProperty
(
"排序"
)
private
Integer
seq
;
private
Long
seq
;
@TableField
(
"order_no"
)
@ApiModelProperty
(
"订单编号"
)
...
...
@@ -92,9 +92,6 @@ public class PerformanceProgress implements HasKey<Integer> {
@ApiModelProperty
(
"任务吨数"
)
private
BigDecimal
taskWeight
;
@TableField
(
"transport_weight"
)
@ApiModelProperty
(
"任务吨数"
)
private
BigDecimal
transportWeight
;
@TableField
(
"pending_weight"
)
@ApiModelProperty
(
"挂单吨数"
)
...
...
performance-web/src/main/java/com/clx/performance/service/PerformanceProgressService.java
浏览文件 @
63b7da8b
package
com
.
clx
.
performance
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.performance.model.PerformanceProgress
;
import
com.clx.performance.param.pc.carrier.PagePerformanceProgress
;
import
com.clx.performance.param.pc.carrier.UpdatePerformanceProgressParam
;
...
...
@@ -28,4 +29,6 @@ public interface PerformanceProgressService {
PerformanceProgressDetailVO
getPerformanceProgressDetail
(
Integer
id
);
List
<
PerformanceProgressOperationLogVO
>
getOperationLog
(
String
orderNo
);
void
dealPerformanceProgress4OrderInfo
(
OrderInfoMessage
data
);
}
performance-web/src/main/java/com/clx/performance/service/impl/PerformanceProgressServiceImpl.java
浏览文件 @
63b7da8b
...
...
@@ -2,11 +2,16 @@ package com.clx.performance.service.impl;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.open.sdk.callback.message.OrderInfoMessage
;
import
com.clx.order.vo.feign.FeignAddressVO
;
import
com.clx.order.vo.feign.SystemAddressVO
;
import
com.clx.performance.dao.PerformanceProgressDao
;
import
com.clx.performance.dao.PerformanceProgressLogDao
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.OrderEnum
;
import
com.clx.performance.enums.PerformanceProgressEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.extranal.user.AddressService
;
import
com.clx.performance.model.PerformanceProgress
;
import
com.clx.performance.model.PerformanceProgressLog
;
import
com.clx.performance.param.pc.carrier.PagePerformanceProgress
;
...
...
@@ -15,17 +20,21 @@ import com.clx.performance.service.PerformanceProgressLogService;
import
com.clx.performance.service.PerformanceProgressService
;
import
com.clx.performance.struct.PerformanceProgressLogStruct
;
import
com.clx.performance.struct.PerformanceProgressStruct
;
import
com.clx.performance.utils.gd.GdService
;
import
com.clx.performance.vo.pc.PerformanceProgressDetailVO
;
import
com.clx.performance.vo.pc.PerformanceProgressOperationLogVO
;
import
com.clx.performance.vo.pc.PerformanceProgressVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.utils.DateUtils
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -46,6 +55,8 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
private
final
PerformanceProgressLogDao
performanceProgressLogDao
;
private
final
PerformanceProgressLogStruct
performanceProgressLogStruct
;
private
final
PerformanceProgressLogService
performanceProgressLogService
;
private
final
AddressService
addressService
;
private
final
GdService
gdService
;
public
static
List
<
Integer
>
inProcessStatusList
;
...
...
@@ -245,4 +256,86 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
List
<
PerformanceProgressLog
>
list
=
performanceProgressLogDao
.
getOperationLog
(
orderNo
);
return
performanceProgressLogStruct
.
convertList
(
list
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
dealPerformanceProgress4OrderInfo
(
OrderInfoMessage
data
)
{
Optional
<
PerformanceProgress
>
optional
=
performanceProgressDao
.
getOneByField
(
PerformanceProgress:
:
getOrderNo
,
data
.
getOrderNo
());
PerformanceProgress
item
=
new
PerformanceProgress
();
item
.
setOrderStatus
(
data
.
getOrderStatus
());
item
.
setGoodsTypeCode
(
data
.
getGoodsTypeCode
());
item
.
setGoodsTypeName
(
data
.
getGoodsTypeName
());
item
.
setGoodsNameId
(
data
.
getGoodsNameId
());
item
.
setGoodsName
(
data
.
getGoodsName
());
item
.
setSendOverStandard
(
data
.
getOverWeight
());
item
.
setTaskWeight
(
data
.
getTransportWeight
().
subtract
(
new
BigDecimal
(
35
)));
item
.
setTransportTimeSlot
(
DateUtils
.
formatDateTime
(
data
.
getTransportBeginTime
()).
get
()
+
"至"
+
DateUtils
.
formatDateTime
(
data
.
getTransportEndTime
()).
get
());
if
(
optional
.
isPresent
()){
item
.
setId
(
optional
.
get
().
getId
());
if
(
Objects
.
nonNull
(
data
.
getSendSystemAddressId
())
&&
!
Objects
.
equals
(
optional
.
get
().
getSendSystemAddressId
(),
data
.
getSendSystemAddressId
())){
item
.
setSendSystemAddressId
(
data
.
getSendSystemAddressId
());
item
.
setSendSystemAddressShorter
(
getSystemAddressShorter
(
data
.
getSendSystemAddressId
()));
}
performanceProgressDao
.
updateEntityByKey
(
item
);
}
else
{
//查询最大的seq
long
seq
=
performanceProgressDao
.
getMaxSeq
();
item
.
setSeq
(
seq
+
1
);
Optional
<
FeignAddressVO
>
sendAndReceiveAddress
=
addressService
.
getSendAndReceiveAddress
(
data
.
getSendAddressId
(),
data
.
getReveiveAddressId
());
if
(!
sendAndReceiveAddress
.
isPresent
())
{
log
.
warn
(
"通过发货地址Id:{},收货地址Id:{} 查询对应的地址信息结果:{}"
,
data
.
getSendAddressId
(),
data
.
getReveiveAddressId
(),
sendAndReceiveAddress
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"履约进度表订单对应的收发货地址信息为空"
);
}
FeignAddressVO
.
Address
sendAddress
=
sendAndReceiveAddress
.
get
().
getSendAddress
();
FeignAddressVO
.
Address
receiveAddress
=
sendAndReceiveAddress
.
get
().
getReceiveAddress
();
BigDecimal
distance
=
null
;
//重车运距(收发货地址距离)
try
{
List
<
GdRouteDTO
>
route
=
gdService
.
getRoute
(
sendAddress
.
getLongitude
(),
sendAddress
.
getLatitude
(),
receiveAddress
.
getLongitude
(),
receiveAddress
.
getLongitude
());
if
(!
route
.
isEmpty
()){
distance
=
new
BigDecimal
(
route
.
get
(
0
).
getDistance
()
/
1000
);
}
}
catch
(
Exception
e
){
log
.
warn
(
"订单计算重车运距失败,订单号:{},失败原因:{}"
,
data
.
getOrderNo
(),
ExceptionUtils
.
getStackTrace
(
e
));
}
item
.
setOrderDistance
(
distance
);
if
(
Objects
.
nonNull
(
data
.
getSendSystemAddressId
())){
item
.
setSendSystemAddressId
(
data
.
getSendSystemAddressId
());
item
.
setSendSystemAddressShorter
(
getSystemAddressShorter
(
data
.
getSendSystemAddressId
()));
}
item
.
setSendAddressId
(
data
.
getSendAddressId
());
item
.
setSendAddressShorter
(
data
.
getSendAddressShorter
());
item
.
setSendAddress
(
sendAddress
.
getProvince
()+
sendAddress
.
getCity
()+
sendAddress
.
getCounty
()
+
sendAddress
.
getAddress
());
item
.
setSeq
(
seq
);
performanceProgressDao
.
saveEntity
(
item
);
}
}
private
String
getSystemAddressShorter
(
Integer
addressId
){
Optional
<
SystemAddressVO
>
systemAddress
=
addressService
.
getSystemAddress
(
addressId
);
if
(!
systemAddress
.
isPresent
())
{
log
.
warn
(
"通过发货系统地址Id:{},查询对应的地址信息结果:{}"
,
addressId
,
systemAddress
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"履约进度表订单对应的系统发货地址信息为空"
);
}
return
systemAddress
.
get
().
getAddressShorter
();
}
}
performance-web/src/main/java/com/clx/performance/struct/PerformanceProgressStruct.java
浏览文件 @
63b7da8b
...
...
@@ -14,4 +14,5 @@ public interface PerformanceProgressStruct {
List
<
PerformanceProgressVO
>
convertList
(
List
<
PerformanceProgress
>
records
);
PerformanceProgressDetailVO
convert
(
PerformanceProgress
item
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论