diff --git a/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/RealEstateController.java b/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/RealEstateController.java index 03b75b4..6da2c1d 100644 --- a/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/RealEstateController.java +++ b/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/RealEstateController.java @@ -84,29 +84,24 @@ public class RealEstateController extends BaseController { try { // 获取文件名和扩展名 - String suffix = FileUtil.getSuffix(file.getOriginalFilename()); - // 创建临时文件 Path tempFilePath = Files.createTempFile("temp", "." + suffix); - File tempFile = tempFilePath.toFile(); - // 写入文件内容 try (InputStream inputStream = file.getInputStream()) { Files.copy(inputStream, tempFilePath, StandardCopyOption.REPLACE_EXISTING); } - Workbook wb = new Workbook(tempFile.getAbsolutePath()); List list = new ArrayList<>(); - int count = wb.getWorksheets().getCount(); for (int sheetNo = 0; sheetNo < count; sheetNo++) { Worksheet worksheet = wb.getWorksheets().get(sheetNo); Cells cells = worksheet.getCells(); - Cell flagCell = AsposeUtil.getCell(cells, "开户日"); + Cell flagCell = AsposeUtil.getCell(cells, "房产地址"); + Integer headRowNumber = flagCell.getRow() + 1; ImportExcelHelper helper = new ImportExcelHelper<>(); - List tempList = helper.getListWithInputStream(file.getInputStream(), RealEstate.class, sheetNo, 1); + List tempList = helper.getListWithInputStream(file.getInputStream(), RealEstate.class, sheetNo, headRowNumber); list.addAll(tempList); } // ExcelResult excelResult = ExcelUtil.importExcel(file.getInputStream(), RealEstate.class, true); diff --git a/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/HBDataAnalysisHelper.java b/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/HBDataAnalysisHelper.java index 1bf965a..1ae1249 100644 --- a/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/HBDataAnalysisHelper.java +++ b/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/helper/HBDataAnalysisHelper.java @@ -503,9 +503,7 @@ public class HBDataAnalysisHelper { if (nameCell == null) { nameCell = AsposeUtil.getCell(excelFile, "账户名称"); if (nameCell == null) { - log.error("无法获取账户名称{}",excelFile.getAbsolutePath()); readHuaXiaAccountDetails(excelFile); -// throw new ImportDataFailedException("无法获取账户名称", excelFile.getAbsolutePath()); }else { String cardHolderName = null; String cardNumber = null; diff --git a/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/service/impl/ImportServiceImpl.java b/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/service/impl/ImportServiceImpl.java index 1033427..507bf3f 100644 --- a/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/service/impl/ImportServiceImpl.java +++ b/cas-system/src/main/java/com/inscloudtech/bankStatementAnalysis/service/impl/ImportServiceImpl.java @@ -2,6 +2,7 @@ package com.inscloudtech.bankStatementAnalysis.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; @@ -14,18 +15,26 @@ import com.alibaba.excel.read.metadata.ReadSheet; import com.alibaba.excel.util.ListUtils; +import com.aspose.cells.Cell; +import com.aspose.cells.Cells; +import com.aspose.cells.Workbook; +import com.aspose.cells.Worksheet; import com.inscloudtech.bankStatementAnalysis.domain.HeadField; import com.inscloudtech.bankStatementAnalysis.domain.ImportOpeningAccountInfo; import com.inscloudtech.bankStatementAnalysis.domain.ReadDto; import com.inscloudtech.bankStatementAnalysis.helper.EsMapperHolder; import com.inscloudtech.bankStatementAnalysis.helper.HelperUtil; import com.inscloudtech.bankStatementAnalysis.service.ImportService; +import com.inscloudtech.bankStatementAnalysis.util.AsposeUtil; import com.inscloudtech.common.constant.Constants; +import com.inscloudtech.common.excel.ImportExcelHelper; import com.inscloudtech.common.exception.dc.ImportDataFailedException; +import com.inscloudtech.datacenter.domain.RealEstate; import com.inscloudtech.datacenter.mapper.es.ESOpeningAccountInfoMapper; import com.inscloudtech.datacenter.domain.BankStatement; import com.inscloudtech.datacenter.domain.OpeningAccountInfo; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.dromara.easyes.core.biz.SAPageInfo; import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper; @@ -33,12 +42,19 @@ import org.dromara.easyes.core.core.BaseEsMapper; import org.dromara.easyes.core.core.EsWrappers; import org.springframework.stereotype.Service; +import java.io.File; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.util.*; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import org.apache.xmlbeans.XmlException; +import org.springframework.web.multipart.MultipartFile; + @Service @RequiredArgsConstructor @Slf4j @@ -363,7 +379,30 @@ public class ImportServiceImpl implements ImportService { String idCardVerify = "([1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx])|([1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3})"; String CarNumberVerify = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$"; - + @SneakyThrows + void aaa(MultipartFile file){ + // 获取文件名和扩展名 + String suffix = FileUtil.getSuffix(file.getOriginalFilename()); + // 创建临时文件 + Path tempFilePath = Files.createTempFile("temp", "." + suffix); + File tempFile = tempFilePath.toFile(); + // 写入文件内容 + try (InputStream inputStream = file.getInputStream()) { + Files.copy(inputStream, tempFilePath, StandardCopyOption.REPLACE_EXISTING); + } + Workbook wb = new Workbook(tempFile.getAbsolutePath()); + List list = new ArrayList<>(); + int count = wb.getWorksheets().getCount(); + for (int sheetNo = 0; sheetNo < count; sheetNo++) { + Worksheet worksheet = wb.getWorksheets().get(sheetNo); + Cells cells = worksheet.getCells(); + Cell flagCell = AsposeUtil.getCell(cells, "房产地址"); + Integer headRowNumber = flagCell.getRow() + 1; + ImportExcelHelper helper = new ImportExcelHelper<>(); + List tempList = helper.getListWithInputStream(file.getInputStream(), RealEstate.class, sheetNo, headRowNumber); + list.addAll(tempList); + } + } } diff --git a/cas-system/src/main/java/com/inscloudtech/datacenter/service/QueryCenterService.java b/cas-system/src/main/java/com/inscloudtech/datacenter/service/QueryCenterService.java index 128bf77..093d66b 100644 --- a/cas-system/src/main/java/com/inscloudtech/datacenter/service/QueryCenterService.java +++ b/cas-system/src/main/java/com/inscloudtech/datacenter/service/QueryCenterService.java @@ -2,6 +2,7 @@ package com.inscloudtech.datacenter.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.StrUtil; @@ -196,10 +197,10 @@ public class QueryCenterService { } JSONObject result = new JSONObject(); - result.put("indexArr", ArrayUtil.toArray(indexList, String.class)); - result.put("nameFieldList", nameFieldList); - result.put("idCardFieldList", idCardFieldList); - result.put("phoneFieldList", phoneFieldList); + result.putOpt("indexArr", ArrayUtil.toArray(indexList, String.class)); + result.putOnce("nameFieldList", nameFieldList); + result.putOpt("idCardFieldList", idCardFieldList); + result.putOpt("phoneFieldList", phoneFieldList); return result; } @@ -254,9 +255,9 @@ public class QueryCenterService { indexAndCount.put("dc_bank_statement",bsRes.getHits().getTotalHits().value); JSONObject queryInfo = getQueryInfo(initQueryIndex(0)); - String[] indexArrs = queryInfo.getBean("indexArr", String[].class); - - SearchRequest searchRequest = new SearchRequest(indexArrs); // 设置要查询的索引 + List indexList = queryInfo.getBeanList("indexArr", String.class); + String[] indexArr = ArrayUtil.toArray(indexList, String.class); + SearchRequest searchRequest = new SearchRequest(indexArr); // 设置要查询的索引 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); if (null != query.getCaseId()) { @@ -427,7 +428,9 @@ public class QueryCenterService { @SneakyThrows public JSONObject getData4ExcelExport(QueryCenterQuery query) { JSONObject queryInfo = getQueryInfo(initQueryIndex(query.getIsOther())); - SearchRequest searchRequest = new SearchRequest(queryInfo.getBean("indexArr", String[].class)); // 设置要查询的索引 + List indexList = queryInfo.getBeanList("indexArr", String.class); + String[] indexArr = ArrayUtil.toArray(indexList, String.class); + SearchRequest searchRequest = new SearchRequest(indexArr); // 设置要查询的索引 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); // if (null != query.getCaseId()) { @@ -714,7 +717,9 @@ public class QueryCenterService { @SneakyThrows public JSONObject getData4Report(List> willSearch, String name, String idCard, String caseId) { JSONObject queryInfo = getQueryInfo(willSearch); - SearchRequest searchRequest = new SearchRequest(queryInfo.getBean("indexArr", String[].class)); // 设置要查询的索引 + List indexList = queryInfo.getBeanList("indexArr", String.class); + String[] indexArr = ArrayUtil.toArray(indexList, String.class); + SearchRequest searchRequest = new SearchRequest(indexArr); // 设置要查询的索引 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); if (null != caseId) { @@ -834,7 +839,9 @@ public class QueryCenterService { @SneakyThrows public Map getData4ReportWithHighlight(List> willSearch, String name,String idCard, String caseId) { JSONObject queryInfo = getQueryInfo(willSearch); - SearchRequest searchRequest = new SearchRequest(queryInfo.getBean("indexArr", String[].class)); // 设置要查询的索引 + List indexList = queryInfo.getBeanList("indexArr", String.class); + String[] indexArr = ArrayUtil.toArray(indexList, String.class); + SearchRequest searchRequest = new SearchRequest(indexArr); // 设置要查询的索引 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); if (null != caseId) {