Selaa lähdekoodia

商城订单导出

zouxuan 2 vuotta sitten
vanhempi
commit
2436900d64

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1751,7 +1751,7 @@ public class ExportServiceImpl implements ExportService {
             }
             List<JSONObject> orderItemList = JSONObject.parseArray(JSONObject.parseObject(row.getGoodsJson()).getString("orderItemList"), JSONObject.class);
             BigDecimal balanceAmount = row.getBalancePaymentAmount();
-            BigDecimal divide = balanceAmount.divide(row.getExpectAmount(), 6, BigDecimal.ROUND_HALF_UP);
+            BigDecimal divide = balanceAmount.divide(row.getExpectAmount(), 8, BigDecimal.ROUND_DOWN);
             BigDecimal subBalanceAmount = balanceAmount;
             for (int i = 0; i < orderItemList.size(); i++) {
                 JSONObject json = orderItemList.get(i);
@@ -1762,13 +1762,15 @@ public class ExportServiceImpl implements ExportService {
                         continue;
                     }
                     BigDecimal realAmount = new BigDecimal(json.get("realAmount").toString());
+                    realAmount = realAmount.multiply(new BigDecimal(json.get("productQuantity").toString()));
                     //处理余额部分
                     if(balanceAmount.compareTo(BigDecimal.ZERO) > 0){
-                        BigDecimal decimal = realAmount.multiply(divide).setScale(2, BigDecimal.ROUND_HALF_UP);
-                        subBalanceAmount = subBalanceAmount.subtract(decimal);
-                        realAmount = realAmount.subtract(decimal);
                         if(i == orderItemList.size() -1){
-                            realAmount = realAmount.add(subBalanceAmount);
+                            realAmount = realAmount.subtract(subBalanceAmount);
+                        }else {
+                            BigDecimal decimal = realAmount.multiply(divide).setScale(2, BigDecimal.ROUND_DOWN);
+                            subBalanceAmount = subBalanceAmount.subtract(decimal);
+                            realAmount = realAmount.subtract(decimal);
                         }
                     }
                     Method method = row.getClass().getMethod("getCategory" + index, null);