zouxuan %!s(int64=2) %!d(string=hai) anos
pai
achega
eefcb8e127

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OperatingReportNewDao.java

@@ -94,4 +94,7 @@ public interface OperatingReportNewDao extends BaseDAO<Integer, OperatingReportN
 
     //乐保实收入
     List<Map<Integer,BigDecimal>> sumMaintenanceAmount(@Param("month") String month);
+
+    //统计当月亏损的云教练金额
+    List<Map<Integer,BigDecimal>> sumLossCloudAmount(@Param("month") String month);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OperatingReportCloudServiceImpl.java

@@ -55,7 +55,7 @@ public class OperatingReportCloudServiceImpl extends BaseServiceImpl<Integer, Op
 		}
 		BigDecimal amount = BigDecimal.ZERO;
 		//查询云教练价格
-		List<StudentPaymentOrderDetail> orderDetail = studentPaymentOrderDetailDao.getOrderDetail(orderId);
+		List<StudentPaymentOrderDetail> orderDetail = studentPaymentOrderDetailDao.findApplyOrderGoods(orderId);
 		if(CollectionUtils.isNotEmpty(orderDetail)){
 			amount = orderDetail.stream().filter(e->e.getType() == OrderDetailTypeEnum.CLOUD_TEACHER || e.getType() == OrderDetailTypeEnum.CLOUD_TEACHER_PLUS)
 					.map(e->e.getPrice()).reduce(BigDecimal.ZERO,BigDecimal::add);

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OperatingReportNewServiceImpl.java

@@ -56,12 +56,12 @@ public class OperatingReportNewServiceImpl extends BaseServiceImpl<Integer, Oper
 		List<OperatingReportNew> sellList = operatingReportNewDao.sumSellAmount(currentMonth);
 		Map<Integer, OperatingReportNew> collect = sellList.stream().collect(Collectors.groupingBy(OperatingReportNew::getOrganId,Collectors.collectingAndThen(Collectors.toList(),value->value.get(0))));
 		//服务收入
-		//导入的销售收入
-//		Map<Integer, BigDecimal> collect22 = MapUtil.convertIntegerMap(operatingReportNewDao.sumImportSaleOrderAmount(currentMonth));
 		//导入的服务收入  (全部记录为课程收入)
 		Map<Integer, BigDecimal> collect24 = MapUtil.convertIntegerMap(operatingReportNewDao.sumImportServerOrderAmount(currentMonth));
 		//云教练赠送课程实际收入
 		Map<Integer, BigDecimal> collect1 = MapUtil.convertIntegerMap(operatingReportNewDao.sumCloudCourseAmount(firstDayOfMonth,lastDayOfMonth));
+		//亏损的云教练算到当月实际收入
+		Map<Integer, BigDecimal> collect22 = MapUtil.convertIntegerMap(operatingReportNewDao.sumLossCloudAmount(currentMonth));
 		//付费课程实际收入
 		Map<Integer, BigDecimal> collect2 = MapUtil.convertIntegerMap(operatingReportNewDao.sumCourseAmount(firstDayOfMonth,lastDayOfMonth));
 		//个人云教练当月收入
@@ -137,6 +137,7 @@ public class OperatingReportNewServiceImpl extends BaseServiceImpl<Integer, Oper
 			operatingReportNew.setCloudAmount(getAmount(collect3.get(organId)));
 			operatingReportNew.setCloudAmount(operatingReportNew.getCloudAmount().add(getAmount(collect4.get(organId))));
 			operatingReportNew.setCloudAmount(operatingReportNew.getCloudAmount().add(getAmount(collect5.get(organId))));
+			operatingReportNew.setCloudAmount(operatingReportNew.getCloudAmount().add(getAmount(collect22.get(organId))));
 
 			operatingReportNew.setMaintenanceAmount(getAmount(collect26.get(organId)));
 

+ 7 - 3
mec-biz/src/main/resources/config/mybatis/OperatingReportNewMapper.xml

@@ -198,17 +198,17 @@
 		where cs.del_flag_ = 0 AND cs.is_lock_ = 0 AND cs.class_date_ BETWEEN #{firstDay} AND #{lastDay} group by cs.organ_id_;
 	</select>
 	<select id="sumPersonalCloudAmount" resultType="java.util.Map">
-		select cto.organ_id_ 'key',TRUNCATE(SUM(amount_ / TIMESTAMPDIFF(DAY,start_time_,end_time_) *
+		select cto.organ_id_ 'key',TRUNCATE(SUM(operating_amount_ / TIMESTAMPDIFF(DAY,start_time_,end_time_) *
 		TIMESTAMPDIFF(DAY,CASE WHEN start_time_ &lt; #{firstDay} THEN #{firstDay} ELSE DATE_FORMAT(start_time_,'%Y-%m-%d') END,
 		CASE WHEN DATE_FORMAT(end_time_,'%Y-%m') > #{month} THEN #{lastDay} ELSE DATE_FORMAT(end_time_,'%Y-%m-%d') END)),2) 'value'
 		from cloud_teacher_order cto
-		where music_group_id_ IS NULL AND amount_ > 0 AND #{month} BETWEEN DATE_FORMAT(start_time_,'%Y-%m') AND DATE_FORMAT(end_time_,'%Y-%m') group by cto.organ_id_;
+		where operating_amount_ > 0 AND #{month} BETWEEN DATE_FORMAT(start_time_,'%Y-%m') AND DATE_FORMAT(end_time_,'%Y-%m') group by cto.organ_id_;
 	</select>
 	<select id="sumGroupCloudAmount" resultType="java.util.Map">
 		select orc.organ_id_ 'key',TRUNCATE(SUM(orc.cloud_price_ / TIMESTAMPDIFF(DAY,orc.start_date_,orc.end_date_) *
 		TIMESTAMPDIFF(DAY,CASE WHEN orc.start_date_ &lt; #{firstDay} THEN #{firstDay} ELSE orc.start_date_ END,
 		CASE WHEN DATE_FORMAT(orc.end_date_,'%Y-%m') > #{month} THEN #{lastDay} ELSE orc.end_date_ END)),2) 'value' from operating_report_cloud orc
-		where #{month} BETWEEN DATE_FORMAT(orc.start_date_,'%Y-%m') AND DATE_FORMAT(orc.end_date_,'%Y-%m') AND orc.start_date_  IS NOT NULL;
+		where #{month} BETWEEN DATE_FORMAT(orc.start_date_,'%Y-%m') AND DATE_FORMAT(orc.end_date_,'%Y-%m') AND orc.cloud_price_ > 0 AND orc.start_date_  IS NOT NULL;
 	</select>
 	<select id="sumRefundAmount" resultType="java.util.Map">
 		select suc.organ_id_ 'key',SUM(amount_) 'value' from sys_user_cash_account_log suc
@@ -333,4 +333,8 @@
 		where spod.type_ = 'MAINTENANCE' AND DATE_FORMAT(spod.create_time_,'%Y-%m') = #{month} AND spo.status_ = 'SUCCESS'
 		group by spo.organ_id_
 	</select>
+	<select id="sumLossCloudAmount" resultType="java.util.Map">
+		select organ_id_ 'key',SUM(cloud_price_) 'value' from operating_report_cloud where cloud_price_ < 0 AND DATE_FORMAT(start_date_,'%Y-m%') = '2022-09'
+		group by organ_id_;
+	</select>
 </mapper>