|
@@ -1,17 +1,21 @@
|
1
|
1
|
package com.yunzhi.inte.controller;
|
2
|
2
|
|
|
3
|
+import com.alibaba.excel.write.handler.WriteHandler;
|
|
4
|
+import com.alibaba.excel.write.merge.AbstractMergeStrategy;
|
3
|
5
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
4
|
6
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
5
|
7
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
6
|
|
-import com.yunzhi.inte.common.BaseController;
|
7
|
|
-import com.yunzhi.inte.common.Constants;
|
8
|
|
-import com.yunzhi.inte.common.ResponseBean;
|
|
8
|
+import com.yunzhi.inte.common.*;
|
|
9
|
+
|
|
10
|
+import java.util.ArrayList;
|
9
|
11
|
import java.util.List;
|
|
12
|
+import java.util.stream.Collectors;
|
10
|
13
|
|
11
|
|
-import com.yunzhi.inte.common.StringUtils;
|
|
14
|
+import com.yunzhi.inte.common.excel.CustomMergeStrategy;
|
12
|
15
|
import com.yunzhi.inte.entity.Dishes;
|
13
|
16
|
import com.yunzhi.inte.entity.PackageDetail;
|
14
|
17
|
import com.yunzhi.inte.entity.Store;
|
|
18
|
+import com.yunzhi.inte.vo.PackageExport;
|
15
|
19
|
import io.swagger.annotations.Api;
|
16
|
20
|
import io.swagger.annotations.ApiOperation;
|
17
|
21
|
import io.swagger.annotations.ApiParam;
|
|
@@ -20,6 +24,8 @@ import org.springframework.web.bind.annotation.*;
|
20
|
24
|
import com.yunzhi.inte.entity.Package;
|
21
|
25
|
import com.yunzhi.inte.service.PackageService;
|
22
|
26
|
|
|
27
|
+import javax.servlet.http.HttpServletResponse;
|
|
28
|
+
|
23
|
29
|
/**
|
24
|
30
|
* 套餐;(package)表控制层
|
25
|
31
|
* @author : http://njyunzhi.com
|
|
@@ -75,11 +81,39 @@ public class PackageController extends BaseController {
|
75
|
81
|
* @return 查询结果
|
76
|
82
|
*/
|
77
|
83
|
@ApiOperation("导出套餐")
|
78
|
|
- @GetMapping("/export")
|
79
|
|
- public ResponseBean export() throws Exception {
|
|
84
|
+ @GetMapping("/package/export")
|
|
85
|
+ public void export(HttpServletResponse response) throws Exception {
|
80
|
86
|
List<PackageDetail> result = packageService.exportAll();
|
|
87
|
+ List<PackageExport> exportList = new ArrayList<>();
|
|
88
|
+ if (null != result && result.size() > 0) {
|
|
89
|
+ int no = 0;
|
|
90
|
+ String lastName = "";
|
|
91
|
+ for (int i = 0; i < result.size(); i += 1) {
|
|
92
|
+ PackageDetail detail = result.get(i);
|
|
93
|
+ if (!lastName.equals(detail.getPackageName())) {
|
|
94
|
+ no += 1;
|
|
95
|
+ }
|
|
96
|
+ lastName = detail.getPackageName();
|
|
97
|
+
|
|
98
|
+ PackageExport item = new PackageExport();
|
|
99
|
+ item.setNo(no);
|
|
100
|
+ item.setPackageName(detail.getPackageName());
|
|
101
|
+ item.setDishName(String.format("【%s】%s", 1 == detail.getDishKind() ? "主食": "菜肴", detail.getDishName()));
|
|
102
|
+ exportList.add(item);
|
|
103
|
+ }
|
|
104
|
+ }
|
81
|
105
|
|
82
|
|
- return ResponseBean.success(result);
|
|
106
|
+ // 单元格合并策略
|
|
107
|
+ List<String> mergeNo = exportList.stream().map(x -> x.getNo().toString()).collect(Collectors.toList());
|
|
108
|
+ List<String> mergeName = exportList.stream().map(PackageExport::getPackageName).collect(Collectors.toList());
|
|
109
|
+ CustomMergeStrategy mergeStrategy1 = new CustomMergeStrategy(mergeNo, 0);
|
|
110
|
+ CustomMergeStrategy mergeStrategy2 = new CustomMergeStrategy(mergeName, 1);
|
|
111
|
+ List<WriteHandler> mergeStrategyList = new ArrayList<WriteHandler>() {{
|
|
112
|
+ add(mergeStrategy1);
|
|
113
|
+ add(mergeStrategy2);
|
|
114
|
+ }};
|
|
115
|
+
|
|
116
|
+ ExcelUtils.flush2(response, PackageExport.class, exportList, "套餐列表", mergeStrategyList);
|
83
|
117
|
}
|
84
|
118
|
|
85
|
119
|
/**
|