diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index 47e09c67..b438e634 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -1013,8 +1013,8 @@ public class DepositoryRecordController { sumQuantity += applicationOutRecordMin.getQuantity(); String unit = applicationOutRecordMin.getUnit(); if ("-1".equals(unit)) { - - sumPrice += (inventory.getPrice() * applicationOutRecordMin.getQuantity()); + double amounts = inventory.getPrice() * applicationOutRecordMin.getQuantity(); + sumPrice = ObjectFormatUtil.sum(sumPrice,amounts); } else { // 获取当前对应的拆单记录 Map paramForSplitInfo = new HashMap<>(); @@ -1025,7 +1025,7 @@ public class DepositoryRecordController { int splitInfoScaleQuantity = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); BigDecimal bg = new BigDecimal(inventory.getPrice() / splitInfoScaleQuantity * applicationOutRecordMin.getQuantity()); double newprice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += newprice; + sumPrice = ObjectFormatUtil.sum(sumPrice,newprice); } } outRecordP.setMcode(mcode.toString()); diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index c86defe1..7ddbc1bd 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -1971,9 +1971,9 @@ public class PageController { String unit = applicationOutRecordMin.getUnit(); if ("-1".equals(unit)) { if (inventoryById.getPrice() != null) { - sumPrice += (inventoryById.getPrice() * applicationOutRecordMin.getQuantity()); - } else { - sumPrice += 0; + double amounts = inventoryById.getPrice() * applicationOutRecordMin.getQuantity(); + sumPrice = ObjectFormatUtil.sum(sumPrice,amounts); + } sumUnit.append(inventoryById.getUnit()).append(","); } else { @@ -1989,9 +1989,7 @@ public class PageController { if (inventoryById.getPrice() != null) { BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * applicationOutRecordMin.getQuantity())); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += v; - } else { - sumPrice += 0; + sumPrice = ObjectFormatUtil.sum(sumPrice,v); } } } @@ -2395,9 +2393,7 @@ public class PageController { if (inventoryById.getPrice() != null) { BigDecimal bd = BigDecimal.valueOf(inventoryById.getPrice() * recordMinP.getQuantity()); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += v; - } else { - sumPrice += 0.0; + sumPrice = ObjectFormatUtil.sum(sumPrice,v); } } else { @@ -2414,9 +2410,7 @@ public class PageController { if (inventoryById.getPrice() != null) { BigDecimal bd = BigDecimal.valueOf((inventoryById.getPrice() / scale * recordMinP.getQuantity())); double v = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - sumPrice += v; - } else { - sumPrice += 0.0; + sumPrice = ObjectFormatUtil.sum(sumPrice,v); } } recordMinPList.add(recordMinP); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 9f087466..a1b763a0 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -631,7 +631,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { BigDecimal bg = new BigDecimal(price_out / 100); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - priceForToday += price_out; + priceForToday = ObjectFormatUtil.sum(priceForToday,price_out); } for (ApplicationOutRecordMin recordMin : applicationOutMinForCompleteForYesterday) { @@ -658,7 +658,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { BigDecimal bg = new BigDecimal(price_out / 100); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - priceForYesterday += price_out; + priceForYesterday = ObjectFormatUtil.sum(price_out,priceForYesterday); } // 设置今天的额度 result.put("price", priceForToday); @@ -5092,7 +5092,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { BigDecimal bg = new BigDecimal(price_out / 100); price_out = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - price += price_out; + price = ObjectFormatUtil.sum(price,price_out); } result.put("count", count); result.put("price", price); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java index f69afe3d..78dc3004 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -861,7 +861,7 @@ public class MaterialServiceImpl implements MaterialService { int scale = splitUnitService.findSplitInfoScaleQuantity(splitInfo, -1); BigDecimal bigDecimal = BigDecimal.valueOf(inventory.getPrice() / scale); double split_price = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - amounts += split_price * saveQuantity; + amounts = ObjectFormatUtil.sum(amounts,split_price * saveQuantity); unit = splitInfo.getNewUnit(); } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java index 30e46a50..2767b025 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/ObjectFormatUtil.java @@ -1,5 +1,7 @@ package com.dreamchaser.depository_manage.utils; +import java.math.BigDecimal; + /** * 此工具类封装一些常用类型转换操作 */ @@ -27,4 +29,11 @@ public class ObjectFormatUtil { public static Double toDouble(Object o){return (o == null)?null:Double.parseDouble(o.toString());} + // double类型相加 + public static double sum(double d1,double d2){ + BigDecimal bd1 = new BigDecimal(Double.toString(d1)); + BigDecimal bd2 = new BigDecimal(Double.toString(d2)); + return bd1.add(bd2).doubleValue(); + } + } diff --git a/src/test/java/com/dreamchaser/depository_manage/OtherTest.java b/src/test/java/com/dreamchaser/depository_manage/OtherTest.java index 581478a4..907e9d2d 100644 --- a/src/test/java/com/dreamchaser/depository_manage/OtherTest.java +++ b/src/test/java/com/dreamchaser/depository_manage/OtherTest.java @@ -99,7 +99,10 @@ public class OtherTest { @Test public void someTest(){ - + double a = 1.1; + double b = 2.2; + a += b; + System.out.println(a); } @Test