Parcourir la source

Merge remote-tracking branch 'origin/master'

zouxuan il y a 4 ans
Parent
commit
6ae51400ea

+ 5 - 5
mec-biz/src/main/resources/config/mybatis/SellOrderMapper.xml

@@ -592,11 +592,11 @@
     </select>
 
     <select id="getFeeByType" resultType="com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto">
-        SELECT MAX(spo.expect_amount_)                                expectAmount,
-               SUM(IF(g.type_ = 'INSTRUMENT', so.expect_amount_, 0))  musicalFee,
-               SUM(IF((g.type_ = 'ACCESSORIES' || g.type_ = 'TEACHING' || g.type_ = 'STAFF')  AND g.name_ !='乐器维护',IFNULL(so.expect_amount_,0), 0)) teachingFee,
-               SUM(IF((g.type_ = 'ACCESSORIES' || g.type_ = 'TEACHING' || g.type_ = 'STAFF')  AND g.name_ ='乐器维护',IFNULL(so.expect_amount_,0), 0)) repairFee,
-               SUM(IF((g.type_= 'OTHER' || g.type_ IS NULL) ,IFNULL(so.expect_amount_,0), 0)) otherFee
+        SELECT MAX(spo.actual_amount_)                                actualAmount,
+               SUM(IF(g.type_ = 'INSTRUMENT', so.actual_amount_, 0))  musicalFee,
+               SUM(IF((g.type_ = 'ACCESSORIES' || g.type_ = 'TEACHING' || g.type_ = 'STAFF')  AND g.name_ !='乐器维护',IFNULL(so.actual_amount_,0), 0)) teachingFee,
+               SUM(IF((g.type_ = 'ACCESSORIES' || g.type_ = 'TEACHING' || g.type_ = 'STAFF')  AND g.name_ ='乐器维护',IFNULL(so.actual_amount_,0), 0)) repairFee,
+               SUM(IF((g.type_= 'OTHER' || g.type_ IS NULL) ,IFNULL(so.actual_amount_,0), 0)) otherFee
         FROM student_payment_order spo
                  LEFT JOIN sell_order so ON spo.id_ = so.order_id_
                  LEFT JOIN goods g ON IF(so.parent_goods_id_ IS NOT NULL,g.id_ = so.parent_goods_id_,g.id_ = so.goods_id_)

+ 43 - 32
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -605,7 +605,7 @@ public class ExportController extends BaseController {
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
                     "家长联系电话", "是否激活", "是否有课", "是否有网管课", "课程余额(元)", "账户余额(元)",
-                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师","是否签订协议"}, new String[]{
+                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师", "是否签订协议"}, new String[]{
                     "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
                     "isActive.msg", "hasCourse.msg", "hasPracticeCourse.msg", "courseBalance", "balance", "musicGroupName",
                     "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus", "serviceTag.msg", "operatingTag.msg", "teacherName", "isSignedContract"}, rows);
@@ -1027,15 +1027,15 @@ public class ExportController extends BaseController {
                 row.setMemo("");
             }
             BigDecimal transferFee = BigDecimal.ZERO;
-            if(row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")){
+            if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
                 FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
-                if(countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum()){
-                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
+                if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum()) {
+                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
                 }
-                if(countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())){
+                if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
                     List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(row.getOrderNo());
                     for (StudentPaymentRouteOrder routeOrder : routeOrders) {
-                        transferFee = transferFee.add(routeOrder.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP));
+                        transferFee = transferFee.add(routeOrder.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
                     }
                 }
             }
@@ -1061,7 +1061,11 @@ public class ExportController extends BaseController {
                             break;
                         case MUSICAL:
                             if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                                row.setLeaseFee(orderDetail.getPrice());
+                                BigDecimal leaseFee = orderDetail.getPrice();
+                                if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                    leaseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                                }
+                                row.setLeaseFee(leaseFee);
                             } else {
                                 row.setMusicalFee(orderDetail.getPrice());
                             }
@@ -1102,6 +1106,9 @@ public class ExportController extends BaseController {
                             continue;
                         }
                         BigDecimal typeFee = new BigDecimal(feeTypeStr.substring(index + 1));
+                        if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                            typeFee = typeFee.multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                        }
                         if (feeTypeStr.contains("VIP")) {
                             row.setVipCourseFee(typeFee);
                         } else if (feeTypeStr.contains("网管课")) {
@@ -1110,9 +1117,9 @@ public class ExportController extends BaseController {
                             row.setTheoryCourseFee(typeFee);
                         }
                     }
