Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
b11fbbb2
提交
b11fbbb2
authored
8月 05, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v20.8_add_sub_weight_20240805' into dev
上级
c94a520b
d7b98109
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
433 行增加
和
0 行删除
+433
-0
OrderExtractWeightVO.java
...va/com/clx/performance/vo/feign/OrderExtractWeightVO.java
+41
-0
RedissonConstants.java
.../java/com/clx/performance/constant/RedissonConstants.java
+5
-0
LastTruckController.java
...om/clx/performance/controller/pc/LastTruckController.java
+46
-0
OrderGoodsWeightController.java
...performance/controller/pc/OrderGoodsWeightController.java
+44
-0
OrderWeightController.java
.../clx/performance/controller/pc/OrderWeightController.java
+53
-0
LastTruckService.java
...in/java/com/clx/performance/service/LastTruckService.java
+5
-0
OrderGoodsWeightService.java
.../com/clx/performance/service/OrderGoodsWeightService.java
+7
-0
OrderWeightService.java
.../java/com/clx/performance/service/OrderWeightService.java
+11
-0
LastTruckServiceImpl.java
...om/clx/performance/service/impl/LastTruckServiceImpl.java
+60
-0
OrderGoodsWeightServiceImpl.java
...performance/service/impl/OrderGoodsWeightServiceImpl.java
+31
-0
OrderWeightServiceImpl.java
.../clx/performance/service/impl/OrderWeightServiceImpl.java
+130
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/vo/feign/OrderExtractWeightVO.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
vo
.
feign
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.*
;
import
java.math.BigDecimal
;
/**
* @ClassName OrderExtractWeightVO
* @Description
* @Author kavin
* @Date 2024/8/5 11:54
* @Version 1.0
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public
class
OrderExtractWeightVO
{
@ApiModelProperty
(
"用车需求: 1平台车辆 2部分平台车辆 3自有车辆"
)
private
Integer
truckDemand
;
@ApiModelProperty
(
"平台承运吨数"
)
private
BigDecimal
platformCarryWeight
;
@ApiModelProperty
(
"自有承运吨数"
)
private
BigDecimal
ownCarryWeight
;
@ApiModelProperty
(
"平台可提取吨数"
)
private
BigDecimal
platCanExtractWeight
;
@ApiModelProperty
(
"自有可提取吨数"
)
private
BigDecimal
ownCanExtractWeight
;
}
performance-web/src/main/java/com/clx/performance/constant/RedissonConstants.java
浏览文件 @
b11fbbb2
...
...
@@ -16,4 +16,9 @@ public class RedissonConstants {
public
static
final
String
OWNER_LOAN_EVENT_USERID_LOCK
=
"clx-performance:ownerLoanEvent:ownerUserId:"
;
public
static
final
String
CALC_ORDER_LAST_TRUCK_LOCK
=
"clx-performance:order:last:truck:orderNo:"
;
}
performance-web/src/main/java/com/clx/performance/controller/pc/LastTruckController.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
controller
.
pc
;
import
com.clx.performance.service.LastTruckService
;
import
com.clx.performance.vo.app.OrderChildVO
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotBlank
;
/**
* @ClassName OrderWeightController
* @Description
* @Author kavin
* @Date 2024/8/5 11:45
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/pc/lastTruck"
)
@Validated
@Api
(
tags
=
"最后一车"
)
@AllArgsConstructor
public
class
LastTruckController
{
private
final
LastTruckService
lastTruckService
;
@ApiOperation
(
value
=
"查询订单下的最后一车"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getOrderLastTruck"
)
public
Result
<
OrderChildVO
>
getOrderLastTruck
(
@RequestParam
(
"orderNo"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
throws
Exception
{
return
Result
.
ok
(
lastTruckService
.
getOrderLastTruck
(
orderNo
));
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/OrderGoodsWeightController.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
controller
.
pc
;
import
com.clx.performance.service.OrderGoodsWeightService
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
/**
* @ClassName OrderWeightController
* @Description
* @Author kavin
* @Date 2024/8/5 11:45
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/pc/orderGoods/weight"
)
@Validated
@Api
(
tags
=
"货单量查询"
)
@AllArgsConstructor
public
class
OrderGoodsWeightController
{
private
final
OrderGoodsWeightService
orderGoodsWeightService
;
@ApiOperation
(
value
=
"查询货单可提取量"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getOrderGoodsCanExtractWeight"
)
public
Result
<
BigDecimal
>
getOrderGoodsCanExtractWeight
(
@RequestParam
(
"orderGoodsNo"
)
@NotBlank
(
message
=
"货单编号不能为空"
)
String
orderGoodsNo
)
{
return
Result
.
ok
(
orderGoodsWeightService
.
getOrderGoodsCanExtractWeight
(
orderGoodsNo
));
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/OrderWeightController.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
controller
.
pc
;
import
com.clx.performance.service.OrderWeightService
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
/**
* @ClassName OrderWeightController
* @Description
* @Author kavin
* @Date 2024/8/5 11:45
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/pc/order/weight"
)
@Validated
@Api
(
tags
=
"订单量查询"
)
@AllArgsConstructor
public
class
OrderWeightController
{
private
final
OrderWeightService
orderWeightService
;
@ApiOperation
(
value
=
"查询订单可提取量"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getOrderCanExtractWeight"
)
public
Result
<
OrderExtractWeightVO
>
getOrderCanExtractWeight
(
@RequestParam
(
"orderNo"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
{
return
Result
.
ok
(
orderWeightService
.
getOrderCanExtractWeight
(
orderNo
));
}
@ApiOperation
(
value
=
"查询订单剩余量"
,
notes
=
"<br>By:刘海泉"
)
@GetMapping
(
"/getOrderResidueWeight"
)
public
Result
<
BigDecimal
>
getOrderResidueWeight
(
@RequestParam
(
"orderNo"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
String
orderNo
)
{
return
Result
.
ok
(
orderWeightService
.
getOrderResidueWeight
(
orderNo
));
}
}
performance-web/src/main/java/com/clx/performance/service/LastTruckService.java
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
service
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.vo.app.OrderChildVO
;
import
com.msl.common.result.Result
;
public
interface
LastTruckService
{
...
...
@@ -14,4 +15,8 @@ public interface LastTruckService {
Result
<?>
syncLastTruckChild4OrderTrigger
(
String
orderNo
);
OrderChildVO
getOrderLastTruck
(
String
orderNo
)
throws
Exception
;
}
performance-web/src/main/java/com/clx/performance/service/OrderGoodsWeightService.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
service
;
import
java.math.BigDecimal
;
public
interface
OrderGoodsWeightService
{
BigDecimal
getOrderGoodsCanExtractWeight
(
String
orderGoodsNo
);
}
performance-web/src/main/java/com/clx/performance/service/OrderWeightService.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
service
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
java.math.BigDecimal
;
public
interface
OrderWeightService
{
OrderExtractWeightVO
getOrderCanExtractWeight
(
String
orderNo
);
BigDecimal
getOrderResidueWeight
(
String
orderNo
);
}
performance-web/src/main/java/com/clx/performance/service/impl/LastTruckServiceImpl.java
浏览文件 @
b11fbbb2
...
...
@@ -4,20 +4,29 @@ 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.enums.OrderEnum
;
import
com.clx.order.enums.ResultEnum
;
import
com.clx.order.feign.OrderFeign
;
import
com.clx.order.param.feign.UpdateOrderLastTruckParam
;
import
com.clx.order.vo.feign.FeignOrderVO
;
import
com.clx.performance.config.ThirdAppConfig
;
import
com.clx.performance.constant.RedissonConstants
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.service.LastTruckService
;
import
com.clx.performance.struct.OrderChildStruct
;
import
com.clx.performance.vo.app.OrderChildVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.Objects
;
import
java.util.concurrent.TimeUnit
;
/**
* @ClassName LastTruckServiceImpl
...
...
@@ -35,6 +44,7 @@ public class LastTruckServiceImpl implements LastTruckService {
private
final
OrderChildDao
orderChildDao
;
private
final
OrderChildStruct
orderChildStruct
;
private
final
ThirdAppConfig
thirdAppConfig
;
private
final
RedissonClient
redissonClient
;
/**
* @Author kavin
* @Description 判断最后一车的逻辑
...
...
@@ -105,5 +115,55 @@ public class LastTruckServiceImpl implements LastTruckService {
return
syncLastTruckChild
(
child
);
}
return
Result
.
ok
(
"订单完成/完结状态下未查询最后一车,订单编号:"
+
orderNo
);
}
//调用此方法前查订单是否存在最后一车,存在则不进行该方法调用
@Override
public
OrderChildVO
getOrderLastTruck
(
String
orderNo
)
throws
Exception
{
//为每个货主的订单进行加锁,计算最后一车进行排队,防止多个运单dts监听并发导致最后一车重复计算
RLock
lock
=
redissonClient
.
getLock
(
RedissonConstants
.
CALC_ORDER_LAST_TRUCK_LOCK
+
orderNo
);
try
{
FeignOrderVO
orderInfo
=
orderFeign
.
getOrderInfoFeign
(
orderNo
);
if
(
Objects
.
isNull
(
orderInfo
)){
log
.
error
(
"计算订单最后一车,通过订单号:{},未查询到对应的订单"
,
orderNo
);
return
null
;
}
//已经计算出最后一车,则直接返回运单信息
if
(
Objects
.
equals
(
orderInfo
.
getLastTruckFlag
(),
OrderEnum
.
LastTruckFlag
.
YES
.
getCode
())){
OrderChild
child
=
orderChildDao
.
getByChildNo
(
orderInfo
.
getLastTruckChildNo
()).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
return
orderChildStruct
.
convert
(
child
);
}
boolean
flag
=
lock
.
tryLock
(
15
,
30
,
TimeUnit
.
SECONDS
);
if
(!
flag
)
{
throw
new
ServiceSystemException
(
ResultEnum
.
TRY_LOCK_ERROR
,
"计算最后一车请求排队超时"
);
}
BigDecimal
weight
=
orderChildDao
.
listAfterArrayReceiveChild
(
orderNo
);
log
.
info
(
"计算订单最后一车,订单号:{} ,计算是否到达可计算最后一车标准,运单累计拉运吨数:{}, 订单拉运吨数:{}"
,
orderNo
,
weight
,
orderInfo
.
getTransportWeight
());
if
(
Objects
.
nonNull
(
weight
)
&&
weight
.
subtract
(
orderInfo
.
getTransportWeight
()).
compareTo
(
BigDecimal
.
ZERO
)
>=
0
){
//查询最后一车的运单
OrderChild
child
=
orderChildDao
.
getLastTruckChild
(
orderNo
);
log
.
info
(
"当前订单计算出最后一车,运单编号:{} "
,
child
.
getChildNo
());
//更新订单最后一车
UpdateOrderLastTruckParam
param
=
new
UpdateOrderLastTruckParam
();
param
.
setOrderNo
(
orderNo
);
param
.
setChildNo
(
child
.
getChildNo
());
orderFeign
.
updateOrderLastTruck
(
param
);
return
orderChildStruct
.
convert
(
child
);
}
return
null
;
}
finally
{
if
(
lock
.
isLocked
()
&&
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsWeightServiceImpl.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.service.OrderGoodsWeightService
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
/**
* @ClassName OrderGoodsWeightServiceImpl
* @Description
* @Author kavin
* @Date 2024/8/5 14:16
* @Version 1.0
*/
@Slf4j
@Service
@AllArgsConstructor
public
class
OrderGoodsWeightServiceImpl
implements
OrderGoodsWeightService
{
private
final
OrderGoodsDao
orderGoodsDao
;
@Override
public
BigDecimal
getOrderGoodsCanExtractWeight
(
String
orderGoodsNo
)
{
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
return
orderGoods
.
getExtractWeight
().
subtract
(
orderGoods
.
getAlreadyTransportWeight
());
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderWeightServiceImpl.java
0 → 100644
浏览文件 @
b11fbbb2
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.order.enums.VehicleUsageEnum
;
import
com.clx.order.vo.feign.FeignOrderInfoVO
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.enums.TruckDemandEnum
;
import
com.clx.performance.extranal.user.OrderService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.service.OrderWeightService
;
import
com.clx.performance.vo.feign.OrderExtractWeightVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @ClassName OrderWeightServiceImpl
* @Description
* @Author kavin
* @Date 2024/8/5 11:52
* @Version 1.0
*/
@Slf4j
@Service
@AllArgsConstructor
public
class
OrderWeightServiceImpl
implements
OrderWeightService
{
private
final
OrderService
orderService
;
private
final
OrderGoodsDao
orderGoodsDao
;
private
final
OrderChildDao
orderChildDao
;
@Override
public
OrderExtractWeightVO
getOrderCanExtractWeight
(
String
orderNo
)
{
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
orderNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
List
<
OrderGoods
>
orderGoodsList
=
orderGoodsDao
.
listByField
(
OrderGoods:
:
getOrderNo
,
orderNo
);
if
(
CollectionUtils
.
isEmpty
(
orderGoodsList
)){
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
()).
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
ownCanExtractWeight
(
orderInfo
.
getOwnCarryWeight
()).
platCanExtractWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
build
();
}
//已发布的自有车辆吨数
BigDecimal
ownOrderGoodsWeight
=
BigDecimal
.
ZERO
;
//已发布的平台车辆吨数
BigDecimal
platOrderGoodsWeight
=
BigDecimal
.
ZERO
;
for
(
OrderGoods
item
:
orderGoodsList
)
{
if
(
Objects
.
equals
(
item
.
getVehicleUsage
(),
VehicleUsageEnum
.
Status
.
OWN
.
getCode
())){
ownOrderGoodsWeight
=
ownOrderGoodsWeight
.
add
(
item
.
getExtractWeight
());
}
if
(
Objects
.
equals
(
item
.
getVehicleUsage
(),
VehicleUsageEnum
.
Status
.
PLATFORM
.
getCode
())){
platOrderGoodsWeight
=
platOrderGoodsWeight
.
add
(
item
.
getExtractWeight
());
}
}
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
PLATFORM_CAR
.
getCode
())){
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
.
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
platCanExtractWeight
(
orderInfo
.
getTransportWeight
().
subtract
(
platOrderGoodsWeight
))
.
build
();
}
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
OWNER_CAR
.
getCode
())){
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
())
.
ownCanExtractWeight
(
orderInfo
.
getTransportWeight
().
subtract
(
ownOrderGoodsWeight
))
.
build
();
}
if
(
Objects
.
equals
(
orderInfo
.
getTruckDemand
(),
TruckDemandEnum
.
TruckType
.
PLATFORM_ANY_CAR
.
getCode
())){
//因为自有车辆的货单必须一次性全部提取,所有只要自有车辆吨数,剩下的吨数则为平台可提取吨数
BigDecimal
ownCanExtractWeight
=
BigDecimal
.
ZERO
;
BigDecimal
platCanExtractWeight
;
if
(
ownOrderGoodsWeight
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
){
//自有的车辆未发布货单,自有可提取吨数则为订单上自有可提取的吨数
ownCanExtractWeight
=
orderInfo
.
getOwnCarryWeight
();
//平台可提取吨数 = 承运吨数 - 自有可提取吨数 - 平台已提取的吨数
platCanExtractWeight
=
orderInfo
.
getTransportWeight
().
subtract
(
ownCanExtractWeight
).
subtract
(
platOrderGoodsWeight
);
}
else
{
//平台可提取吨数 = 承运吨数 - 自有已经提取吨数 - 平台已提取的吨数
platCanExtractWeight
=
orderInfo
.
getTransportWeight
().
subtract
(
ownOrderGoodsWeight
).
subtract
(
platOrderGoodsWeight
);
}
return
OrderExtractWeightVO
.
builder
().
truckDemand
(
orderInfo
.
getTruckDemand
())
.
ownCarryWeight
(
orderInfo
.
getOwnCarryWeight
())
.
platformCarryWeight
(
orderInfo
.
getPlatformCarryWeight
())
.
ownCanExtractWeight
(
ownCanExtractWeight
)
.
platCanExtractWeight
(
platCanExtractWeight
)
.
build
();
}
else
{
log
.
warn
(
"订单号:{} 的用车需求未知"
,
orderNo
);
throw
new
ServiceSystemException
(
ResultEnum
.
DATA_ERROR
,
"未知的用车需求"
);
}
}
@Override
public
BigDecimal
getOrderResidueWeight
(
String
orderNo
)
{
FeignOrderInfoVO
orderInfo
=
orderService
.
getOrderInfo
(
orderNo
).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
listByField
(
OrderChild:
:
getOrderNo
,
orderNo
);
if
(
CollectionUtils
.
isEmpty
(
orderChildList
)){
return
orderInfo
.
getTransportWeight
();
}
BigDecimal
alreadyWeight
=
BigDecimal
.
ZERO
;
//该订单下已经拉运的重量
for
(
OrderChild
child
:
orderChildList
)
{
if
(
Objects
.
nonNull
(
child
.
getLoadNet
())){
alreadyWeight
=
alreadyWeight
.
add
(
child
.
getLoadNet
());
}
else
{
alreadyWeight
=
alreadyWeight
.
add
(
child
.
getWeight
());
}
}
return
orderInfo
.
getTransportWeight
().
subtract
(
alreadyWeight
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论