Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
03b95383
提交
03b95383
authored
10月 28, 2023
作者:
liruixin
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into…
Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into v5.7_break_contract_reverse_20231020
上级
897b1546
e7509f59
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
260 行增加
和
21 行删除
+260
-21
GoodsOrderController.java
...m/clx/performance/controller/pc/GoodsOrderController.java
+7
-1
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+2
-0
OrderGoodsTruckBindDao.java
.../java/com/clx/performance/dao/OrderGoodsTruckBindDao.java
+2
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+6
-0
OrderGoodsTruckBindDaoImpl.java
.../clx/performance/dao/impl/OrderGoodsTruckBindDaoImpl.java
+9
-0
OrderGoodsService.java
...n/java/com/clx/performance/service/OrderGoodsService.java
+7
-0
OrderCancelServiceImpl.java
.../clx/performance/service/impl/OrderCancelServiceImpl.java
+9
-9
OrderGoodsServiceImpl.java
...m/clx/performance/service/impl/OrderGoodsServiceImpl.java
+42
-0
GoodsOrderStrategy.java
...java/com/clx/performance/strategy/GoodsOrderStrategy.java
+32
-0
SpringContextUtils.java
...in/java/com/clx/performance/utils/SpringContextUtils.java
+135
-0
JobTest.java
...rmance-web/src/test/java/com/clx/performance/JobTest.java
+9
-11
没有找到文件。
performance-web/src/main/java/com/clx/performance/controller/pc/GoodsOrderController.java
浏览文件 @
03b95383
...
@@ -152,7 +152,7 @@ public class GoodsOrderController {
...
@@ -152,7 +152,7 @@ public class GoodsOrderController {
}
}
@ApiOperation
(
value
=
"取消货单"
,
notes
=
"<br>By:胡宇帆"
)
@ApiOperation
(
value
=
"取消货单"
,
notes
=
"<br>By:胡宇帆"
)
@
Ge
tMapping
(
"/orderGoodsCancel"
)
@
Pos
tMapping
(
"/orderGoodsCancel"
)
public
Result
<
Object
>
orderGoodsCancel
(
@RequestBody
OrderGoodsCancelParam
param
)
{
public
Result
<
Object
>
orderGoodsCancel
(
@RequestBody
OrderGoodsCancelParam
param
)
{
orderGoodsService
.
orderGoodsCancel
(
param
);
orderGoodsService
.
orderGoodsCancel
(
param
);
return
Result
.
ok
();
return
Result
.
ok
();
...
@@ -164,6 +164,12 @@ public class GoodsOrderController {
...
@@ -164,6 +164,12 @@ public class GoodsOrderController {
return
Result
.
ok
(
orderGoodsService
.
orderCancelResidueWeight
(
orderNo
,
optionType
));
return
Result
.
ok
(
orderGoodsService
.
orderCancelResidueWeight
(
orderNo
,
optionType
));
}
}
@ApiOperation
(
value
=
"获取当前货单可取消吨数"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/orderGoodsCancelResidueWeight"
)
public
Result
<
BigDecimal
>
orderGoodsCancelResidueWeight
(
@RequestBody
OrderGoodsCancelParam
goodsCancelParam
)
{
return
Result
.
ok
(
orderGoodsService
.
orderGoodsCancelResidueWeight
(
goodsCancelParam
));
}
@ApiOperation
(
value
=
"调整货单价格"
,
notes
=
"<br>By:刘海泉"
)
@ApiOperation
(
value
=
"调整货单价格"
,
notes
=
"<br>By:刘海泉"
)
@PostMapping
(
"/updateOrderGoodsPrice"
)
@PostMapping
(
"/updateOrderGoodsPrice"
)
@UnitCovert
(
result
=
false
)
@UnitCovert
(
result
=
false
)
...
...
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
03b95383
...
@@ -95,4 +95,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
...
@@ -95,4 +95,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
void
batchUpdateOrderChildStatus
(
Integer
status
,
List
<
Integer
>
ids
);
void
batchUpdateOrderChildStatus
(
Integer
status
,
List
<
Integer
>
ids
);
List
<
OrderChild
>
selectOrderChildListByOrderGoodsNoAndStatusGE
(
String
orderGoodsNo
,
Integer
status
);
}
}
performance-web/src/main/java/com/clx/performance/dao/OrderGoodsTruckBindDao.java
浏览文件 @
03b95383
...
@@ -7,6 +7,7 @@ import com.msl.common.dao.BaseDao;
...
@@ -7,6 +7,7 @@ import com.msl.common.dao.BaseDao;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* @Author: huyufan
* @Author: huyufan
...
@@ -40,4 +41,5 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
...
@@ -40,4 +41,5 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
List
<
OrderGoodsTruckBind
>
getTrucksBindByOrderGoodsNo
(
String
orderGoodsNo
,
String
truckNo
);
List
<
OrderGoodsTruckBind
>
getTrucksBindByOrderGoodsNo
(
String
orderGoodsNo
,
String
truckNo
);
List
<
OrderGoodsTruckBind
>
judgeTruckIsBindDxOrder
(
Set
<
String
>
set
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
03b95383
...
@@ -295,6 +295,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
...
@@ -295,6 +295,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
baseMapper
.
updateOrderGoodsSetResidueWeight
(
status
,
ids
);
baseMapper
.
updateOrderGoodsSetResidueWeight
(
status
,
ids
);
}
}
@Override
public
List
<
OrderChild
>
selectOrderChildListByOrderGoodsNoAndStatusGE
(
String
orderGoodsNo
,
Integer
status
)
{
return
baseMapper
.
selectList
(
lQrWrapper
().
eq
(
OrderChild:
:
getOrderGoodsNo
,
orderGoodsNo
)
.
ge
(
ObjectUtil
.
isNotNull
(
status
),
OrderChild:
:
getStatus
,
status
)
);
}
@Override
@Override
public
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
)
{
public
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
)
{
LambdaQueryWrapper
<
OrderChild
>
query
=
new
LambdaQueryWrapper
();
LambdaQueryWrapper
<
OrderChild
>
query
=
new
LambdaQueryWrapper
();
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsTruckBindDaoImpl.java
浏览文件 @
03b95383
...
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Repository;
...
@@ -14,6 +14,7 @@ import org.springframework.stereotype.Repository;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* @Author: huyufan
* @Author: huyufan
...
@@ -124,4 +125,12 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
...
@@ -124,4 +125,12 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
query
.
orderByDesc
(
OrderGoodsTruckBind
::
getCreateTime
);
query
.
orderByDesc
(
OrderGoodsTruckBind
::
getCreateTime
);
return
baseMapper
.
selectList
(
query
);
return
baseMapper
.
selectList
(
query
);
}
}
@Override
public
List
<
OrderGoodsTruckBind
>
judgeTruckIsBindDxOrder
(
Set
<
String
>
set
)
{
LambdaQueryWrapper
<
OrderGoodsTruckBind
>
query
=
new
LambdaQueryWrapper
<>();
query
.
in
(
OrderGoodsTruckBind:
:
getTruckNo
,
set
);
query
.
in
(
OrderGoodsTruckBind
::
getStatus
,
OrderGoodsTruckBindEnum
.
Status
.
SUCCESS
.
getCode
(),
OrderGoodsTruckBindEnum
.
Status
.
GET
.
getCode
());
return
baseMapper
.
selectList
(
query
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/OrderGoodsService.java
浏览文件 @
03b95383
...
@@ -65,5 +65,12 @@ public interface OrderGoodsService {
...
@@ -65,5 +65,12 @@ public interface OrderGoodsService {
*/
*/
void
orderGoodsCancel
(
OrderGoodsCancelParam
orderGoodsNo
);
void
orderGoodsCancel
(
OrderGoodsCancelParam
orderGoodsNo
);
/**
* 查看货单可取消吨数
* @param goodsCancelParam
* @return
*/
BigDecimal
orderGoodsCancelResidueWeight
(
OrderGoodsCancelParam
goodsCancelParam
);
List
<
String
>
getOrderChildTruckList
(
String
orderGoodsNo
);
List
<
String
>
getOrderChildTruckList
(
String
orderGoodsNo
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderCancelServiceImpl.java
浏览文件 @
03b95383
...
@@ -62,7 +62,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -62,7 +62,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
log
.
info
(
"执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
log
.
info
(
"执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
mqParam
.
setType
(
"1"
);
mqParam
.
setType
(
"1"
);
mqParam
.
setOrderNo
(
orderNo
);
mqParam
.
setOrderNo
(
orderNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
...
@@ -130,7 +130,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -130,7 +130,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
log
.
info
(
"执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
log
.
info
(
"执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
mqParam
.
setType
(
"1"
);
mqParam
.
setType
(
"1"
);
mqParam
.
setOrderNo
(
orderNo
);
mqParam
.
setOrderNo
(
orderNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
...
@@ -314,7 +314,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -314,7 +314,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
throw
new
RuntimeException
(
"货主取消订单失败,原因:远程调用取消订单失败"
);
}
}
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
mqParam
.
setType
(
"2"
);
mqParam
.
setType
(
"2"
);
mqParam
.
setOrderNo
(
orderNo
);
mqParam
.
setOrderNo
(
orderNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
...
@@ -357,18 +357,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -357,18 +357,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//货单还有余量,是已完结
//货单还有余量,是已完结
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
}
else
{
}
else
{
List
<
OrderChild
>
orderChildrenListComplete
=
orderChildDao
.
select
ResidueWeight
(
orderNo
,
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
());
List
<
OrderChild
>
orderChildrenListComplete
=
orderChildDao
.
select
OrderChildListByOrderGoodsNoAndStatusGE
(
orderGoods
.
getOrderGoodsNo
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
if
(
CollectionUtil
.
isNotEmpty
(
orderChildrenListComplete
))
{
if
(
CollectionUtil
.
isNotEmpty
(
orderChildrenListComplete
))
{
Map
<
String
,
List
<
OrderChild
>>
orderChildCompleteMap
=
orderChildrenListComplete
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
OrderChild:
:
getOrderGoodsNo
));
//没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
//没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
List
<
OrderChild
>
childList
=
orderChildCompleteMap
.
get
(
orderGoods
.
getOrderGoodsNo
());
BigDecimal
reduce
=
orderChildrenListComplete
.
stream
().
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
reduce
=
childList
.
stream
().
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
if
(
reduce
.
compareTo
(
orderGoods
.
getExtractWeight
())
==
0
)
{
if
(
reduce
.
compareTo
(
orderGoods
.
getExtractWeight
())
==
0
)
{
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
());
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
SUCCESS
.
getCode
());
}
else
{
}
else
{
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
COMPLETED
.
getCode
());
}
}
}
else
{
//虽然没有余量,但是可以取消的运单都是未到达货源地的
update
.
setOrderGoodsStatus
(
OrderGoodsStatusEnum
.
Status
.
CANCEL
.
getCode
());
}
}
}
}
...
@@ -382,7 +382,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -382,7 +382,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
}
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
log
.
info
(
"执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}"
,
orderNo
);
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
mqParam
.
setType
(
"2"
);
mqParam
.
setType
(
"2"
);
mqParam
.
setOrderNo
(
orderNo
);
mqParam
.
setOrderNo
(
orderNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsServiceImpl.java
浏览文件 @
03b95383
...
@@ -389,6 +389,48 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
...
@@ -389,6 +389,48 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
}
}
@Override
public
BigDecimal
orderGoodsCancelResidueWeight
(
OrderGoodsCancelParam
goodsCancelParam
)
{
String
orderGoodsNo
=
goodsCancelParam
.
getOrderGoodsNo
();
Optional
<
OrderGoods
>
optional
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
);
if
(!
optional
.
isPresent
())
{
return
null
;
}
OrderGoods
orderGoods
=
optional
.
get
();
List
<
OrderChild
>
orderChildList
=
null
;
BigDecimal
residueWeight
=
null
;
BigDecimal
sum
=
BigDecimal
.
ZERO
;
RollbackOrderWeightParam
param
=
new
RollbackOrderWeightParam
();
Integer
cancelOperateType
=
goodsCancelParam
.
getCancelOperateType
();
switch
(
cancelOperateType
){
case
1
:
case
2
:
orderChildList
=
orderChildDao
.
selectResidueWeightByOrderGoodsNo
(
orderGoods
.
getOrderGoodsNo
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
());
if
(
CollectionUtils
.
isNotEmpty
(
orderChildList
))
{
sum
=
orderChildList
.
stream
().
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
}
residueWeight
=
orderGoods
.
getResidueTransportWeight
().
add
(
sum
);
return
residueWeight
;
case
3
:
orderChildList
=
orderChildDao
.
selectResidueWeightByOrderGoodsNo
(
orderGoods
.
getOrderGoodsNo
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
(),
goodsCancelParam
.
getTruckList
());
if
(
CollectionUtils
.
isNotEmpty
(
orderChildList
))
{
sum
=
orderChildList
.
stream
().
map
(
OrderChild:
:
getWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
}
residueWeight
=
orderGoods
.
getResidueTransportWeight
().
add
(
sum
);
return
residueWeight
;
default
:
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"参数类型有误"
);
}
}
@Override
@Override
public
List
<
String
>
getOrderChildTruckList
(
String
orderGoodsNo
)
{
public
List
<
String
>
getOrderChildTruckList
(
String
orderGoodsNo
)
{
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
selectResidueWeightByOrderGoodsNo
(
orderGoodsNo
,
OrderChildEnum
.
Status
.
LOAD
.
getCode
());
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
selectResidueWeightByOrderGoodsNo
(
orderGoodsNo
,
OrderChildEnum
.
Status
.
LOAD
.
getCode
());
...
...
performance-web/src/main/java/com/clx/performance/strategy/GoodsOrderStrategy.java
浏览文件 @
03b95383
...
@@ -2,21 +2,31 @@ package com.clx.performance.strategy;
...
@@ -2,21 +2,31 @@ package com.clx.performance.strategy;
import
com.clx.order.enums.OrderStopEnum
;
import
com.clx.order.enums.OrderStopEnum
;
import
com.clx.order.enums.ResultEnum
;
import
com.clx.order.enums.ResultEnum
;
import
com.clx.order.params.OrderGoodsChildParams
;
import
com.clx.order.params.OrderGoodsParams
;
import
com.clx.order.params.OrderGoodsParams
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.model.OrderGoodsTruckBind
;
import
com.clx.performance.utils.SpringContextUtils
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
public
abstract
class
GoodsOrderStrategy
{
public
abstract
class
GoodsOrderStrategy
{
/**
/**
* 不同的用车需求执行不同的策略 1:one 2:two 3:three
* 不同的用车需求执行不同的策略 1:one 2:two 3:three
* 用车需求: 1平台车辆 2部分平台车辆 3自有车辆
* 用车需求: 1平台车辆 2部分平台车辆 3自有车辆
...
@@ -33,6 +43,28 @@ public abstract class GoodsOrderStrategy {
...
@@ -33,6 +43,28 @@ public abstract class GoodsOrderStrategy {
if
(
Objects
.
equals
(
orderInfo
.
getStopFlag
(),
OrderStopEnum
.
Status
.
YES
.
getCode
())){
if
(
Objects
.
equals
(
orderInfo
.
getStopFlag
(),
OrderStopEnum
.
Status
.
YES
.
getCode
())){
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"订单已暂停,无法进行提量"
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"订单已暂停,无法进行提量"
);
}
}
//多个定向单不允许车辆重复
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
=
orderGoodsParams
.
getOrderGoodsChildParams
();
Set
<
String
>
set
=
new
HashSet
<>();
int
i
=
0
;
for
(
OrderGoodsChildParams
item
:
orderGoodsChildParams
)
{
if
(
CollectionUtils
.
isNotEmpty
(
item
.
getTruckList
())){
set
.
addAll
(
item
.
getTruckList
());
i
=
i
+
item
.
getTruckList
().
size
();
}
}
if
(!
Objects
.
equals
(
set
.
size
(),
i
)
){
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"定向单选择车辆重复"
);
}
OrderGoodsTruckBindDao
orderGoodsTruckBindDao
=
SpringContextUtils
.
getBeanByClass
(
OrderGoodsTruckBindDao
.
class
);
List
<
OrderGoodsTruckBind
>
binds
=
orderGoodsTruckBindDao
.
judgeTruckIsBindDxOrder
(
set
);
if
(
CollectionUtils
.
isNotEmpty
(
binds
)){
List
<
String
>
repeatBind
=
binds
.
stream
().
map
(
OrderGoodsTruckBind:
:
getTruckNo
).
collect
(
Collectors
.
toList
());
String
trucks
=
String
.
join
(
", "
,
repeatBind
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"已被定向单绑定车辆:"
+
trucks
);
}
//根据不同的订单类型创建不同的货单
//根据不同的订单类型创建不同的货单
LocalDateTime
sendLazyTime
=
goodsOrderProcess
(
orderGoodsParams
,
orderInfo
,
now
);
LocalDateTime
sendLazyTime
=
goodsOrderProcess
(
orderGoodsParams
,
orderInfo
,
now
);
...
...
performance-web/src/main/java/com/clx/performance/utils/SpringContextUtils.java
0 → 100644
浏览文件 @
03b95383
package
com
.
clx
.
performance
.
utils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.Map
;
/**
*
* Spring 工具类
*/
@Component
public
class
SpringContextUtils
implements
ApplicationContextAware
{
private
static
ConfigurableApplicationContext
applicationContext
;
@Override
public
void
setApplicationContext
(
ApplicationContext
context
)
throws
BeansException
{
applicationContext
=
(
ConfigurableApplicationContext
)
context
;
}
/**
* 获取ApplicationContext对象
*/
public
static
ApplicationContext
getApplicationContext
(){
return
applicationContext
;
}
/**
* 停止应用程序
*/
public
static
void
close
(){
if
(
applicationContext
!=
null
){
applicationContext
.
close
();
}
}
/**
* 根据bean的名称获取bean
*/
public
static
Object
getBeanByName
(
String
name
){
return
applicationContext
.
getBean
(
name
);
}
/**
* 根据bean的class来查找对象
*/
public
static
<
T
>
T
getBeanByClass
(
Class
<
T
>
clazz
){
return
applicationContext
.
getBean
(
clazz
);
}
/**
* 根据bean的class来查找所有的对象(包括子类)
*/
public
static
<
T
>
Map
<
String
,
T
>
getBeansByClass
(
Class
<
T
>
c
){
return
applicationContext
.
getBeansOfType
(
c
);
}
/**
* 获取HttpServletRequest
*/
public
static
HttpServletRequest
getRequest
()
{
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
currentRequestAttributes
();
return
attributes
.
getRequest
();
}
/**
* 获取HttpSession
*/
public
static
HttpSession
getSession
()
{
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
currentRequestAttributes
();
return
attributes
.
getRequest
().
getSession
();
}
/**
* 获取完整的请求URL
*/
public
static
String
getRequestUrl
(){
return
getRequestUrl
(
getRequest
());
}
/**
* 获取完整的请求URL
*/
public
static
String
getRequestUrl
(
HttpServletRequest
request
){
//当前请求路径
String
currentUrl
=
request
.
getRequestURL
().
toString
();
//请求参数
String
queryString
=
request
.
getQueryString
();
if
(!
StringUtils
.
isEmpty
(
queryString
)){
currentUrl
=
currentUrl
+
"?"
+
queryString
;
}
String
result
=
""
;
try
{
result
=
URLEncoder
.
encode
(
currentUrl
,
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
//ignore
}
return
result
;
}
/**
* 获取请求的客户端IP
*/
public
static
String
getRequestIp
(
HttpServletRequest
request
)
{
String
ip
=
request
.
getHeader
(
"X-Forwarded-For"
);
if
(
StringUtils
.
isNoneBlank
(
ip
)
&&
!
"unKnown"
.
equalsIgnoreCase
(
ip
)){
//多次反向代理后会有多个ip值,第一个ip才是真实ip
int
index
=
ip
.
indexOf
(
","
);
if
(
index
!=
-
1
){
return
ip
.
substring
(
0
,
index
);
}
else
{
return
ip
;
}
}
ip
=
request
.
getHeader
(
"X-Real-IP"
);
if
(
StringUtils
.
isNoneBlank
(
ip
)
&&
!
"unKnown"
.
equalsIgnoreCase
(
ip
)){
return
ip
;
}
return
request
.
getRemoteAddr
();
}
}
\ No newline at end of file
performance-web/src/test/java/com/clx/performance/JobTest.java
浏览文件 @
03b95383
...
@@ -52,17 +52,15 @@ public class JobTest {
...
@@ -52,17 +52,15 @@ public class JobTest {
@Test
@Test
public
void
test1
()
{
public
void
test1
()
{
OrderCancelMqParam
mqParam
=
new
OrderCancelMqParam
();
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam
.
setType
(
"2"
);
// mqParam.setType("2");
mqParam
.
setOrderNo
(
"123"
);
// mqParam.setOrderNo("123");
Message
message
=
MessageBuilder
.
withBody
(
JSONUtil
.
parse
(
mqParam
).
toString
().
getBytes
()).
build
();
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate
.
send
(
// rabbitTemplate.send(
RabbitKeyConstants
.
ORDER_CANCEL_EXCHANGE
,
RabbitKeyConstants
.
ORDER_CANCEL_ROUTE_KEY
,
message
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
// );
//CX2023092600223 平台已承接的订单,没有产生货单
//CX2023101600386 truckDemand 类型是2,且有货单,有运单, 没有未到达货源地的运单
orderCancelService
.
ownerCancelOrderPre
(
"PT2023102700473"
);
//PT2023092600207 类型都是1,且有运单
//orderCancelService.ownerCancelOrderPre("PT2023102700469");
//orderCancelService.ownerCancelOrder("PT2023102600466");
//orderCancelService.ownerCancelOrder("PT2023102600466");
System
.
out
.
println
();
System
.
out
.
println
();
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论