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