From a3b57a71be624c98bddbd1f5e3a52c9b9466986e Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 22 八月 2024 10:40:58 +0800 Subject: [PATCH] 流水值调整功能bug修改。历史数据导入多个流水时,最大流水起始值未正确更新bug修复 --- Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java | 53 +++++++++++++++++++++++++---------------------------- 1 files changed, 25 insertions(+), 28 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java index 4d48b36..3321606 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java @@ -19,24 +19,7 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; -import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.CellStyle; -import org.apache.poi.ss.usermodel.CellType; -import org.apache.poi.ss.usermodel.CellValue; -import org.apache.poi.ss.usermodel.DataValidation; -import org.apache.poi.ss.usermodel.DataValidationConstraint; -import org.apache.poi.ss.usermodel.DateUtil; -import org.apache.poi.ss.usermodel.Font; -import org.apache.poi.ss.usermodel.FormulaEvaluator; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.Name; -import org.apache.poi.ss.usermodel.RichTextString; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.VerticalAlignment; -import org.apache.poi.ss.usermodel.Workbook; -import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.usermodel.XSSFDataValidation; @@ -61,6 +44,10 @@ private static Logger logger = LoggerFactory.getLogger(ExcelUtil.class); public static final String KEY_ATTR_CHAR = "鈽�"; public static final String REQUIRED_CHAR = "*"; + /** + * 鏇挎崲瀛楃 + */ + public static final String SPECIAL_CHAR = "VCI"; public ExcelUtil() { } @@ -286,7 +273,7 @@ Sheet sheet = getSheetByWorkbook(finalWb, sheetName); try { - writeDataToCell(sheet, excelDataList); + writeDataToCell(sheet, excelDataList,workbook); } catch (VciBaseException var6) { IOUtils.closeQuietly(os); throw var6; @@ -317,7 +304,6 @@ throw new VciBaseException(LangBaseUtil.getErrorMsg(var13), new String[0], var13); } finally { IOUtils.closeQuietly(os); - try { wb.close(); } catch (Throwable var12) { @@ -528,7 +514,7 @@ return cell; } - private static void writeDataToCell(Sheet sheet, List<WriteExcelData> excelDataList) throws VciBaseException { + private static void writeDataToCell(Sheet sheet, List<WriteExcelData> excelDataList,Workbook workbook) throws VciBaseException { if (sheet != null && !CollectionUtils.isEmpty(excelDataList)) { List<WriteExcelData> mergedDataList = new ArrayList(); excelDataList.stream().forEach((ed) -> { @@ -536,6 +522,14 @@ Cell cell = getCellByRow(row, ed.getCol()); if (ed.isMerged() && (ed.getRowTo() > ed.getRow() || ed.getColTo() > ed.getCol())) { mergedDataList.add(ed); + } + // TODO: 淇敼缂栧彿鍒椾负鏂囨湰 + if("id".equalsIgnoreCase(ed.getObjCode())){ + //CellStyle textStyle = workbook.createCellStyle(); + HSSFDataFormat format = (HSSFDataFormat)sheet.getWorkbook().createDataFormat(); + Row copyStyleRow = sheet.getRow(ed.getRow()); + cell = copyStyleRow.getCell(ed.getCol()); + cell.getCellStyle().setDataFormat(format.getFormat("@")); } copyStyle(sheet, cell, ed); @@ -948,7 +942,7 @@ Map<Integer, String> rowDataMap = new HashMap(); - for(int columnIndex = 0; columnIndex < rowDataSet.getLastCellNum(); ++columnIndex) { + for(int columnIndex = 0; columnIndex < sheetDataSet.getColName().size(); ++columnIndex) { Cell cell = rowDataSet.getCell(columnIndex); Object value = getCellValue(cell, evaluator); String title = colsNameIndexMap.containsKey(columnIndex) ? (String)colsNameIndexMap.get(columnIndex) : ""; @@ -1030,14 +1024,17 @@ } else { rowDataMap.put(columnIndex, VciBaseUtil.getStringValueFromObject(value)); } - } else if (!isDataSet && thisField != null && excelColumn != null) { - if (!excelColumn.nullable()) { - throw new VciBaseException("cellValueCanNotNull", new String[]{title, rowIndex + 1 + ""}); - } + } else { + if (!isDataSet && thisField != null && excelColumn != null) { + if (!excelColumn.nullable()) { + throw new VciBaseException("cellValueCanNotNull", new String[]{title, rowIndex + 1 + ""}); + } - if (StringUtil.isNotBlank(excelColumn.regExg())) { - throw new VciBaseException("cellValueCanNotNullForReg", new String[]{title, rowIndex + 1 + ""}); + if (StringUtil.isNotBlank(excelColumn.regExg())) { + throw new VciBaseException("cellValueCanNotNullForReg", new String[]{title, rowIndex + 1 + ""}); + } } + rowDataMap.put(columnIndex, VciBaseUtil.getStringValueFromObject(value)); } } -- Gitblit v1.9.3