Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
252e5160
提交
252e5160
authored
10月 29, 2023
作者:
huningning
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加交易平台消息同步
上级
dd5965f0
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
58 行增加
和
5 行删除
+58
-5
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+2
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+8
-0
OrderChildDtsListener.java
...a/com/clx/performance/listener/OrderChildDtsListener.java
+48
-5
没有找到文件。
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
252e5160
...
...
@@ -56,4 +56,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Integer
getOrderChildTotalByUserNo
(
Long
userNo
);
List
<
OrderChild
>
getOrderChildBussInfo
(
String
truckNo
);
OrderChild
getGoingLatestOrderChildByOrderNo
(
String
orderNo
);
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
252e5160
...
...
@@ -185,6 +185,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.
last
(
"limit 1"
));
}
@Override
public
OrderChild
getGoingLatestOrderChildByOrderNo
(
String
orderNo
)
{
return
getOne
(
lQrWrapper
().
eq
(
OrderChild:
:
getOrderNo
,
orderNo
)
.
le
(
OrderChild:
:
getStatus
,
OrderChildEnum
.
Status
.
UNLOAD
.
getCode
())
.
orderByDesc
(
OrderChild:
:
getId
)
.
last
(
"limit 1"
));
}
@Override
public
int
countValidByOrderGoodsNo
(
String
orderGoodsNo
)
{
return
baseMapper
.
countValidByOrderGoodsNo
(
orderGoodsNo
);
...
...
performance-web/src/main/java/com/clx/performance/listener/OrderChildDtsListener.java
浏览文件 @
252e5160
...
...
@@ -3,31 +3,51 @@ package com.clx.performance.listener;
import
com.alibaba.fastjson.JSON
;
import
com.clx.open.sdk.callback.OpenCallBackClient
;
import
com.clx.open.sdk.callback.message.OrderChildMessage
;
import
com.clx.open.sdk.enums.ResultStatusEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.config.MslAppConfig
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dto.dts.DataTransportDTO
;
import
com.clx.performance.enums.DtsOperationTypeEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DtsMapConvertUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
@Slf4j
//
@Component
@Component
@AllArgsConstructor
public
class
OrderChildDtsListener
{
private
final
MslAppConfig
mslAppConfig
;
//@RabbitListener(queues = RabbitKeyConstants.CLX_PERFORMANCE_ORDER_CHILD_QUEUE)
@Autowired
private
OrderFeign
orderFeign
;
@Autowired
private
OrderGoodsDao
orderGoodsDao
;
@Autowired
private
OrderChildDao
orderChildDao
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
CLX_PERFORMANCE_ORDER_CHILD_QUEUE
)
public
void
onMessage
(
Message
message
)
{
try
{
String
msg
=
new
String
(
message
.
getBody
());
...
...
@@ -49,9 +69,7 @@ public class OrderChildDtsListener {
if
(
OrderChildEnum
.
SYNC_STATUS_lIST
.
contains
(
after
.
getStatus
())
&&
!
Objects
.
equals
(
before
.
getStatus
(),
after
.
getStatus
())){
//同步after数据
log
.
info
(
"修改:{}"
+
after
);
// OpenCallBackClient client = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret());
// Result result = client.encryptPost(JSON.toJSONString(after),after.topic());
// log.info("响应结果:{}",JSON.toJSONString(result));
orderChildChangeAfter
(
after
);
}
}
else
if
(
Objects
.
equals
(
DtsOperationTypeEnum
.
DELETE
.
getCode
(),
dataTransportDTO
.
getOperationType
().
getCode
())){
//数据删除
...
...
@@ -65,4 +83,29 @@ public class OrderChildDtsListener {
}
}
public
void
orderChildChangeAfter
(
OrderChildMessage
after
){
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
after
.
getOrderNo
());
if
(
orderInfoFeign
==
null
)
{
return
;
}
after
.
setLastFlag
(
ResultStatusEnum
.
NO
.
getCode
());
long
nowTimeMillis
=
System
.
currentTimeMillis
();
LocalDateTime
nowDateTime
=
new
Date
(
nowTimeMillis
).
toInstant
().
atOffset
(
ZoneOffset
.
of
(
"+8"
)).
toLocalDateTime
();
//如果当前货单已完成,则判断之前所有货单是否等于订单总吨数,等于则更新订单为已完成
List
<
OrderGoods
>
list
=
orderGoodsDao
.
getOrderGoodsListByOrderNoAndLastArriveSendTime
(
after
.
getOrderNo
(),
nowDateTime
);
BigDecimal
childSum
=
list
.
stream
().
map
(
OrderGoods:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
log
.
info
(
"算出所有货单总量:{}, 订单总吨数:{}"
,
childSum
,
orderInfoFeign
.
getTransportWeight
());
if
(
childSum
.
compareTo
(
new
BigDecimal
(
orderInfoFeign
.
getTransportWeight
()))
==
0
)
{
// 按照时间 倒序查出最后一条进行中的运单
OrderChild
orderChild
=
orderChildDao
.
getGoingLatestOrderChildByOrderNo
(
after
.
getOrderNo
());
if
(
Objects
.
nonNull
(
orderChild
)
&&
orderChild
.
getChildNo
().
equals
(
after
.
getChildNo
())){
after
.
setLastFlag
(
ResultStatusEnum
.
YES
.
getCode
());
}
}
OpenCallBackClient
client
=
new
OpenCallBackClient
(
mslAppConfig
.
getUrl
(),
mslAppConfig
.
getAppId
(),
mslAppConfig
.
getSecret
());
Result
result
=
client
.
encryptPost
(
JSON
.
toJSONString
(
after
),
after
.
topic
());
log
.
info
(
"订单信息同步,运单编号:{},响应结果:{}"
,
after
.
getChildNo
(),
JSON
.
toJSONString
(
result
));
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论