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
68473987
Commit
68473987
authored
Nov 19, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
租车订单统计
parent
cb33afa0
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
37 deletions
+40
-37
OrderMemberReceivedStatisticsBiz.java
.../platform/order/biz/OrderMemberReceivedStatisticsBiz.java
+1
-1
OrderRentVehicleReceivedStatisticsBiz.java
...form/order/biz/OrderRentVehicleReceivedStatisticsBiz.java
+39
-36
No files found.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderMemberReceivedStatisticsBiz.java
View file @
68473987
...
@@ -89,7 +89,7 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive
...
@@ -89,7 +89,7 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive
}
}
}
}
//创建剩余状态数据
//创建剩余状态数据
List
stisticsActiveState
=
ordersMap
.
isEmpty
()
?
Collections
.
EMPTY_LIST
:
Lists
.
newArrayList
(
ordersMap
.
keySet
());
List
stisticsActiveState
=
ordersMap
==
null
?
Collections
.
EMPTY_LIST
:
Lists
.
newArrayList
(
ordersMap
.
keySet
());
List
<
OrderMemberReceivedStatistics
>
otherStatisticsStateGroupList
=
createOtherStatisticsStateGroupList
(
startDate
,
stisticsActiveState
,
StatisticsStatusEnum
.
DEFAULT_COMPANY
);
List
<
OrderMemberReceivedStatistics
>
otherStatisticsStateGroupList
=
createOtherStatisticsStateGroupList
(
startDate
,
stisticsActiveState
,
StatisticsStatusEnum
.
DEFAULT_COMPANY
);
orderMemberReceivedStatisticsList
.
addAll
(
otherStatisticsStateGroupList
);
orderMemberReceivedStatisticsList
.
addAll
(
otherStatisticsStateGroupList
);
//保存
//保存
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRentVehicleReceivedStatisticsBiz.java
View file @
68473987
...
@@ -36,7 +36,6 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
...
@@ -36,7 +36,6 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
private
final
BaseOrderBiz
baseOrderBiz
;
private
final
BaseOrderBiz
baseOrderBiz
;
private
final
OrderAccountBiz
orderAccountBiz
;
private
final
OrderAccountBiz
orderAccountBiz
;
private
final
VehicleFeign
vehicleFeign
;
private
final
VehicleFeign
vehicleFeign
;
private
final
String
NO_PAY_STATE_STR
=
String
.
format
(
"%s%d"
,
"-"
,
StatisticsStatusEnum
.
NO_PAY_WAY
);
private
final
int
PAY_ORDER
=
101
;
private
final
int
PAY_ORDER
=
101
;
/**
/**
...
@@ -57,14 +56,16 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
...
@@ -57,14 +56,16 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
*/
*/
public
void
orderRentVehicleReceivedStatistics
(
Date
startDate
,
Date
endDate
)
{
public
void
orderRentVehicleReceivedStatistics
(
Date
startDate
,
Date
endDate
)
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
List
<
String
>
stisticsActiveState
=
new
ArrayList
<>();
//根据租车订单类型 时间查询
//根据租车订单类型 时间查询
List
<
OrderDTO
>
orderDTOS
=
baseOrderBiz
.
selectOrdersByTypeAndTime
(
Arrays
.
asList
(
StatisticsStatusEnum
.
ORDER_RENT_VEHICLE_TYPE
),
startDate
,
endDate
);
List
<
OrderDTO
>
orderDTOS
=
baseOrderBiz
.
selectOrdersByTypeAndTime
(
Arrays
.
asList
(
StatisticsStatusEnum
.
ORDER_RENT_VEHICLE_TYPE
),
startDate
,
endDate
);
//数据处理 状态组合
Map
<
String
,
Long
>
stateGroupMap
=
orderDTOS
.
stream
().
peek
(
x
->
{
//数据处理 状态组合 按支付状态分组 而后按组合状态
Map
<
Boolean
,
Map
<
String
,
List
<
OrderDTO
>>>
stateGroupMap
=
orderDTOS
.
stream
().
peek
(
x
->
{
x
.
setStateGroup
(
String
.
format
(
"%d-%d-%d-%d"
,
x
.
getCompanyId
(),
x
.
getOrderOrigin
(),
x
.
getPayWay
()
==
null
?
StatisticsStatusEnum
.
NO_PAY_WAY
:
x
.
getPayWay
(),
x
.
getStatus
()));
x
.
setStateGroup
(
String
.
format
(
"%d-%d-%d-%d"
,
x
.
getCompanyId
(),
x
.
getOrderOrigin
(),
x
.
getPayWay
()
==
null
?
StatisticsStatusEnum
.
NO_PAY_WAY
:
x
.
getPayWay
(),
x
.
getStatus
()));
stisticsActiveState
.
add
(
x
.
getStateGroup
());
})
})
.
collect
(
Collectors
.
groupingBy
(
OrderDTO:
:
getStateGroup
,
Collectors
.
counting
(
)));
.
collect
(
Collectors
.
partitioningBy
(
x
->
Objects
.
isNull
(
x
.
getPayWay
()),
Collectors
.
groupingBy
(
OrderDTO:
:
getStateGroup
,
Collectors
.
toList
()
)));
//订单账目信息
//订单账目信息
List
<
OrderAccountBo
>
orderAccountBoList
=
orderAccountBiz
.
selectByDate
(
startDate
,
endDate
);
List
<
OrderAccountBo
>
orderAccountBoList
=
orderAccountBiz
.
selectByDate
(
startDate
,
endDate
);
...
@@ -72,7 +73,7 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
...
@@ -72,7 +73,7 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
Map
<
String
,
List
<
OrderAccountBo
>>
ordersMap
=
orderAccountBoList
.
stream
().
peek
(
x
->
{
Map
<
String
,
List
<
OrderAccountBo
>>
ordersMap
=
orderAccountBoList
.
stream
().
peek
(
x
->
{
x
.
setStateGroup
(
String
.
format
(
"%d-%d-%d-%d"
,
x
.
getCompanyId
(),
x
.
getOrderOrigin
(),
x
.
getPayWay
()
==
null
?
StatisticsStatusEnum
.
NO_PAY_WAY
:
x
.
getPayWay
(),
x
.
getStatus
()));
x
.
setStateGroup
(
String
.
format
(
"%d-%d-%d-%d"
,
x
.
getCompanyId
(),
x
.
getOrderOrigin
(),
x
.
getPayWay
()
==
null
?
StatisticsStatusEnum
.
NO_PAY_WAY
:
x
.
getPayWay
(),
x
.
getStatus
()));
}).
collect
(
Collectors
.
groupingBy
(
OrderAccountBo:
:
getStateGroup
,
Collectors
.
toList
()));
}).
collect
(
Collectors
.
groupingBy
(
OrderAccountBo:
:
getStateGroup
,
Collectors
.
toList
()));
//已经支付单
Set
<
Map
.
Entry
<
String
,
List
<
OrderAccountBo
>>>
ordersSet
=
ordersMap
.
entrySet
();
Set
<
Map
.
Entry
<
String
,
List
<
OrderAccountBo
>>>
ordersSet
=
ordersMap
.
entrySet
();
for
(
Map
.
Entry
<
String
,
List
<
OrderAccountBo
>>
orderEntry
:
ordersSet
)
{
for
(
Map
.
Entry
<
String
,
List
<
OrderAccountBo
>>
orderEntry
:
ordersSet
)
{
String
orderKey
=
orderEntry
.
getKey
();
String
orderKey
=
orderEntry
.
getKey
();
...
@@ -89,40 +90,59 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
...
@@ -89,40 +90,59 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
}
}
}
}
orderRentVehicleReceivedStatistics
.
setTotalAmount
(
totalAmount
.
subtract
(
refundAmount
));
orderRentVehicleReceivedStatistics
.
setTotalAmount
(
totalAmount
.
subtract
(
refundAmount
));
Long
totalQuantity
=
stateGroupMap
==
null
?
0L
:
stateGroupMap
.
get
(
orderKey
)
==
null
?
0L
:
stateGroupMap
.
get
(
orderKey
);
Long
totalQuantity
=
stateGroupMap
==
null
?
0L
:
stateGroupMap
.
get
(
Boolean
.
TRUE
)
==
null
?
0L
:
stateGroupMap
.
get
(
Boolean
.
TRUE
).
get
(
orderKey
)==
null
?
0
:
stateGroupMap
.
get
(
Boolean
.
TRUE
).
get
(
orderKey
).
size
(
);
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
totalQuantity
.
intValue
());
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
totalQuantity
.
intValue
());
orderRentVehicleReceivedStatisticsList
.
add
(
orderRentVehicleReceivedStatistics
);
}
}
//未支付单
//未支付单
List
<
BigDecimal
>
noPayOrdersPrices
=
orderDTOS
.
stream
().
filter
(
x
->
x
.
getPayWay
()
!=
null
).
map
(
OrderDTO:
:
getRealAmount
).
collect
(
Collectors
.
toList
());
List
<
OrderRentVehicleReceivedStatistics
>
noPayOrderRentVehicleStatisticsList
=
createNoPayOrderRentVehicleStatisticsList
(
startDate
,
stateGroupMap
.
get
(
Boolean
.
FALSE
));
BigDecimal
totalNoPayAmount
=
CollectionUtils
.
isEmpty
(
noPayOrdersPrices
)
?
BigDecimal
.
ZERO
:
noPayOrdersPrices
.
stream
().
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
orderRentVehicleReceivedStatisticsList
.
addAll
(
noPayOrderRentVehicleStatisticsList
);
int
totalNoPayOrderQuantity
=
CollectionUtils
.
isEmpty
(
noPayOrdersPrices
)
?
0
:
noPayOrdersPrices
.
size
();
//查询分公司ids
//查询分公司ids
List
<
Integer
>
companyIds
=
vehicleFeign
.
findCompanyIdsByAreaId
(
null
);
List
<
Integer
>
companyIds
=
vehicleFeign
.
findCompanyIdsByAreaId
(
null
);
//创建剩余状态组合的租车统计对象
//创建剩余状态组合的租车统计对象
List
stisticsActiveState
=
ordersMap
.
isEmpty
()
?
Collections
.
EMPTY_LIST
:
Lists
.
newArrayList
(
ordersMap
.
keySet
());
List
<
OrderRentVehicleReceivedStatistics
>
otherStatisticsStateGroupList
=
createOtherStatisticsStateGroupList
(
startDate
,
stisticsActiveState
,
companyIds
);
List
<
OrderRentVehicleReceivedStatistics
>
otherStatisticsStateGroupList
=
createOtherStatisticsStateGroupList
(
startDate
,
stisticsActiveState
,
companyIds
,
totalNoPayAmount
,
totalNoPayOrderQuantity
);
orderRentVehicleReceivedStatisticsList
.
addAll
(
otherStatisticsStateGroupList
);
orderRentVehicleReceivedStatisticsList
.
addAll
(
otherStatisticsStateGroupList
);
//保存
//保存
insertMemberReceivedStatisticsBatch
(
orderRentVehicleReceivedStatisticsList
);
insertMemberReceivedStatisticsBatch
(
orderRentVehicleReceivedStatisticsList
);
}
}
/**
*
* @param startDate 时间
* @param noPayOrdersMap 未支付单map
* @return
*/
private
List
<
OrderRentVehicleReceivedStatistics
>
createNoPayOrderRentVehicleStatisticsList
(
Date
startDate
,
Map
<
String
,
List
<
OrderDTO
>>
noPayOrdersMap
)
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
if
(
noPayOrdersMap
==
null
||
noPayOrdersMap
.
isEmpty
()){
return
orderRentVehicleReceivedStatisticsList
;
}
Set
<
Map
.
Entry
<
String
,
List
<
OrderDTO
>>>
noPayOrderSet
=
noPayOrdersMap
.
entrySet
();
for
(
Map
.
Entry
<
String
,
List
<
OrderDTO
>>
noPayOrderEntry
:
noPayOrderSet
)
{
String
noPayOrderStateGroup
=
noPayOrderEntry
.
getKey
();
List
<
OrderDTO
>
noPayOrders
=
noPayOrderEntry
.
getValue
();
BigDecimal
totalNoPayAmount
=
noPayOrders
.
stream
().
map
(
OrderDTO:
:
getRealAmount
).
reduce
(
BigDecimal
.
ZERO
,
(
x
,
y
)
->
x
.
add
(
y
));
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatistics
=
StatisticsStatusEnum
.
wrapStatisticsObject
(
startDate
,
noPayOrderStateGroup
,
new
OrderRentVehicleReceivedStatistics
());
orderRentVehicleReceivedStatistics
.
setTotalAmount
(
totalNoPayAmount
);
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
noPayOrders
.
size
());
orderRentVehicleReceivedStatisticsList
.
add
(
orderRentVehicleReceivedStatistics
);
}
return
orderRentVehicleReceivedStatisticsList
;
}
/**
/**
* 创建剩余状态数据
* 创建剩余状态数据
*
*
* @param startDate 时间
* @param startDate 时间
* @param statisticsStateGroups 状态组合 集合
* @param statisticsStateGroups 状态组合 集合
* @param companyIds 公司ids
* @param companyIds 公司ids
* @param totalNoPayAmount 未支付金额
* @param totalNoPayOrderQuantity 未支付订单数
* @return
* @return
*/
*/
private
List
<
OrderRentVehicleReceivedStatistics
>
createOtherStatisticsStateGroupList
(
Date
startDate
,
private
List
<
OrderRentVehicleReceivedStatistics
>
createOtherStatisticsStateGroupList
(
Date
startDate
,
List
<
String
>
statisticsStateGroups
,
List
<
String
>
statisticsStateGroups
,
List
<
Integer
>
companyIds
,
List
<
Integer
>
companyIds
)
{
BigDecimal
totalNoPayAmount
,
Integer
totalNoPayOrderQuantity
)
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
new
ArrayList
<>();
//获取剩余状态组合
//获取剩余状态组合
...
@@ -132,31 +152,14 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
...
@@ -132,31 +152,14 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
//统计对象的生成
//统计对象的生成
otherStatisticsStateGroup
.
parallelStream
().
map
(
stateGroup
->
{
otherStatisticsStateGroup
.
parallelStream
().
map
(
stateGroup
->
{
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatisticsClone
=
StatisticsStatusEnum
.
wrapStatisticsObject
(
startDate
,
stateGroup
,
ObjectUtil
.
cloneByStream
(
orderRentVehicleReceivedStatistics
));
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatisticsClone
=
StatisticsStatusEnum
.
wrapStatisticsObject
(
startDate
,
stateGroup
,
ObjectUtil
.
cloneByStream
(
orderRentVehicleReceivedStatistics
));
orderRentVehicleReceivedStatisticsClone
=
wrapOrderRentVehicleReceivedStatistics
(
stateGroup
,
totalNoPayAmount
,
totalNoPayOrderQuantity
,
orderRentVehicleReceivedStatisticsClone
);
orderRentVehicleReceivedStatisticsClone
.
setTotalAmount
(
BigDecimal
.
ZERO
);
orderRentVehicleReceivedStatisticsClone
.
setTotalQuantity
(
0
);
orderRentVehicleReceivedStatisticsList
.
add
(
orderRentVehicleReceivedStatisticsClone
);
orderRentVehicleReceivedStatisticsList
.
add
(
orderRentVehicleReceivedStatisticsClone
);
return
orderRentVehicleReceivedStatisticsClone
;
return
orderRentVehicleReceivedStatisticsClone
;
}).
count
();
}).
count
();
return
orderRentVehicleReceivedStatisticsList
;
return
orderRentVehicleReceivedStatisticsList
;
}
}
/**
* @param stateGroup 状态组合
* @param totalNoPayAmount 未支付金额
* @param totalNoPayOrderQuantity 未支付订单量
* @param orderRentVehicleReceivedStatistics 租车统计对象
* @return
*/
private
OrderRentVehicleReceivedStatistics
wrapOrderRentVehicleReceivedStatistics
(
String
stateGroup
,
BigDecimal
totalNoPayAmount
,
Integer
totalNoPayOrderQuantity
,
OrderRentVehicleReceivedStatistics
orderRentVehicleReceivedStatistics
)
{
if
(
stateGroup
.
contains
(
NO_PAY_STATE_STR
))
{
orderRentVehicleReceivedStatistics
.
setTotalAmount
(
totalNoPayAmount
);
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
totalNoPayOrderQuantity
);
}
else
{
orderRentVehicleReceivedStatistics
.
setTotalAmount
(
BigDecimal
.
ZERO
);
orderRentVehicleReceivedStatistics
.
setTotalQuantity
(
0
);
}
return
orderRentVehicleReceivedStatistics
;
}
/**
/**
* 批量插入数据 mysql sql语句默认不能超过4M
* 批量插入数据 mysql sql语句默认不能超过4M
*
*
...
...
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