Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
c397cf18
提交
c397cf18
authored
6月 05, 2024
作者:
艾庆国
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
线路预警
上级
60d017fb
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
294 行增加
和
1 行删除
+294
-1
OrderGoodsStatusEnum.java
.../java/com/clx/performance/enums/OrderGoodsStatusEnum.java
+4
-0
LineWarnTraceVO.java
...a/com/clx/performance/vo/pc/linewarn/LineWarnTraceVO.java
+55
-0
LineWarnTruckTraceInfoVO.java
.../performance/vo/pc/linewarn/LineWarnTruckTraceInfoVO.java
+43
-0
LineWarnTraceController.java
...mance/controller/pc/linewarn/LineWarnTraceController.java
+33
-0
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+7
-0
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+24
-0
OrderChildMapper.java
...ain/java/com/clx/performance/mapper/OrderChildMapper.java
+7
-0
LineWarnTraceServiceImpl.java
...mance/service/impl/linewarn/LineWarnTraceServiceImpl.java
+95
-0
TruckTraceServiceImpl.java
...performance/service/impl/trace/TruckTraceServiceImpl.java
+8
-1
LineWarnTraceService.java
...lx/performance/service/linewarn/LineWarnTraceService.java
+8
-0
TruckTraceService.java
.../com/clx/performance/service/trace/TruckTraceService.java
+2
-0
OrderChildStruct.java
...ain/java/com/clx/performance/struct/OrderChildStruct.java
+4
-0
OrderGoodsStruct.java
...ain/java/com/clx/performance/struct/OrderGoodsStruct.java
+4
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/OrderGoodsStatusEnum.java
浏览文件 @
c397cf18
...
...
@@ -29,6 +29,10 @@ public enum OrderGoodsStatusEnum {
public
static
Optional
<
Status
>
getByCode
(
Integer
code
)
{
return
Arrays
.
stream
(
values
()).
filter
(
e
->
e
.
code
.
equals
(
code
)).
findFirst
();
}
public
static
String
getMsgByCode
(
Integer
code
)
{
if
(
code
==
null
)
{
return
null
;}
return
getByCode
(
code
).
map
(
Status:
:
getName
).
orElse
(
null
);
}
}
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/linewarn/LineWarnTraceVO.java
0 → 100644
浏览文件 @
c397cf18
package
com
.
clx
.
performance
.
vo
.
pc
.
linewarn
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Getter
@Setter
@NoArgsConstructor
public
class
LineWarnTraceVO
{
@ApiModelProperty
(
value
=
"货单编号"
,
example
=
"10000"
)
private
String
orderGoodsNo
;
@ApiModelProperty
(
value
=
"发货地址id"
,
example
=
"1"
)
private
Integer
sendAddressId
;
@ApiModelProperty
(
value
=
"发货地址"
,
example
=
"北京"
)
private
String
sendAddress
;
@ApiModelProperty
(
value
=
"收货地址id"
,
example
=
"2"
)
private
Integer
receiveAddressId
;
@ApiModelProperty
(
value
=
"收货地址"
,
example
=
"山西"
)
private
String
receiveAddress
;
@ApiModelProperty
(
"发货地址经度"
)
private
BigDecimal
sendLongitude
;
@ApiModelProperty
(
"发货地址纬度"
)
private
BigDecimal
sendLatitude
;
@ApiModelProperty
(
"收货地址经度"
)
private
BigDecimal
receiveLongitude
;
@ApiModelProperty
(
"收货地址纬度"
)
private
BigDecimal
receiveLatitude
;
@ApiModelProperty
(
"货单状态"
)
private
Integer
orderGoodsStatus
;
@ApiModelProperty
(
"货单状态"
)
private
String
orderGoodsStatusMsg
;
public
String
getOrderGoodsStatusMsg
()
{
return
OrderGoodsStatusEnum
.
Status
.
getMsgByCode
(
orderGoodsStatus
);
}
@ApiModelProperty
(
"提取吨数"
)
private
BigDecimal
extractWeight
;
@ApiModelProperty
(
"装车吨数"
)
private
BigDecimal
loadWeight
;
@ApiModelProperty
(
"卸车吨数"
)
private
BigDecimal
unloadWeight
;
@ApiModelProperty
(
"车辆列表"
)
private
List
<
LineWarnTruckTraceInfoVO
>
truckList
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/linewarn/LineWarnTruckTraceInfoVO.java
0 → 100644
浏览文件 @
c397cf18
package
com
.
clx
.
performance
.
vo
.
pc
.
linewarn
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Getter
@Setter
@NoArgsConstructor
public
class
LineWarnTruckTraceInfoVO
{
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"车牌号"
,
example
=
"京A12345"
)
private
String
truckNo
;
@ApiModelProperty
(
value
=
"司机用户编号"
,
example
=
"100000"
)
private
Long
driverUserNo
;
@ApiModelProperty
(
value
=
"司机姓名"
,
example
=
"张三"
)
private
String
driverName
;
@ApiModelProperty
(
value
=
"司机手机号"
,
example
=
"13000000000"
)
private
String
driverMobile
;
@ApiModelProperty
(
value
=
"车辆状态:1空车 2重车"
,
example
=
"1"
)
private
Integer
truckStatus
;
@ApiModelProperty
(
value
=
"运单状态"
,
example
=
"1"
)
private
Integer
status
;
@ApiModelProperty
(
"经度"
)
private
BigDecimal
longitude
;
@ApiModelProperty
(
"纬度"
)
private
BigDecimal
latitude
;
@ApiModelProperty
(
value
=
"装车时间"
,
example
=
""
)
private
LocalDateTime
loadTime
;
@ApiModelProperty
(
value
=
"卸车时间"
,
example
=
""
)
private
LocalDateTime
unloadTime
;
@ApiModelProperty
(
value
=
"完成时间"
,
example
=
""
)
private
LocalDateTime
finishTime
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/controller/pc/linewarn/LineWarnTraceController.java
0 → 100644
浏览文件 @
c397cf18
package
com
.
clx
.
performance
.
controller
.
pc
.
linewarn
;
import
com.clx.performance.service.linewarn.LineWarnTraceService
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTraceVO
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.RestController
;
import
javax.validation.constraints.NotNull
;
@Slf4j
@RestController
@Validated
@Api
(
tags
=
"线路预警-轨迹信息"
)
@RequestMapping
(
value
=
"/pc/lineWarnInfo"
)
public
class
LineWarnTraceController
{
@Autowired
private
LineWarnTraceService
lineWarnTraceService
;
@ApiOperation
(
value
=
"获取预警信息"
,
notes
=
"<br>By:艾庆国"
)
@GetMapping
(
"/getTraceInfo"
)
public
Result
<
LineWarnTraceVO
>
getTraceInfo
(
@NotNull
(
message
=
"货单编号不能为空"
)
@Validated
String
orderGoodsNo
)
{
return
Result
.
ok
(
lineWarnTraceService
.
getTraceInfo
(
orderGoodsNo
));
}
}
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
c397cf18
...
...
@@ -173,4 +173,11 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Integer
unloadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
);
List
<
OrderChild
>
listByChildNoList
(
List
<
String
>
childNoList
);
List
<
OrderChild
>
listByOrderGoodsNoAndStatus
(
String
orderGoodsNo
,
List
<
Integer
>
statusList
);
BigDecimal
sumLoadWeightByOrderGoodsNo
(
String
orderGoodsNo
);
BigDecimal
sumUnloadWeightByOrderGoodsNo
(
String
orderGoodsNo
);
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
c397cf18
...
...
@@ -552,4 +552,28 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
sendSystemAddressId
,
receiveSystemAddressId
,
beginTime
);
}
@Override
public
List
<
OrderChild
>
listByChildNoList
(
List
<
String
>
childNoList
)
{
return
list
(
lQrWrapper
().
in
(
OrderChild
::
getChildNo
,
childNoList
));
}
@Override
public
List
<
OrderChild
>
listByOrderGoodsNoAndStatus
(
String
orderGoodsNo
,
List
<
Integer
>
statusList
)
{
return
list
(
lQrWrapper
()
.
eq
(
OrderChild
::
getOrderGoodsNo
,
orderGoodsNo
)
.
in
(
OrderChild
::
getStatus
,
statusList
)
);
}
@Override
public
BigDecimal
sumLoadWeightByOrderGoodsNo
(
String
orderGoodsNo
)
{
return
baseMapper
.
sumLoadWeightByOrderGoodsNo
(
orderGoodsNo
);
}
@Override
public
BigDecimal
sumUnloadWeightByOrderGoodsNo
(
String
orderGoodsNo
)
{
return
baseMapper
.
sumUnloadWeightByOrderGoodsNo
(
orderGoodsNo
);
}
}
performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java
浏览文件 @
c397cf18
...
...
@@ -114,4 +114,10 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
Integer
unloadTimeAvg
(
Integer
sendAddressId
,
Integer
receiveAddressId
,
Integer
sendSystemAddressId
,
Integer
receiveSystemAddressId
,
String
beginTime
);
@Select
(
"select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)"
)
BigDecimal
sumLoadWeightByOrderGoodsNo
(
String
orderGoodsNo
);
@Select
(
"select sum(weight) from order_child where order_goods_no=#{orderGoodsNo} and status in(80,90,100)"
)
BigDecimal
sumUnloadWeightByOrderGoodsNo
(
String
orderGoodsNo
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/service/impl/linewarn/LineWarnTraceServiceImpl.java
0 → 100644
浏览文件 @
c397cf18
package
com
.
clx
.
performance
.
service
.
impl
.
linewarn
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.enums.DriverTruckEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.ResultEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.service.linewarn.LineWarnTraceService
;
import
com.clx.performance.service.trace.TruckTraceService
;
import
com.clx.performance.struct.OrderChildStruct
;
import
com.clx.performance.struct.OrderGoodsStruct
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTraceVO
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTruckTraceInfoVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.List
;
@Slf4j
@Service
public
class
LineWarnTraceServiceImpl
implements
LineWarnTraceService
{
// 最近位置时间
private
static
final
Integer
LAST_POSITION_TIME
=
60
;
@Autowired
private
OrderGoodsDao
orderGoodsDao
;
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
OrderGoodsStruct
orderGoodsStruct
;
@Autowired
private
OrderChildStruct
orderChildStruct
;
@Autowired
private
TruckTraceService
truckTraceService
;
@Override
public
LineWarnTraceVO
getTraceInfo
(
String
orderGoodsNo
)
{
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderGoodsNo
).
orElseThrow
(
ResultEnum
.
DATA_NOT_FIND
);
LineWarnTraceVO
result
=
orderGoodsStruct
.
convertLineWarnTraceVO
(
orderGoods
);
// 装卸吨数
BigDecimal
loadWeight
=
orderChildDao
.
sumLoadWeightByOrderGoodsNo
(
orderGoodsNo
);
BigDecimal
unloadWeight
=
orderChildDao
.
sumUnloadWeightByOrderGoodsNo
(
orderGoodsNo
);
result
.
setLoadWeight
(
loadWeight
==
null
?
BigDecimal
.
ZERO
:
loadWeight
);
result
.
setUnloadWeight
(
unloadWeight
==
null
?
BigDecimal
.
ZERO
:
unloadWeight
);
// 车辆信息
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
listByOrderGoodsNoAndStatus
(
orderGoods
.
getOrderGoodsNo
(),
Arrays
.
asList
(
OrderChildEnum
.
Status
.
CREATED
.
getCode
(),
OrderChildEnum
.
Status
.
PAY
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_RECEIVE
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_RECEIVE
.
getCode
()
)
);
List
<
LineWarnTruckTraceInfoVO
>
truckList
=
orderChildStruct
.
convertLineWarnTruckTraceInfoVO
(
orderChildList
);
LocalDateTime
now
=
LocalDateTime
.
now
();
// 查询最近位置
for
(
LineWarnTruckTraceInfoVO
item
:
truckList
)
{
BigDecimal
[]
currentPosition
=
truckTraceService
.
getCurrentPosition
(
item
.
getTruckNo
(),
item
.
getDriverUserNo
(),
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusMinutes
(
LAST_POSITION_TIME
)));
if
(
currentPosition
!=
null
){
item
.
setLongitude
(
currentPosition
[
0
]);
item
.
setLatitude
(
currentPosition
[
1
]);
}
item
.
setTruckStatus
(
DriverTruckEnum
.
TraceTruckStatus
.
HEAVY
.
getCode
());
if
(
item
.
getFinishTime
()
!=
null
){
if
(
item
.
getFinishTime
().
isBefore
(
now
)){
item
.
setTruckStatus
(
DriverTruckEnum
.
TraceTruckStatus
.
EMPTY
.
getCode
());}
}
else
if
(
item
.
getUnloadTime
()
!=
null
){
if
(
item
.
getUnloadTime
().
isBefore
(
now
)){
item
.
setTruckStatus
(
DriverTruckEnum
.
TraceTruckStatus
.
EMPTY
.
getCode
());}
}
}
result
.
setTruckList
(
truckList
);
return
result
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/trace/TruckTraceServiceImpl.java
浏览文件 @
c397cf18
...
...
@@ -32,6 +32,8 @@ import java.util.List;
public
class
TruckTraceServiceImpl
implements
TruckTraceService
{
// 停留速度
private
static
final
Integer
PARK_SPEED
=
5
;
// 最近位置时间
private
static
final
Integer
LAST_POSITION_TIME
=
5
;
@Autowired
private
TruckTraceESPlusMapper
truckTraceESPlusMapper
;
...
...
@@ -239,7 +241,12 @@ public class TruckTraceServiceImpl implements TruckTraceService {
@Override
public
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
)
{
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusMinutes
(
5
));
String
beginTime
=
LocalDateTimeUtils
.
formatTime
(
LocalDateTime
.
now
().
minusMinutes
(
LAST_POSITION_TIME
));
return
getCurrentPosition
(
truckNo
,
userNo
,
beginTime
);
}
@Override
public
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
,
String
beginTime
)
{
String
endTime
=
LocalDateTimeUtils
.
formatTime
();
// 车辆
...
...
performance-web/src/main/java/com/clx/performance/service/linewarn/LineWarnTraceService.java
0 → 100644
浏览文件 @
c397cf18
package
com
.
clx
.
performance
.
service
.
linewarn
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTraceVO
;
public
interface
LineWarnTraceService
{
LineWarnTraceVO
getTraceInfo
(
String
orderGoodsNo
);
}
performance-web/src/main/java/com/clx/performance/service/trace/TruckTraceService.java
浏览文件 @
c397cf18
...
...
@@ -19,6 +19,8 @@ public interface TruckTraceService {
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
);
BigDecimal
[]
getCurrentPosition
(
String
truckNo
,
Long
userNo
,
String
beginTime
);
int
getParkTime
(
String
truckNo
,
Long
userNo
);
...
...
performance-web/src/main/java/com/clx/performance/struct/OrderChildStruct.java
浏览文件 @
c397cf18
...
...
@@ -9,6 +9,7 @@ import com.clx.performance.vo.app.OrderChildVO;
import
com.clx.performance.vo.app.owner.OwnerOrderChildVO
;
import
com.clx.performance.vo.pc.CarrierOrderChildDetailVO
;
import
com.clx.performance.vo.pc.OrderChildPCVO
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTruckTraceInfoVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
...
...
@@ -34,4 +35,7 @@ public interface OrderChildStruct {
List
<
OwnerOrderChildVO
>
convertOwnerOrderChildVOList
(
List
<
OrderChild
>
list
);
List
<
LineWarnTruckTraceInfoVO
>
convertLineWarnTruckTraceInfoVO
(
List
<
OrderChild
>
list
);
}
performance-web/src/main/java/com/clx/performance/struct/OrderGoodsStruct.java
浏览文件 @
c397cf18
...
...
@@ -3,6 +3,7 @@ package com.clx.performance.struct;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.vo.feign.OrderGoodsFeignVO
;
import
com.clx.performance.vo.pc.OrderGoodsVO
;
import
com.clx.performance.vo.pc.linewarn.LineWarnTraceVO
;
import
com.msl.common.utils.DateStructUtil
;
import
com.msl.common.utils.DateUtils
;
import
org.mapstruct.Mapper
;
...
...
@@ -16,4 +17,7 @@ public interface OrderGoodsStruct {
OrderGoodsVO
convert
(
OrderGoods
orderGoods
);
List
<
OrderGoodsFeignVO
>
convertList
(
List
<
OrderGoods
>
orderGoods
);
LineWarnTraceVO
convertLineWarnTraceVO
(
OrderGoods
orderGoods
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论