1.优化合同识别excel

S
This commit is contained in:
weiyunlong 2025-03-25 15:17:11 +08:00
parent 173a20d027
commit 2e79fce459
1 changed files with 147 additions and 149 deletions

View File

@ -298,23 +298,20 @@ public class ContractFormPlugin extends AbstractFormPlugin implements UploadList
ArrayList<DynamicObject> dynamicObjects = new ArrayList<>(); ArrayList<DynamicObject> dynamicObjects = new ArrayList<>();
Map<String, BigDecimal> amounttotalMap = new HashMap<>(); Map<String, BigDecimal> amounttotalMap = new HashMap<>();
for (Sheet sheet : workbook) { for (Sheet sheet : workbook) {
int rowNum = 0; int rowNum = 6;//6/7
// 获取总行数 // 获取总行数
int rowCountsheet = sheet.getPhysicalNumberOfRows();//总行数 int rowCountsheet = sheet.getPhysicalNumberOfRows();//总行数
for (Row cells : sheet) { for (Row row : sheet) {
String billno = cells.getCell(0).toString(); Cell cell = row.getCell(0);
//第一列属于数字 if (cell != null && cell.getCellType() == CellType.NUMERIC) {
rowNum = row.getRowNum();
Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$");
boolean matches = pattern.matcher(billno).matches();
if (matches) {
rowNum = cells.getRowNum();
break; break;
} }
} }
BigDecimal amounttotal = BigDecimal.ZERO; BigDecimal amounttotal = BigDecimal.ZERO;
for (int j = rowNum; j <= rowCountsheet - 2; j++) { for (int j = rowNum; j <= rowCountsheet - 2; j++) {
Row row = sheet.getRow(j); Row row = sheet.getRow(j);
if (null != row) {
//第一列断号 //第一列断号
String seq = row.getCell(0).toString(); String seq = row.getCell(0).toString();
seq = seq.split("\\.")[0]; // 取第一个部分 seq = seq.split("\\.")[0]; // 取第一个部分
@ -458,6 +455,7 @@ public class ContractFormPlugin extends AbstractFormPlugin implements UploadList
} }
dynamicObjects.add(contractsummarylist); dynamicObjects.add(contractsummarylist);
} }
}
amounttotalMap.put(sheet.getSheetName(), amounttotal);//一个sheet一个总金额 amounttotalMap.put(sheet.getSheetName(), amounttotal);//一个sheet一个总金额
// this.getView().showSuccessNotification("清单汇总识别--生产明细成功"); // this.getView().showSuccessNotification("清单汇总识别--生产明细成功");
} }