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
a525b530
Commit
a525b530
authored
Nov 12, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单统计
parent
f224b904
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
190 additions
and
35 deletions
+190
-35
OrderMemberReceivedStatisticsSignEnum.java
...tant/enumerate/OrderMemberReceivedStatisticsSignEnum.java
+7
-7
OrderReceivedStatisticsSignEnum.java
...er/contant/enumerate/OrderReceivedStatisticsSignEnum.java
+5
-5
OrderRentVehicleReceivedStatisticsSignEnum.java
...enumerate/OrderRentVehicleReceivedStatisticsSignEnum.java
+5
-5
OrderTourReceivedStatisticsSignEnum.java
...ontant/enumerate/OrderTourReceivedStatisticsSignEnum.java
+3
-3
ReceivedStatisticsEnum.java
...tform/order/contant/enumerate/ReceivedStatisticsEnum.java
+1
-1
OrderApplication.java
...c/main/java/com/xxfc/platform/order/OrderApplication.java
+2
-1
OrderReceivedStatisticsBiz.java
...m/xxfc/platform/order/biz/OrderReceivedStatisticsBiz.java
+140
-13
OrderReceivedStatisticsAdminController.java
...st/background/OrderReceivedStatisticsAdminController.java
+27
-0
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderMemberReceivedStatisticsSignEnum.java
View file @
a525b530
...
...
@@ -16,7 +16,7 @@ import java.util.stream.Collectors;
* @data 2019/11/11 10:36
*/
public
enum
OrderMemberReceivedStatisticsSignEnum
{
MEMBER_TOTAL_AMOUNT
(
"mta"
,
"会员订单总额"
){
MEMBER_TOTAL_AMOUNT
(
"
da_
mta"
,
"会员订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -32,7 +32,7 @@ public enum OrderMemberReceivedStatisticsSignEnum{
return
resultMap
;
}
},
COMMON__MEMBER_TOTAL_AMOUNT
(
"cmta"
,
"普通会员订单总额"
){
COMMON__MEMBER_TOTAL_AMOUNT
(
"
db_
cmta"
,
"普通会员订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -48,7 +48,7 @@ public enum OrderMemberReceivedStatisticsSignEnum{
return
resultMap
;
}
},
MEMBER_TOTAL_QUANTITY
(
"cmtq"
,
"普通会员订单量"
){
MEMBER_TOTAL_QUANTITY
(
"
dc_
cmtq"
,
"普通会员订单量"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -64,7 +64,7 @@ public enum OrderMemberReceivedStatisticsSignEnum{
return
resultMap
;
}
},
GOLD_MEMBER_TOTAL_AMOUNT
(
"gmta"
,
"黄金会员订单总额"
){
GOLD_MEMBER_TOTAL_AMOUNT
(
"
dd_
gmta"
,
"黄金会员订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -80,7 +80,7 @@ public enum OrderMemberReceivedStatisticsSignEnum{
return
resultMap
;
}
},
GOLD_MEMBER_TOTAL_QUANTITY
(
"mgtq"
,
"黄金会员订单量"
){
GOLD_MEMBER_TOTAL_QUANTITY
(
"
de_
mgtq"
,
"黄金会员订单量"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -96,7 +96,7 @@ public enum OrderMemberReceivedStatisticsSignEnum{
return
resultMap
;
}
},
DIAMOND_MEMBER_TOTAL_AMOUNT
(
"dmta"
,
"钻石会员订单总额"
){
DIAMOND_MEMBER_TOTAL_AMOUNT
(
"d
f_d
mta"
,
"钻石会员订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -112,7 +112,7 @@ public enum OrderMemberReceivedStatisticsSignEnum{
return
resultMap
;
}
},
DIAMOND_MEMBER_TOTAL_QUANTITY
(
"dmtq"
,
"钻石会员订单量"
){
DIAMOND_MEMBER_TOTAL_QUANTITY
(
"d
g_d
mtq"
,
"钻石会员订单量"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderReceivedStatisticsSignEnum.java
View file @
a525b530
...
...
@@ -16,7 +16,7 @@ import java.util.stream.Collectors;
* @data 2019/11/11 10:36
*/
public
enum
OrderReceivedStatisticsSignEnum
{
ORDER_TOTAL_AMOUNT
(
"ota"
,
"订单总额"
){
ORDER_TOTAL_AMOUNT
(
"
aa_
ota"
,
"订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -32,7 +32,7 @@ public enum OrderReceivedStatisticsSignEnum {
return
resultMap
;
}
},
ORDER_TOTAL_QUANTITY
(
"otq"
,
"订单量"
){
ORDER_TOTAL_QUANTITY
(
"
ab_
otq"
,
"订单量"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -48,7 +48,7 @@ public enum OrderReceivedStatisticsSignEnum {
return
resultMap
;
}
},
ORDER_AVG_QUANTITY
(
"
oavgq"
,
"订单平均量
"
){
ORDER_AVG_QUANTITY
(
"
ac_oavgq"
,
"订单arpu
"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -64,7 +64,7 @@ public enum OrderReceivedStatisticsSignEnum {
return
resultMap
;
}
},
ORDER_TOTAL_REAL_AMOUNT
(
"
otra"
,
"订单实际总额
"
){
ORDER_TOTAL_REAL_AMOUNT
(
"
ad_otra"
,
"实际收入
"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -80,7 +80,7 @@ public enum OrderReceivedStatisticsSignEnum {
return
resultMap
;
}
},
ORDER_REAL_AVG_AMOUNT
(
"
oravga"
,
"订单实际平均总额
"
){
ORDER_REAL_AVG_AMOUNT
(
"
ae_oravga"
,
"实际arpu
"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderRentVehicleReceivedStatisticsSignEnum.java
View file @
a525b530
...
...
@@ -17,7 +17,7 @@ import java.util.stream.Collectors;
* @data 2019/11/11 10:36
*/
public
enum
OrderRentVehicleReceivedStatisticsSignEnum
{
RENT_VEHICLE_TOTAL_AMOUNT
(
"rvta"
,
"租车订单总额"
){
RENT_VEHICLE_TOTAL_AMOUNT
(
"
ba_
rvta"
,
"租车订单总额"
){
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -33,7 +33,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return
resultMap
;
}
},
RENT_VEHICLE_TOTAL_QUANTITY
(
"rvtq"
,
"租车订单量"
)
{
RENT_VEHICLE_TOTAL_QUANTITY
(
"
bb_
rvtq"
,
"租车订单量"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -49,7 +49,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return
resultMap
;
}
},
RENT_VEHICLE_AVG_QUANTITY
(
"
rvavgq"
,
"租车订单平均量
"
)
{
RENT_VEHICLE_AVG_QUANTITY
(
"
bc_rvavgq"
,
"租车订单arpu
"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -65,7 +65,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return
resultMap
;
}
},
RENT_VEHICLE_REAL_TOTAL_AMOUNT
(
"rvrta"
,
"实际租车金额"
)
{
RENT_VEHICLE_REAL_TOTAL_AMOUNT
(
"
bd_
rvrta"
,
"实际租车金额"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -81,7 +81,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return
resultMap
;
}
},
RENT_VEHICLE_REAL_AVG_AMOUNT
(
"
rvravga"
,
"实际租车平均金额
"
)
{
RENT_VEHICLE_REAL_AVG_AMOUNT
(
"
be_rvravga"
,
"实际租车arpu
"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderTourReceivedStatisticsSignEnum.java
View file @
a525b530
...
...
@@ -16,7 +16,7 @@ import java.util.stream.Collectors;
* @data 2019/11/11 10:36
*/
public
enum
OrderTourReceivedStatisticsSignEnum
{
TOUR_TOTAL_AMOUNT
(
"tta"
,
"旅游订单总额"
)
{
TOUR_TOTAL_AMOUNT
(
"
ca_
tta"
,
"旅游订单总额"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -32,7 +32,7 @@ public enum OrderTourReceivedStatisticsSignEnum {
return
resultMap
;
}
},
TOUR_TOTAL_QUANTITY
(
"ttq"
,
"旅游订单量"
)
{
TOUR_TOTAL_QUANTITY
(
"
cb_
ttq"
,
"旅游订单量"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
@@ -48,7 +48,7 @@ public enum OrderTourReceivedStatisticsSignEnum {
return
resultMap
;
}
},
TOUR_AVG_QUANTITY
(
"
tavgq"
,
"旅游订单平均量
"
)
{
TOUR_AVG_QUANTITY
(
"
cd_tavgq"
,
"旅游订单arpu
"
)
{
@Override
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
wrapToMap
(
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMap
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/ReceivedStatisticsEnum.java
View file @
a525b530
...
...
@@ -34,7 +34,7 @@ public enum ReceivedStatisticsEnum {
if
(
CollectionUtils
.
isEmpty
(
orderReceivedStatisticsBases
))
{
return
Collections
.
EMPTY_MAP
;
}
return
orderReceivedStatisticsBases
.
stream
().
peek
(
x
->
((
OrderReceivedStatisticsBase
)
x
).
setDate
(
null
)).
collect
(
Collectors
.
groupingBy
(
OrderReceivedStatisticsBase:
:
getWeekOfYear
,
Collectors
.
toList
()));
return
orderReceivedStatisticsBases
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrderReceivedStatisticsBase:
:
getWeekOfYear
,
Collectors
.
toList
()));
}
},
MONTH
(
3
,
"按月统计"
)
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/OrderApplication.java
View file @
a525b530
...
...
@@ -13,7 +13,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
(
scanBasePackages
=
{
"com.xxfc.platform"
,
"com.github.wxiaoqi.security.common.handler"
,
"com.github.wxiaoqi.security.common.log"
"com.github.wxiaoqi.security.common.log"
,
"com.github.wxiaoqi.security.common.support"
})
@EnableDiscoveryClient
@EnableScheduling
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderReceivedStatisticsBiz.java
View file @
a525b530
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.util.excel.ExcelExport
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.contant.enumerate.*
;
import
com.xxfc.platform.order.entity.*
;
...
...
@@ -9,12 +13,19 @@ import com.xxfc.platform.order.mapper.OrderReceivedStatisticsMapper;
import
com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO
;
import
com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFFont
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.ServletOutputStream
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.function.Predicate
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -36,7 +47,111 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
private
List
<
String
>
orderMemberSigns
;
private
List
<
String
>
orderRentVehicleSigns
;
private
List
<
String
>
orderTourSigns
;
private
Map
<
String
,
String
>
signAndDescMap
;
/**
* 订单统计数据导出
*
* @param orderReceivedStatisticsFindDTO
* @param outputStream
*/
public
void
exportOrderReceivedStatisticsData
(
OrderReceivedStatisticsFindDTO
orderReceivedStatisticsFindDTO
,
ServletOutputStream
outputStream
)
throws
IOException
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderReceivedStatisticsResult
=
getOrderReceivedStatisticsResult
(
orderReceivedStatisticsFindDTO
);
XSSFWorkbook
workbook
=
new
XSSFWorkbook
();
Sheet
sheet
=
workbook
.
createSheet
(
"订单统计"
);
Row
headerRow
=
sheet
.
createRow
(
0
);
//标题样式
CellStyle
headerCellStyle
=
createCellStyle
(
workbook
,
true
);
//创建标题
createHeader
(
headerRow
,
headerCellStyle
,
orderReceivedStatisticsFindDTO
.
getStatisticalSigns
());
//创建数据样式
CellStyle
dataCellStyle
=
createCellStyle
(
workbook
,
false
);
createData
(
orderReceivedStatisticsResult
,
orderReceivedStatisticsFindDTO
.
getStatisticalWay
(),
orderReceivedStatisticsFindDTO
.
getStatisticalSigns
(),
sheet
,
1
,
dataCellStyle
);
workbook
.
write
(
outputStream
);
workbook
.
close
();
}
private
void
createData
(
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
data
,
Integer
statisticalWay
,
List
<
String
>
signs
,
Sheet
sheet
,
int
rowIndex
,
CellStyle
cellStyle
){
//自然排序
Collections
.
sort
(
signs
);
int
size
=
data
.
get
(
signs
.
get
(
0
)).
size
();
for
(
int
i
=
0
;
i
<
size
;
i
++){
Row
dataRow
=
sheet
.
createRow
(
rowIndex
++);
Cell
firstCell
=
dataRow
.
createCell
(
0
);
firstCell
.
setCellStyle
(
cellStyle
);
for
(
int
cellIndex
=
1
;
cellIndex
<=
signs
.
size
();
cellIndex
++)
{
Cell
dataCell
=
dataRow
.
createCell
(
cellIndex
);
dataCell
.
setCellStyle
(
cellStyle
);
String
sign
=
signs
.
get
(
cellIndex
-
1
);
List
<
OrderReceivedStatisticsVo
>
orderReceivedStatisticsVos
=
data
.
get
(
sign
);
if
(
CollectionUtils
.
isEmpty
(
orderReceivedStatisticsVos
)
||
i
>
orderReceivedStatisticsVos
.
size
()){
continue
;
}
OrderReceivedStatisticsVo
orderReceivedStatisticsVo
=
orderReceivedStatisticsVos
.
get
(
i
);
if
(
sign
.
endsWith
(
"q"
)){
dataCell
.
setCellValue
(
String
.
valueOf
(
orderReceivedStatisticsVo
.
getOrderNum
()));
}
if
(
sign
.
endsWith
(
"a"
)){
dataCell
.
setCellValue
(
String
.
valueOf
(
orderReceivedStatisticsVo
.
getOrderAmount
()));
}
if
(
cellIndex
==
1
){
if
(
ReceivedStatisticsEnum
.
DAY
.
getWayCode
()==
statisticalWay
){
firstCell
.
setCellValue
(
DateUtil
.
format
(
orderReceivedStatisticsVo
.
getDate
(),
"yyyy.MM.dd"
));
}
if
(
ReceivedStatisticsEnum
.
WEEK
.
getWayCode
()==
statisticalWay
){
Date
startDate
=
orderReceivedStatisticsVo
.
getDate
();
String
startDateStr
=
DateUtil
.
format
(
startDate
,
"yyyy-MM-dd"
);
String
endDateStr
=
DateUtil
.
offset
(
startDate
,
DateField
.
DAY_OF_MONTH
,
6
).
toDateStr
();
firstCell
.
setCellValue
(
String
.
format
(
"%s~%s"
,
startDateStr
,
endDateStr
));
}
if
(
ReceivedStatisticsEnum
.
MONTH
.
getWayCode
()==
statisticalWay
){
StringBuilder
sb
=
new
StringBuilder
(
orderReceivedStatisticsVo
.
getMonth
());
sb
.
insert
(
4
,
"."
);
firstCell
.
setCellValue
(
sb
.
toString
());
}
}
}
}
}
private
void
createHeader
(
Row
row
,
CellStyle
cellStyle
,
List
<
String
>
signs
){
//自然排序
Collections
.
sort
(
signs
);
Cell
firstCell
=
row
.
createCell
(
0
);
firstCell
.
setCellValue
(
"时间"
);
firstCell
.
setCellStyle
(
cellStyle
);
for
(
int
i
=
1
;
i
<=
signs
.
size
();
i
++)
{
Cell
cell
=
row
.
createCell
(
i
);
cell
.
setCellValue
(
signAndDescMap
.
get
(
signs
.
get
(
i
-
1
)));
cell
.
setCellStyle
(
cellStyle
);
}
}
private
CellStyle
createCellStyle
(
Workbook
workbook
,
boolean
bold
){
CellStyle
cellStyle
=
workbook
.
createCellStyle
();
Font
font
=
createFont
(
workbook
,
bold
);
cellStyle
.
setFont
(
font
);
cellStyle
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
cellStyle
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
return
cellStyle
;
}
private
Font
createFont
(
Workbook
workbook
,
boolean
bold
){
Font
font
=
workbook
.
createFont
();
font
.
setFontName
(
"黑体"
);
font
.
setBold
(
bold
);
font
.
setBold
(
true
);
return
font
;
}
/**
* 获取订单统计数据
*
* @param orderReceivedStatisticsFindDTO
* @return
*/
public
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
getOrderReceivedStatisticsResult
(
OrderReceivedStatisticsFindDTO
orderReceivedStatisticsFindDTO
)
{
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
resultMap
=
new
HashMap
<>();
List
<
String
>
statisticalSigns
=
orderReceivedStatisticsFindDTO
.
getStatisticalSigns
();
...
...
@@ -47,20 +162,10 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
//日 周 月 的统计
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderstatisticsMap
=
ReceivedStatisticsEnum
.
orderstatistics
(
orderReceivedStatisticsList
,
orderReceivedStatisticsFindDTO
.
getStatisticalWay
());
//统计项
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderReceivedStatisticsMap
=
OrderReceivedStatisticsSignEnum
.
orderReceivedStatistics
(
orderstatisticsMap
,
retainAll
(
orderSigns
,
statisticalSigns
));
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderReceivedStatisticsMap
=
OrderReceivedStatisticsSignEnum
.
orderReceivedStatistics
(
orderstatisticsMap
,
retainAll
(
orderSigns
,
statisticalSigns
));
resultMap
.
putAll
(
orderReceivedStatisticsMap
);
}
//会员订单统计
if
(
CollectionUtil
.
containsAny
(
statisticalSigns
,
orderMemberSigns
))
{
List
<
OrderMemberReceivedStatistics
>
orderMemberReceivedStatisticsList
=
orderMemberReceivedStatisticsBiz
.
selectOrderReceivedStatistics
(
orderReceivedStatisticsFindDTO
);
//日 周 月 的统计
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMemberstatisticsMap
=
ReceivedStatisticsEnum
.
orderstatistics
(
orderMemberReceivedStatisticsList
,
orderReceivedStatisticsFindDTO
.
getStatisticalWay
());
//统计项
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderMemberReceivedStatisticsMap
=
OrderMemberReceivedStatisticsSignEnum
.
orderMemberstatisticsMap
(
orderMemberstatisticsMap
,
retainAll
(
orderMemberSigns
,
statisticalSigns
));
resultMap
.
putAll
(
orderMemberReceivedStatisticsMap
);
}
//租车订单统计
if
(
CollectionUtil
.
containsAny
(
statisticalSigns
,
orderRentVehicleSigns
))
{
List
<
OrderRentVehicleReceivedStatistics
>
orderRentVehicleReceivedStatisticsList
=
orderRentVehicleReceivedStatisticsBiz
.
selectOrderReceivedStatistics
(
orderReceivedStatisticsFindDTO
);
...
...
@@ -80,6 +185,16 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderTourReceivedStatisticsMap
=
OrderTourReceivedStatisticsSignEnum
.
orderMemberstatisticsMap
(
orderTourstatisticsMap
,
retainAll
(
orderTourSigns
,
statisticalSigns
));
resultMap
.
putAll
(
orderTourReceivedStatisticsMap
);
}
//会员订单统计
if
(
CollectionUtil
.
containsAny
(
statisticalSigns
,
orderMemberSigns
))
{
List
<
OrderMemberReceivedStatistics
>
orderMemberReceivedStatisticsList
=
orderMemberReceivedStatisticsBiz
.
selectOrderReceivedStatistics
(
orderReceivedStatisticsFindDTO
);
//日 周 月 的统计
Map
<
Object
,
List
<
OrderReceivedStatisticsBase
>>
orderMemberstatisticsMap
=
ReceivedStatisticsEnum
.
orderstatistics
(
orderMemberReceivedStatisticsList
,
orderReceivedStatisticsFindDTO
.
getStatisticalWay
());
//统计项
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderMemberReceivedStatisticsMap
=
OrderMemberReceivedStatisticsSignEnum
.
orderMemberstatisticsMap
(
orderMemberstatisticsMap
,
retainAll
(
orderMemberSigns
,
statisticalSigns
));
resultMap
.
putAll
(
orderMemberReceivedStatisticsMap
);
}
return
resultMap
;
}
...
...
@@ -89,11 +204,12 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
/**
* 取两个集合的交集
*
* @param source
* @param target
* @return
*/
private
List
<
String
>
retainAll
(
List
<
String
>
source
,
List
<
String
>
target
)
{
private
List
<
String
>
retainAll
(
List
<
String
>
source
,
List
<
String
>
target
)
{
ArrayList
<
String
>
sourceBak
=
Lists
.
newArrayList
(
source
);
sourceBak
.
retainAll
(
target
);
return
sourceBak
;
...
...
@@ -101,9 +217,20 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
signAndDescMap
=
new
HashMap
<>();
orderSigns
=
EnumSet
.
allOf
(
OrderReceivedStatisticsSignEnum
.
class
).
stream
().
map
(
OrderReceivedStatisticsSignEnum:
:
getSign
).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
orderSignAndDescMap
=
EnumSet
.
allOf
(
OrderReceivedStatisticsSignEnum
.
class
).
stream
().
collect
(
Collectors
.
toMap
(
OrderReceivedStatisticsSignEnum:
:
getSign
,
OrderReceivedStatisticsSignEnum:
:
getDesc
));
signAndDescMap
.
putAll
(
orderSignAndDescMap
);
orderMemberSigns
=
EnumSet
.
allOf
(
OrderMemberReceivedStatisticsSignEnum
.
class
).
stream
().
map
(
OrderMemberReceivedStatisticsSignEnum:
:
getSign
).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
orderMemberSignAndDescMap
=
EnumSet
.
allOf
(
OrderMemberReceivedStatisticsSignEnum
.
class
).
stream
().
collect
(
Collectors
.
toMap
(
OrderMemberReceivedStatisticsSignEnum:
:
getSign
,
OrderMemberReceivedStatisticsSignEnum:
:
getDesc
));
signAndDescMap
.
putAll
(
orderMemberSignAndDescMap
);
orderRentVehicleSigns
=
EnumSet
.
allOf
(
OrderRentVehicleReceivedStatisticsSignEnum
.
class
).
stream
().
map
(
OrderRentVehicleReceivedStatisticsSignEnum:
:
getSign
).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
orderRentVehicleSignAndDescMap
=
EnumSet
.
allOf
(
OrderRentVehicleReceivedStatisticsSignEnum
.
class
).
stream
().
collect
(
Collectors
.
toMap
(
OrderRentVehicleReceivedStatisticsSignEnum:
:
getSign
,
OrderRentVehicleReceivedStatisticsSignEnum:
:
getDesc
));
signAndDescMap
.
putAll
(
orderRentVehicleSignAndDescMap
);
orderTourSigns
=
EnumSet
.
allOf
(
OrderTourReceivedStatisticsSignEnum
.
class
).
stream
().
map
(
OrderTourReceivedStatisticsSignEnum:
:
getSign
).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
orderTourSignAndDescMap
=
EnumSet
.
allOf
(
OrderTourReceivedStatisticsSignEnum
.
class
).
stream
().
collect
(
Collectors
.
toMap
(
OrderTourReceivedStatisticsSignEnum:
:
getSign
,
OrderTourReceivedStatisticsSignEnum:
:
getDesc
));
signAndDescMap
.
putAll
(
orderTourSignAndDescMap
);
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/OrderReceivedStatisticsAdminController.java
View file @
a525b530
package
com
.
xxfc
.
platform
.
order
.
rest
.
background
;
import
com.github.wxiaoqi.security.common.annotation.BeanValid
;
import
com.github.wxiaoqi.security.common.annotation.SimpleValid
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.order.biz.OrderReceivedStatisticsBiz
;
import
com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO
;
...
...
@@ -8,12 +10,18 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -23,6 +31,7 @@ import java.util.Map;
* @description 订单统计
* @data 2019/11/11 9:14
*/
@Slf4j
@Api
(
tags
=
"订单统计"
)
@RestController
@RequestMapping
(
"admin/order/received_statistics"
)
...
...
@@ -36,4 +45,22 @@ public class OrderReceivedStatisticsAdminController {
Map
<
String
,
List
<
OrderReceivedStatisticsVo
>>
orderReceivedStatisticsPageVo
=
orderReceivedStatisticsBiz
.
getOrderReceivedStatisticsResult
(
orderReceivedStatisticsFindDTO
);
return
ObjectRestResponse
.
succ
(
orderReceivedStatisticsPageVo
);
}
@ApiOperation
(
"订单统计excel导出下载"
)
@PostMapping
(
value
=
"/export"
,
consumes
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
ObjectRestResponse
<
Void
>
exportOrderReceivedStatistics
(
@RequestBody
@BeanValid
OrderReceivedStatisticsFindDTO
orderReceivedStatisticsFindDTO
,
HttpServletResponse
response
){
try
{
String
name
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
).
format
(
LocalDateTime
.
now
());
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
String
filename
=
String
.
format
(
"%s-OrderReceivedStatistics.xlsx"
,
name
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
filename
.
getBytes
(),
"iso8859-1"
));
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
orderReceivedStatisticsBiz
.
exportOrderReceivedStatisticsData
(
orderReceivedStatisticsFindDTO
,
outputStream
);
response
.
setCharacterEncoding
(
"UTF-8"
);
return
ObjectRestResponse
.
succ
();
}
catch
(
Exception
ex
){
log
.
error
(
"导出数据失败【{}】"
,
ex
);
throw
new
BaseException
(
"导出数据失败"
);
}
}
}
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