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