Browse Source

Merge branch 'zx_saas_0810' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 2 years ago
parent
commit
2c0dfc2be8

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

@@ -91,4 +91,7 @@ public interface OperatingReportNewDao extends BaseDAO<Integer, OperatingReportN
 
     //获取待生效云教练预收
     List<Map<Integer,BigDecimal>> sumWaitCloudPreAmount();
+
+    //乐保实收入
+    List<Map<Integer,BigDecimal>> sumMaintenanceAmount(@Param("month") String month);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/OperatingReportNew.java

@@ -31,6 +31,9 @@ public class OperatingReportNew {
     @ApiModelProperty(value="云教练收入")
     private BigDecimal cloudAmount = BigDecimal.ZERO;
 
+    @ApiModelProperty(value="乐保收入")
+    private BigDecimal maintenanceAmount = BigDecimal.ZERO;
+
     //当月退费列表总金额(当月退费列表已退费总金额)
     @ApiModelProperty(value="业务退费")
     private BigDecimal businessRefund = BigDecimal.ZERO;
@@ -92,6 +95,14 @@ public class OperatingReportNew {
     @ApiModelProperty(value="月份")
     private String month;
 
+    public BigDecimal getMaintenanceAmount() {
+        return maintenanceAmount;
+    }
+
+    public void setMaintenanceAmount(BigDecimal maintenanceAmount) {
+        this.maintenanceAmount = maintenanceAmount;
+    }
+
     public BigDecimal getCloudPrepaidFee() {
         return cloudPrepaidFee;
     }

+ 5 - 16
mec-biz/src/main/java/com/ym/mec/biz/dal/page/OperatingReportNewQueryInfo.java

@@ -11,10 +11,7 @@ public class OperatingReportNewQueryInfo extends QueryInfo {
     private String organId;
 
     @ApiModelProperty(value = "年月", required = false)
-    private String startTime;
-
-    @ApiModelProperty(value = "年月", required = false)
-    private String endTime;
+    private String date;
 
     public String getOrganId() {
         return organId;
@@ -24,19 +21,11 @@ public class OperatingReportNewQueryInfo extends QueryInfo {
         this.organId = organId;
     }
 
-    public String getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(String startTime) {
-        this.startTime = startTime;
-    }
-
-    public String getEndTime() {
-        return endTime;
+    public String getDate() {
+        return date;
     }
 
-    public void setEndTime(String endTime) {
-        this.endTime = endTime;
+    public void setDate(String date) {
+        this.date = date;
     }
 }

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OperatingReportNewServiceImpl.java

@@ -1,9 +1,9 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.OperatingReportCloudDao;
 import com.ym.mec.biz.dal.dao.OperatingReportNewDao;
 import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.OperatingReportNew;
+import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.OperatingReportNewService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -26,8 +26,6 @@ public class OperatingReportNewServiceImpl extends BaseServiceImpl<Integer, Oper
 	@Autowired
 	private OperatingReportNewDao operatingReportNewDao;
 	@Autowired
-	private OperatingReportCloudDao operatingReportCloudDao;
-	@Autowired
 	private VipGroupCategoryDao vipGroupCategoryDao;
 
 	@Override
@@ -72,6 +70,8 @@ public class OperatingReportNewServiceImpl extends BaseServiceImpl<Integer, Oper
 		Map<Integer, BigDecimal> collect4 = MapUtil.convertIntegerMap(operatingReportNewDao.sumGroupCloudAmount(currentMonth,firstDayOfMonth,lastDayOfMonth));
 		//团体云教练当月一次性结转
 		Map<Integer, BigDecimal> collect5 = MapUtil.convertIntegerMap(operatingReportNewDao.sumGroupAmount());
+		//乐保实收
+		Map<Integer, BigDecimal> collect26 = MapUtil.convertIntegerMap(operatingReportNewDao.sumMaintenanceAmount(currentMonth));
 
 		//业务退费
 		Map<Integer, BigDecimal> collect6 = MapUtil.convertIntegerMap(operatingReportNewDao.sumRefundAmount(currentMonth));
@@ -138,7 +138,9 @@ public class OperatingReportNewServiceImpl extends BaseServiceImpl<Integer, Oper
 			operatingReportNew.setCloudAmount(operatingReportNew.getCloudAmount().add(getAmount(collect4.get(organId))));
 			operatingReportNew.setCloudAmount(operatingReportNew.getCloudAmount().add(getAmount(collect5.get(organId))));
 
-			operatingReportNew.setServiceAmount(operatingReportNew.getCloudAmount().add(operatingReportNew.getCourseAmount()));
+			operatingReportNew.setMaintenanceAmount(getAmount(collect26.get(organId)));
+
+			operatingReportNew.setServiceAmount(operatingReportNew.getCloudAmount().add(operatingReportNew.getCourseAmount()).add(operatingReportNew.getMaintenanceAmount()));
 			operatingReportNew.setTotalIncome(operatingReportNew.getSaleAmount().add(operatingReportNew.getServiceAmount()));
 
 			operatingReportNew.setBusinessRefund(getAmount(collect6.get(organId)));

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/CloudTeacherFreeCourseMapper.xml

@@ -32,8 +32,9 @@
 	</insert>
     <insert id="batchInsert">
 		insert into cloud_teacher_free_course (course_id_, cost_,calender_id_, create_time_, update_time_)
-		SELECT cs.id_,oct.price_,#{calenderId},NOW(),NOW() FROM course_schedule cs
-		LEFT JOIN organ_course_type_original_cost oct ON oct.course_type_ = cs.type_ AND (oct.organ_id_ = cs.organ_id_  OR oct.organ_id_ = 0)
+		SELECT cs.id_,CASE WHEN oct.id_ IS NULL THEN oct1.price_ ELSE oct.price_ END cost_,#{calenderId},NOW(),NOW() FROM course_schedule cs
+		left join organ_course_type_original_cost oct ON oct.course_type_ = cs.type_ AND oct.organ_id_ = cs.organ_id_
+		left join organ_course_type_original_cost oct1 ON oct1.course_type_ = cs.type_ AND oct1.organ_id_ = 0
 		where FIND_IN_SET(cs.id_,#{scheduleIdList})
 		GROUP BY cs.id_
 	</insert>

+ 18 - 9
mec-biz/src/main/resources/config/mybatis/OperatingReportNewMapper.xml

@@ -15,6 +15,7 @@
 		<result column="service_amount_" property="serviceAmount" />
 		<result column="cloud_amount_" property="cloudAmount" />
 		<result column="course_amount_" property="courseAmount" />
+		<result column="maintenance_amount_" property="maintenanceAmount" />
 		<result column="business_refund_" property="businessRefund" />
 		<result column="total_income_" property="totalIncome" />
 		<result column="sale_cost_" property="saleCost" />
@@ -46,22 +47,22 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.OperatingReportNew" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO operating_report_new (id_,principal_,organ_id_,organ_name_,sale_amount_,service_amount_,cloud_amount_,course_amount_,
+		INSERT INTO operating_report_new (id_,principal_,organ_id_,organ_name_,sale_amount_,service_amount_,cloud_amount_,course_amount_,maintenance_amount_,
 		                                  business_refund_,total_income_,sale_cost_,fixed_costs_,variable_costs_,internal_settlement_,
 		                                  total_cost_,quasi_discretionary_profit_,prepaid_fee_,cloud_prepaid_fee_,course_prepaid_fee_,sale_prepaid_fee_,other_prepaid_fee_
 		                                  ,prepayments_,receivables_,payable_,month_)
-		VALUES(#{id},#{principal},#{organId},#{organName},#{saleAmount},#{serviceAmount},#{cloudAmount},#{courseAmount},
+		VALUES(#{id},#{principal},#{organId},#{organName},#{saleAmount},#{serviceAmount},#{cloudAmount},#{courseAmount},#{maintenanceAmount},
 		       #{businessRefund},#{totalIncome},#{saleCost},#{fixedCosts},#{variableCosts},#{internalSettlement},
 		       #{totalCost},#{quasiDiscretionaryProfit},#{prepaidFee},#{cloudPrepaidFee},#{coursePrepaidFee},#{salePrepaidFee},#{otherPrepaidFee},
 		       #{prepayments},#{receivables},#{payable},#{month})
 	</insert>
 	<insert id="batchInsert">
-		INSERT INTO operating_report_new (principal_,organ_id_,organ_name_,sale_amount_,service_amount_,cloud_amount_,course_amount_,business_refund_,total_income_,sale_cost_,
+		INSERT INTO operating_report_new (principal_,organ_id_,organ_name_,sale_amount_,service_amount_,cloud_amount_,course_amount_,maintenance_amount_,business_refund_,total_income_,sale_cost_,
 		                                  fixed_costs_,variable_costs_,internal_settlement_,total_cost_,quasi_discretionary_profit_,
 		                                  prepaid_fee_,cloud_prepaid_fee_,course_prepaid_fee_,sale_prepaid_fee_,other_prepaid_fee_,prepayments_,receivables_,payable_,month_)
 		VALUES
 		<foreach collection="operatingList" item="bean" separator=",">
-			(#{bean.principal},#{bean.organId},#{bean.organName},#{bean.saleAmount},#{bean.serviceAmount},#{bean.cloudAmount},#{bean.courseAmount},#{bean.businessRefund},#{bean.totalIncome},
+			(#{bean.principal},#{bean.organId},#{bean.organName},#{bean.saleAmount},#{bean.serviceAmount},#{bean.cloudAmount},#{bean.courseAmount},#{bean.maintenanceAmount},#{bean.businessRefund},#{bean.totalIncome},
 			 #{bean.saleCost},#{bean.fixedCosts},#{bean.variableCosts},#{bean.internalSettlement},#{bean.totalCost},#{bean.quasiDiscretionaryProfit},
 			 #{bean.prepaidFee},#{bean.cloudPrepaidFee},#{bean.coursePrepaidFee},#{bean.salePrepaidFee},#{bean.otherPrepaidFee},
 			 #{bean.prepayments},#{bean.receivables},#{bean.payable},#{bean.month})
@@ -155,8 +156,8 @@
 			<if test="organId != null and organId != ''">
 				AND FIND_IN_SET(organ_id_,#{organId})
 			</if>
-			<if test="startTime != null and startTime != ''">
-				AND month_ BETWEEN #{startTime} AND #{endTime}
+			<if test="date != null and date != ''">
+				AND month_ = #{date}
 			</if>
 		</where>
 	</sql>
@@ -292,11 +293,13 @@
 	</select>
 	<select id="sumActivityUserMapperAmount" resultType="java.util.Map">
 		SELECT mgpc.organ_id_ 'key',(SUM(CASE WHEN aum.sub_course_num_ > 0 AND aum.category_id_ != 8 THEN aum.sub_course_num_ ELSE 0 END) +
-							   SUM(CASE WHEN aum.sub_give_course_num_ > 0 AND aum.give_category_id_ != 8 THEN aum.sub_give_course_num_ ELSE 0 END)) * oct.price_ 'value'
+							   SUM(CASE WHEN aum.sub_give_course_num_ > 0 AND aum.give_category_id_ != 8 THEN aum.sub_give_course_num_ ELSE 0 END)) *
+									CASE WHEN oct.id_ IS NULL THEN oct1.price_ ELSE oct.price_ END 'value'
 		FROM activity_user_mapper aum
 				 LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = aum.calender_id_
-				 LEFT JOIN organ_course_type_original_cost oct ON oct.course_type_ = 'VIP' AND oct.organ_id_ = mgpc.organ_id_
-		WHERE aum.calender_id_ IS NOT NULL AND return_fee_ = 0
+				 left join organ_course_type_original_cost oct ON oct.course_type_ = 'VIP' AND oct.organ_id_ = mgpc.organ_id_
+				 left join organ_course_type_original_cost oct1 ON oct1.course_type_ = 'VIP' AND oct1.organ_id_ = 0
+		WHERE aum.calender_id_ IS NOT NULL AND aum.return_fee_ = 0
 		  AND ((aum.sub_course_num_ > 0 AND aum.category_id_ != 8) OR (aum.sub_give_course_num_ > 0 AND aum.give_category_id_ != 8))
 		GROUP BY mgpc.organ_id_
 	</select>
@@ -323,4 +326,10 @@
 		where cto.status_ = 1 AND cto.operating_amount_ > 0
 		group by cto.organ_id_;
 	</select>
+	<select id="sumMaintenanceAmount" resultType="java.util.Map">
+		select spo.organ_id_ 'key',SUM(spod.price_) 'value' from student_payment_order_detail spod
+		left join student_payment_order spo ON spo.id_ = spod.payment_order_id_
+		where spod.type_ = 'MAINTENANCE' AND DATE_FORMAT(spod.create_time_,'%Y-%m') = #{month}
+		group by spo.organ_id_
+	</select>
 </mapper>

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/OrganCourseTypeOriginalCostMapper.xml

@@ -16,8 +16,9 @@
         where (organ_id_ = #{organId} OR organ_id_ = 0) AND course_type_ = #{courseType} limit 1
     </select>
     <select id="getCourseCostPrice" resultType="java.math.BigDecimal">
-        SELECT SUM(oct.price_) FROM course_schedule cs
-        LEFT JOIN organ_course_type_original_cost oct ON oct.course_type_ = cs.type_ AND (oct.organ_id_ = cs.organ_id_  OR oct.organ_id_ = 0)
+        SELECT SUM(CASE WHEN oct.id_ IS NULL THEN oct1.price_ ELSE oct.price_ END cost_) FROM course_schedule cs
+        left join organ_course_type_original_cost oct ON oct.course_type_ = cs.type_ AND oct.organ_id_ = cs.organ_id_
+        left join organ_course_type_original_cost oct1 ON oct1.course_type_ = cs.type_ AND oct1.organ_id_ = 0
         where FIND_IN_SET(cs.id_,#{courseIds})
     </select>
 </mapper>

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

@@ -299,5 +299,5 @@ headColumns = ["分部", "预计回访人数", "实际回访人数", "覆盖率"
 fieldColumns = ["organName","expectVisitNum","visitNum","coverRate"]
 
 [经营报表导出]
-headColumns = ["月份","分部", "销售收入", "服务收入", "课程收入", "云教练收入", "业务退费", "收入合计", "销售成本", "固定费用", "变动费用", "内部结算", "成本费用合计", "准可自由支配利润", "预收账款", "云教练预收", "课程预收", "商品预收", "其他预收", "预付账款", "应收账款", "应付账款"]
-fieldColumns = ["month","organName","saleAmount","serviceAmount","courseAmount","cloudAmount","businessRefund","totalIncome","saleCost","fixedCosts","variableCosts","internalSettlement","totalCost","quasiDiscretionaryProfit","prepaidFee","cloudPrepaidFee","coursePrepaidFee","salePrepaidFee","otherPrepaidFee","prepayments","receivables","payable"]
+headColumns = ["月份","分部", "销售收入", "服务收入", "课程收入", "云教练收入","乐保收入", "业务退费", "收入合计", "销售成本", "固定费用", "变动费用", "内部结算", "成本费用合计", "准可自由支配利润", "预收账款", "云教练预收", "课程预收", "商品预收", "其他预收", "预付账款", "应收账款", "应付账款"]
+fieldColumns = ["month","organName","saleAmount","serviceAmount","courseAmount","cloudAmount","maintenanceAmount","businessRefund","totalIncome","saleCost","fixedCosts","variableCosts","internalSettlement","totalCost","quasiDiscretionaryProfit","prepaidFee","cloudPrepaidFee","coursePrepaidFee","salePrepaidFee","otherPrepaidFee","prepayments","receivables","payable"]