From 947d016e4bd349b78d540e3a869f55d68b2c610c Mon Sep 17 00:00:00 2001 From: 张天森 <1292933220@qq.com> Date: 星期二, 08 十一月 2022 18:16:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test --- flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 161 insertions(+), 6 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java index 0d3a4c8..9976d5d 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java @@ -11,11 +11,15 @@ import com.dg.core.db.manual.pojo.Search; import com.dg.core.service.ITransactionEventService; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.IOException; import java.io.InputStream; import java.time.LocalDate; import java.time.LocalDateTime; @@ -94,7 +98,7 @@ public int deleteConfigById(String Id) { List<GuideRepairOrder> guideRepairOrders = guideRepairOrderMapper .selectList(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getMatterId, Id)); - if (guideRepairOrders.size() == 0){ + if (guideRepairOrders.size() == 0) { return baseMapper.deleteConfigById(Id); } return 0; @@ -245,15 +249,166 @@ @Override public List<TransactionEvent> selectList(String keyWord) { - if (keyWord!=null&&keyWord!=""){ - return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda().like(TransactionEvent::getMatterName,keyWord)); - } - else { - return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda()); + if (keyWord != null && keyWord != "") { + return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda().like(TransactionEvent::getMatterName, keyWord)); + } else { + return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda()); } } + @Override + public Integer batchImport(String fileName, MultipartFile file) { + boolean notNull = false; + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + throw new RuntimeException("选择文件格式不正确,请下载模板上传"); + } + boolean isExcel2003 = true; + if (fileName.matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + InputStream is = null; + try { + is = file.getInputStream(); + } catch (IOException e) { + throw new RuntimeException(e); + } + Workbook wb = null; + + if (isExcel2003) { + try { + wb = new HSSFWorkbook(is); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + try { + wb = new XSSFWorkbook(is); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + Integer failNum = 0;//失败数量 + // 获取excel的sheet页数 + int numberOfSheets = wb.getNumberOfSheets(); + for (int j = 0; j < numberOfSheets; j++) { + //获取excel字段名称进行比较 + Sheet sheetAt = wb.getSheetAt(j); + if(sheetAt.getRow(2)!=null){ + Row row1 = sheetAt.getRow(2); + TransactionEvent transactionEvent = baseMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getMatterName, new DataFormatter().formatCellValue(row1.getCell(1)))); + boolean isAdd = false; + if (transactionEvent == null) { + transactionEvent = new TransactionEvent(); + isAdd = true; + } + transactionEvent.setMatterName(new DataFormatter().formatCellValue(row1.getCell(1))); + Row row2 = sheetAt.getRow(3); + transactionEvent.setSetGist("<p>" + new DataFormatter().formatCellValue(row2.getCell(1)) + "</p>"); + Row row3 = sheetAt.getRow(4); + Row row4 = sheetAt.getRow(5); + transactionEvent.setBasicInformation("<p> 事项名称:" + new DataFormatter().formatCellValue(row1.getCell(1)) + "<br />" + + new DataFormatter().formatCellValue(row3.getCell(0)) + ":" + new DataFormatter().formatCellValue(row3.getCell(1))+ "<br />" + + new DataFormatter().formatCellValue(row3.getCell(3)) + ":" + new DataFormatter().formatCellValue(row3.getCell(4)) + "<br />" + + new DataFormatter().formatCellValue(row4.getCell(0)) + ":" + new DataFormatter().formatCellValue(row4.getCell(1)) + "</p>"); + int i = 7; + String applicationMaterial = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (row.getCell(0).getStringCellValue().equals("办理途径、条件和注意事项")) { + i = i + 2; + break; + } + applicationMaterial = applicationMaterial + "办理区域:" + new DataFormatter().formatCellValue(row.getCell(0)) + "<br />" + + "咨询电话:" + new DataFormatter().formatCellValue(row.getCell(1)) + "<br />" + + "办公地址:" + new DataFormatter().formatCellValue(row.getCell(2)) + "<br />" + + "办公时间:" + new DataFormatter().formatCellValue(row.getCell(3)) + "<br />"; + applicationMaterial = applicationMaterial + "<br />"; + i++; + } + applicationMaterial = applicationMaterial + "</p>"; + transactionEvent.setApplicationMaterial(applicationMaterial); + String acceptConditions = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (row.getCell(0).getStringCellValue().equals("(二)网上申报")) { + i = i + 1; + break; + } + acceptConditions = acceptConditions + new DataFormatter().formatCellValue(row.getCell(0)) + " " + +new DataFormatter().formatCellValue( row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " "; + acceptConditions = acceptConditions + "<br />"; + i++; + } + acceptConditions = acceptConditions + "</p>"; + transactionEvent.setAcceptConditions(acceptConditions); + String rates = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (row.getCell(0).getStringCellValue().equals("(三)手机移动申报")) { + i = i + 1; + break; + } + rates = rates + new DataFormatter().formatCellValue(row.getCell(0)) + " " + + new DataFormatter().formatCellValue(row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " "; + rates = rates + "<br />"; + i++; + } + rates = rates + "</p>"; + transactionEvent.setRates(rates); + String transactionArea = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (row.getCell(0).getStringCellValue().equals("(四)经营许可(备案)事项程序运行图谱(附电子版)")) { + i = i + 1; + break; + } + transactionArea = transactionArea + new DataFormatter().formatCellValue(row.getCell(0)) + " " + + new DataFormatter().formatCellValue(row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " "; + transactionArea = transactionArea + "<br />"; + i++; + } + transactionArea = transactionArea + "</p>"; + transactionEvent.setTransactionArea(transactionArea); + String handlingProcedures = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (row.getCell(0).getStringCellValue().equals("(五)经营许可(备案)事项实施内容一览表(附电子版)")) { + i = i + 1; + break; + } + handlingProcedures = handlingProcedures + new DataFormatter().formatCellValue(row.getCell(0)) + " " + + new DataFormatter().formatCellValue(row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " "; + handlingProcedures = handlingProcedures + "<br />"; + i++; + } + handlingProcedures = handlingProcedures + "</p>"; + transactionEvent.setHandlingProcedures(handlingProcedures); + int ans; + if (isAdd) { + ans = baseMapper.insert(transactionEvent); + } else { + ans = baseMapper.updateById(transactionEvent); + } + if (ans <= 0) { + failNum++; + } + } + + } + if (failNum == 0) {// + return 3;//全部导入成功 + } else if (failNum < numberOfSheets) { + return 2;//部分导入成功 + } else if (failNum.equals(numberOfSheets)) { + return 0;//导入失败 + } + return 0; + } } -- Gitblit v1.7.1