zouxuan 3 роки тому
батько
коміт
78c9044370

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SellOrderDao.java

@@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Param;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 public interface SellOrderDao extends BaseDAO<Integer, SellOrder> {
 
@@ -208,4 +209,7 @@ public interface SellOrderDao extends BaseDAO<Integer, SellOrder> {
      * @return
      */
     BigDecimal getChildRepair(@Param("orderId") Long orderId);
+
+    //统计外部销售收入总金额
+    List<Map<Long, String>> sumOutOrderAmount(@Param("outOrderList") List<Long> outOrderList);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentOrderExportDto.java

@@ -48,6 +48,10 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
     @ApiModelProperty(value = "乐团课程费用",required = true)
     private BigDecimal musicGroupCourseFee = BigDecimal.ZERO;
 
+    //乐团课程费用
+    @ApiModelProperty(value = "乐团学校采买课程费用",required = true)
+    private BigDecimal courseSchoolBuyAmount = BigDecimal.ZERO;
+
     //网络基础训练课程费用
     @ApiModelProperty(value = "网络基础训练课程费用",required = true)
     private BigDecimal highCourseFee = BigDecimal.ZERO;
@@ -163,6 +167,8 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
         DEGREE_REGISTRATION("DEGREE_REGISTRATION", "考级费用"),
         REPAIR("REPAIR", "乐器维修"),
         RETAIL_GOODS("RETAIL_GOODS", "零售乐器/辅件/乐保"),
+        COURSE_SCHOOL_BUY("COURSE_SCHOOL_BUY", "课程学校采买"),
+        COURSE_STUDENT_BUY("COURSE_STUDENT_BUY", "课程家长采买"),
         LARGE_MUSICAL("LARGE_MUSICAL", "大件乐器");
 
         private String code;
@@ -201,6 +207,14 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
     @ApiModelProperty(value = "教学点",required = true)
     private String schoolName;
 
+    public BigDecimal getCourseSchoolBuyAmount() {
+        return courseSchoolBuyAmount;
+    }
+
+    public void setCourseSchoolBuyAmount(BigDecimal courseSchoolBuyAmount) {
+        this.courseSchoolBuyAmount = courseSchoolBuyAmount;
+    }
+
     public BigDecimal getRetailGoodsFee() {
         return retailGoodsFee;
     }

+ 96 - 72
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentOrderSumExportDto.java

@@ -2,46 +2,54 @@ package com.ym.mec.biz.dal.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 
+import java.math.BigDecimal;
+
 public class StudentPaymentOrderSumExportDto {
 
     @ApiModelProperty(value = "分部",required = true)
     private String organName;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int newVipNum;
+    @ApiModelProperty(value = "vip新增金额",required = true)
+    private BigDecimal newVipAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int renewVipNum;
+    @ApiModelProperty(value = "vip续费金额",required = true)
+    private BigDecimal renewVipAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int newMusicNum;
+    @ApiModelProperty(value = "乐团新开",required = true)
+    private BigDecimal newMusicAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int addMusicNum;
+    @ApiModelProperty(value = "乐团扩招",required = true)
+    private BigDecimal addMusicAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int renewMusicNum;
+    @ApiModelProperty(value = "乐团续费",required = true)
+    private BigDecimal renewMusicAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int musicConvertNum;
+    @ApiModelProperty(value = "乐团转化",required = true)
+    private BigDecimal musicConvertAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int newPracticeNum;
+    @ApiModelProperty(value = "网管课新增",required = true)
+    private BigDecimal newPracticeAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int renewPracticeNum;
+    @ApiModelProperty(value = "网管课续费",required = true)
+    private BigDecimal renewPracticeAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int degreeRegistrationNum;
+    @ApiModelProperty(value = "考级费用",required = true)
+    private BigDecimal degreeRegistrationAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int repairNum;
+    @ApiModelProperty(value = "乐器维修",required = true)
+    private BigDecimal repairAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int retailGoodsNum;
+    @ApiModelProperty(value = "零售乐器/辅件/乐保",required = true)
+    private BigDecimal retailGoodsAmount;
 
-    @ApiModelProperty(value = "分部",required = true)
-    private int largeMusialNum;
+    @ApiModelProperty(value = "大件乐器",required = true)
+    private BigDecimal largeMusialAmount;
+
+    @ApiModelProperty(value = "课程家长采买金额",required = true)
+    private BigDecimal courseStudentBuyAmount;
+
+    @ApiModelProperty(value = "课程学校采买金额",required = true)
+    private BigDecimal courseSchoolBuyAmount;
 
     public String getOrganName() {
         return organName;
@@ -51,99 +59,115 @@ public class StudentPaymentOrderSumExportDto {
         this.organName = organName;
     }
 
-    public int getNewVipNum() {
-        return newVipNum;
+    public BigDecimal getNewVipAmount() {
+        return newVipAmount;
+    }
+
+    public void setNewVipAmount(BigDecimal newVipAmount) {
+        this.newVipAmount = newVipAmount;
+    }
+
+    public BigDecimal getRenewVipAmount() {
+        return renewVipAmount;
+    }
+
+    public void setRenewVipAmount(BigDecimal renewVipAmount) {
+        this.renewVipAmount = renewVipAmount;
+    }
+
+    public BigDecimal getNewMusicAmount() {
+        return newMusicAmount;
     }
 
-    public void setNewVipNum(int newVipNum) {
-        this.newVipNum = newVipNum;
+    public void setNewMusicAmount(BigDecimal newMusicAmount) {
+        this.newMusicAmount = newMusicAmount;
     }
 
-    public int getRenewVipNum() {
-        return renewVipNum;
+    public BigDecimal getAddMusicAmount() {
+        return addMusicAmount;
     }
 
-    public void setRenewVipNum(int renewVipNum) {
-        this.renewVipNum = renewVipNum;
+    public void setAddMusicAmount(BigDecimal addMusicAmount) {
+        this.addMusicAmount = addMusicAmount;
     }
 
-    public int getNewMusicNum() {
-        return newMusicNum;
+    public BigDecimal getRenewMusicAmount() {
+        return renewMusicAmount;
     }
 
-    public void setNewMusicNum(int newMusicNum) {
-        this.newMusicNum = newMusicNum;
+    public void setRenewMusicAmount(BigDecimal renewMusicAmount) {
+        this.renewMusicAmount = renewMusicAmount;
     }
 
-    public int getAddMusicNum() {
-        return addMusicNum;
+    public BigDecimal getMusicConvertAmount() {
+        return musicConvertAmount;
     }
 
-    public void setAddMusicNum(int addMusicNum) {
-        this.addMusicNum = addMusicNum;
+    public void setMusicConvertAmount(BigDecimal musicConvertAmount) {
+        this.musicConvertAmount = musicConvertAmount;
     }
 
-    public int getRenewMusicNum() {
-        return renewMusicNum;
+    public BigDecimal getNewPracticeAmount() {
+        return newPracticeAmount;
     }
 
-    public void setRenewMusicNum(int renewMusicNum) {
-        this.renewMusicNum = renewMusicNum;
+    public void setNewPracticeAmount(BigDecimal newPracticeAmount) {
+        this.newPracticeAmount = newPracticeAmount;
     }
 
-    public int getMusicConvertNum() {
-        return musicConvertNum;
+    public BigDecimal getRenewPracticeAmount() {
+        return renewPracticeAmount;
     }
 
-    public void setMusicConvertNum(int musicConvertNum) {
-        this.musicConvertNum = musicConvertNum;
+    public void setRenewPracticeAmount(BigDecimal renewPracticeAmount) {
+        this.renewPracticeAmount = renewPracticeAmount;
     }
 
-    public int getNewPracticeNum() {
-        return newPracticeNum;
+    public BigDecimal getDegreeRegistrationAmount() {
+        return degreeRegistrationAmount;
     }
 
-    public void setNewPracticeNum(int newPracticeNum) {
-        this.newPracticeNum = newPracticeNum;
+    public void setDegreeRegistrationAmount(BigDecimal degreeRegistrationAmount) {
+        this.degreeRegistrationAmount = degreeRegistrationAmount;
     }
 
-    public int getRenewPracticeNum() {
-        return renewPracticeNum;
+    public BigDecimal getRepairAmount() {
+        return repairAmount;
     }
 
-    public void setRenewPracticeNum(int renewPracticeNum) {
-        this.renewPracticeNum = renewPracticeNum;
+    public void setRepairAmount(BigDecimal repairAmount) {
+        this.repairAmount = repairAmount;
     }
 
-    public int getDegreeRegistrationNum() {
-        return degreeRegistrationNum;
+    public BigDecimal getRetailGoodsAmount() {
+        return retailGoodsAmount;
     }
 
-    public void setDegreeRegistrationNum(int degreeRegistrationNum) {
-        this.degreeRegistrationNum = degreeRegistrationNum;
+    public void setRetailGoodsAmount(BigDecimal retailGoodsAmount) {
+        this.retailGoodsAmount = retailGoodsAmount;
     }
 
-    public int getRepairNum() {
-        return repairNum;
+    public BigDecimal getLargeMusialAmount() {
+        return largeMusialAmount;
     }
 
-    public void setRepairNum(int repairNum) {
-        this.repairNum = repairNum;
+    public void setLargeMusialAmount(BigDecimal largeMusialAmount) {
+        this.largeMusialAmount = largeMusialAmount;
     }
 
-    public int getRetailGoodsNum() {
-        return retailGoodsNum;
+    public BigDecimal getCourseStudentBuyAmount() {
+        return courseStudentBuyAmount;
     }
 
-    public void setRetailGoodsNum(int retailGoodsNum) {
-        this.retailGoodsNum = retailGoodsNum;
+    public void setCourseStudentBuyAmount(BigDecimal courseStudentBuyAmount) {
+        this.courseStudentBuyAmount = courseStudentBuyAmount;
     }
 
-    public int getLargeMusialNum() {
-        return largeMusialNum;
+    public BigDecimal getCourseSchoolBuyAmount() {
+        return courseSchoolBuyAmount;
     }
 
-    public void setLargeMusialNum(int largeMusialNum) {
-        this.largeMusialNum = largeMusialNum;
+    public void setCourseSchoolBuyAmount(BigDecimal courseSchoolBuyAmount) {
+        this.courseSchoolBuyAmount = courseSchoolBuyAmount;
     }
 }

+ 25 - 60
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -48,6 +48,8 @@ import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
+import static com.ym.mec.biz.dal.enums.OrderTypeEnum.OUTORDER;
+
 @Service
 public class ExportServiceImpl implements ExportService {
 
@@ -1600,7 +1602,7 @@ public class ExportServiceImpl implements ExportService {
         long i = 1;
         Map<Integer, String> cooperationOrganMap = new HashMap<>();
         List<Integer> cooperationOrganIds = studentPaymentOrderExportDtos.stream()
-                .filter(e -> OrderTypeEnum.OUTORDER.equals(e.getType()))
+                .filter(e -> OUTORDER.equals(e.getType()))
                 .filter(e -> e.getMusicGroupId() != null)
                 .map(e -> Integer.valueOf(e.getMusicGroupId()))
                 .distinct()
@@ -1636,6 +1638,12 @@ public class ExportServiceImpl implements ExportService {
         if(musicGroupIds != null && musicGroupIds.size() > 0){
             musicGroupNameMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds));
         }
+        //获取外部订单的商品销售金额
+        List<Long> outOrderList = studentPaymentOrderExportDtos.stream().filter(e -> e.getType() == OUTORDER).map(e -> e.getId()).collect(Collectors.toList());
+        Map<Long,BigDecimal> outOrderAmountMap = new HashMap<>();
+        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(outOrderList)){
+            outOrderAmountMap = MapUtil.convertIntegerMap(sellOrderDao.sumOutOrderAmount(outOrderList));
+        }
 
         for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
             if (row.getActualAmount() == null) {
@@ -1871,8 +1879,13 @@ public class ExportServiceImpl implements ExportService {
                 row.setRetailGoodsFee(row.getActualAmount());
                 row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.RETAIL_GOODS);
             } else if (row.getGroupType().equals(GroupType.OUTORDER)) {
-                row.setLargeMusicalFee(row.getActualAmount());
-                row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.LARGE_MUSICAL);
+                if(outOrderAmountMap.get(row.getId()) == null){
+                    row.setCourseSchoolBuyAmount(row.getActualAmount());
+                    row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.COURSE_SCHOOL_BUY);
+                }else {
+                    row.setLargeMusicalFee(row.getActualAmount());
+                    row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.LARGE_MUSICAL);
+                }
             } else {
                 StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
                 BigDecimal childRepairFee = sellOrderDao.getChildRepair(row.getId());
@@ -1891,7 +1904,7 @@ public class ExportServiceImpl implements ExportService {
                     row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()).subtract(row.getCloudTeacherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
                     row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
-                } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
+                } else if (row.getType().equals(OUTORDER)) {
                     row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()));
                     row.setTransferFee(BigDecimal.ZERO);
                     row.setPlatformFee(BigDecimal.ZERO);
@@ -1905,7 +1918,7 @@ public class ExportServiceImpl implements ExportService {
                     row.setEduTeacher(cooperationOrgan.getLinkman() != null ? cooperationOrgan.getLinkman() : row.getEduTeacher());
                 }
             }
-            if (row.getType().equals(OrderTypeEnum.OUTORDER) && row.getMusicGroupId() != null) {
+            if (row.getType().equals(OUTORDER) && row.getMusicGroupId() != null) {
                 if (cooperationOrganMap.containsKey(Integer.valueOf(row.getMusicGroupId()))) {
                     row.setCooperationOrganName(cooperationOrganMap.get(Integer.valueOf(row.getMusicGroupId())));
                     CooperationOrgan cooperationOrganEduTeacher = musicGroupDao.findCooperationOrganEduTeacher(Integer.valueOf(row.getMusicGroupId()));
@@ -1942,30 +1955,6 @@ public class ExportServiceImpl implements ExportService {
             Map<String, String> headMap = getExportMap(new ExportDto(ExportEnum.ORDER_LIST1, headColumns));
             String[] header = headMap.keySet().toArray(new String[headMap.keySet().size()]);
             String[] body = headMap.values().toArray(new String[headMap.keySet().size()]);
-            /*if(isPlatformUser){
-                String[] header = {"序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额",
-                        "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费",
-                        "账户充值", "其它", "汇付手续费","平台手续费", "到账时间",
-                        "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"};
-                
-                String[] body = {"id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",
-                        "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",
-                        "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId",
-                        "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"};
-                workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
-            }else{
-                String[] header = {"序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额",
-                        "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费",
-                        "账户充值", "其它","平台手续费", "到账时间",
-                        "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"};
-                
-                String[] body = {"id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",
-                        "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",
-                        "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "platformFee", "payTime", "musicGroupId",
-                        "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"};
-                workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
-            }*/
-
             workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
             workbook.write(fileOutputStream);
             fileOutputStream.getFD().sync();
@@ -1996,7 +1985,7 @@ public class ExportServiceImpl implements ExportService {
         long i = 1;
         Map<Integer, String> cooperationOrganMap = new HashMap<>();
         List<Integer> cooperationOrganIds = studentPaymentOrderExportDtos.stream()
-                .filter(e -> OrderTypeEnum.OUTORDER.equals(e.getType()))
+                .filter(e -> OUTORDER.equals(e.getType()))
                 .filter(e -> e.getMusicGroupId() != null)
                 .map(e -> Integer.valueOf(e.getMusicGroupId()))
                 .distinct()
@@ -2287,7 +2276,7 @@ public class ExportServiceImpl implements ExportService {
                     row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()).subtract(row.getCloudTeacherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
                     row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
-                } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
+                } else if (row.getType().equals(OUTORDER)) {
                     row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()));
                     row.setTransferFee(BigDecimal.ZERO);
                     row.setPlatformFee(BigDecimal.ZERO);
@@ -2301,7 +2290,7 @@ public class ExportServiceImpl implements ExportService {
                     row.setEduTeacher(cooperationOrgan.getLinkman() != null ? cooperationOrgan.getLinkman() : row.getEduTeacher());
                 }
             }
-            if (row.getType().equals(OrderTypeEnum.OUTORDER) && row.getMusicGroupId() != null) {
+            if (row.getType().equals(OUTORDER) && row.getMusicGroupId() != null) {
                 if (cooperationOrganMap.containsKey(Integer.valueOf(row.getMusicGroupId()))) {
                     row.setCooperationOrganName(cooperationOrganMap.get(Integer.valueOf(row.getMusicGroupId())));
                     CooperationOrgan cooperationOrganEduTeacher = musicGroupDao.findCooperationOrganEduTeacher(Integer.valueOf(row.getMusicGroupId()));
@@ -2338,30 +2327,6 @@ public class ExportServiceImpl implements ExportService {
             Map<String, String> headMap = getExportMap(new ExportDto(ExportEnum.ORDER_LIST1, headColumns));
             String[] header = headMap.keySet().toArray(new String[headMap.keySet().size()]);
             String[] body = headMap.values().toArray(new String[headMap.keySet().size()]);
-            /*if(isPlatformUser){
-                String[] header = {"序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额",
-                        "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费",
-                        "账户充值", "其它", "汇付手续费","平台手续费", "到账时间",
-                        "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"};
-
-                String[] body = {"id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",
-                        "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",
-                        "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId",
-                        "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"};
-                workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
-            }else{
-                String[] header = {"序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额",
-                        "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费",
-                        "账户充值", "其它","平台手续费", "到账时间",
-                        "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"};
-
-                String[] body = {"id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",
-                        "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",
-                        "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "platformFee", "payTime", "musicGroupId",
-                        "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"};
-                workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
-            }*/
-
             workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
             workbook.write(fileOutputStream);
             fileOutputStream.getFD().sync();
@@ -2392,7 +2357,7 @@ public class ExportServiceImpl implements ExportService {
 
         Map<Integer, String> cooperationOrganMap = new HashMap<>();
         List<Integer> cooperationOrganIds = studentPaymentOrderExportDtos.stream()
-                .filter(e -> OrderTypeEnum.OUTORDER.equals(e.getType()))
+                .filter(e -> OUTORDER.equals(e.getType()))
                 .filter(e -> e.getMusicGroupId() != null)
                 .map(e -> Integer.valueOf(e.getMusicGroupId()))
                 .distinct()
@@ -2713,7 +2678,7 @@ public class ExportServiceImpl implements ExportService {
                     row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()).subtract(row.getCloudTeacherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
                     row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
-                } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
+                } else if (row.getType().equals(OUTORDER)) {
                     row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getRepairFee()).subtract(feeByType.getOtherFee()));
                     row.setTransferFee(BigDecimal.ZERO);
                     row.setPlatformFee(BigDecimal.ZERO);
@@ -2727,7 +2692,7 @@ public class ExportServiceImpl implements ExportService {
                     row.setEduTeacher(cooperationOrgan.getLinkman() != null ? cooperationOrgan.getLinkman() : row.getEduTeacher());
                 }
             }
-            if (row.getType().equals(OrderTypeEnum.OUTORDER) && row.getMusicGroupId() != null) {
+            if (row.getType().equals(OUTORDER) && row.getMusicGroupId() != null) {
                 if (cooperationOrganMap.containsKey(Integer.valueOf(row.getMusicGroupId()))) {
                     row.setCooperationOrganName(cooperationOrganMap.get(Integer.valueOf(row.getMusicGroupId())));
                     CooperationOrgan cooperationOrganEduTeacher = musicGroupDao.findCooperationOrganEduTeacher(Integer.valueOf(row.getMusicGroupId()));
@@ -2849,7 +2814,7 @@ public class ExportServiceImpl implements ExportService {
                         musicGroupCourseFee = order.getRouteAmount().subtract(musicalFee).subtract(teachingFee).subtract(maintenanceFee).subtract(maintenanceProductFee).subtract(otherFee).subtract(leaseFee).subtract(cloudTeacherFee);
                     } else if (order.getType().equals(OrderTypeEnum.REPAIR)) {
                         repairFee = order.getRouteAmount().subtract(musicalFee).subtract(teachingFee).subtract(otherFee);
-                    } else if (order.getType().equals(OrderTypeEnum.OUTORDER)) {
+                    } else if (order.getType().equals(OUTORDER)) {
                         musicGroupCourseFee = order.getRouteAmount().subtract(musicalFee).subtract(teachingFee).subtract(maintenanceProductFee).subtract(otherFee);
                     }
                 }

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

@@ -618,5 +618,13 @@
     <select id="getChildRepair" resultType="decimal">
         SELECT IFNULL(SUM(actual_amount_),0) FROM sell_order WHERE order_id_ = #{orderId} AND goods_id_ = 76 AND parent_goods_id_ > 0
     </select>
+    <select id="sumOutOrderAmount" resultType="java.util.Map">
+        SELECT order_id_ 'key',SUM(actual_amount_) 'value' FROM sell_order
+        WHERE order_id_ IN
+        <foreach collection="outOrderList" item="orderId" open="(" close=")" separator=",">
+            #{orderId}
+        </foreach>
+        GROUP BY order_id_
+    </select>
 
 </mapper>

+ 4 - 4
mec-web/src/main/resources/exportColumnMapper.ini

@@ -111,12 +111,12 @@ headColumns = ["用户编号", "用户名", "手机号", "课程类型", "实际
 fieldColumns = ["userId", "username", "phone", "type.msg", "name", "actualSalary", "subsidy", "settlementTime", "teacherRole.msg"]
 
 [订单列表导出1]
-headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它", "汇付手续费","平台手续费", "到账时间","关联乐团ID/VIP课ID","课程形态","课程形态描述","收费乐团编号","收费乐团","零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
-fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount","balancePaymentAmount","couponRemitFee","musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee","leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee","retailGoodsFee","largeMusicalFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId","groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额", "课程家长采买","课程学校采买", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它", "汇付手续费","平台手续费", "到账时间","关联乐团ID/VIP课ID","课程形态","课程形态描述","收费乐团编号","收费乐团","零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount","balancePaymentAmount","couponRemitFee","musicGroupCourseFee","courseSchoolBuyAmount", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee","leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee","retailGoodsFee","largeMusicalFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId","groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [订单列表导出2]
-headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额","乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它","平台手续费", "到账时间",    "关联乐团ID/VIP课ID", "课程形态","课程形态描述","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
-fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",     "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",     "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee","retailGoodsFee","largeMusicalFee", "otherFee", "platformFee", "payTime", "musicGroupId", "groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额","课程家长采买","课程学校采买", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它","平台手续费", "到账时间",    "关联乐团ID/VIP课ID", "课程形态","课程形态描述","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",     "musicGroupCourseFee","courseSchoolBuyAmount", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",     "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee","retailGoodsFee","largeMusicalFee", "otherFee", "platformFee", "payTime", "musicGroupId", "groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [学员小课记录导出]
 headColumns = ["分部", "学员编号", "学生姓名", "年级", "课程余额", "声部" ,"声部班老师编号" ,"声部班老师", "上次课时间", "VIP总课时数", "VIP已结束课时数", "VIP未开始课时数", "已结束VIP课程组老师编号", "已结束VIP课程组老师", "未开始VIP课程组老师编号", "未开始VIP课程组老师","网管课已结束课时数", "网管课未开始课时数", "已结束网管课课程组老师编号", "已结束网管课课程组老师", "未开始网管课课程组老师编号", "未开始网管课课程组老师", "指导老师编号", "指导老师"]