diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java index 9d20b0e5..4dbac175 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -1023,7 +1023,7 @@ public class DepotItemController { if("CGDD".equals(prefixNo) || "XSDD".equals(prefixNo)) { barCode = ExcelUtils.getContent(src, i, 0); num = ExcelUtils.getContent(src, i, 2); - unitPrice = ExcelUtils.getContent(src, i, 3); + unitPrice = ExcelUtils.getContentNumber(src, i, 3); taxRate = ExcelUtils.getContent(src, i, 4); remark = ExcelUtils.getContent(src, i, 5); } @@ -1031,7 +1031,7 @@ public class DepotItemController { depotName = ExcelUtils.getContent(src, i, 0); barCode = ExcelUtils.getContent(src, i, 1); num = ExcelUtils.getContent(src, i, 3); - unitPrice = ExcelUtils.getContent(src, i, 4); + unitPrice = ExcelUtils.getContentNumber(src, i, 4); taxRate = ExcelUtils.getContent(src, i, 5); remark = ExcelUtils.getContent(src, i, 6); } @@ -1039,7 +1039,7 @@ public class DepotItemController { depotName = ExcelUtils.getContent(src, i, 0); barCode = ExcelUtils.getContent(src, i, 1); num = ExcelUtils.getContent(src, i, 3); - unitPrice = ExcelUtils.getContent(src, i, 4); + unitPrice = ExcelUtils.getContentNumber(src, i, 4); remark = ExcelUtils.getContent(src, i, 5); } Map materialMap = new HashMap<>(); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/DepotItemService.java index 6cba8ff3..b31e625a 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/DepotItemService.java @@ -1371,7 +1371,7 @@ public class DepotItemService { item.put("unitPrice", unitPrice); BigDecimal allPrice = BigDecimal.ZERO; if(unitPrice!=null && unitPrice.compareTo(BigDecimal.ZERO)!=0) { - allPrice = unitPrice.multiply(operNumber); + allPrice = unitPrice.multiply(operNumber).setScale(2, BigDecimal.ROUND_HALF_UP); } BigDecimal taxMoney = BigDecimal.ZERO; if(taxRate.compareTo(BigDecimal.ZERO) != 0) { diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java index 2a3ab971..d1a29e86 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java @@ -2,6 +2,7 @@ package com.jsh.erp.utils; import java.io.*; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.*; import jxl.*; @@ -184,6 +185,22 @@ public class ExcelUtils { } } + public static String getContentNumber(Sheet src, int rowNum, int colNum) { + if(colNum < src.getRow(rowNum).length) { + Cell cell = src.getCell(colNum, rowNum); + if(cell.getType() == CellType.NUMBER) { + NumberCell numCell = (NumberCell)cell; + double value = numCell.getValue(); // 获取完整精度的数值 + DecimalFormat df = new DecimalFormat("#.######"); // 设置足够多的小数位 + return df.format(value); + } else { + return cell.getContents().trim(); // 获取原始字符串内容 + } + } else { + return null; + } + } + /** * 获取真实的行数,剔除掉空白行 * @param src