diff --git a/src/main/java/com/whdc/controller/AddressBookController.java b/src/main/java/com/whdc/controller/AddressBookController.java index f75dd0c..dbef538 100644 --- a/src/main/java/com/whdc/controller/AddressBookController.java +++ b/src/main/java/com/whdc/controller/AddressBookController.java @@ -3,11 +3,9 @@ package com.whdc.controller; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.whdc.exception.MyException; import com.whdc.model.dto.AddressBootDto; -import com.whdc.model.entity.AbUdR; -import com.whdc.model.entity.AddressBook; -import com.whdc.model.entity.Organization; -import com.whdc.model.entity.User; +import com.whdc.model.entity.*; import com.whdc.model.enums.Role; import com.whdc.model.enums.VersionsType; import com.whdc.model.group.Insert; @@ -429,22 +427,26 @@ public class AddressBookController { } - @ApiOperation(value = "通过行政区划下载excel") @GetMapping(value = "getExcel/{adnm}") - public ResultJson getExcel(@PathVariable("adnm") String adnm, HttpServletResponse response) { + public void getExcel(@PathVariable("adnm") String adnm, HttpServletResponse response) { - List tree = adinfoService.tree(adnm, adnm); + // 查询全部标识 + if ("all".equals(adnm)) { + adnm = null; + } - if (CollectionUtils.isEmpty(tree)){ - return ResultJson.error("当前行政区划不存在"); + List tree = adinfoService.tree(null, null); + + if (CollectionUtils.isEmpty(tree)) { + throw new MyException("当前行政区划不存在"); } List addressBooks = service.lambdaQuery().isNotNull(AddressBook::getAdcd) .list(); if (CollectionUtils.isEmpty(addressBooks)) { - return ResultJson.error("行政区划责任人为空"); + throw new MyException("行政区划责任人为空"); } Map> abMap = addressBooks.stream().collect(Collectors.groupingBy(AddressBook::getAdcd, Collectors.toList())); @@ -452,32 +454,56 @@ public class AddressBookController { // 行政区划责任人数据 List data = Lists.newArrayList(); - tree.forEach(t ->{ + String finalAdnm = adnm; + for (int i = 0; i < tree.size(); i++) { + AdcdTree t = tree.get(i); String adcd = t.getAdcd(); String cityAdnm = t.getAdnm(); List books = abMap.get(adcd); - books.forEach(b ->{ - data.add(new ExcelABVo(cityAdnm,cityAdnm,b.getName(),b.getPosition(),b.getPhone())); + if (CollectionUtils.isEmpty(books)) { + continue; + } + books.forEach(b -> { + if (StringUtils.isNotBlank(finalAdnm)) { + if (cityAdnm.equals(finalAdnm)) { + data.add(new ExcelABVo(cityAdnm, cityAdnm, b.getName(), b.getPosition(), b.getPhone())); + } + } else { + data.add(new ExcelABVo(cityAdnm, cityAdnm, b.getName(), b.getPosition(), b.getPhone())); + } }); - t.getChildren().forEach(tc ->{ - String tcAdcd = tc.getAdcd(); - String tcCityAdnm = tc.getAdnm(); - List tcBooks = abMap.get(tcAdcd); - books.forEach(b ->{ - data.add(new ExcelABVo(cityAdnm,tcCityAdnm,b.getName(),b.getPosition(),b.getPhone())); - }); - }); - }); + List children = t.getChildren(); + if (CollectionUtils.isNotEmpty(children)) { + for (int i1 = 1; i1 < children.size(); i1++) { + AdcdTree tc = children.get(i1); + String tcAdcd = tc.getAdcd(); + String tcCityAdnm = tc.getAdnm(); + List tcBooks = abMap.get(tcAdcd); + if (CollectionUtils.isEmpty(tcBooks)) { + continue; + } + tcBooks.forEach(b -> { + if (StringUtils.isNotBlank(finalAdnm)) { + if (cityAdnm.equals(finalAdnm) || tcCityAdnm.equals(finalAdnm)) { + data.add(new ExcelABVo(cityAdnm, tcCityAdnm, b.getName(), b.getPosition(), b.getPhone())); + } + } else { + data.add(new ExcelABVo(cityAdnm, tcCityAdnm, b.getName(), b.getPosition(), b.getPhone())); + } + }); + } + } + + }; if (CollectionUtils.isEmpty(data)) { - return ResultJson.error("当前行政区划责任人为空"); + throw new MyException("当前行政区划责任人为空"); } ExcelCommon.exportExcel(data, - "防汛抗旱通讯录", "防汛抗旱通讯录", ExcelABVo.class, "防汛抗旱通讯录_"+ adnm +"_" + LocalDateTime.now() + ".xlsx", + "防汛抗旱通讯录", "防汛抗旱通讯录", ExcelABVo.class, "防汛抗旱通讯录_" + adnm + "_" + LocalDateTime.now() + ".xlsx", response); - return ResultJson.ok(""); } }