Procházet zdrojové kódy

管乐迷商城改造

zouxuan před 1 rokem
rodič
revize
8f72369452

+ 50 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1992,6 +1992,17 @@ public class ExportServiceImpl implements ExportService {
             feeByTypeMap = feeByType.stream().collect(Collectors.groupingBy(StudentPaymentOrderExportDto::getId));
             childRepairMap = MapUtil.convertIntegerMap(sellOrderDao.queryChildRepair(otherOrderIds));
         }
+        //获取外部订单,将学校商品采购划分为大件乐器
+        Map<String, StudentPaymentRouteOrder> routeOrderMap = new HashMap<>();
+        List<String> outOrderNos = studentPaymentOrderExportDtos.stream().filter(e -> e.getGroupType() == GroupType.OUTORDER && e.getType() == OrderTypeEnum.SCHOOL)
+                .map(e -> e.getOrderNo()).collect(Collectors.toList());
+        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(outOrderNos)){
+            List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.queryByOrderNos(outOrderNos);
+            if (org.apache.commons.collections.CollectionUtils.isNotEmpty(routeOrders)){
+                routeOrderMap = routeOrders.stream().filter(e->e.getSaleAmount().compareTo(BigDecimal.ZERO) > 0)
+                        .collect(Collectors.toMap(StudentPaymentRouteOrder::getOrderNo, Function.identity()));
+            }
+        }
 
         for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
             if (row.getActualAmount() == null) {
@@ -2270,20 +2281,25 @@ public class ExportServiceImpl implements ExportService {
                             } else {
                                 //拆分导入订单
                                 if (row.getType() == OrderTypeEnum.OUTORDER || row.getType() == OrderTypeEnum.SCHOOL) {
-                                    if (row.getType() == OrderTypeEnum.SCHOOL) {
-                                        row.setMusicalFee(BigDecimal.ZERO);
-                                        row.setTeachingFee(BigDecimal.ZERO);
-                                        row.setMaintenanceProductFee(BigDecimal.ZERO);
-                                        row.setOtherFee(BigDecimal.ZERO);
-                                        row.setLargeMusicalFee(add);
-                                    }
-                                    //如果有服务收入那么是课程学校采买
-                                    if (subtract.compareTo(BigDecimal.ZERO) == 0) {
+                                    if(routeOrderMap.get(row.getOrderNo()) != null){
+                                        row.setLargeMusicalFee(subtract);
                                         row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.LARGE_MUSICAL.getMsg());
-                                    } else {
-                                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.COURSE_SCHOOL_BUY.getMsg());
+                                    }else {
+                                        if (row.getType() == OrderTypeEnum.SCHOOL) {
+                                            row.setMusicalFee(BigDecimal.ZERO);
+                                            row.setTeachingFee(BigDecimal.ZERO);
+                                            row.setMaintenanceProductFee(BigDecimal.ZERO);
+                                            row.setOtherFee(BigDecimal.ZERO);
+                                            row.setLargeMusicalFee(add);
+                                        }
+                                        //如果有服务收入那么是课程学校采买
+                                        if (subtract.compareTo(BigDecimal.ZERO) == 0) {
+                                            row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.LARGE_MUSICAL.getMsg());
+                                        } else {
+                                            row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.COURSE_SCHOOL_BUY.getMsg());
+                                        }
+                                        row.setCourseSchoolBuyAmount(subtract);
                                     }
-                                    row.setCourseSchoolBuyAmount(subtract);
                                 } else if (row.getType() == OrderTypeEnum.OTHER) {
                                     row.setOtherFee(row.getOtherFee().add(subtract));
                                 } else {
@@ -2393,6 +2409,17 @@ public class ExportServiceImpl implements ExportService {
             feeByTypeMap = feeByType.stream().collect(Collectors.groupingBy(StudentPaymentOrderExportDto::getId));
             childRepairMap = MapUtil.convertIntegerMap(sellOrderDao.queryChildRepair(otherOrderIds));
         }
+        //获取外部订单,将学校商品采购划分为大件乐器
+        Map<String, StudentPaymentRouteOrder> routeOrderMap = new HashMap<>();
+        List<String> outOrderNos = studentPaymentOrderExportDtos.stream().filter(e -> e.getGroupType() == GroupType.OUTORDER && e.getType() == OrderTypeEnum.SCHOOL)
+                .map(e -> e.getOrderNo()).collect(Collectors.toList());
+        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(outOrderNos)){
+            List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.queryByOrderNos(outOrderNos);
+            if (org.apache.commons.collections.CollectionUtils.isNotEmpty(routeOrders)){
+                routeOrderMap = routeOrders.stream().filter(e->e.getSaleAmount().compareTo(BigDecimal.ZERO) > 0)
+                        .collect(Collectors.toMap(StudentPaymentRouteOrder::getOrderNo, Function.identity()));
+            }
+        }
         for (StudentPaymentOrderExportDto row : studentPaymentOrderExportDtos) {
             if (row.getActualAmount() == null) {
                 row.setActualAmount(BigDecimal.ZERO);
@@ -2581,14 +2608,18 @@ public class ExportServiceImpl implements ExportService {
                         } else {
                             //拆分导入订单
                             if (row.getType() == OrderTypeEnum.OUTORDER || row.getType() == OrderTypeEnum.SCHOOL) {
-                                if (row.getType() == OrderTypeEnum.SCHOOL) {
-                                    row.setMusicalFee(BigDecimal.ZERO);
-                                    row.setTeachingFee(BigDecimal.ZERO);
-                                    row.setMaintenanceProductFee(BigDecimal.ZERO);
-                                    row.setOtherFee(BigDecimal.ZERO);
-                                    row.setLargeMusicalFee(add);
+                                if(routeOrderMap.get(row.getOrderNo()) != null){
+                                    row.setLargeMusicalFee(subtract);
+                                }else {
+                                    if (row.getType() == OrderTypeEnum.SCHOOL) {
+                                        row.setMusicalFee(BigDecimal.ZERO);
+                                        row.setTeachingFee(BigDecimal.ZERO);
+                                        row.setMaintenanceProductFee(BigDecimal.ZERO);
+                                        row.setOtherFee(BigDecimal.ZERO);
+                                        row.setLargeMusicalFee(add);
+                                    }
+                                    row.setCourseSchoolBuyAmount(subtract);
                                 }
-                                row.setCourseSchoolBuyAmount(subtract);
                             } else if (row.getType() == OrderTypeEnum.OTHER) {
                                 row.setOtherFee(row.getOtherFee().add(subtract));
                             } else {

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -417,7 +417,7 @@
     </sql>
     <sql id="queryPaymentOrder">
         <where>
-        	spo.tenant_id_ = #{tenantId}
+        	spo.tenant_id_ = #{tenantId} AND spo.type_ != 'SCHOOL_GOODS_PURCHASE'
             <if test="userIds != null">
                 AND spo.user_id_ IN
                 <foreach collection="userIds" item="userId" open="(" close=")" separator=",">