5 changed files with 237 additions and 402 deletions
@ -1,47 +0,0 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 用户基础信息 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2021-10-26 |
|||
*/ |
|||
@Component |
|||
public class IcResiUserRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,183 @@ |
|||
package com.epmet.epmetuser.test; |
|||
|
|||
import cn.afterturn.easypoi.excel.entity.ExportParams; |
|||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; |
|||
import cn.afterturn.easypoi.excel.export.ExcelExportService; |
|||
import com.alibaba.fastjson.JSON; |
|||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.RenException; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.CustomerFormQueryDTO; |
|||
import com.epmet.dto.result.CustomerFormResultDTO; |
|||
import com.epmet.dto.result.FormGroupDTO; |
|||
import com.epmet.dto.result.FormItem; |
|||
import com.epmet.feign.OperCustomizeOpenFeignClient; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
|||
import org.jetbrains.annotations.NotNull; |
|||
import org.junit.Test; |
|||
import org.junit.runner.RunWith; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.boot.test.context.SpringBootTest; |
|||
import org.springframework.test.context.junit4.SpringRunner; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
|
|||
import java.io.FileOutputStream; |
|||
import java.util.*; |
|||
|
|||
@SpringBootTest |
|||
@RunWith(SpringRunner.class) |
|||
public class IcResiUserControllerTest { |
|||
private static final String BASE_TABLE_NAME = "BASE_TABLE_NAME"; |
|||
@Autowired |
|||
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; |
|||
|
|||
@Test |
|||
public void downloadTemplate(@RequestParam String customerId) throws Exception { |
|||
CustomerFormResultDTO resultForm = getResiFormItems(customerId); |
|||
|
|||
XSSFWorkbook workbook = new XSSFWorkbook(); |
|||
Map<String, List<ExcelExportEntity>> sheetHeaderMap = buildHeaderByItem(resultForm); |
|||
//Workbook workbook = null;
|
|||
for (Map.Entry<String, List<ExcelExportEntity>> entry : sheetHeaderMap.entrySet()) { |
|||
String sheetName = entry.getKey(); |
|||
List<ExcelExportEntity> headers = entry.getValue(); |
|||
System.out.println("headers:"+sheetName+JSON.toJSONString(headers)); |
|||
ExportParams exportParams = new ExportParams(null,sheetName); |
|||
//exportParams.setAutoSize(true);
|
|||
List<Map<String,String>> dataSet = new ArrayList<>(); |
|||
HashMap<String, String> map = new HashMap<>(); |
|||
map.put("1","2"); |
|||
dataSet.add(map); |
|||
new ExcelExportService().createSheetForMap(workbook, exportParams, headers, dataSet); |
|||
} |
|||
|
|||
FileOutputStream fos = new FileOutputStream("//Users/liujianjun/Downloads/基础信息表/Dow.tt.xls"); |
|||
workbook.write(fos); |
|||
fos.close(); |
|||
} |
|||
|
|||
@NotNull |
|||
private CustomerFormResultDTO getResiFormItems(String customerId) { |
|||
CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO(); |
|||
queryDTO.setFormCode("resi_base_info"); |
|||
queryDTO.setCustomerId(customerId); |
|||
Result<CustomerFormResultDTO> resultForm = operCustomizeOpenFeignClient.getCustomerForm(queryDTO); |
|||
if (resultForm == null || !resultForm.success() ||resultForm.getData() == null){ |
|||
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); |
|||
} |
|||
System.out.println(JSON.toJSONString(resultForm.getData())); |
|||
return resultForm.getData(); |
|||
} |
|||
|
|||
@NotNull |
|||
private Map<String,List<ExcelExportEntity>> buildHeaderByItem(CustomerFormResultDTO resultForm) { |
|||
//form中的itemlist 为一级表头 但是要排除每个item中含有childGroup的
|
|||
|
|||
List<FormItem> itemList = resultForm.getItemList(); |
|||
List<FormGroupDTO> groupList = resultForm.getGroupList(); |
|||
|
|||
Map<String,List<ExcelExportEntity>> everySheetHeaderMap = new LinkedHashMap<>(); |
|||
|
|||
List<ExcelExportEntity> firstSheetHeaderList = new ArrayList<>(); |
|||
//Map<String, String> groupNameMap = groupList.stream().collect(Collectors.toMap(FormGroupDTO::getGroupId,FormGroupDTO::getLabel));
|
|||
itemList.forEach(item->{ |
|||
if (StringUtils.isBlank(item.getColumnName())){ |
|||
return; |
|||
} |
|||
|
|||
if (item.getChildGroup() == null){ |
|||
ExcelExportEntity header = new ExcelExportEntity(item.getLabel(),item.getColumnName().concat(String.valueOf(item.getColumnNum())),30); |
|||
header.setNeedMerge(true); |
|||
firstSheetHeaderList.add(header); |
|||
return; |
|||
} |
|||
everySheetHeaderMap.putIfAbsent(resultForm.getFormName(),firstSheetHeaderList); |
|||
|
|||
//这些是动态的 formGroup
|
|||
if (item.getChildGroup() != null){ |
|||
//baseTableName单独的一个sheet
|
|||
System.out.println("childGroup:"+item.getLabel()); |
|||
if (BASE_TABLE_NAME.equals(item.getTableName())){ |
|||
List<ExcelExportEntity> otherSheetHeaderList = new ArrayList<>(); |
|||
//这里是设置除基础信息之外的sheet的表头
|
|||
item.getChildGroup().getItemList().forEach(item2->{ |
|||
if (!BASE_TABLE_NAME.equals(item2.getTableName())){ |
|||
everySheetHeaderMap.putIfAbsent(item.getLabel(),otherSheetHeaderList); |
|||
} |
|||
ExcelExportEntity secondHeader = new ExcelExportEntity(item2.getLabel(),item2.getColumnName().concat(String.valueOf(item2.getColumnNum()))); |
|||
|
|||
otherSheetHeaderList.add(secondHeader); |
|||
if (!"radio".equals(item2.getItemType()) && CollectionUtils.isNotEmpty(item2.getOptions())){ |
|||
secondHeader.setNeedMerge(true); |
|||
List<ExcelExportEntity> thirdHeaderList = new ArrayList<>(); |
|||
item2.getOptions().forEach(child->{ |
|||
ExcelExportEntity thirdHeader = new ExcelExportEntity(child.getLabel()); |
|||
thirdHeaderList.add(thirdHeader); |
|||
}); |
|||
secondHeader.setList(thirdHeaderList); |
|||
} |
|||
|
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
groupList.forEach(item->{ |
|||
/* if (!"兴趣爱好".equals(item.getLabel()) && !"宗教信仰".equals(item.getLabel())){ |
|||
return; |
|||
}*/ |
|||
if (!BASE_TABLE_NAME.equals(item.getTableName())){ |
|||
return; |
|||
} |
|||
ExcelExportEntity header = new ExcelExportEntity(item.getLabel(),item.getTableName()); |
|||
header.setNeedMerge(true); |
|||
List<ExcelExportEntity> secondHeaderList = new ArrayList<>(); |
|||
item.getItemList().forEach(item2->{ |
|||
ExcelExportEntity secondHeader = new ExcelExportEntity(item2.getLabel(),item2.getColumnName().concat(String.valueOf(item2.getColumnNum()))); |
|||
secondHeader.setNeedMerge(true); |
|||
secondHeaderList.add(secondHeader); |
|||
if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(item2.getOptions())){ |
|||
List<ExcelExportEntity> thirdHeaderList = new ArrayList<>(); |
|||
item2.getOptions().forEach(child->{ |
|||
ExcelExportEntity thirdHeader = new ExcelExportEntity(child.getLabel(),child.getValue()+ new Random(1).nextInt(2)); |
|||
thirdHeader.setNeedMerge(true); |
|||
thirdHeaderList.add(thirdHeader); |
|||
}); |
|||
secondHeader.setList(thirdHeaderList); |
|||
} |
|||
|
|||
}); |
|||
header.setList(secondHeaderList); |
|||
firstSheetHeaderList.add(header); |
|||
System.out.println(JSON.toJSONString(firstSheetHeaderList)); |
|||
}); |
|||
return everySheetHeaderMap; |
|||
} |
|||
|
|||
private void buildHeader(Map<String, List<ExcelExportEntity>> everySheetHeaderMap, FormItem item, ExcelExportEntity header) { |
|||
List<ExcelExportEntity> firstSheetHeaderList = new ArrayList<>(); |
|||
List<ExcelExportEntity> secondHeaderList = new ArrayList<>(); |
|||
item.getChildGroup().getItemList().forEach(item2->{ |
|||
if (!BASE_TABLE_NAME.equals(item2.getTableName())){ |
|||
everySheetHeaderMap.putIfAbsent(item.getLabel(),firstSheetHeaderList); |
|||
} |
|||
ExcelExportEntity secondHeader = new ExcelExportEntity(item2.getLabel(),item2.getColumnName().concat(String.valueOf(item2.getColumnNum()))); |
|||
secondHeader.setNeedMerge(true); |
|||
secondHeaderList.add(secondHeader); |
|||
if (CollectionUtils.isNotEmpty(item2.getOptions())){ |
|||
List<ExcelExportEntity> thirdHeaderList = new ArrayList<>(); |
|||
item2.getOptions().forEach(child->{ |
|||
ExcelExportEntity thirdHeader = new ExcelExportEntity(child.getLabel()); |
|||
thirdHeaderList.add(thirdHeader); |
|||
}); |
|||
secondHeader.setList(thirdHeaderList); |
|||
} |
|||
|
|||
}); |
|||
header.setList(secondHeaderList); |
|||
firstSheetHeaderList.add(header); |
|||
everySheetHeaderMap.putIfAbsent(item.getLabel(),firstSheetHeaderList); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue