소스 검색

财务导出

zouxuan 3 년 전
부모
커밋
e356126937
1개의 변경된 파일29개의 추가작업 그리고 20개의 파일을 삭제
  1. 29 20
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

+ 29 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -2396,6 +2396,19 @@ public class ExportServiceImpl implements ExportService {
         if(CollectionUtils.isEmpty(detailList)){
             return;
         }
+        if(basicOrder.getServiceAmount().compareTo(BigDecimal.ZERO) > 0) {
+            //如果是指定内部账户,并且分润金额和内部库存金额一致,那么直接判定为云教练收入
+            if (basicOrder.getRouteMerNo().equals(goodsSellReceiptMerNo) && detailList.stream().
+                    anyMatch(e -> StringUtils.equals(e.getIncomeItem(), "CLOUD_TEACHER") && e.getIncome().compareTo(BigDecimal.ZERO) > 0)) {
+                BigDecimal income = detailList.stream().filter(e -> StringUtils.equals(e.getIncomeItem(), "CLOUD_TEACHER") && e.getIncome().compareTo(BigDecimal.ZERO) > 0)
+                        .map(e -> e.getIncome()).reduce(BigDecimal.ZERO, BigDecimal::add);
+                basicOrder.setCloudTeacherFee(income);
+                return;
+            }
+        }
+        if(detailList.stream().anyMatch(e-> e.getIncome().compareTo(BigDecimal.ZERO) == 0)){
+            return;
+        }
         //订单详情去除余额部分
         calculateOrderDetailActualAmount(basicOrder.getExpectAmount(),basicOrder.getBalancePaymentAmount(),detailList);
         if(basicOrder.getServiceAmount().compareTo(BigDecimal.ZERO) > 0){
@@ -2602,26 +2615,22 @@ public class ExportServiceImpl implements ExportService {
         }
     }
     public void setSaleFee(StudentPaymentOrderExportDto basicOrder,StudentPaymentOrderDetail orderDetail){
-        if(orderDetail.getIncome().compareTo(BigDecimal.ZERO) > 0){
-            basicOrder.setCloudTeacherFee(basicOrder.getCloudTeacherFee().add(orderDetail.getIncome()));
-        }else {
-            BigDecimal price = orderDetail.getPrice().subtract(orderDetail.getIncome());
-            switch (orderDetail.getType()) {
-                case OTHER:
-                    basicOrder.setOtherFee(basicOrder.getOtherFee().add(price));
-                    break;
-                case MUSICAL:
-                    if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                        basicOrder.setLeaseFee(basicOrder.getLeaseFee().add(price));
-                    } else {
-                        basicOrder.setMusicalFee(basicOrder.getMusicalFee().add(price));
-                    }
-                    break;
-                case TEACHING:
-                case ACCESSORIES:
-                    basicOrder.setTeachingFee(basicOrder.getTeachingFee().add(price));
-                    break;
-            }
+        BigDecimal price = orderDetail.getPrice().subtract(orderDetail.getIncome());
+        switch (orderDetail.getType()) {
+            case OTHER:
+                basicOrder.setOtherFee(basicOrder.getOtherFee().add(price));
+                break;
+            case MUSICAL:
+                if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
+                    basicOrder.setLeaseFee(basicOrder.getLeaseFee().add(price));
+                } else {
+                    basicOrder.setMusicalFee(basicOrder.getMusicalFee().add(price));
+                }
+                break;
+            case TEACHING:
+            case ACCESSORIES:
+                basicOrder.setTeachingFee(basicOrder.getTeachingFee().add(price));
+                break;
         }
     }