Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
f165da27
提交
f165da27
authored
8月 07, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
commit
上级
75fac6c2
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
72 行增加
和
187 行删除
+72
-187
OrderExtractWeightVO.java
...va/com/clx/performance/vo/feign/OrderExtractWeightVO.java
+3
-0
GoodsOrderController.java
...m/clx/performance/controller/pc/GoodsOrderController.java
+10
-5
OrderGoodsServiceImpl.java
...m/clx/performance/service/impl/OrderGoodsServiceImpl.java
+26
-71
OrderWeightServiceImpl.java
.../clx/performance/service/impl/OrderWeightServiceImpl.java
+8
-4
GoodsOrderStrategy.java
...java/com/clx/performance/strategy/GoodsOrderStrategy.java
+6
-43
OwnGoodsOrderStrategy.java
.../clx/performance/strategy/impl/OwnGoodsOrderStrategy.java
+6
-11
PartGoodsOrderStrategy.java
...clx/performance/strategy/impl/PartGoodsOrderStrategy.java
+7
-41
PlatformGoodsOrderStrategy.java
...performance/strategy/impl/PlatformGoodsOrderStrategy.java
+6
-12
没有找到文件。
performance-api/src/main/java/com/clx/performance/vo/feign/OrderExtractWeightVO.java
浏览文件 @
f165da27
...
@@ -23,6 +23,9 @@ public class OrderExtractWeightVO {
...
@@ -23,6 +23,9 @@ public class OrderExtractWeightVO {
@ApiModelProperty
(
"用车需求: 1平台车辆 2部分平台车辆 3自有车辆"
)
@ApiModelProperty
(
"用车需求: 1平台车辆 2部分平台车辆 3自有车辆"
)
private
Integer
truckDemand
;
private
Integer
truckDemand
;
@ApiModelProperty
(
value
=
"拉运吨数"
)
private
BigDecimal
transportWeight
;
@ApiModelProperty
(
"平台承运吨数"
)
@ApiModelProperty
(
"平台承运吨数"
)
private
BigDecimal
platformCarryWeight
;
private
BigDecimal
platformCarryWeight
;
...
...
performance-web/src/main/java/com/clx/performance/controller/pc/GoodsOrderController.java
浏览文件 @
f165da27
...
@@ -7,10 +7,8 @@ import com.clx.performance.component.GoodsOrderStrategyContext;
...
@@ -7,10 +7,8 @@ import com.clx.performance.component.GoodsOrderStrategyContext;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.*
;
import
com.clx.performance.service.OrderGoodsAdjustmentPriceService
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.OrderGoodsTruckBindService
;
import
com.clx.performance.vo.pc.*
;
import
com.clx.performance.vo.pc.*
;
import
com.msl.common.base.PageData
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.convertor.aspect.UnitCovert
;
...
@@ -71,6 +69,9 @@ public class GoodsOrderController {
...
@@ -71,6 +69,9 @@ public class GoodsOrderController {
@Autowired
@Autowired
private
OrderGoodsAdjustmentPriceService
orderGoodsAdjustmentPriceService
;
private
OrderGoodsAdjustmentPriceService
orderGoodsAdjustmentPriceService
;
@Autowired
private
OrderWeightService
orderWeightService
;
@ApiOperation
(
value
=
"提交货单"
,
notes
=
"<br>By:胡宇帆"
)
@ApiOperation
(
value
=
"提交货单"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/saveGoodsOrder"
)
@PostMapping
(
"/saveGoodsOrder"
)
@UnitCovert
(
result
=
false
)
@UnitCovert
(
result
=
false
)
...
@@ -88,7 +89,11 @@ public class GoodsOrderController {
...
@@ -88,7 +89,11 @@ public class GoodsOrderController {
FeignOrderVO
orderInfo
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
FeignOrderVO
orderInfo
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
//1平台车辆 2部分平台车辆 3自有车辆
//1平台车辆 2部分平台车辆 3自有车辆
Integer
truckDemand
=
orderInfo
.
getTruckDemand
();
Integer
truckDemand
=
orderInfo
.
getTruckDemand
();
goodsOrderStrategyContext
.
strategyContext
.
get
(
truckDemand
).
saveGoodsOrder
(
orderGoodsParams
,
orderInfo
,
now
,
rabbitTemplate
);
OrderExtractWeightVO
orderCanExtractWeight
=
orderWeightService
.
getOrderCanExtractWeight
(
orderNo
);
goodsOrderStrategyContext
.
strategyContext
.
get
(
truckDemand
).
saveGoodsOrder
(
orderGoodsParams
,
orderInfo
,
orderCanExtractWeight
,
now
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
info
(
e
.
getMessage
());
log
.
info
(
e
.
getMessage
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsServiceImpl.java
浏览文件 @
f165da27
...
@@ -30,14 +30,12 @@ import com.clx.performance.param.app.OrderGoodsListPageParam;
...
@@ -30,14 +30,12 @@ import com.clx.performance.param.app.OrderGoodsListPageParam;
import
com.clx.performance.param.feign.CancelOrderGoodsParam
;
import
com.clx.performance.param.feign.CancelOrderGoodsParam
;
import
com.clx.performance.param.feign.DistributionTruckParam
;
import
com.clx.performance.param.feign.DistributionTruckParam
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.param.pc.*
;
import
com.clx.performance.service.IntegralMqService
;
import
com.clx.performance.service.*
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderGoodsLogService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.child.OrderChildPostService
;
import
com.clx.performance.service.child.OrderChildPostService
;
import
com.clx.performance.struct.OrderGoodsStruct
;
import
com.clx.performance.struct.OrderGoodsStruct
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.app.OrderGoodsAPPVO
;
import
com.clx.performance.vo.feign.FreightEstimateVO
;
import
com.clx.performance.vo.feign.FreightEstimateVO
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.mq.OrderTruckBindCancelParam
;
import
com.clx.performance.vo.mq.OrderTruckBindCancelParam
;
import
com.clx.performance.vo.pc.DriverFreightPriceVO
;
import
com.clx.performance.vo.pc.DriverFreightPriceVO
;
...
@@ -124,6 +122,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
...
@@ -124,6 +122,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Autowired
@Autowired
private
OrderGoodsFleetOpenTruckDao
orderGoodsFleetOpenTruckDao
;
private
OrderGoodsFleetOpenTruckDao
orderGoodsFleetOpenTruckDao
;
@Autowired
OrderWeightService
orderWeightService
;
private
static
Map
<
Integer
,
Consumer
<
OrderGoodsCancelDTO
>>
orderGoodsCancelMap
=
new
HashMap
<>();
private
static
Map
<
Integer
,
Consumer
<
OrderGoodsCancelDTO
>>
orderGoodsCancelMap
=
new
HashMap
<>();
...
@@ -409,11 +410,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
...
@@ -409,11 +410,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateEditOrderGoods
(
UpdateEditOrderGoodsParam
param
)
{
public
void
updateEditOrderGoods
(
UpdateEditOrderGoodsParam
param
)
{
UserSessionData
loginUserInfo
=
null
;
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
OrderGoodsEditParams
orderGoodsParams
=
param
.
getOrderGoodsParams
();
OrderGoodsEditParams
orderGoodsParams
=
param
.
getOrderGoodsParams
();
OrderGoods
oldOrderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsParams
.
getOrderGoodsNo
()).
get
();
OrderGoods
oldOrderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsParams
.
getOrderGoodsNo
()).
get
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
param
.
getOrderNo
());
//
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(param.getOrderNo());
if
(
orderGoodsParams
.
getExtractWeight
().
compareTo
(
oldOrderGoods
.
getAlreadyTransportWeight
())
<
0
)
{
if
(
orderGoodsParams
.
getExtractWeight
().
compareTo
(
oldOrderGoods
.
getAlreadyTransportWeight
())
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单提取吨数不能小于货单已拉运吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单提取吨数不能小于货单已拉运吨数"
);
}
}
...
@@ -423,63 +423,20 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
...
@@ -423,63 +423,20 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
oldOrderGoods
.
getAlreadyTransportWeight
():
oldOrderGoods
.
getAlreadyTransportWeight
().
add
(
oldOrderGoods
.
getResidueTransportWeight
());
oldOrderGoods
.
getAlreadyTransportWeight
():
oldOrderGoods
.
getAlreadyTransportWeight
().
add
(
oldOrderGoods
.
getResidueTransportWeight
());
oldOrderGoods
.
setExtractWeight
(
realExtractWeight
);
oldOrderGoods
.
setExtractWeight
(
realExtractWeight
);
//本次提取增加或者减少的吨数 = 本次提取的吨数 - 货单原实际提取吨数
//本次提取增加或者减少的吨数 = 本次提取的吨数 - 货单原实际提取吨数
BigDecimal
answer
=
orderGoodsParams
.
getExtractWeight
().
subtract
(
realExtractWeight
);
BigDecimal
changeWeight
=
orderGoodsParams
.
getExtractWeight
().
subtract
(
realExtractWeight
);
int
flag
=
answer
.
compareTo
(
BigDecimal
.
ZERO
);
//归还吨数
RollbackOrderWeightParam
rollbackOrderWeightParam
=
new
RollbackOrderWeightParam
();
rollbackOrderWeightParam
.
setOrderNo
(
param
.
getOrderNo
());
log
.
info
(
"flag:{}"
,
flag
);
if
(
flag
>
0
)
{
orderGoodsParams
.
setResidueTransportWeight
(
oldOrderGoods
.
getResidueTransportWeight
().
add
(
answer
));
//限制剩余吨数
limitOrderGoodsResidueWeight
(
orderGoodsParams
.
getResidueTransportWeight
());
rollbackOrderWeightParam
.
setUpdateType
(
UpdateEnum
.
SUB
.
getCode
());
if
(
oldOrderGoods
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
()))
{
rollbackOrderWeightParam
.
setResidueWeight
(
answer
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
BigDecimal
.
ZERO
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
answer
);
}
else
if
(
oldOrderGoods
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
if
(
orderGoodsParams
.
getVehicleUsage
().
equals
(
VehicleUsageEnum
.
Status
.
OWN
.
getCode
()))
{
rollbackOrderWeightParam
.
setResidueWeight
(
answer
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
answer
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
BigDecimal
.
ZERO
);
}
else
{
rollbackOrderWeightParam
.
setResidueWeight
(
answer
);
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
BigDecimal
.
ZERO
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
answer
);
}
}
if
(
changeWeight
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
log
.
info
(
"回填吨数:{}"
,
JSONUtil
.
parse
(
rollbackOrderWeightParam
));
orderGoodsParams
.
setResidueTransportWeight
(
oldOrderGoods
.
getResidueTransportWeight
().
add
(
changeWeight
));
orderFeign
.
rollbackOrderWeight
(
rollbackOrderWeightParam
);
}
else
if
(
changeWeight
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
){
}
else
if
(
flag
<
0
){
orderGoodsParams
.
setResidueTransportWeight
(
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getAlreadyTransportWeight
()));
orderGoodsParams
.
setResidueTransportWeight
(
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getAlreadyTransportWeight
()));
//限制剩余吨数
limitOrderGoodsResidueWeight
(
orderGoodsParams
.
getResidueTransportWeight
());
rollbackOrderWeightParam
.
setUpdateType
(
UpdateEnum
.
ADD
.
getCode
());
if
(
oldOrderGoods
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
()))
{
rollbackOrderWeightParam
.
setResidueWeight
(
answer
.
negate
());
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
BigDecimal
.
ZERO
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
answer
.
negate
());
}
else
if
(
oldOrderGoods
.
getTruckDemand
().
equals
(
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
()))
{
rollbackOrderWeightParam
.
setResidueWeight
(
answer
.
negate
());
if
(
VehicleUsageEnum
.
Status
.
OWN
.
getCode
().
equals
(
oldOrderGoods
.
getVehicleUsage
()))
{
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
answer
.
negate
());
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
BigDecimal
.
ZERO
);
}
else
{
rollbackOrderWeightParam
.
setOwnResidueCarryWeight
(
BigDecimal
.
ZERO
);
rollbackOrderWeightParam
.
setPlatformResidueCarryWeight
(
answer
.
negate
());
}
}
log
.
info
(
"回填吨数:{}"
,
JSONUtil
.
parse
(
rollbackOrderWeightParam
));
orderFeign
.
rollbackOrderWeight
(
rollbackOrderWeightParam
);
}
else
{
}
else
{
//当编辑吨数等于0 的时候,不进行拦截
//当编辑吨数等于0 的时候,不进行拦截
orderGoodsParams
.
setResidueTransportWeight
(
oldOrderGoods
.
getResidueTransportWeight
());
orderGoodsParams
.
setResidueTransportWeight
(
oldOrderGoods
.
getResidueTransportWeight
());
}
}
BigDecimal
orderResidueWeight
=
orderWeightService
.
getOrderResidueWeight
(
param
.
getOrderNo
());
if
(
new
BigDecimal
(
orderInfoFeign
.
getResidueWeight
())
.
compareTo
(
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getExtractWeight
()))
<
0
)
{
if
(
orderResidueWeight
.
compareTo
(
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getExtractWeight
()))
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单提取吨数已超订单可提取吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单提取吨数已超订单可提取吨数"
);
}
}
...
@@ -565,15 +522,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
...
@@ -565,15 +522,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
orderGoodsLogService
.
saveLog
(
orderGoodsNo
,
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
(),
OrderGoodsLogsEnum
.
Type
.
EDIT
.
getName
(),
""
);
orderGoodsLogService
.
saveLog
(
orderGoodsNo
,
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
(),
OrderGoodsLogsEnum
.
Type
.
EDIT
.
getName
(),
""
);
}
}
/**
* 限制货单更新剩余吨数不能小于35吨
**/
private
void
limitOrderGoodsResidueWeight
(
BigDecimal
residueTransportWeight
){
if
(
residueTransportWeight
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
residueTransportWeight
.
compareTo
(
new
BigDecimal
(
"35"
))
<
0
){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
DATA_NOT_FIND
,
"当前货单剩余吨数不足35吨,无法挂单"
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
updateOrderGoodsPrice
(
UpdateOrderGoodsPriceParam
param
)
{
public
void
updateOrderGoodsPrice
(
UpdateOrderGoodsPriceParam
param
)
{
...
@@ -865,15 +813,22 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
...
@@ -865,15 +813,22 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
}
}
String
orderNo
=
orderGoodsVO
.
getOrderNo
();
String
orderNo
=
orderGoodsVO
.
getOrderNo
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
//查询订单可提取吨数
OrderExtractWeightVO
orderCanExtractWeight
=
orderWeightService
.
getOrderCanExtractWeight
(
orderNo
);
//查询订单剩余吨数
BigDecimal
residueWeight
=
orderWeightService
.
getOrderResidueWeight
(
orderNo
);
result
.
setOrderNo
(
orderInfoFeign
.
getOrderNo
());
result
.
setOrderNo
(
orderInfoFeign
.
getOrderNo
());
result
.
setTransportWeight
(
order
InfoFeign
.
getTransportWeight
());
result
.
setTransportWeight
(
order
CanExtractWeight
.
getTransportWeight
());
result
.
setValidFreightPrice
(
orderInfoFeign
.
getValidFreightPrice
());
result
.
setValidFreightPrice
(
orderInfoFeign
.
getValidFreightPrice
());
result
.
setTruckDemand
(
orderInfoFeign
.
getTruckDemand
());
result
.
setTruckDemand
(
orderInfoFeign
.
getTruckDemand
());
result
.
setResidueWeight
(
orderInfoFeign
.
getResidueWeight
(
));
result
.
setResidueWeight
(
String
.
valueOf
(
residueWeight
));
result
.
setOwnCarryWeight
(
orderInfoFeign
.
getOwnCarryWeight
(
));
result
.
setOwnCarryWeight
(
String
.
valueOf
(
orderCanExtractWeight
.
getOwnCarryWeight
()
));
result
.
setOwnResidueCarryWeight
(
orderInfoFeign
.
getOwnResidueCarryWeight
(
));
result
.
setOwnResidueCarryWeight
(
String
.
valueOf
(
orderCanExtractWeight
.
getOwnCanExtractWeight
()
));
result
.
setPlatformCarryWeight
(
orderInfoFeign
.
getPlatformCarryWeight
(
));
result
.
setPlatformCarryWeight
(
String
.
valueOf
(
orderCanExtractWeight
.
getPlatformCarryWeight
()
));
result
.
setPlatformResidueCarryWeight
(
orderInfoFeign
.
getPlatformResidueCarryWeight
(
));
result
.
setPlatformResidueCarryWeight
(
String
.
valueOf
(
orderCanExtractWeight
.
getPlatCanExtractWeight
()
));
result
.
setDownFloatWeight
(
orderInfoFeign
.
getDownFloatWeight
());
result
.
setDownFloatWeight
(
orderInfoFeign
.
getDownFloatWeight
());
result
.
setUpFloatWeight
(
orderInfoFeign
.
getUpFloatWeight
());
result
.
setUpFloatWeight
(
orderInfoFeign
.
getUpFloatWeight
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderWeightServiceImpl.java
浏览文件 @
f165da27
...
@@ -46,7 +46,8 @@ public class OrderWeightServiceImpl implements OrderWeightService {
...
@@ -46,7 +46,8 @@ public class OrderWeightServiceImpl implements OrderWeightService {
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
listByField
(
OrderGoods:
:
getOrderNo
,
orderNo
);
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
listByField
(
OrderGoods:
:
getOrderNo
,
orderNo
);
if
(
CollectionUtils
.
isEmpty
(
orderGoodsList
)){
if
(
CollectionUtils
.
isEmpty
(
orderGoodsList
)){
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
return
OrderExtractWeightVO
.
builder
().
transportWeight
(
orderInfo
.
getTransportWeight
())
.
truckDemand
(
orderInfo
.
getTruckDemand
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
()).
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
()).
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
ownCanExtractWeight
(
orderInfo
.
getOwnCarryWeight
()).
platCanExtractWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
ownCanExtractWeight
(
orderInfo
.
getOwnCarryWeight
()).
platCanExtractWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
build
();
.
build
();
...
@@ -67,13 +68,15 @@ public class OrderWeightServiceImpl implements OrderWeightService {
...
@@ -67,13 +68,15 @@ public class OrderWeightServiceImpl implements OrderWeightService {
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
())){
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
())){
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
return
OrderExtractWeightVO
.
builder
().
transportWeight
(
orderInfo
.
getTransportWeight
())
.
truckDemand
(
orderInfo
.
getTruckDemand
())
.
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
platCanExtractWeight
(
orderInfo
.
getTransportWeight
().
subtract
(
platOrderGoodsWeight
))
.
platCanExtractWeight
(
orderInfo
.
getTransportWeight
().
subtract
(
platOrderGoodsWeight
))
.
build
();
.
build
();
}
}
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
())){
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
())){
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
return
OrderExtractWeightVO
.
builder
().
transportWeight
(
orderInfo
.
getTransportWeight
())
.
truckDemand
(
orderInfo
.
getTruckDemand
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
())
.
ownCanExtractWeight
(
orderInfo
.
getTransportWeight
().
subtract
(
ownOrderGoodsWeight
))
.
ownCanExtractWeight
(
orderInfo
.
getTransportWeight
().
subtract
(
ownOrderGoodsWeight
))
.
build
();
.
build
();
...
@@ -94,7 +97,8 @@ public class OrderWeightServiceImpl implements OrderWeightService {
...
@@ -94,7 +97,8 @@ public class OrderWeightServiceImpl implements OrderWeightService {
subtract
(
platOrderGoodsWeight
);
subtract
(
platOrderGoodsWeight
);
}
}
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
return
OrderExtractWeightVO
.
builder
().
transportWeight
(
orderInfo
.
getTransportWeight
())
.
truckDemand
(
orderInfo
.
getTruckDemand
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
())
.
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
ownCanExtractWeight
(
ownCanExtractWeight
)
.
ownCanExtractWeight
(
ownCanExtractWeight
)
...
...
performance-web/src/main/java/com/clx/performance/strategy/GoodsOrderStrategy.java
浏览文件 @
f165da27
...
@@ -9,13 +9,11 @@ import com.clx.performance.model.OrderGoodsTruckBind;
...
@@ -9,13 +9,11 @@ import com.clx.performance.model.OrderGoodsTruckBind;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.performance.utils.SpringContextUtils
;
import
com.clx.performance.utils.SpringContextUtils
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
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.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.env.Environment
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
@@ -27,9 +25,6 @@ import java.util.stream.Collectors;
...
@@ -27,9 +25,6 @@ import java.util.stream.Collectors;
@Slf4j
@Slf4j
public
abstract
class
GoodsOrderStrategy
{
public
abstract
class
GoodsOrderStrategy
{
@Autowired
private
Environment
environment
;
/**
/**
* 不同的用车需求执行不同的策略 1:one 2:two 3:three
* 不同的用车需求执行不同的策略 1:one 2:two 3:three
...
@@ -40,23 +35,15 @@ public abstract class GoodsOrderStrategy {
...
@@ -40,23 +35,15 @@ public abstract class GoodsOrderStrategy {
* @param now
* @param now
* @return
* @return
*/
*/
public
abstract
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
);
public
abstract
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
OrderExtractWeightVO
orderCanExtractWeight
,
LocalDateTime
now
);
public
void
saveGoodsOrder
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
,
RabbitTemplate
rabbitTemplate
)
{
public
void
saveGoodsOrder
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
OrderExtractWeightVO
orderCanExtractWeight
,
LocalDateTime
now
)
{
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
,
"订单已暂停,无法进行提量"
);
}
}
String
transportBeginTime
=
orderInfo
.
getTransportBeginTime
();
/* if (!"test".equals(environment.getActiveProfiles()[0])) {
for (OrderGoodsChildParams param : orderGoodsParams.getOrderGoodsChildParams()) {
String pendingOrderTime = param.getPendingOrderTime();
if (DateUtils.parseDateTime(pendingOrderTime).get().isBefore(DateUtils.parseDateTime(transportBeginTime).get())) {
throw new ServiceSystemException(ResultEnum.DATA_ERROR, "挂单时间不能早于拉运开始时间");
}
}
}*/
//多个定向单不允许车辆重复
//多个定向单不允许车辆重复
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
orderGoodsChildParams
=
orderGoodsParams
.
getOrderGoodsChildParams
();
...
@@ -81,30 +68,6 @@ public abstract class GoodsOrderStrategy {
...
@@ -81,30 +68,6 @@ public abstract class GoodsOrderStrategy {
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"已被定向单绑定车辆:"
+
trucks
);
}
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"已被定向单绑定车辆:"
+
trucks
);
}
}
}
//根据不同的订单类型创建不同的货单
//根据不同的订单类型创建不同的货单
LocalDateTime
sendLazyTime
=
goodsOrderProcess
(
orderGoodsParams
,
orderInfo
,
now
);
goodsOrderProcess
(
orderGoodsParams
,
orderInfo
,
orderCanExtractWeight
,
now
);
/* Message message = MessageBuilder.withBody(orderNo.getBytes()).build();
BigDecimal epochMilli = null;
if (sendLazyTime.isAfter(now)) {
epochMilli = new BigDecimal(sendLazyTime.minusMinutes(now.getMinute()).getMinute() * 60 * 1000);
log.info("执行订单状态更改,选择时间在当前时间之后,则设置延迟队列时间,时间为:{}", epochMilli);
}
if (epochMilli == null) {
log.info("执行订单状态更改,epochMilli时间为0,时间为:{}", epochMilli);
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE, RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY, message
);
} else {
log.info("执行订单状态更改,epochMilli时间不为0,时间为:{}", epochMilli);
rabbitTemplate.send(RabbitKeyConstants.ORDER_POSTED_EXCHANGE, RabbitKeyConstants.ORDER_POSTED_ROUTE_KEY, MessageBuilder.withBody(orderNo.getBytes()).build());
message.getMessageProperties().setHeader("x-delay", epochMilli);
rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_EXCHANGE, RabbitKeyConstants.ORDER_ON_ROUTE_KEY, message
);
}*/
}
}
}
}
performance-web/src/main/java/com/clx/performance/strategy/impl/OwnGoodsOrderStrategy.java
浏览文件 @
f165da27
...
@@ -3,9 +3,6 @@ package com.clx.performance.strategy.impl;
...
@@ -3,9 +3,6 @@ package com.clx.performance.strategy.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.OrderOwnTruckVo
;
import
com.clx.order.vo.feign.OrderOwnTruckVo
;
import
com.clx.performance.component.*
;
import
com.clx.performance.component.*
;
...
@@ -17,8 +14,11 @@ import com.clx.performance.enums.PendingOrderWayStatusEnum;
...
@@ -17,8 +14,11 @@ import com.clx.performance.enums.PendingOrderWayStatusEnum;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.TruckDemandEnum
;
import
com.clx.performance.enums.TruckDemandEnum
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.performance.service.ordergoods.OrderGoodsPostService
;
import
com.clx.performance.service.ordergoods.OrderGoodsPostService
;
import
com.clx.performance.strategy.GoodsOrderStrategy
;
import
com.clx.performance.strategy.GoodsOrderStrategy
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
...
@@ -71,7 +71,8 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
...
@@ -71,7 +71,8 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
OrderExtractWeightVO
orderCanExtractWeight
,
LocalDateTime
now
)
{
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
if
(!
OrderEnum
.
Status
.
ON_ORDER
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())&&
if
(!
OrderEnum
.
Status
.
ON_ORDER
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())&&
...
@@ -88,8 +89,7 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
...
@@ -88,8 +89,7 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
residueWeight
=
new
BigDecimal
(
orderInfo
.
getResidueWeight
());
if
(
orderCanExtractWeight
.
getOwnCanExtractWeight
().
compareTo
(
childSum
)
<
0
)
{
if
(
residueWeight
.
compareTo
(
childSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
}
}
if
(
childParamsList
.
size
()
>
1
)
{
if
(
childParamsList
.
size
()
>
1
)
{
...
@@ -213,11 +213,6 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
...
@@ -213,11 +213,6 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
// 货单新增后置逻辑
// 货单新增后置逻辑
orderGoodsPostService
.
orderGoodsAdd
(
orderGoodsList
);
orderGoodsPostService
.
orderGoodsAdd
(
orderGoodsList
);
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"1"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
childSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
sendMq
(
mqMap
,
now
);
sendMq
(
mqMap
,
now
);
return
sendLazyTime
;
return
sendLazyTime
;
}
}
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/PartGoodsOrderStrategy.java
浏览文件 @
f165da27
...
@@ -3,9 +3,6 @@ package com.clx.performance.strategy.impl;
...
@@ -3,9 +3,6 @@ package com.clx.performance.strategy.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.component.*
;
import
com.clx.performance.component.*
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
...
@@ -13,8 +10,11 @@ import com.clx.performance.dao.OrderGoodsDao;
...
@@ -13,8 +10,11 @@ import com.clx.performance.dao.OrderGoodsDao;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.performance.service.ordergoods.OrderGoodsPostService
;
import
com.clx.performance.service.ordergoods.OrderGoodsPostService
;
import
com.clx.performance.strategy.GoodsOrderStrategy
;
import
com.clx.performance.strategy.GoodsOrderStrategy
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
...
@@ -65,7 +65,8 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
...
@@ -65,7 +65,8 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
OrderExtractWeightVO
orderCanExtractWeight
,
LocalDateTime
now
)
{
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
if
(!
OrderEnum
.
Status
.
ON_ORDER
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())&&
if
(!
OrderEnum
.
Status
.
ON_ORDER
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())&&
...
@@ -83,12 +84,10 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
...
@@ -83,12 +84,10 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
ownSum
=
childParamsList
.
stream
().
filter
(
i
->
!
"1"
.
equals
(
i
.
getVehicleUsage
())).
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
ownSum
=
childParamsList
.
stream
().
filter
(
i
->
!
"1"
.
equals
(
i
.
getVehicleUsage
())).
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
platformCarryWeight
=
new
BigDecimal
(
orderInfo
.
getPlatformResidueCarryWeight
());
if
(
orderCanExtractWeight
.
getPlatCanExtractWeight
().
compareTo
(
platSum
)
<
0
)
{
if
(
platformCarryWeight
.
compareTo
(
platSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前平台承运货单总吨数已超平台承运订单总吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前平台承运货单总吨数已超平台承运订单总吨数"
);
}
}
BigDecimal
ownCarryWeight
=
new
BigDecimal
(
orderInfo
.
getOwnResidueCarryWeight
());
if
(
orderCanExtractWeight
.
getOwnCanExtractWeight
().
compareTo
(
ownSum
)
<
0
)
{
if
(
ownCarryWeight
.
compareTo
(
ownSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前自有承运货单总吨数已超自有承运订单总吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前自有承运货单总吨数已超自有承运订单总吨数"
);
}
}
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
Map
<
String
,
LocalDateTime
>
mqMap
=
new
HashMap
<>();
...
@@ -205,39 +204,6 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
...
@@ -205,39 +204,6 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
// 货单新增后置逻辑
// 货单新增后置逻辑
orderGoodsPostService
.
orderGoodsAdd
(
orderGoodsList
);
orderGoodsPostService
.
orderGoodsAdd
(
orderGoodsList
);
BigDecimal
residueWeight
=
new
BigDecimal
(
orderInfo
.
getResidueWeight
());
if
(
platSum
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
ownSum
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
residuePlatSum
=
new
BigDecimal
(
orderInfo
.
getPlatformResidueCarryWeight
());
BigDecimal
residueOwnSum
=
new
BigDecimal
(
orderInfo
.
getOwnResidueCarryWeight
());
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"4"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
platSum
).
subtract
(
ownSum
));
param
.
setOwnWeight
(
residueOwnSum
.
subtract
(
ownSum
));
param
.
setPlatWeight
(
residuePlatSum
.
subtract
(
platSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
}
else
if
(
platSum
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
&&
ownSum
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
BigDecimal
residuePlatSum
=
new
BigDecimal
(
orderInfo
.
getPlatformResidueCarryWeight
());
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"2"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
platSum
));
param
.
setPlatWeight
(
residuePlatSum
.
subtract
(
platSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
}
else
if
(
platSum
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
&&
ownSum
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
residueOwnSum
=
new
BigDecimal
(
orderInfo
.
getOwnResidueCarryWeight
());
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"3"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
ownSum
));
param
.
setOwnWeight
(
residueOwnSum
.
subtract
(
ownSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
}
sendMq
(
mqMap
,
now
);
sendMq
(
mqMap
,
now
);
return
sendLazyTime
;
return
sendLazyTime
;
}
}
...
...
performance-web/src/main/java/com/clx/performance/strategy/impl/PlatformGoodsOrderStrategy.java
浏览文件 @
f165da27
...
@@ -3,9 +3,6 @@ package com.clx.performance.strategy.impl;
...
@@ -3,9 +3,6 @@ package com.clx.performance.strategy.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.component.*
;
import
com.clx.performance.component.*
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RabbitKeyConstants
;
...
@@ -13,8 +10,11 @@ import com.clx.performance.dao.OrderGoodsDao;
...
@@ -13,8 +10,11 @@ import com.clx.performance.dao.OrderGoodsDao;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.dao.OrderGoodsTruckBindDao
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.enums.*
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.pc.OrderGoodsChildParams
;
import
com.clx.performance.param.pc.OrderGoodsParams
;
import
com.clx.performance.service.ordergoods.OrderGoodsPostService
;
import
com.clx.performance.service.ordergoods.OrderGoodsPostService
;
import
com.clx.performance.strategy.GoodsOrderStrategy
;
import
com.clx.performance.strategy.GoodsOrderStrategy
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
...
@@ -67,7 +67,8 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
...
@@ -67,7 +67,8 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
LocalDateTime
now
)
{
public
LocalDateTime
goodsOrderProcess
(
OrderGoodsParams
orderGoodsParams
,
FeignOrderVO
orderInfo
,
OrderExtractWeightVO
orderCanExtractWeight
,
LocalDateTime
now
)
{
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
String
orderNo
=
orderGoodsParams
.
getOrderNo
();
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
if
(!
OrderEnum
.
Status
.
ON_ORDER
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())&&
if
(!
OrderEnum
.
Status
.
ON_ORDER
.
getCode
().
equals
(
orderInfoFeign
.
getOrderStatus
())&&
...
@@ -84,8 +85,7 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
...
@@ -84,8 +85,7 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
List
<
OrderGoodsChildParams
>
childParamsList
=
orderGoodsParams
.
getOrderGoodsChildParams
();
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
childSum
=
childParamsList
.
stream
().
map
(
OrderGoodsChildParams:
:
getExtractWeight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
residueWeight
=
new
BigDecimal
(
orderInfo
.
getResidueWeight
());
if
(
orderCanExtractWeight
.
getPlatCanExtractWeight
().
compareTo
(
childSum
)
<
0
)
{
if
(
residueWeight
.
compareTo
(
childSum
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总吨数已超订单总吨数"
);
}
}
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
childParamsList
.
size
());
long
beginOrderGoodsId
=
orderGoodsIdGenerate
.
getOrderGoodsId
(
childParamsList
.
size
());
...
@@ -198,12 +198,6 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
...
@@ -198,12 +198,6 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
// 货单新增后置逻辑
// 货单新增后置逻辑
orderGoodsPostService
.
orderGoodsAdd
(
orderGoodsList
);
orderGoodsPostService
.
orderGoodsAdd
(
orderGoodsList
);
UpdateOrderInfoResidueWeightParam
param
=
new
UpdateOrderInfoResidueWeightParam
();
param
.
setOrderId
(
orderInfo
.
getId
());
param
.
setUpdateType
(
"1"
);
param
.
setResidueWeight
(
residueWeight
.
subtract
(
childSum
));
orderFeign
.
updateOrderInfoResidueWeight
(
param
);
sendMq
(
mqMap
,
now
);
sendMq
(
mqMap
,
now
);
return
sendLazyTime
;
return
sendLazyTime
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论