|
@@ -5,11 +5,13 @@ import com.alibaba.excel.ExcelWriter;
|
5
|
5
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
6
|
6
|
import com.huiju.estateagents.base.BaseController;
|
7
|
7
|
import com.huiju.estateagents.base.ResponseBean;
|
|
8
|
+import com.huiju.estateagents.entity.TdWxDict;
|
8
|
9
|
import com.huiju.estateagents.excel.IntentionUser;
|
9
|
10
|
import com.huiju.estateagents.excel.StatsBuilding;
|
10
|
11
|
import com.huiju.estateagents.excel.StatsTimeBuilding;
|
11
|
12
|
import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
|
12
|
13
|
import com.huiju.estateagents.service.IStatisticalService;
|
|
14
|
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
|
13
|
15
|
import org.springframework.beans.factory.annotation.Autowired;
|
14
|
16
|
import org.springframework.format.annotation.DateTimeFormat;
|
15
|
17
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
@@ -21,7 +23,9 @@ import javax.servlet.http.HttpServletRequest;
|
21
|
23
|
import javax.servlet.http.HttpServletResponse;
|
22
|
24
|
import java.io.IOException;
|
23
|
25
|
import java.time.LocalDate;
|
|
26
|
+import java.util.ArrayList;
|
24
|
27
|
import java.util.List;
|
|
28
|
+import java.util.Map;
|
25
|
29
|
|
26
|
30
|
/**
|
27
|
31
|
* 数据统计
|
|
@@ -326,4 +330,73 @@ public class StatisticalController extends BaseController {
|
326
|
330
|
excelWriter.finish();
|
327
|
331
|
}
|
328
|
332
|
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+ /**
|
|
336
|
+ * 新增用户导出
|
|
337
|
+ * @return
|
|
338
|
+ */
|
|
339
|
+ @GetMapping(value = "/admin/exportUserStats")
|
|
340
|
+ public void exportUserStats(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
|
|
341
|
+ @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endDate,
|
|
342
|
+ @RequestParam(value = "userType", required = false) String userType,
|
|
343
|
+ HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
344
|
+ response.setContentType("application/octet-stream");
|
|
345
|
+ response.setCharacterEncoding("utf-8");
|
|
346
|
+ response.setHeader("Content-disposition", "attachment;filename=新增用户.xlsx");
|
|
347
|
+ ResponseBean responseBean = iStatisticalService.selectPersonFrom(getOrgId(request), startDate, endDate);
|
|
348
|
+ List<List<String>> headerList = headerList(responseBean.getData());
|
|
349
|
+ List<List<String>> dataList = dataList(responseBean.getData(),userType);
|
|
350
|
+ EasyExcel.write(response.getOutputStream()).head(headerList).sheet("新增用户").doWrite(dataList);
|
|
351
|
+ }
|
|
352
|
+
|
|
353
|
+ /**
|
|
354
|
+ * 构建表数据
|
|
355
|
+ * @param data
|
|
356
|
+ * @return
|
|
357
|
+ */
|
|
358
|
+ private List<List<String>> dataList(Object data,String userType) {
|
|
359
|
+ Map<String, Object> map = (Map<String, Object>) data;
|
|
360
|
+ List<TsPersonFromStatistic> list = (List<TsPersonFromStatistic>) map.get("list");
|
|
361
|
+ List<List<String>> dataList = new ArrayList<>();
|
|
362
|
+ List<TdWxDict> tdWxDicts = (List<TdWxDict>) map.get("tdWxDicts");
|
|
363
|
+ list.forEach(l -> {
|
|
364
|
+ List<String> columlist = new ArrayList<>();
|
|
365
|
+ columlist.add(l.getCreateTime());
|
|
366
|
+ tdWxDicts.forEach(e -> {
|
|
367
|
+ if (e.getSceneType().equals(l.getSceneType())){
|
|
368
|
+ if (userType.equals("registered")){
|
|
369
|
+ columlist.add(l.getRegisteredNum().toString());
|
|
370
|
+ }else {
|
|
371
|
+ columlist.add(l.getFromNum().toString());
|
|
372
|
+ }
|
|
373
|
+ }else {
|
|
374
|
+ columlist.add("0");
|
|
375
|
+ }
|
|
376
|
+ });
|
|
377
|
+ dataList.add(columlist);
|
|
378
|
+ });
|
|
379
|
+ return dataList;
|
|
380
|
+ }
|
|
381
|
+
|
|
382
|
+ /**
|
|
383
|
+ * 构造表头
|
|
384
|
+ * @param data
|
|
385
|
+ * @return
|
|
386
|
+ */
|
|
387
|
+ private List<List<String>> headerList(Object data) {
|
|
388
|
+ Map<String, Object> map = (Map<String, Object>) data;
|
|
389
|
+ List<TdWxDict> tdWxDicts = (List<TdWxDict>) map.get("tdWxDicts");
|
|
390
|
+ List<List<String>> headerList = new ArrayList<>();
|
|
391
|
+ List<String> rqHeader = new ArrayList<>();
|
|
392
|
+ rqHeader.add("日期");
|
|
393
|
+ headerList.add(rqHeader);
|
|
394
|
+ tdWxDicts.forEach(e -> {
|
|
395
|
+ List<String> header = new ArrayList<>();
|
|
396
|
+ header.add(e.getSceneAlias());
|
|
397
|
+ headerList.add(header);
|
|
398
|
+ });
|
|
399
|
+ return headerList;
|
|
400
|
+ }
|
|
401
|
+
|
329
|
402
|
}
|