-                    row.setDegreeFee(row.getExpectAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
+                    row.setDegreeFee(row.getActualAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
                 } else {
-                    row.setOtherFee(row.getExpectAmount());
+                    row.setOtherFee(row.getActualAmount());
                 }
                 if (row.getChargeType() != null) {
                     for (SporadicChargeTypeEnum chargeType : SporadicChargeTypeEnum.values()) {
@@ -1136,9 +1143,6 @@ public class ExportController extends BaseController {
                 }
             } else {
                 StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
-//                if(feeByType.getMusicalFee().add(feeByType.getTeachingFee()).add(feeByType.getRepairFee()).add(feeByType.getOtherFee()).compareTo(BigDecimal.ZERO) <=0){
-//                    break;
-//                }
                 row.setMusicalFee(feeByType.getMusicalFee());
                 row.setTeachingFee(feeByType.getTeachingFee());
                 row.setRepairFee(feeByType.getRepairFee());
@@ -1150,20 +1154,20 @@ public class ExportController extends BaseController {
                         row.setSchoolName(studentRegistration.getSchoolName());
                         row.setCooperationOrganName(studentRegistration.getRemark());
                     }
-                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
-                    row.setRepairFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
+                    row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
-                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
                     row.setTransferFee(BigDecimal.ZERO);
                 }
             }
-            if(row.getMusicGroupId()==null){
+            if (row.getMusicGroupId()!= null && row.getMusicGroupId().equals("null")) {
                 row.setMusicGroupId("");
             }
             String paymentChannel = "";
-            if(row.getPaymentChannel() == null) {
-            }else if (row.getPaymentChannel().equals("YQPAY")) {
+            if (row.getPaymentChannel() == null) {
+            } else if (row.getPaymentChannel().equals("YQPAY")) {
                 paymentChannel = "双乾";
             } else if (row.getPaymentChannel().equals("ADAPAY")) {
                 paymentChannel = "汇付";
@@ -2164,13 +2168,13 @@ public class ExportController extends BaseController {
                 row.setMemo("");
             }
             BigDecimal transferFee = BigDecimal.ZERO;
-            if(row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")){
+            if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
                 FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
-                if(countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")){
-                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
+                if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")) {
+                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
                 }
-                if(countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())){
-                    transferFee = row.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP);
+                if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
+                    transferFee = row.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
                 }
             }
             row.setTransferFee(transferFee);
@@ -2195,7 +2199,11 @@ public class ExportController extends BaseController {
                             break;
                         case MUSICAL:
                             if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                                row.setLeaseFee(orderDetail.getPrice());
+                                BigDecimal leaseFee = orderDetail.getPrice();
+                                if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                    leaseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                                }
+                                row.setLeaseFee(leaseFee);
                             } else {
                                 row.setMusicalFee(orderDetail.getPrice());
                             }
@@ -2236,6 +2244,9 @@ public class ExportController extends BaseController {
                             continue;
                         }
                         BigDecimal typeFee = new BigDecimal(feeTypeStr.substring(index + 1));
+                        if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                            typeFee = typeFee.multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                        }
                         if (feeTypeStr.contains("VIP")) {
                             row.setVipCourseFee(typeFee);
                         } else if (feeTypeStr.contains("网管课")) {
@@ -2244,9 +2255,9 @@ public class ExportController extends BaseController {
                             row.setTheoryCourseFee(typeFee);
                         }
                     }
-                    row.setDegreeFee(row.getExpectAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
+                    row.setDegreeFee(row.getActualAmount().subtract(row.getVipCourseFee()).subtract(row.getPracticeCourseFee()).subtract(row.getTheoryCourseFee()));
                 } else {
-                    row.setOtherFee(row.getExpectAmount());
+                    row.setOtherFee(row.getActualAmount());
                 }
                 if (row.getChargeType() != null) {
                     for (SporadicChargeTypeEnum chargeType : SporadicChargeTypeEnum.values()) {
@@ -2281,20 +2292,20 @@ public class ExportController extends BaseController {
                         row.setSchoolName(studentRegistration.getSchoolName());
                         row.setCooperationOrganName(studentRegistration.getRemark());
                     }
-                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
-                    row.setRepairFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
+                    row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
-                    row.setMusicGroupCourseFee(feeByType.getExpectAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
                     row.setTransferFee(BigDecimal.ZERO);
                 }
             }
-            if(row.getMusicGroupId()==null){
+            if (row.getMusicGroupId()!= null && row.getMusicGroupId().equals("null")) {
                 row.setMusicGroupId("");
             }
             String paymentChannel = "";
-            if(row.getPaymentChannel() == null) {
-            }else if (row.getPaymentChannel().equals("YQPAY")) {
+            if (row.getPaymentChannel() == null) {
+            } else if (row.getPaymentChannel().equals("YQPAY")) {
                 paymentChannel = "双乾";
             } else if (row.getPaymentChannel().equals("ADAPAY")) {
                 paymentChannel = "汇付";