Browse Source

fix:经营数据对不上

Joburgess 4 năm trước cách đây
mục cha
commit
5253322cf2

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -215,4 +215,16 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     List<IndexBaseMonthData> getFinanceBalanceData(@Param("dayStr") String dayStr);
 
     List<IndexBaseMonthData> getFinanceActualData(@Param("dayStr") String dayStr);
+
+    List<IndexBaseMonthData> getFinancePayDataWithTimely(@Param("startDate") String startDate,
+                                                         @Param("endDate") String endDate,
+                                                         @Param("organIds") List<Integer> organIds);
+
+    List<IndexBaseMonthData> getFinanceBalanceDataWithTimely(@Param("startDate") String startDate,
+                                                             @Param("endDate") String endDate,
+                                                             @Param("organIds") List<Integer> organIds);
+
+    List<IndexBaseMonthData> getFinanceActualDataWithTimely(@Param("startDate") String startDate,
+                                                            @Param("endDate") String endDate,
+                                                            @Param("organIds") List<Integer> organIds);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -103,6 +103,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 
 		Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = indexBaseDatas.stream().filter(d->Objects.nonNull(d.getDataType())).collect(Collectors.groupingBy(IndexBaseMonthData::getDataType));
+		typeDateMap.put(IndexDataType.FINANCE_PAY,indexBaseMonthDataDao.getFinancePayDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
+		typeDateMap.put(IndexDataType.FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getFinanceBalanceDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
+		typeDateMap.put(IndexDataType.FINANCE_AMOUNT,indexBaseMonthDataDao.getFinanceActualDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
+
 
 		for (IndexDataType dataType : IndexDataType.values()) {
 			if(typeDateMap.containsKey(dataType)||(Objects.nonNull(dataTypes)&&!dataTypes.contains(dataType.getCode()))){

+ 42 - 0
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -881,4 +881,46 @@
 		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') = #{dayStr}
 		GROUP BY spo.organ_id_
 	</select>
+
+	<select id="getFinancePayDataWithTimely"  resultMap="IndexBaseMonthData">
+		SELECT SUM(fe.amount_) total_num_,SUM(fe.amount_) activate_num_,SUM(fe.amount_) percent_,fe.organ_id_,DATE_FORMAT(fe.create_time_,'%Y-%m-%d') month_
+		FROM financial_expenditure fe
+		WHERE DATE_FORMAT(fe.create_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		  AND del_flag_ = 0
+			<if test="organIds!=null and organIds.size()>0">
+				AND fe.organ_id_ IN
+				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+					#{organId}
+				</foreach>
+			</if>
+		GROUP BY DATE_FORMAT(fe.create_time_,'%Y-%m-%d')
+	</select>
+	<select id="getFinanceBalanceDataWithTimely" resultMap="IndexBaseMonthData">
+		SELECT spo.organ_id_,SUM(spo.balance_payment_amount_) total_num_,
+			   SUM(spo.balance_payment_amount_) activate_num_,
+			   SUM(spo.balance_payment_amount_) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+	</select>
+	<select id="getFinanceActualDataWithTimely" resultMap="IndexBaseMonthData">
+		SELECT spo.organ_id_,SUM(spo.actual_amount_) total_num_,
+			   SUM(spo.actual_amount_) activate_num_,
+			   SUM(spo.actual_amount_) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+	</select>
 </mapper>