From 89f5d3505099d02e271a2e8c6f77853776f65e07 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Wed, 3 Nov 2021 13:53:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E5=87=86excl=E5=AF=BC=E5=85=A5=20?= =?UTF-8?q?=E5=B7=B2=E7=9F=A5=E6=A0=87=E5=87=86=E7=B1=BB=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ImportExcelDatas/comment/ExclExport.java | 1 + .../controller/ImportExcelController.java | 47 +++++++++- .../ImportExcelDatas/entity/ImportDto.java | 4 + .../service/ImportExcelService.java | 1 + .../service/impl/ImportExcelServiceImpl.java | 94 ++++++++++++++++--- 5 files changed, 132 insertions(+), 15 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/comment/ExclExport.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/comment/ExclExport.java index 7fac0233..29ff23c1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/comment/ExclExport.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/comment/ExclExport.java @@ -23,6 +23,7 @@ public class ExclExport extends ExclErrorOut { for (Map.Entry> entry : dataMap.entrySet()) { List datas = entry.getValue(); Sheet sheet = workbook.createSheet(entry.getKey()); + sheet.setDefaultColumnWidth(25); super.createHeader(workbook,sheet,header); super.createDatas(workbook,sheet,datas); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java index 7ba28226..bf2f0174 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java @@ -52,13 +52,15 @@ public class ImportExcelController extends BaseController { /** * 导入系统 */ - List errorList = importExcelService.storageExclData(mapMap); +// List errorList = importExcelService.storageExclData(mapMap); // mapMap.put("导入后的信息",errorList); // List guonei= mapMap.get("GNBZ"); // List haiwai = mapMap.get("HWBZ"); // List qibiao = mapMap.get("QYBZ"); + + /** * 生成错误表格 */ @@ -94,4 +96,47 @@ public class ImportExcelController extends BaseController { } + + @ApiOperation("从excl中导入标准信息") + @PostMapping("/analysisExcl") + public void analysisExcl(MultipartFile exclFile,MultipartFile standSort, HttpServletResponse response, HttpServletRequest request) throws IOException { + /** + * 分解数据 + */ + String headStr="标准号,标准类别,内容,标准名称,英文名称,发布时间,实施时间,标准状态,代替标准号,//,//"; + Map> stringListMap = importExcelService.analysisExcl(exclFile,standSort); + + + + /** + * 生成错误表格 + */ + OutputStream os = null; + Workbook workbook = null; + try { + + String exportName="错误表格"; + response.setHeader("Content-Disposition", + "attachment; filename=" + ReadExcel.encodeFileName(exportName+".xlsx",request)); + response.setContentType("application/force-download"); + //导出数据 +// workbook = exclErrorOut.exportDatas(guonei,headStr); + + ExclExport exclExport = new ExclExport(); + workbook = exclExport.exportData(stringListMap, headStr); + + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + } catch (IOException e) { + throw new AdcDaBaseException("下载文件失败,请重试"); + } finally { + IOUtils.closeQuietly(os); + if (workbook != null) { + workbook.close(); + } + } + } + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/entity/ImportDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/entity/ImportDto.java index 849680e3..f473618d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/entity/ImportDto.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/entity/ImportDto.java @@ -8,6 +8,10 @@ public class ImportDto extends BaseEntity { // 标准号 private String standId; +//标准类别 + private String standSort; + // + private String standIdExcludeSort; // 标准名称 private String standName; // 英文名称 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/ImportExcelService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/ImportExcelService.java index 61851025..95eaa3af 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/ImportExcelService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/ImportExcelService.java @@ -14,4 +14,5 @@ public interface ImportExcelService extends IService { public List storageExclData(Map> importListMap); + public Map> analysisExcl(MultipartFile exclFile,MultipartFile standSort); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java index 28a15541..aa56d921 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java @@ -31,6 +31,7 @@ import java.io.InputStream; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Pattern; +import java.util.stream.Collectors; @Service public class ImportExcelServiceImpl extends ServiceImpl implements ImportExcelService { @@ -51,9 +52,10 @@ public class ImportExcelServiceImpl extends ServiceImpl6){ + + for (String s : sortList) { + int sortLength = s.length();//标准类别长度 + if (s.equals(content.substring(0,sortLength ))){ + importDto.setStandSort(s); + importDto.setStandIdExcludeSort(content.substring(sortLength)); + } + + } + + importDto.setStandId(null != as[0] ? as[0].trim() : ""); importDto.setStandName(null != as[1] ? as[1].trim() : ""); importDto.setStandNameEN(null != as[2] ? as[2].trim() : ""); importDto.setPublishTime(null != as[3] ? as[3].trim() : ""); importDto.setImplementedTime(null != as[4] ? as[4].trim() : ""); importDto.setStandStatus(null != as[5] ? as[5].trim() : ""); - importDto.setReplaceId(null != as[6] ? as[6].trim() : ""); - } else if (as.length == 7) { - importDto.setStandId(null != as[0] ? as[0].trim() : ""); - importDto.setStandName(null != as[1] ? as[1].trim() : ""); - importDto.setStandNameEN(null != as[2] ? as[2].trim() : ""); - importDto.setPublishTime(null != as[3] ? as[3].trim() : ""); - importDto.setImplementedTime(null != as[4] ? as[4].trim() : ""); - importDto.setStandStatus(null != as[5] ? as[5].trim() : ""); - importDto.setReplaceId(""); + if (length==7){ + importDto.setReplaceId(""); + }else if (length==8){ + importDto.setReplaceId(null != as[6] ? as[6].trim() : ""); + } + } + return importDto; } @@ -241,7 +254,6 @@ public class ImportExcelServiceImpl extends ServiceImpl sortList=new LinkedList<>(); + + @Override + public Map> analysisExcl(MultipartFile exclFile,MultipartFile standSort) { + //TODO analy + + if (exclFile == null || exclFile.getSize() == 0) { + log.error("文件上传错误,重新上传"); + } + String filename = exclFile.getOriginalFilename(); + String standSortName=standSort.getOriginalFilename(); + + List datas = new ArrayList<>(); + + + if (filename.endsWith(".xls")) { + datas = isXls(exclFile); + } else { + datas = isXlsx(exclFile); + } + + if (standSortName.endsWith(".xls")){ + sortList = isXls(standSort); + }else { + sortList = isXlsx(standSort); + } + + HashMap> result = new HashMap<>(); + LinkedList exportList = new LinkedList<>(); + HashSet distinct = new HashSet<>(); + datas.forEach(data->{ + System.out.print("#"); + String[] row = data.split("\\,"); + if (row.length>7){ + + if ((!"".equals(row[0].trim()) || !"".equals(row[1].trim()))&&distinct.add(row[0].trim()+row[1].trim())){ + ImportDto importDto = getImportDto(row); + + if(importDto.getStandId()!=null&&importDto.getStandName()!=null){ + exportList.add(importDto); + + } + } + + } + + }); + result.put("标准数据all_new",exportList); + + + + return result; + } + /** * 整理为标准信息实体