Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
9cd7e2d6
Commit
9cd7e2d6
authored
Sep 13, 2023
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
车辆过滤无效里程优化
parent
502e67e9
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
231 additions
and
220 deletions
+231
-220
WlCarMileage.java
...a/com/yeejoin/equipmanage/common/entity/WlCarMileage.java
+2
-0
WlCarMileageController.java
...eejoin/equipmanage/controller/WlCarMileageController.java
+211
-209
WlCarMileageServiceImpl.java
...oin/equipmanage/service/impl/WlCarMileageServiceImpl.java
+18
-11
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/entity/WlCarMileage.java
View file @
9cd7e2d6
package
com
.
yeejoin
.
equipmanage
.
common
.
entity
;
package
com
.
yeejoin
.
equipmanage
.
common
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yeejoin.equipmanage.common.entity.publics.BaseEntity
;
import
com.yeejoin.equipmanage.common.entity.publics.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -20,6 +21,7 @@ import java.util.Date;
...
@@ -20,6 +21,7 @@ import java.util.Date;
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"wl_car_mileage"
)
@ApiModel
(
value
=
"WlCarMileage对象"
,
description
=
"车量里程表"
)
@ApiModel
(
value
=
"WlCarMileage对象"
,
description
=
"车量里程表"
)
public
class
WlCarMileage
extends
BaseEntity
{
public
class
WlCarMileage
extends
BaseEntity
{
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/controller/WlCarMileageController.java
View file @
9cd7e2d6
...
@@ -11,6 +11,7 @@ import com.yeejoin.equipmanage.service.IWlCarMileageService;
...
@@ -11,6 +11,7 @@ import com.yeejoin.equipmanage.service.IWlCarMileageService;
import
com.yeejoin.equipmanage.utils.BeanUtil
;
import
com.yeejoin.equipmanage.utils.BeanUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -36,234 +37,235 @@ import java.util.*;
...
@@ -36,234 +37,235 @@ import java.util.*;
@Api
(
tags
=
"车量里程表Api"
)
@Api
(
tags
=
"车量里程表Api"
)
@RequestMapping
(
value
=
"/wl-car-mileage"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
@RequestMapping
(
value
=
"/wl-car-mileage"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
class
WlCarMileageController
{
public
class
WlCarMileageController
{
@Value
(
"${car.max.speed:100}"
)
@Autowired
private
Integer
CAR_MAX_SPEED
;
IWlCarMileageService
iWlCarMileageService
;
@Value
(
"${car.max.speed:100}"
)
private
Integer
CAR_MAX_SPEED
;
@Autowired
/**
IWlCarMileageService
iWlCarMileageService
;
* 新增车量里程表
*
* @return
*/
@RequestMapping
(
value
=
"/save"
,
method
=
RequestMethod
.
POST
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增车量里程表"
,
notes
=
"新增车量里程表"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
boolean
saveWlCarMileage
(
HttpServletRequest
request
,
@RequestBody
WlCarMileage
wlCarMileage
)
{
return
iWlCarMileageService
.
save
(
wlCarMileage
);
}
/**
/**
* 新增车量里程表
* 根据id删除
*
*
* @return
* @param id
*/
* @return
@RequestMapping
(
value
=
"/save"
,
method
=
RequestMethod
.
POST
)
*/
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增车量里程表"
,
notes
=
"新增车量里程表"
)
@RequestMapping
(
value
=
"/{id}"
,
method
=
RequestMethod
.
DELETE
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据id删除"
,
notes
=
"根据id删除"
)
public
boolean
saveWlCarMileage
(
HttpServletRequest
request
,
@RequestBody
WlCarMileage
wlCarMileage
)
{
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
return
iWlCarMileageService
.
save
(
wlCarMileage
);
public
boolean
deleteById
(
HttpServletRequest
request
,
@PathVariable
Long
id
)
{
}
return
iWlCarMileageService
.
removeById
(
id
);
}
/**
/**
* 根据id删除
* 修改车量里程表
*
*
* @param id
* @return
* @return
*/
*/
@RequestMapping
(
value
=
"/updateById"
,
method
=
RequestMethod
.
PUT
)
@RequestMapping
(
value
=
"/{id}"
,
method
=
RequestMethod
.
DELETE
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"修改车量里程表"
,
notes
=
"修改车量里程表"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据id删除"
,
notes
=
"根据id删除"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
boolean
updateByIdWlCarMileage
(
HttpServletRequest
request
,
@RequestBody
WlCarMileage
wlCarMileage
)
{
public
boolean
deleteById
(
HttpServletRequest
request
,
@PathVariable
Long
id
)
{
return
iWlCarMileageService
.
updateById
(
wlCarMileage
);
return
iWlCarMileageService
.
removeById
(
id
);
}
}
/**
/**
* 修改车量里程表
* 根据id查询
*
*
* @return
* @param id
*/
* @return
@RequestMapping
(
value
=
"/updateById"
,
method
=
RequestMethod
.
PUT
)
*/
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"修改车量里程表"
,
notes
=
"修改车量里程表"
)
@RequestMapping
(
value
=
"/{id}"
,
method
=
RequestMethod
.
GET
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据id查询"
,
notes
=
"根据id查询"
)
public
boolean
updateByIdWlCarMileage
(
HttpServletRequest
request
,
@RequestBody
WlCarMileage
wlCarMileage
)
{
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
return
iWlCarMileageService
.
updateById
(
wlCarMileage
);
public
WlCarMileage
selectById
(
HttpServletRequest
request
,
@PathVariable
Long
id
)
{
}
return
iWlCarMileageService
.
getById
(
id
);
}
/**
/**
* 根据id查询
* 列表分页查询
*
*
* @param id
* @return
* @return
*/
*/
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/{id}"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表分页查询"
,
notes
=
"列表分页查询"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据id查询"
,
notes
=
"根据id查询"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
IPage
<
WlCarMileage
>
listPage
(
String
pageNum
,
String
pageSize
,
WlCarMileage
wlCarMileage
)
{
public
WlCarMileage
selectById
(
HttpServletRequest
request
,
@PathVariable
Long
id
)
{
Page
<
WlCarMileage
>
pageBean
;
return
iWlCarMileageService
.
getById
(
id
);
QueryWrapper
<
WlCarMileage
>
wlCarMileageQueryWrapper
=
new
QueryWrapper
<>();
}
Class
<?
extends
WlCarMileage
>
aClass
=
wlCarMileage
.
getClass
();
Arrays
.
stream
(
aClass
.
getDeclaredFields
()).
forEach
(
field
->
{
try
{
field
.
setAccessible
(
true
);
Object
o
=
field
.
get
(
wlCarMileage
);
if
(
o
!=
null
)
{
Class
<?>
type
=
field
.
getType
();
String
name
=
NameUtils
.
camel2Underline
(
field
.
getName
());
if
(
type
.
equals
(
Integer
.
class
))
{
Integer
fileValue
=
(
Integer
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
if
(
type
.
equals
(
Long
.
class
))
{
Long
fileValue
=
(
Long
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
if
(
type
.
equals
(
String
.
class
))
{
String
fileValue
=
(
String
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
if
(
type
.
equals
(
Date
.
class
))
{
Date
fileValue
=
(
Date
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
{
String
fileValue
=
(
String
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
}
}
catch
(
Exception
e
)
{
}
});
IPage
<
WlCarMileage
>
page
;
if
(
StringUtils
.
isBlank
(
pageNum
)
||
StringUtils
.
isBlank
(
pageSize
))
{
pageBean
=
new
Page
<>(
0
,
Long
.
MAX_VALUE
);
}
else
{
pageBean
=
new
Page
<>(
Integer
.
parseInt
(
pageNum
),
Integer
.
parseInt
(
pageSize
));
}
page
=
iWlCarMileageService
.
page
(
pageBean
,
wlCarMileageQueryWrapper
);
return
page
;
}
/**
/**
* 列表分页查询
* 列表分页查询
*
*
* @return
* @return
*/
*/
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/page"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表分页查询"
,
notes
=
"列表分页查询"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表分页查询"
,
notes
=
"列表分页查询"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
IPage
<
WlCarMileage
>
listPage
(
String
pageNum
,
String
pageSize
,
WlCarMileage
wlCarMileage
)
{
public
CarTravelDto
page
(
Integer
pageNum
,
Integer
pageSize
,
WlCarMileage
wlCarMileage
)
{
Page
<
WlCarMileage
>
pageBean
;
Page
<
WlCarMileage
>
pageBean
;
QueryWrapper
<
WlCarMileage
>
wlCarMileageQueryWrapper
=
new
QueryWrapper
<>();
if
(
pageNum
==
null
||
pageSize
==
null
)
{
Class
<?
extends
WlCarMileage
>
aClass
=
wlCarMileage
.
getClass
();
pageBean
=
new
Page
<>(
0
,
Long
.
MAX_VALUE
);
Arrays
.
stream
(
aClass
.
getDeclaredFields
()).
forEach
(
field
->
{
}
else
{
try
{
pageBean
=
new
Page
<>(
pageNum
,
pageSize
);
field
.
setAccessible
(
true
);
}
Object
o
=
field
.
get
(
wlCarMileage
);
//只查询已完成的轨迹
if
(
o
!=
null
)
{
wlCarMileage
.
setComplete
(
true
);
Class
<?>
type
=
field
.
getType
();
Page
<
WlCarMileage
>
page
=
iWlCarMileageService
.
page
(
pageBean
,
wlCarMileage
);
String
name
=
NameUtils
.
camel2Underline
(
field
.
getName
());
if
(
type
.
equals
(
Integer
.
class
))
{
Integer
fileValue
=
(
Integer
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
if
(
type
.
equals
(
Long
.
class
))
{
Long
fileValue
=
(
Long
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
if
(
type
.
equals
(
String
.
class
))
{
String
fileValue
=
(
String
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
if
(
type
.
equals
(
Date
.
class
))
{
Date
fileValue
=
(
Date
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
else
{
String
fileValue
=
(
String
)
field
.
get
(
wlCarMileage
);
wlCarMileageQueryWrapper
.
eq
(
name
,
fileValue
);
}
}
}
catch
(
Exception
e
)
{
}
});
IPage
<
WlCarMileage
>
page
;
if
(
StringUtils
.
isBlank
(
pageNum
)
||
StringUtils
.
isBlank
(
pageSize
))
{
pageBean
=
new
Page
<>(
0
,
Long
.
MAX_VALUE
);
}
else
{
pageBean
=
new
Page
<>(
Integer
.
parseInt
(
pageNum
),
Integer
.
parseInt
(
pageSize
));
}
page
=
iWlCarMileageService
.
page
(
pageBean
,
wlCarMileageQueryWrapper
);
return
page
;
}
/**
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"YYYY-MM-dd HH:mm:ss"
);
* 列表分页查询
CarTravelDto
carTravelDto
=
new
CarTravelDto
();
*
carTravelDto
.
setTotal
(
page
.
getTotal
());
* @return
long
totalTime
=
0
;
*/
double
totalTravel
=
0
;
@RequestMapping
(
value
=
"/page"
,
method
=
RequestMethod
.
GET
)
List
<
WlCarMileageDto
>
list
=
new
ArrayList
<
WlCarMileageDto
>();
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表分页查询"
,
notes
=
"列表分页查询"
)
for
(
WlCarMileage
wl
:
page
.
getRecords
())
{
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
WlCarMileageDto
wlCarMileageDto
=
new
WlCarMileageDto
();
public
CarTravelDto
page
(
Integer
pageNum
,
Integer
pageSize
,
WlCarMileage
wlCarMileage
)
{
wl
.
setTime
(
millisToStringShort
(
wl
.
getTakeTime
()));
Page
<
WlCarMileage
>
pageBean
;
totalTravel
+=
wl
.
getTravel
();
if
(
pageNum
==
null
||
pageSize
==
null
)
{
totalTime
+=
wl
.
getTakeTime
();
pageBean
=
new
Page
<>(
0
,
Long
.
MAX_VALUE
);
BeanUtil
.
copyPropertiesIgnoreNull
(
wl
,
wlCarMileageDto
);
}
else
{
wlCarMileageDto
.
setStartTime
(
sdf
.
format
(
wl
.
getStartTime
()));
pageBean
=
new
Page
<>(
pageNum
,
pageSize
);
wlCarMileageDto
.
setEndTime
(
sdf
.
format
(
wl
.
getEndTime
()));
}
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
//只查询已完成的轨迹
if
((!
ObjectUtils
.
isEmpty
(
wl
.
getTakeTime
())
&&
(!
ObjectUtils
.
isEmpty
(
wl
.
getTravel
())
&&
(
wl
.
getTravel
()
/
(
wl
.
getTakeTime
()
/
3600000
))
<
CAR_MAX_SPEED
)))
wlCarMileage
.
setComplete
(
true
);
{
Page
<
WlCarMileage
>
page
=
iWlCarMileageService
.
page
(
pageBean
,
wlCarMileage
);
list
.
add
(
wlCarMileageDto
);
}
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"YYYY-MM-dd HH:mm:ss"
);
}
CarTravelDto
carTravelDto
=
new
CarTravelDto
();
carTravelDto
.
setRecords
(
list
);
carTravelDto
.
setTotal
(
page
.
getTotal
());
carTravelDto
.
setTotal
(
Long
.
valueOf
(
list
.
size
()));
long
totalTime
=
0
;
double
totalTravel
=
0
;
List
<
WlCarMileageDto
>
list
=
new
ArrayList
<
WlCarMileageDto
>();
for
(
WlCarMileage
wl
:
page
.
getRecords
())
{
WlCarMileageDto
wlCarMileageDto
=
new
WlCarMileageDto
();
wl
.
setTime
(
millisToStringShort
(
wl
.
getTakeTime
()));
totalTravel
+=
wl
.
getTravel
();
totalTime
+=
wl
.
getTakeTime
();
BeanUtil
.
copyPropertiesIgnoreNull
(
wl
,
wlCarMileageDto
);
wlCarMileageDto
.
setStartTime
(
sdf
.
format
(
wl
.
getStartTime
()));
wlCarMileageDto
.
setEndTime
(
sdf
.
format
(
wl
.
getEndTime
()));
//判断当前车辆全程是否异常,如果时速小于阈值 则对数据进行返回 否则不予返回
if
((
wlCarMileage
.
getTravel
()/(
wlCarMileage
.
getTakeTime
()/
3600000
))<
CAR_MAX_SPEED
){
list
.
add
(
wlCarMileageDto
);
}
}
carTravelDto
.
setRecords
(
list
);
// // 初始化format格式
// // 初始化format格式
// SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
// SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
// // 设置时区,跳过此步骤会默认设置为"GMT+08:00" 得到的结果会多出来8个小时
// // 设置时区,跳过此步骤会默认设置为"GMT+08:00" 得到的结果会多出来8个小时
// dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
// dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
//
//
// String timeStr = dateFormat.format(totalTime);
// String timeStr = dateFormat.format(totalTime);
carTravelDto
.
setTotalTime
(
millisToStringShort
(
totalTime
));
carTravelDto
.
setTotalTime
(
millisToStringShort
(
totalTime
));
BigDecimal
two
=
BigDecimal
.
valueOf
(
totalTravel
);
BigDecimal
two
=
BigDecimal
.
valueOf
(
totalTravel
);
double
result
=
two
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
double
result
=
two
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
carTravelDto
.
setTotalTravel
(
result
);
carTravelDto
.
setTotalTravel
(
result
);
return
carTravelDto
;
return
carTravelDto
;
}
}
public
String
millisToStringShort
(
long
millis
)
{
public
String
millisToStringShort
(
long
millis
)
{
StringBuffer
strBuilder
=
new
StringBuffer
();
StringBuffer
strBuilder
=
new
StringBuffer
();
long
temp
=
millis
;
long
temp
=
millis
;
long
hper
=
60
*
60
*
1000
;
long
hper
=
60
*
60
*
1000
;
long
mper
=
60
*
1000
;
long
mper
=
60
*
1000
;
long
sper
=
1000
;
long
sper
=
1000
;
if
(
temp
/
hper
>
0
)
{
if
(
temp
/
hper
>
0
)
{
if
((
temp
/
hper
)
<
10
)
{
if
((
temp
/
hper
)
<
10
)
{
strBuilder
.
append
(
0
);
strBuilder
.
append
(
0
);
}
}
strBuilder
.
append
(
temp
/
hper
).
append
(
":"
);
strBuilder
.
append
(
temp
/
hper
).
append
(
":"
);
}
else
{
}
else
{
strBuilder
.
append
(
"00"
).
append
(
":"
);
strBuilder
.
append
(
"00"
).
append
(
":"
);
}
}
temp
=
temp
%
hper
;
temp
=
temp
%
hper
;
if
(
temp
/
mper
>
0
)
{
if
(
temp
/
mper
>
0
)
{
if
((
temp
/
mper
)
<
10
)
{
if
((
temp
/
mper
)
<
10
)
{
strBuilder
.
append
(
0
);
strBuilder
.
append
(
0
);
}
}
strBuilder
.
append
(
temp
/
mper
).
append
(
":"
);
strBuilder
.
append
(
temp
/
mper
).
append
(
":"
);
}
else
{
}
else
{
strBuilder
.
append
(
"00"
).
append
(
":"
);
strBuilder
.
append
(
"00"
).
append
(
":"
);
}
}
temp
=
temp
%
mper
;
temp
=
temp
%
mper
;
if
(
temp
/
sper
>
0
)
{
if
(
temp
/
sper
>
0
)
{
if
((
temp
/
sper
)
<
10
)
{
if
((
temp
/
sper
)
<
10
)
{
strBuilder
.
append
(
0
);
strBuilder
.
append
(
0
);
}
}
strBuilder
.
append
(
temp
/
sper
);
strBuilder
.
append
(
temp
/
sper
);
}
else
{
}
else
{
strBuilder
.
append
(
"00"
);
strBuilder
.
append
(
"00"
);
}
}
return
strBuilder
.
toString
();
return
strBuilder
.
toString
();
}
}
/**
/**
* 获取轨迹
* 获取轨迹
*
*
* @return
* @return
*/
*/
@RequestMapping
(
value
=
"/travel"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/travel"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取轨迹"
,
notes
=
"获取轨迹"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取轨迹"
,
notes
=
"获取轨迹"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
List
<
Coordinate
>
travel
(
long
id
)
{
public
List
<
Coordinate
>
travel
(
long
id
)
{
return
iWlCarMileageService
.
getCoordinateList
(
id
);
return
iWlCarMileageService
.
getCoordinateList
(
id
);
}
}
/**
/**
* 获取日历
* 获取日历
*
*
* @return
* @return
*/
*/
@RequestMapping
(
value
=
"/calendar"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/calendar"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取日历"
,
notes
=
"获取日历"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"获取日历"
,
notes
=
"获取日历"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
Map
<
String
,
Boolean
>
calendar
(
@RequestParam
(
"id"
)
long
id
,
public
Map
<
String
,
Boolean
>
calendar
(
@RequestParam
(
"id"
)
long
id
,
@DateTimeFormat
(
pattern
=
"yyyy-MM"
)
@RequestParam
(
"date"
)
Date
date
)
{
@DateTimeFormat
(
pattern
=
"yyyy-MM"
)
@RequestParam
(
"date"
)
Date
date
)
{
return
iWlCarMileageService
.
getCalender
(
id
,
date
);
return
iWlCarMileageService
.
getCalender
(
id
,
date
);
}
}
/**
/**
* 里程切分
* 里程切分
*/
*/
@RequestMapping
(
value
=
"/mileageSegmentation"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/mileageSegmentation"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"里程切分"
,
notes
=
"里程切分"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"里程切分"
,
notes
=
"里程切分"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
public
void
mileageSegmentation
()
{
public
void
mileageSegmentation
()
{
iWlCarMileageService
.
mileageSegmentation
();
iWlCarMileageService
.
mileageSegmentation
();
}
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/WlCarMileageServiceImpl.java
View file @
9cd7e2d6
...
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.yeejoin.equipmanage.common.entity.Car
;
import
com.yeejoin.equipmanage.common.entity.Car
;
import
com.yeejoin.equipmanage.common.entity.WlCarMileage
;
import
com.yeejoin.equipmanage.common.entity.WlCarMileage
;
import
com.yeejoin.equipmanage.common.utils.CoordinateUtil
;
import
com.yeejoin.equipmanage.common.utils.CoordinateUtil
;
import
com.yeejoin.equipmanage.common.utils.DateUtils
;
import
com.yeejoin.equipmanage.common.utils.HttpUtil
;
import
com.yeejoin.equipmanage.common.utils.HttpUtil
;
import
com.yeejoin.equipmanage.controller.Coordinate
;
import
com.yeejoin.equipmanage.controller.Coordinate
;
import
com.yeejoin.equipmanage.fegin.IotFeign
;
import
com.yeejoin.equipmanage.fegin.IotFeign
;
...
@@ -45,6 +46,7 @@ import java.text.ParseException;
...
@@ -45,6 +46,7 @@ import java.text.ParseException;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
* 车量里程表 服务实现类
* 车量里程表 服务实现类
...
@@ -58,7 +60,8 @@ import java.util.*;
...
@@ -58,7 +60,8 @@ import java.util.*;
@EnableAsync
@EnableAsync
public
class
WlCarMileageServiceImpl
extends
ServiceImpl
<
WlCarMileageMapper
,
WlCarMileage
>
public
class
WlCarMileageServiceImpl
extends
ServiceImpl
<
WlCarMileageMapper
,
WlCarMileage
>
implements
IWlCarMileageService
{
implements
IWlCarMileageService
{
@Value
(
"${car.max.speed:100}"
)
private
Integer
CAR_MAX_SPEED
;
@Autowired
@Autowired
IotFeign
iotFeign
;
IotFeign
iotFeign
;
...
@@ -241,19 +244,23 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -241,19 +244,23 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
c
.
setTime
(
date
);
c
.
setTime
(
date
);
c
.
add
(
Calendar
.
MONTH
,
1
);
c
.
add
(
Calendar
.
MONTH
,
1
);
daylist
.
addAll
(
getDayByMonth
(
c
.
getTime
()));
daylist
.
addAll
(
getDayByMonth
(
c
.
getTime
()));
List
<
Map
<
String
,
Object
>>
hasList
=
this
.
listMaps
(
new
QueryWrapper
<
WlCarMileage
>()
//
List<Map<String, Object>> hasList = this.listMaps(new QueryWrapper<WlCarMileage>()
.
select
(
"COUNT(1) AS count,date"
).
lambda
().
eq
(
WlCarMileage:
:
getIotCode
,
car
.
getIotCode
())
//
.select("COUNT(1) AS count,date").lambda().eq(WlCarMileage::getIotCode, car.getIotCode())
.
between
(
WlCarMileage:
:
getDate
,
daylist
.
get
(
0
),
daylist
.
get
(
daylist
.
size
()
-
1
))
//
.between(WlCarMileage::getDate, daylist.get(0), daylist.get(daylist.size() - 1))
.
isNotNull
(
WlCarMileage:
:
getEndTime
)
//
.isNotNull(WlCarMileage::getEndTime)
.
ge
(
WlCarMileage:
:
getTravel
,
0.5
)
//
.ge(WlCarMileage::getTravel, 0.5)
.
groupBy
(
WlCarMileage:
:
getDate
));
//
.groupBy(WlCarMileage::getDate));
Map
<
String
,
Object
>
hasMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
hasMap
=
new
HashMap
<>();
for
(
Map
<
String
,
Object
>
mapOne
:
hasList
)
{
List
<
WlCarMileage
>
wlCarMileageList
=
this
.
list
(
new
QueryWrapper
<
WlCarMileage
>().
eq
(
"iot_code"
,
car
.
getIotCode
())
hasMap
.
put
(
String
.
valueOf
(
mapOne
.
get
(
"date"
)),
mapOne
.
get
(
"count"
));
.
between
(
"date"
,
daylist
.
get
(
0
),
daylist
.
get
(
daylist
.
size
()
-
1
))
}
.
isNotNull
(
"end_time"
)
.
ge
(
"travel"
,
0.5
)
.
groupBy
(
"date"
));
List
<
WlCarMileage
>
wlCarMileageListActiveData
=
wlCarMileageList
.
stream
().
filter
(
wlCarMileage
->
(!
ObjectUtils
.
isEmpty
(
wlCarMileage
.
getTakeTime
())
&&
(!
ObjectUtils
.
isEmpty
(
wlCarMileage
.
getTravel
())
&&
(
wlCarMileage
.
getTravel
()
/
(
wlCarMileage
.
getTakeTime
()
/
3600000
))
<
CAR_MAX_SPEED
))).
collect
(
Collectors
.
toList
());
List
<
String
>
activeDateList
=
wlCarMileageListActiveData
.
stream
().
map
(
wlCarMileage
->
String
.
valueOf
(
DateUtils
.
convertDateToString
(
wlCarMileage
.
getDate
(),
DateUtils
.
DATE_PATTERN
))).
collect
(
Collectors
.
toList
());
for
(
String
day
:
daylist
)
{
for
(
String
day
:
daylist
)
{
boolean
has
=
false
;
boolean
has
=
false
;
if
(
hasMap
.
containsKey
(
day
))
{
if
(
activeDateList
.
contains
(
day
))
{
has
=
true
;
has
=
true
;
}
}
map
.
put
(
day
,
has
);
map
.
put
(
day
,
has
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment