Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
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
youjj
cloud-platform
Commits
08b1fcd5
Commit
08b1fcd5
authored
Oct 09, 2019
by
hanfeng
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/base-modify' into base-modify
parents
31db0fdc
dc69c356
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
319 additions
and
121 deletions
+319
-121
BaseOrderMapper.xml
...rder-server/src/main/resources/mapper/BaseOrderMapper.xml
+3
-0
DepartureLogVo.java
...n/java/com/xxfc/platform/vehicle/pojo/DepartureLogVo.java
+10
-0
VehicleCountRecordBiz.java
.../com/xxfc/platform/vehicle/biz/VehicleCountRecordBiz.java
+229
-119
VehicleDepartureService.java
...om/xxfc/platform/vehicle/biz/VehicleDepartureService.java
+5
-0
VehicleCountRecordMapper.java
...xfc/platform/vehicle/mapper/VehicleCountRecordMapper.java
+1
-0
VehicleDepartureLogMapper.java
...fc/platform/vehicle/mapper/VehicleDepartureLogMapper.java
+3
-0
VehicleCountRecordController.java
...c/platform/vehicle/rest/VehicleCountRecordController.java
+7
-1
VehicleCountRecordMapper.xml
...er/src/main/resources/mapper/VehicleCountRecordMapper.xml
+8
-0
VehicleDepartureLogMapper.xml
...r/src/main/resources/mapper/VehicleDepartureLogMapper.xml
+53
-1
No files found.
xx-order/xx-order-server/src/main/resources/mapper/BaseOrderMapper.xml
View file @
08b1fcd5
...
...
@@ -130,6 +130,9 @@
</foreach>
</if>
<if
test=
"userId != null"
>
and b.user_id = #{userId}
</if>
<if
test=
"status != null"
>
and b.status = #{status}
</if>
...
...
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/pojo/DepartureLogVo.java
0 → 100644
View file @
08b1fcd5
package
com
.
xxfc
.
platform
.
vehicle
.
pojo
;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.entity.VehicleDepartureLog
;
import
lombok.Data
;
@Data
public
class
DepartureLogVo
extends
VehicleDepartureLog
{
VehicleBookRecord
vehicleBookRecord
;
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleCountRecordBiz.java
View file @
08b1fcd5
...
...
@@ -15,6 +15,7 @@ import com.xxfc.platform.vehicle.constant.VehicleCountType;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.entity.VehicleCountRecord
;
import
com.xxfc.platform.vehicle.mapper.VehicleCountRecordMapper
;
import
com.xxfc.platform.vehicle.pojo.DepartureLogVo
;
import
com.xxfc.platform.vehicle.pojo.ExcelParamDto
;
import
com.xxfc.platform.vehicle.pojo.VehicleBookRecordVo
;
import
com.xxfc.platform.vehicle.util.excel.ExcelExport
;
...
...
@@ -68,8 +69,8 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
if
(
StringUtils
.
isBlank
(
vehicleCountRecord
.
getEndTime
()))
{
vehicleCountRecord
.
setEndTime
(
vehicleCountRecord
.
getStartTime
());
}
map
.
put
(
"startTime"
,
DateTime
.
parse
(
vehicleCountRecord
.
getStartTime
(),
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
map
.
put
(
"endTime"
,
DateTime
.
parse
(
vehicleCountRecord
.
getEndTime
(),
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
map
.
put
(
"startTime"
,
DateTime
.
parse
(
vehicleCountRecord
.
getStartTime
(),
DEFAULT_DATE_TIME_FORMATTER
).
getMillis
());
map
.
put
(
"endTime"
,
DateTime
.
parse
(
vehicleCountRecord
.
getEndTime
(),
DEFAULT_DATE_TIME_FORMATTER
).
getMillis
());
}
if
(
MapUtils
.
isNotEmpty
(
map
))
{
...
...
@@ -82,6 +83,29 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
return
ObjectRestResponse
.
succ
(
new
ArrayList
<>());
}
public
ObjectRestResponse
selectByTime
(
VehicleCountRecord
vehicleCountRecord
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
vehicleCountRecord
.
getType
()
!=
null
)
{
map
.
put
(
"type"
,
vehicleCountRecord
.
getType
());
}
if
(
StringUtils
.
isNotBlank
(
vehicleCountRecord
.
getStartTime
()))
{
if
(
StringUtils
.
isBlank
(
vehicleCountRecord
.
getEndTime
()))
{
vehicleCountRecord
.
setEndTime
(
vehicleCountRecord
.
getStartTime
());
}
map
.
put
(
"startTime"
,
DateTime
.
parse
(
vehicleCountRecord
.
getStartTime
(),
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
map
.
put
(
"endTime"
,
DateTime
.
parse
(
vehicleCountRecord
.
getEndTime
(),
DEFAULT_DATE_TIME_FORMATTER
).
toDate
());
}
if
(
MapUtils
.
isNotEmpty
(
map
))
{
List
<
VehicleCountRecord
>
list
=
mapper
.
selectByTime
(
map
);
if
(
list
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
FIND_DATA_NOT_EXIST
.
getCode
(),
ResCode
.
FIND_DATA_NOT_EXIST
.
getDesc
());
}
return
ObjectRestResponse
.
succ
(
list
);
}
return
ObjectRestResponse
.
succ
(
new
ArrayList
<>());
}
/**
* 添加统计记录
*
...
...
@@ -116,31 +140,46 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
VehicleCountRecord
vehicleCountRecord
=
new
VehicleCountRecord
();
VehicleCountRecord
tourCountRecord
=
new
VehicleCountRecord
();
VehicleCountRecord
innerCountRecord
=
new
VehicleCountRecord
();
SimpleDateFormat
simpleDateFormat1
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
try
{
startDate
=
simpleDateFormat1
.
format
(
startTime
);
endDate
=
simpleDateFormat1
.
format
(
endTime
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
//租车应出车数量
List
<
OrderPageVO
>
vehicleDepartureList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
(),
1
).
getData
();
if
(
vehicleDepartureList
!=
null
&&
vehicleDepartureList
.
size
()
>
0
)
{
vehicleCountRecord
.
setDepartureNum
(
vehicleDepartureList
.
size
());
List
<
OrderRentVehicleDetail
>
orderRentVehicleDetails
=
vehicleDepartureList
.
stream
().
map
(
OrderPageVO:
:
getOrderRentVehicleDetail
).
collect
(
Collectors
.
toList
());
if
(
orderRentVehicleDetails
!=
null
&&
orderRentVehicleDetails
.
size
()
>
0
)
{
List
<
Long
>
bookRecordIds
=
orderRentVehicleDetails
.
stream
().
map
(
OrderRentVehicleDetail:
:
getBookRecordId
).
collect
(
Collectors
.
toList
());
if
(
bookRecordIds
!=
null
&&
bookRecordIds
.
size
()
>
0
)
{
List
<
VehicleBookRecordVo
>
vehicleBookRecordVos
=
vehicleBookRecordBiz
.
selectByIds
(
bookRecordIds
).
getData
();
if
(
vehicleBookRecordVos
!=
null
&&
vehicleBookRecordVos
.
size
()
>
0
)
{
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleBookRecordVos
,
1
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前交车数量 已经还车且交车时间小于出车时间,
vehicleCountRecord
.
setBeforeDepartureNum
(
map
.
get
(
2
));
//延后交车,还未交车
vehicleCountRecord
.
setAfterDepartureNum
(
map
.
get
(
1
));
//正常交车,在当天时间内交车
vehicleCountRecord
.
setActualDepartureNum
(
map
.
get
(
3
));
}
}
}
}
}
Map
<
String
,
Object
>
param
=
new
HashMap
<>();
param
.
put
(
"startTime"
,
DateTime
.
parse
(
startDate
,
DATE_TIME_FORMATTER
).
toDate
());
param
.
put
(
"endTime"
,
DateTime
.
parse
(
endDate
,
DATE_TIME_FORMATTER
).
toDate
());
//1代表出车 2代表还车
param
.
put
(
"status"
,
1
);
param
.
put
(
"bookUser"
,
-
2
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//租车提前出车数量
Integer
beforeDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
beforeDepartureNum
!=
null
&&
beforeDepartureNum
>
0
)
{
vehicleCountRecord
.
setBeforeDepartureNum
(
beforeDepartureNum
);
}
//租车正常出车数量
param
.
put
(
"type"
,
1
);
Integer
normalDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
normalDepartureNum
!=
null
&&
normalDepartureNum
>
0
)
{
vehicleCountRecord
.
setActualDepartureNum
(
normalDepartureNum
);
}
//租车延期出车数量
param
.
put
(
"type"
,
3
);
Integer
afterDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
afterDepartureNum
!=
null
&&
afterDepartureNum
>
0
)
{
vehicleCountRecord
.
setAfterDepartureNum
(
afterDepartureNum
);
}
vehicleCountRecord
.
setType
(
VehicleCountType
.
RENT_VEHICLE
.
getCode
());
//旅游应出车数量
List
<
OrderPageVO
>
tourDepartureList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
TOUR
.
getCode
(),
1
).
getData
();
if
(
tourDepartureList
!=
null
&&
tourDepartureList
.
size
()
>
0
)
{
...
...
@@ -152,42 +191,60 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List
<
VehicleBookRecordVo
>
vehicleDepartureBookRecordList
=
vehicleBookRecordBiz
.
selectAllBookRecord
(
startTime
,
endTime
,
1
).
getData
();
if
(
vehicleDepartureBookRecordList
!=
null
&&
vehicleDepartureBookRecordList
.
size
()
>
0
)
{
innerCountRecord
.
setDepartureNum
(
vehicleDepartureBookRecordList
.
size
());
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleDepartureBookRecordList
,
1
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前交车数量 已经出车且交车时间小于出车时间,
innerCountRecord
.
setBeforeDepartureNum
(
map
.
get
(
2
));
//延后交车,还未交车
innerCountRecord
.
setAfterDepartureNum
(
map
.
get
(
1
));
//正常交车,在当天时间内交车
innerCountRecord
.
setActualDepartureNum
(
map
.
get
(
3
));
}
}
//1代表出车 2代表还车
param
.
put
(
"status"
,
1
);
param
.
remove
(
"bookUser"
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//内部用车提前出车数量
Integer
innerBeforeDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerBeforeDepartureNum
!=
null
&&
innerBeforeDepartureNum
>
0
)
{
innerCountRecord
.
setBeforeDepartureNum
(
innerBeforeDepartureNum
);
}
param
.
put
(
"type"
,
1
);
//内部用车正常出车数量
Integer
innerNormalDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerNormalDepartureNum
!=
null
&&
innerNormalDepartureNum
>
0
)
{
innerCountRecord
.
setActualDepartureNum
(
innerNormalDepartureNum
);
}
param
.
put
(
"type"
,
3
);
//内部用车提前出车数量
Integer
innerAfterDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerAfterDepartureNum
!=
null
&&
innerAfterDepartureNum
>
0
)
{
innerCountRecord
.
setAfterDepartureNum
(
innerAfterDepartureNum
);
}
innerCountRecord
.
setType
(
VehicleCountType
.
INNER
.
getCode
());
//租车应还车数量
List
<
OrderPageVO
>
vehicleArrivalList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
(),
2
).
getData
();
if
(
vehicleArrivalList
!=
null
&&
vehicleArrivalList
.
size
()
>
0
)
{
vehicleCountRecord
.
setArrivalNum
(
vehicleArrivalList
.
size
());
List
<
OrderRentVehicleDetail
>
orderRentVehicleDetails
=
vehicleDepartureList
.
stream
().
map
(
OrderPageVO:
:
getOrderRentVehicleDetail
).
collect
(
Collectors
.
toList
());
if
(
orderRentVehicleDetails
!=
null
&&
orderRentVehicleDetails
.
size
()
>
0
)
{
List
<
Long
>
bookRecordIds
=
orderRentVehicleDetails
.
stream
().
map
(
OrderRentVehicleDetail:
:
getBookRecordId
).
collect
(
Collectors
.
toList
());
if
(
bookRecordIds
!=
null
&&
bookRecordIds
.
size
()
>
0
)
{
List
<
VehicleBookRecordVo
>
vehicleBookRecordVos
=
vehicleBookRecordBiz
.
selectByIds
(
bookRecordIds
).
getData
();
if
(
vehicleBookRecordVos
!=
null
&&
vehicleBookRecordVos
.
size
()
>
0
)
{
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleBookRecordVos
,
2
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前还车数量 已经出车且还车时间小于还车时间,
vehicleCountRecord
.
setBeforeArrivalNum
(
map
.
get
(
2
));
//延后还车,还未还车
vehicleCountRecord
.
setAfterArrivalNum
(
map
.
get
(
1
));
//正常还车,在当天时间内还车
vehicleCountRecord
.
setActualArrivalNum
(
map
.
get
(
3
));
}
}
}
}
}
//1代表出车 2代表还车
param
.
put
(
"status"
,
2
);
param
.
put
(
"bookUser"
,
-
2
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//租车提前还车数量
Integer
beforeArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
beforeArrivalNum
!=
null
&&
beforeArrivalNum
>
0
)
{
vehicleCountRecord
.
setBeforeArrivalNum
(
beforeArrivalNum
);
}
param
.
put
(
"type"
,
1
);
//租车正常还车数量
Integer
normalArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
normalArrivalNum
!=
null
&&
normalArrivalNum
>
0
)
{
vehicleCountRecord
.
setActualArrivalNum
(
normalArrivalNum
);
}
param
.
put
(
"type"
,
3
);
//租车正常还车数量
Integer
afterArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
afterArrivalNum
!=
null
&&
afterArrivalNum
>
0
)
{
vehicleCountRecord
.
setAfterArrivalNum
(
afterArrivalNum
);
}
//旅游应还车数量
List
<
OrderPageVO
>
tourArrivalList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
TOUR
.
getCode
(),
2
).
getData
();
...
...
@@ -199,17 +256,30 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List
<
VehicleBookRecordVo
>
vehicleArrivalBookRecordList
=
vehicleBookRecordBiz
.
selectAllBookRecord
(
startTime
,
endTime
,
2
).
getData
();
if
(
vehicleArrivalBookRecordList
!=
null
&&
vehicleArrivalBookRecordList
.
size
()
>
0
)
{
innerCountRecord
.
setArrivalNum
(
vehicleArrivalBookRecordList
.
size
());
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleDepartureBookRecordList
,
2
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前交车数量 已经出车且还车时间小于还车时间,
innerCountRecord
.
setBeforeArrivalNum
(
map
.
get
(
2
));
//延后还车,还未还车
innerCountRecord
.
setAfterArrivalNum
(
map
.
get
(
1
));
//正常还车,在当天时间内还车
innerCountRecord
.
setActualArrivalNum
(
map
.
get
(
3
));
}
}
//1代表出车 2代表还车
param
.
put
(
"status"
,
2
);
param
.
remove
(
"bookUser"
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//内部用车提前出车数量
Integer
innerBeforeArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerBeforeArrivalNum
!=
null
&&
innerBeforeArrivalNum
>
0
)
{
innerCountRecord
.
setAfterArrivalNum
(
innerBeforeArrivalNum
);
}
param
.
put
(
"type"
,
1
);
//内部用车正常出车数量
Integer
innerNormalArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerNormalArrivalNum
!=
null
&&
innerNormalArrivalNum
>
0
)
{
innerCountRecord
.
setActualArrivalNum
(
innerNormalArrivalNum
);
}
param
.
put
(
"type"
,
3
);
//内部用车提前出车数量
Integer
innerAfterArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerAfterArrivalNum
!=
null
&&
innerAfterArrivalNum
>
0
)
{
innerCountRecord
.
setAfterArrivalNum
(
innerAfterArrivalNum
);
}
innerCountRecord
.
setType
(
VehicleCountType
.
INNER
.
getCode
());
vehicleCountRecord
.
setCountDate
(
nowDate
);
tourCountRecord
.
setCountDate
(
nowDate
);
innerCountRecord
.
setCountDate
(
nowDate
);
...
...
@@ -225,7 +295,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
*
* @return
*/
@Scheduled
(
cron
=
"0 0
2 * * ?
"
)
@Scheduled
(
cron
=
"0 0
*/2 * * *
"
)
public
void
add
()
{
Long
nowTime
=
getDayStart
();
Long
lastTime
=
nowTime
+
24
*
3600
*
1000
-
1
;
...
...
@@ -235,8 +305,10 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
endTime
.
setTime
(
lastTime
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
startDate
=
null
;
String
endDate
=
null
;
try
{
startDate
=
simpleDateFormat
.
format
(
startTime
);
endDate
=
simpleDateFormat
.
format
(
endTime
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
@@ -249,27 +321,35 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List
<
OrderPageVO
>
vehicleDepartureList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
(),
1
).
getData
();
if
(
vehicleDepartureList
!=
null
&&
vehicleDepartureList
.
size
()
>
0
)
{
vehicleCountRecord
.
setDepartureNum
(
vehicleDepartureList
.
size
());
List
<
OrderRentVehicleDetail
>
orderRentVehicleDetails
=
vehicleDepartureList
.
stream
().
map
(
OrderPageVO:
:
getOrderRentVehicleDetail
).
collect
(
Collectors
.
toList
());
if
(
orderRentVehicleDetails
!=
null
&&
orderRentVehicleDetails
.
size
()
>
0
)
{
List
<
Long
>
bookRecordIds
=
orderRentVehicleDetails
.
stream
().
map
(
OrderRentVehicleDetail:
:
getBookRecordId
).
collect
(
Collectors
.
toList
());
if
(
bookRecordIds
!=
null
&&
bookRecordIds
.
size
()
>
0
)
{
List
<
VehicleBookRecordVo
>
vehicleBookRecordVos
=
vehicleBookRecordBiz
.
selectByIds
(
bookRecordIds
).
getData
();
if
(
vehicleBookRecordVos
!=
null
&&
vehicleBookRecordVos
.
size
()
>
0
)
{
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleBookRecordVos
,
1
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前交车数量 已经还车且交车时间小于出车时间,
vehicleCountRecord
.
setBeforeDepartureNum
(
map
.
get
(
2
));
//延后交车,还未交车
vehicleCountRecord
.
setAfterDepartureNum
(
map
.
get
(
1
));
//正常交车,在当天时间内交车
vehicleCountRecord
.
setActualDepartureNum
(
map
.
get
(
3
));
}
}
}
}
}
Map
<
String
,
Object
>
param
=
new
HashMap
<>();
param
.
put
(
"startTime"
,
DateTime
.
parse
(
startDate
,
DATE_TIME_FORMATTER
).
toDate
());
param
.
put
(
"endTime"
,
DateTime
.
parse
(
endDate
,
DATE_TIME_FORMATTER
).
toDate
());
//1代表出车 2代表还车
param
.
put
(
"status"
,
1
);
param
.
put
(
"bookUser"
,
-
2
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//租车提前出车数量
Integer
beforeDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
beforeDepartureNum
!=
null
&&
beforeDepartureNum
>
0
)
{
vehicleCountRecord
.
setBeforeDepartureNum
(
beforeDepartureNum
);
}
//租车正常出车数量
param
.
put
(
"type"
,
1
);
Integer
normalDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
normalDepartureNum
!=
null
&&
normalDepartureNum
>
0
)
{
vehicleCountRecord
.
setActualDepartureNum
(
normalDepartureNum
);
}
//租车延期出车数量
param
.
put
(
"type"
,
3
);
Integer
afterDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
afterDepartureNum
!=
null
&&
afterDepartureNum
>
0
)
{
vehicleCountRecord
.
setAfterDepartureNum
(
afterDepartureNum
);
}
vehicleCountRecord
.
setType
(
VehicleCountType
.
RENT_VEHICLE
.
getCode
());
//旅游应出车数量
List
<
OrderPageVO
>
tourDepartureList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
TOUR
.
getCode
(),
1
).
getData
();
if
(
tourDepartureList
!=
null
&&
tourDepartureList
.
size
()
>
0
)
{
...
...
@@ -281,42 +361,60 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List
<
VehicleBookRecordVo
>
vehicleDepartureBookRecordList
=
vehicleBookRecordBiz
.
selectAllBookRecord
(
startTime
,
endTime
,
1
).
getData
();
if
(
vehicleDepartureBookRecordList
!=
null
&&
vehicleDepartureBookRecordList
.
size
()
>
0
)
{
innerCountRecord
.
setDepartureNum
(
vehicleDepartureBookRecordList
.
size
());
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleDepartureBookRecordList
,
1
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前交车数量 已经出车且交车时间小于出车时间,
innerCountRecord
.
setBeforeDepartureNum
(
map
.
get
(
2
));
//延后交车,还未交车
innerCountRecord
.
setAfterDepartureNum
(
map
.
get
(
1
));
//正常交车,在当天时间内交车
innerCountRecord
.
setActualDepartureNum
(
map
.
get
(
3
));
}
}
//1代表出车 2代表还车
param
.
put
(
"status"
,
1
);
param
.
remove
(
"bookUser"
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//内部用车提前出车数量
Integer
innerBeforeDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerBeforeDepartureNum
!=
null
&&
innerBeforeDepartureNum
>
0
)
{
innerCountRecord
.
setBeforeDepartureNum
(
innerBeforeDepartureNum
);
}
param
.
put
(
"type"
,
1
);
//内部用车正常出车数量
Integer
innerNormalDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerNormalDepartureNum
!=
null
&&
innerNormalDepartureNum
>
0
)
{
innerCountRecord
.
setActualDepartureNum
(
innerNormalDepartureNum
);
}
param
.
put
(
"type"
,
3
);
//内部用车提前出车数量
Integer
innerAfterDepartureNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerAfterDepartureNum
!=
null
&&
innerAfterDepartureNum
>
0
)
{
innerCountRecord
.
setAfterDepartureNum
(
innerAfterDepartureNum
);
}
innerCountRecord
.
setType
(
VehicleCountType
.
INNER
.
getCode
());
//租车应还车数量
List
<
OrderPageVO
>
vehicleArrivalList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
(),
2
).
getData
();
if
(
vehicleArrivalList
!=
null
&&
vehicleArrivalList
.
size
()
>
0
)
{
vehicleCountRecord
.
setArrivalNum
(
vehicleArrivalList
.
size
());
List
<
OrderRentVehicleDetail
>
orderRentVehicleDetails
=
vehicleDepartureList
.
stream
().
map
(
OrderPageVO:
:
getOrderRentVehicleDetail
).
collect
(
Collectors
.
toList
());
if
(
orderRentVehicleDetails
!=
null
&&
orderRentVehicleDetails
.
size
()
>
0
)
{
List
<
Long
>
bookRecordIds
=
orderRentVehicleDetails
.
stream
().
map
(
OrderRentVehicleDetail:
:
getBookRecordId
).
collect
(
Collectors
.
toList
());
if
(
bookRecordIds
!=
null
&&
bookRecordIds
.
size
()
>
0
)
{
List
<
VehicleBookRecordVo
>
vehicleBookRecordVos
=
vehicleBookRecordBiz
.
selectByIds
(
bookRecordIds
).
getData
();
if
(
vehicleBookRecordVos
!=
null
&&
vehicleBookRecordVos
.
size
()
>
0
)
{
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleBookRecordVos
,
2
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前还车数量 已经出车且还车时间小于还车时间,
vehicleCountRecord
.
setBeforeArrivalNum
(
map
.
get
(
2
));
//延后还车,还未还车
vehicleCountRecord
.
setAfterArrivalNum
(
map
.
get
(
1
));
//正常还车,在当天时间内还车
vehicleCountRecord
.
setActualArrivalNum
(
map
.
get
(
3
));
}
}
}
}
}
//1代表出车 2代表还车
param
.
put
(
"status"
,
2
);
param
.
put
(
"bookUser"
,
-
2
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//租车提前还车数量
Integer
beforeArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
beforeArrivalNum
!=
null
&&
beforeArrivalNum
>
0
)
{
vehicleCountRecord
.
setBeforeArrivalNum
(
beforeArrivalNum
);
}
param
.
put
(
"type"
,
1
);
//租车正常还车数量
Integer
normalArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
normalArrivalNum
!=
null
&&
normalArrivalNum
>
0
)
{
vehicleCountRecord
.
setActualArrivalNum
(
normalArrivalNum
);
}
param
.
put
(
"type"
,
3
);
//租车正常还车数量
Integer
afterArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
afterArrivalNum
!=
null
&&
afterArrivalNum
>
0
)
{
vehicleCountRecord
.
setAfterArrivalNum
(
afterArrivalNum
);
}
//旅游应还车数量
List
<
OrderPageVO
>
tourArrivalList
=
orderFeign
.
getOrderList
(
nowTime
,
OrderTypeEnum
.
TOUR
.
getCode
(),
2
).
getData
();
...
...
@@ -328,17 +426,30 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
List
<
VehicleBookRecordVo
>
vehicleArrivalBookRecordList
=
vehicleBookRecordBiz
.
selectAllBookRecord
(
startTime
,
endTime
,
2
).
getData
();
if
(
vehicleArrivalBookRecordList
!=
null
&&
vehicleArrivalBookRecordList
.
size
()
>
0
)
{
innerCountRecord
.
setArrivalNum
(
vehicleArrivalBookRecordList
.
size
());
Map
<
Integer
,
Integer
>
map
=
getDeparture
(
vehicleDepartureBookRecordList
,
2
);
if
(
MapUtils
.
isNotEmpty
(
map
))
{
// 租车提前交车数量 已经出车且还车时间小于还车时间,
innerCountRecord
.
setBeforeArrivalNum
(
map
.
get
(
2
));
//延后还车,还未还车
innerCountRecord
.
setAfterArrivalNum
(
map
.
get
(
1
));
//正常还车,在当天时间内还车
innerCountRecord
.
setActualArrivalNum
(
map
.
get
(
3
));
}
}
//1代表出车 2代表还车
param
.
put
(
"status"
,
2
);
param
.
remove
(
"bookUser"
);
//1代表正常出车,2代表提前出车,3代表延期出车
param
.
put
(
"type"
,
2
);
//内部用车提前出车数量
Integer
innerBeforeArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerBeforeArrivalNum
!=
null
&&
innerBeforeArrivalNum
>
0
)
{
innerCountRecord
.
setAfterArrivalNum
(
innerBeforeArrivalNum
);
}
param
.
put
(
"type"
,
1
);
//内部用车正常出车数量
Integer
innerNormalArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerNormalArrivalNum
!=
null
&&
innerNormalArrivalNum
>
0
)
{
innerCountRecord
.
setActualArrivalNum
(
innerNormalArrivalNum
);
}
param
.
put
(
"type"
,
3
);
//内部用车提前出车数量
Integer
innerAfterArrivalNum
=
vehicleDepartureService
.
selectAllDepartureLog
(
param
);
if
(
innerAfterArrivalNum
!=
null
&&
innerAfterArrivalNum
>
0
)
{
innerCountRecord
.
setAfterArrivalNum
(
innerAfterArrivalNum
);
}
innerCountRecord
.
setType
(
VehicleCountType
.
INNER
.
getCode
());
vehicleCountRecord
.
setCountDate
(
nowDate
);
tourCountRecord
.
setCountDate
(
nowDate
);
innerCountRecord
.
setCountDate
(
nowDate
);
...
...
@@ -351,8 +462,7 @@ public class VehicleCountRecordBiz extends BaseBiz<VehicleCountRecordMapper, Veh
if
(
vehicleCountRecord
!=
null
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"type"
,
vehicleCountRecord
.
getType
());
map
.
put
(
"startTime"
,
getDayStart
(
vehicleCountRecord
.
getCountDate
().
getTime
()));
map
.
put
(
"endTime"
,
getDayStart
(
vehicleCountRecord
.
getCountDate
().
getTime
())
+
24
*
3600
*
1000
);
map
.
put
(
"startTime"
,
vehicleCountRecord
.
getCountDate
());
List
<
VehicleCountRecord
>
list
=
mapper
.
selectByTypeAndTime
(
map
);
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
BeanUtil
.
copyProperties
(
vehicleCountRecord
,
list
.
get
(
0
),
CopyOptions
.
create
().
setIgnoreNullValue
(
true
).
setIgnoreError
(
true
));
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleDepartureService.java
View file @
08b1fcd5
...
...
@@ -12,6 +12,7 @@ import com.xxfc.platform.vehicle.entity.Vehicle;
import
com.xxfc.platform.vehicle.entity.VehicleDepartureLog
;
import
com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper
;
import
com.xxfc.platform.vehicle.mapper.VehicleMapper
;
import
com.xxfc.platform.vehicle.pojo.DepartureLogVo
;
import
com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo
;
import
com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -24,6 +25,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Slf4j
...
...
@@ -103,6 +105,9 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
}
public
Integer
selectAllDepartureLog
(
Map
<
String
,
Object
>
param
)
{
return
mapper
.
selectAllDepartureLog
(
param
);
}
public
ObjectRestResponse
findOne
(
Integer
vid
)
throws
Exception
{
Example
exm
=
Example
.
builder
(
VehicleDepartureLog
.
class
)
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleCountRecordMapper.java
View file @
08b1fcd5
...
...
@@ -10,4 +10,5 @@ public interface VehicleCountRecordMapper extends Mapper<VehicleCountRecord> {
List
<
VehicleCountRecord
>
countDepartureVehicle
(
VehicleCountRecord
vehicleCountRecord
);
List
<
VehicleCountRecord
>
selectByTypeAndTime
(
Map
<
String
,
Object
>
param
);
List
<
VehicleCountRecord
>
selectByTime
(
Map
<
String
,
Object
>
param
);
}
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/mapper/VehicleDepartureLogMapper.java
View file @
08b1fcd5
package
com
.
xxfc
.
platform
.
vehicle
.
mapper
;
import
com.xxfc.platform.vehicle.entity.VehicleDepartureLog
;
import
com.xxfc.platform.vehicle.pojo.DepartureLogVo
;
import
com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.BaseMapper
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
import
java.util.Map
;
public
interface
VehicleDepartureLogMapper
extends
BaseMapper
<
VehicleDepartureLog
>,
Mapper
<
VehicleDepartureLog
>
{
...
...
@@ -32,4 +34,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
String
selectDayByVehicleId
(
String
vehicleId
);
VehicleDepartureLogVo
selectByBookRecordId
(
Long
bookRecordId
);
Integer
selectAllDepartureLog
(
Map
<
String
,
Object
>
param
);
}
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleCountRecordController.java
View file @
08b1fcd5
...
...
@@ -30,7 +30,7 @@ public class VehicleCountRecordController {
@GetMapping
(
"/app/unauth/get"
)
@ResponseBody
public
ObjectRestResponse
getByTypeAndDate
(
VehicleCountRecord
vehicleCountRecord
)
{
return
vehicleCountRecordBiz
.
countDepartureVehicl
e
(
vehicleCountRecord
);
return
vehicleCountRecordBiz
.
selectByTim
e
(
vehicleCountRecord
);
}
@PostMapping
(
"/app/unauth/export"
)
...
...
@@ -43,4 +43,10 @@ public class VehicleCountRecordController {
public
void
download
(
ExcelParamDto
excelParamDto
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
DownloadUtil
.
downloadFile
(
excelParamDto
.
getPath
(),
"export.xls"
,
response
,
request
);
}
@GetMapping
(
"/app/unauth/selectByTime"
)
public
ObjectRestResponse
selectByTime
(
VehicleCountRecord
vehicleCountRecord
)
{
return
vehicleCountRecordBiz
.
selectByTime
(
vehicleCountRecord
);
}
}
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleCountRecordMapper.xml
View file @
08b1fcd5
...
...
@@ -35,4 +35,12 @@
order by id DESC
</select>
<select
id=
"selectByTime"
parameterType =
"Map"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleCountRecord"
>
select * from vehicle_count_record
where count_date
>
= #{startTime} and count_date
<
= #{endTime}
<if
test=
"type != null"
>
and type = #{type}
</if>
order by id DESC
</select>
</mapper>
\ No newline at end of file
xx-vehicle/xx-vehicle-server/src/main/resources/mapper/VehicleDepartureLogMapper.xml
View file @
08b1fcd5
...
...
@@ -2,7 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper"
>
<resultMap
id=
"searchBookRecord"
type=
"com.xxfc.platform.vehicle.pojo.DepartureLogVo"
>
<result
column=
"book_record_id"
property=
"bookRecordId"
jdbcType=
"INTEGER"
javaType=
"java.lang.Integer"
/>
<association
property=
"vehicleBookRecord"
column=
"id"
select=
"com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.selectOne"
/>
</resultMap>
<select
id=
"selectLastByVehicleId"
resultType=
"com.xxfc.platform.vehicle.entity.VehicleDepartureLog"
>
select * from vehicle_departure_log
where vehicle_id = #{vehicleId}
...
...
@@ -30,7 +34,55 @@
where vehicle_departure_log.book_record_id = #{id}
order by create_time desc
</select>
<select
id=
"selectAllDepartureLog"
resultType=
"java.lang.Integer"
parameterType=
"Map"
>
SELECT
count(*)
FROM
vehicle_departure_log v1
LEFT JOIN vehicle_book_record v2 on v1.book_record_id = v2.id
<where>
<if
test=
"startTime != null and status == 1"
>
and (v1.departure_time between #{startTime} and #{endTime})
</if>
<if
test=
"startTime != null and status == 2"
>
and (v1.arrival_time between #{startTime} and #{endTime})
</if>
<!--正常出车-->
<if
test=
"startTime != null and status == 1 and type == 1"
>
and (v2.book_start_date between #{startTime} and #{endTime})
</if>
<!--提前出车-->
<if
test=
"endTime != null and status == 1 and type == 2"
>
and v2.book_start_date
>
= #{endTime}
</if>
<!--延期出车-->
<if
test=
"startTime != null and status == 1 and type == 3"
>
and v2.book_start_date
<
= #{startTime}
</if>
<!--正常还车-->
<if
test=
"startTime != null and status == 2 and type == 1"
>
and (v2.book_start_date between #{startTime} and #{endTime})
</if>
<!--提前还车-->
<if
test=
"endTime != null and status == 2 and type == 2"
>
and v2.book_start_date
>
= #{endTime}
</if>
<!--延期还车-->
<if
test=
"startTime != null and status == 2 and type == 3"
>
and v2.book_start_date
<
= #{startTime}
</if>
<!--统计客户用车-->
<if
test=
"bookUser != null"
>
and v2.book_user = #{bookUser}
</if>
<if
test=
"bookUser == null"
>
and v2.book_user != -2
</if>
</where>
</select>
<select
id=
"selectVoAll"
resultType=
"com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo"
>
select vehicle_departure_log.*,vehicle.number_plate,
/* IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
...
...
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