Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
9ecee94a
提交
9ecee94a
authored
8月 14, 2024
作者:
杨启发
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/test' into test
上级
1c06c13f
492c70b2
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
36 行增加
和
27 行删除
+36
-27
PerformanceSDKFeign.java
...n/java/com/clx/performance/feign/PerformanceSDKFeign.java
+1
-0
OrderCancelServiceImpl.java
.../clx/performance/service/impl/OrderCancelServiceImpl.java
+3
-1
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+17
-10
OrderGoodsServiceImpl.java
...m/clx/performance/service/impl/OrderGoodsServiceImpl.java
+13
-16
OrderChildSqlProvider.java
...om/clx/performance/sqlProvider/OrderChildSqlProvider.java
+2
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/feign/PerformanceSDKFeign.java
浏览文件 @
9ecee94a
...
...
@@ -49,6 +49,7 @@ public interface PerformanceSDKFeign {
Result
<
List
<
PerformanceProgressOperationLogVO
>>
queryPerformanceProgressLog
(
@RequestBody
QueryPerformanceProgressLogAction
action
);
@GetMapping
(
value
=
{
"clx-performance/feign/sdk/getOrderCanExtractWeight"
})
Result
<
OrderCanExtractWeightDTO
>
getOrderCanExtractWeight
(
@RequestParam
(
value
=
"orderNo"
)
String
orderNo
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderCancelServiceImpl.java
浏览文件 @
9ecee94a
...
...
@@ -579,6 +579,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
@Override
// todo :jiangwujie 事务判断 ,其他也检查一下
public
void
removeLoadLimit
(
ArtificialCancelOrderParam
param
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
param
.
getOrderChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
//判断运单状态【已接单】【前往货源地】【到达货源地】时可对该运单解除装车限制,否则toast:不可操作
...
...
@@ -586,7 +587,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
.
contains
(
orderChild
.
getStatus
()))
{
log
.
error
(
"运单:{} 状态:{}不在【已接单】【前往货源地】【到达货源地】范围中,不允许解除装车限制"
,
param
.
getOrderChildNo
(),
orderChild
.
getStatus
());
//todo log.error 检查一下
log
.
info
(
"运单:{} 状态:{}不在【已接单】【前往货源地】【到达货源地】范围中,不允许解除装车限制"
,
param
.
getOrderChildNo
(),
orderChild
.
getStatus
());
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_CANCEL_FORBID
,
"不可操作"
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
9ecee94a
...
...
@@ -1778,6 +1778,7 @@ public class OrderChildServiceImpl implements OrderChildService {
}
/**
* todo 要改成两个
* 获取监装
* @param orderNo
* @param childNo
...
...
@@ -3235,19 +3236,17 @@ public class OrderChildServiceImpl implements OrderChildService {
String
childNo
=
child
.
getChildNo
();
String
truckNo
=
child
.
getTruckNo
();
Long
driverUserNo
=
child
.
getDriverUserNo
();
//解除监装限制的不进行处理
if
(
Objects
.
equals
(
child
.
getRemoveLoadLimitStatus
(),
OrderChildEnum
.
RemoveLoadLimitStatus
.
REMOVED
.
getCode
()))
{
log
.
info
(
"运单:{},卡车:{} 已解除监装限制"
,
childNo
,
truckNo
);
return
;
}
//获取卡车的位置
TruckTraceDTO
truckTraceDTO
=
truckTraceMap
.
get
(
truckNo
);
log
.
info
(
"运单号:{},卡车:{},中交兴路地图位置:{}"
,
childNo
,
truckNo
,
truckTraceDTO
);
BigDecimal
truckLongitudeX
=
null
;
BigDecimal
truckLatitudeY
=
null
;
if
(
Objects
.
nonNull
(
truckTraceDTO
))
{
truckLongitudeX
=
truckTraceDTO
.
getLocation
()[
0
];
truckLatitudeY
=
truckTraceDTO
.
getLocation
()[
1
];
}
else
{
}
if
(
truckLongitudeX
==
null
||
truckLatitudeY
==
null
)
{
log
.
info
(
"运单号:{},卡车:{},卡车经纬度:{}"
,
childNo
,
truckNo
,
truckTraceDTO
);
BigDecimal
[]
location
=
truckTraceService
.
getCurrentPosition
(
truckNo
,
driverUserNo
);
if
(
location
!=
null
&&
location
.
length
>
2
)
{
truckLongitudeX
=
location
[
0
];
...
...
@@ -3259,18 +3258,21 @@ public class OrderChildServiceImpl implements OrderChildService {
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
).
get
();
BigDecimal
siteLongitudeX
=
orderGoods
.
getSendLongitude
();
BigDecimal
siteLatitudeY
=
orderGoods
.
getSendLatitude
();
log
.
info
(
"运单号:{},卡车:{},status:{},站点经度:{},站点纬度:{},卡车经度:{},卡车纬度:{}"
,
childNo
,
truckNo
,
child
.
getStatus
(),
siteLongitudeX
,
siteLatitudeY
,
truckLongitudeX
,
truckLatitudeY
);
//调高德获取距离
if
(
Objects
.
nonNull
(
truckLongitudeX
)
&&
Objects
.
nonNull
(
truckLatitudeY
))
{
Integer
distance
=
getGdRoute
(
truckNo
,
orderGoods
.
getSendLongitude
(),
orderGoods
.
getSendLatitude
(),
siteLongitudeX
,
siteLatitudeY
);
if
(
distance
==
null
)
{
log
.
error
(
"高德获取卡车与货源地位置距离失败,orderGoodsNo:{},orderChildNo:{},truckNo:{}"
,
orderGoodsNo
,
childNo
,
truckNo
);
return
;
log
.
info
(
"高德获取卡车与货源地位置距离失败,orderGoodsNo:{},orderChildNo:{},truckNo:{}"
,
orderGoodsNo
,
childNo
,
truckNo
);
continue
;
}
log
.
info
(
"运单号:{},卡车:{},status:{},站点经度:{},站点纬度:{},卡车经度:{},卡车纬度:{},距离:{}"
,
orderGoodsNo
,
truckNo
,
child
.
getStatus
(),
siteLongitudeX
,
siteLatitudeY
,
truckLongitudeX
,
truckLatitudeY
,
distance
);
// 超出货源地+通知触发距离
if
(
distance
>
driverNoticeConfigVO
.
getNoticeTriggerDistanceMeter
())
{
if
(
Objects
.
equals
(
child
.
getExitNoticeStatus
(),
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
())
)
{
// todo :jiangwujie 增加短信次数限制
//超出货源地x公里范围了,且通知状态为未通知
// 到达货源地
if
(
Objects
.
equals
(
child
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()))
{
...
...
@@ -3280,7 +3282,9 @@ public class OrderChildServiceImpl implements OrderChildService {
// 已装货
if
(
Objects
.
equals
(
child
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
()))
{
Object
[]
superviseInfo
=
getSuperviseInfo
(
child
.
getOrderNo
(),
child
.
getChildNo
());
log
.
info
(
"运单号:{},卡车:{},监装信息{}"
,
childNo
,
truckNo
,
superviseInfo
);
if
(
superviseInfo
!=
null
)
{
log
.
info
(
"{}超出货源地x公里范围了,运单{}为装货成功状态,发送短信"
,
truckNo
,
childNo
);
sendSupervisionSms
(
child
.
getDriverMobile
(),
child
.
getTruckNo
(),
child
.
getChildNo
(),
(
String
)
superviseInfo
[
2
]);
}
}
...
...
@@ -3289,11 +3293,14 @@ public class OrderChildServiceImpl implements OrderChildService {
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
());
orderChildDao
.
updateEntityByKey
(
child
);
}
}
else
if
(
distance
<=
1000
){
}
else
if
(
distance
<=
1000
)
{
log
.
info
(
"运单号:{},卡车:{},status:{},站点经度:{},站点纬度:{},卡车经度:{},卡车纬度:{},距离:{} 距离小于1km"
,
orderGoodsNo
,
truckNo
,
child
.
getStatus
(),
siteLongitudeX
,
siteLatitudeY
,
truckLongitudeX
,
truckLatitudeY
,
distance
);
// 这里的1km的距离是产品需求写死的,不使用通知配置范围
// 未超出货源地+通知触发距离
// 驶入货源地+通知触发距离范围内了
if
(
Objects
.
equals
(
child
.
getEnterExitSendStatus
(),
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
()))
{
if
(
Objects
.
equals
(
child
.
getEnterExitSendStatus
(),
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
())
||
Objects
.
equals
(
child
.
getEnterExitSendStatus
(),
OrderChildEnum
.
EnterExitSendStatus
.
INIT
.
getCode
())
)
{
//驶入货源地x公里范围了,且通知状态为已通知
// 修改 通知状态 为未通知
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderGoodsServiceImpl.java
浏览文件 @
9ecee94a
...
...
@@ -505,7 +505,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
OrderGoodsEditParams
orderGoodsParams
=
param
.
getOrderGoodsParams
();
OrderGoods
oldOrderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsParams
.
getOrderGoodsNo
()).
get
();
//FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(param.getOrderNo());
if
(
orderGoodsParams
.
getExtractWeight
().
compareTo
(
oldOrderGoods
.
getAlreadyTransportWeight
())
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单提取吨数不能小于货单已拉运吨数"
);
}
...
...
@@ -513,27 +512,25 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
//考虑到借吨、恢复吨数的货单,逻辑判断实际的提取吨数
BigDecimal
oldResidueTransportWeight
=
this
.
calcOrderGoodsResidueWeight
(
oldOrderGoods
.
getExtractWeight
(),
oldOrderGoods
.
getAlreadyTransportWeight
());
BigDecimal
realExtractWeight
=
oldResidueTransportWeight
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
?
oldOrderGoods
.
getAlreadyTransportWeight
():
oldOrderGoods
.
getAlreadyTransportWeight
().
add
(
oldResidueTransportWeight
);
oldOrderGoods
.
setExtractWeight
(
realExtractWeight
);
//本次提取增加或者减少的吨数 = 本次提取的吨数 - 货单原实际提取吨数
BigDecimal
changeWeight
=
orderGoodsParams
.
getExtractWeight
().
subtract
(
realExtractWeight
);
BigDecimal
residueTransportWeight
=
this
.
calcOrderGoodsResidueWeight
(
oldOrderGoods
.
getExtractWeight
(),
oldOrderGoods
.
getAlreadyTransportWeight
());
OrderExtractWeightVO
orderCanExtractWeight
=
orderWeightService
.
getOrderCanExtractWeight
(
param
.
getOrderNo
());
BigDecimal
canExtractWeight
=
orderCanExtractWeight
.
getCanExtractWeight
();
BigDecimal
changeWeight
=
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getExtractWeight
());
//当计算出的订单可提取量为负数时,说明订单下调吨数,货单超过订单量,所以货单编辑吨数的时候只能进行下调操作
if
(
canExtractWeight
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
&&
changeWeight
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
){
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单总量已超吨,只能做吨数下调操作"
);
if
(
changeWeight
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
orderGoodsParams
.
setResidueTransportWeight
(
residueTransportWeight
.
add
(
changeWeight
));
}
else
if
(
changeWeight
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
){
orderGoodsParams
.
setResidueTransportWeight
(
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getAlreadyTransportWeight
()));
}
else
{
//当编辑吨数等于0 的时候,不进行拦截
orderGoodsParams
.
setResidueTransportWeight
(
residueTransportWeight
);
}
BigDecimal
realExtractWeight
=
oldResidueTransportWeight
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
?
oldOrderGoods
.
getAlreadyTransportWeight
():
oldOrderGoods
.
getExtractWeight
();
oldOrderGoods
.
setExtractWeight
(
realExtractWeight
);
BigDecimal
orderResidueWeight
=
orderWeightService
.
getOrderResidueWeight
(
param
.
getOrderNo
());
if
(
orderResidueWeight
.
compareTo
(
orderGoodsParams
.
getExtractWeight
().
subtract
(
oldOrderGoods
.
getExtractWeight
())
)
<
0
)
{
if
(
orderResidueWeight
.
compareTo
(
changeWeight
)
<
0
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"当前货单提取吨数已超订单可提取吨数"
);
}
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/OrderChildSqlProvider.java
浏览文件 @
9ecee94a
...
...
@@ -182,6 +182,7 @@ public class OrderChildSqlProvider {
}
public
String
findArtificialCancelOrder
(
@Param
(
"param"
)
ArtificialCancelOrderQueryParam
param
)
{
//todo jiangwujie 改成 new SQL()形式
StringBuilder
sql
=
new
StringBuilder
();
sql
.
append
(
"SELECT child_no, goods_name, freight_price, order_no, "
);
sql
.
append
(
"send_address, receive_address, "
);
...
...
@@ -201,6 +202,7 @@ public class OrderChildSqlProvider {
if
(
StringUtils
.
isNotBlank
(
param
.
getTruckNo
()))
{
conditions
.
add
(
"truck_no = #{param.truckNo}"
);
}
//todo :jiangwujie 支付状态 可以忽略 ,还是使用<= >=
List
<
Integer
>
statuses
=
Arrays
.
asList
(
OrderChildEnum
.
Status
.
CREATED
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论